A big part of observed network latencies/delays is due to so-called bufferbloat:
Too large intermediate buffers, both on the endpoints and in the network, cause packets to stay in the buffer too long, delaying them.
On the endpoints, this can be improved by tuning buffer sizes for different protocols (TCP/QUIC, TLS and HTTP have their own buffers!). Default sizes are often too high.
Take the "parking lot problem": you have WiFi on your phone inside, but switch to 4G when going to your car.
This switches networks and client IP/port, so all TCP connections are dropped and re-started, since they're only identified based on client+server IP+port (4-tuple). 2/12
QUIC instead assigns each connection a unique Connection ID (CID) of 1-20 bytes.
By using the same CID even after switching networks, the server knows it's actually the same connection, even though the 4-tuple has changed. 3/12
Yesterday, there was a #QUIC workshop at the #conext18 conference with a large amount of new insights. Most of my notes on this can be found at docs.google.com/document/d/16S…. Following tweets contain the parts relevant to the blogpost.
For example, Intel was here with a demo of a NIC that can offload #QUIC crypto to hardware. When asked later, Manasi Deval mentioned that specifically Variable Integer Encoding (to reduce the amount of bits on the wire) is a serious hindrance for #QUIC hardware support.