-
Notifications
You must be signed in to change notification settings - Fork 34
Conversation
d8cba1c
to
14918c3
Compare
let mut endpoint = Endpoint::client("0.0.0.0:0".parse().unwrap()).unwrap(); | ||
let client_config = quinn::ClientConfig::new(Arc::new(client_config())); | ||
endpoint.set_default_client_config(client_config); | ||
let stream = endpoint |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@qti3e @ozwaldorf what's nice about using QUIC here is that we don't have to open iterations
connections like in TCP (if we were using TCP + TLS that would be a lot of connection setup overhead). Instead we can open one connection and send each request in a separate QUIC stream. They all get multiplexed in the wire.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a really great point, and good to consider when we choose the main transport! I can see this being really useful if a gateway is using many concurrent ufdp connections to a node
|
||
#[cfg(feature = "bench-quic")] | ||
{ | ||
let mut g = c.benchmark_group(format!("QUINN UFDP/{range}")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor nit so both impl can be run with QUIC
let mut g = c.benchmark_group(format!("QUINN UFDP/{range}")); | |
let mut g = c.benchmark_group(format!("QUINN QUIC UFDP/{range}")); |
mod tls_utils { | ||
use std::sync::Arc; | ||
|
||
pub struct SkipServerVerification; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I forgot, I'm going to remove this because it would be better to not skip the certificate verification so we can get a better idea of the performance.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the iterations in the bench are multiplexed over a single quic connection, this would only affect the initial connection right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that's right.
content: &'static [u8], | ||
tx_started: tokio::sync::oneshot::Sender<u16>, | ||
) { | ||
let server_config = ServerConfig::with_crypto(Arc::new(server_config())); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO: Make TLS configurable.
Just for visibility, s2n-quic is having an issue on ubuntu 22.04 (it's working on mac only atm):
|
Closing for #519 |
Why
Task of #489
Checklist
I have made corresponding changes to the tests