Benjamin Saunders
Benjamin Saunders
In the high-level crate, all I/O on a connection travels across a `mpsc` between connection and endpoint drivers. This has a number of costs: - I/O buffers must constantly be...
A number of implementations are keeping track of packets deemed lost for some period after, so that an extremely delayed ACK can still be processed correctly, resulting in in-flight retransmissions...
Tokio's [automatic cooperative task yielding](https://tokio.rs/blog/2020-04-preemption/) feature can cause abruptly prevent a task from making further progress. A very busy connection driver might as a result end up failing to fairly...
Both the quant maintainer and [quic-tracker](https://quic-tracker.info.ucl.ac.be/traces/20200606/544) have recently reported 0-RTT sometimes being rejected when it shouldn't be. Manual local testing with quant and the interop server has so far failed...
Provides a more robust, lower-cost solution for cases where multiple tasks may need to be notified of a single event, e.g. the current interface for opening streams, and an ideal...
A UDP send operation can meaningfully fail in at least two says: - Sending to an unsupported address family, i.e. IPv6 when bound to an IPv4 socket, or IPv4 when...
This would allow us to skip buffering of application datagrams, reducing the risk of data loss and improving behavior with peers that propagate application datagram acknowledgements to the application level....
On Windows, we're currently relying on naive send/recv using tokio's built-in functions. This is much less efficient than the batched syscalls we use on Unix platforms, severely compromising performance when...
We've sought to expose an extremely flexible API, which is as a consequence somewhat complicated to get started with. This PR presents a straw proposal for an optional alternative API...
e.g. #650 has compellingly illustrated the value here. Ideally we use a fixed seed and run some large number of iterations in CI for reproducibility, but a brute force netem-based...