Archivenetworking
QUIC Loss Recovery Without TCP Head-of-Line Blocking
Per-stream delivery means a lost packet costs one stream, not the connection — but congestion control still reacts globally.
- Published
- Reading time
- 1 min read
QUIC runs over UDP and implements reliability per stream. A lost packet is detected by packet-number gaps and retransmitted; only the affected stream waits. Other streams keep delivering.
What is still shared
- Congestion control: one controller per connection. A loss reduces the send rate for all streams, because the bottleneck is shared.
- Packet number space: monotonically increasing, never reused, which removes TCP's retransmission ambiguity when measuring RTT.
- Connection migration: connection IDs let a flow survive an IP change.
Why it is not magic
On a clean link, QUIC and TCP+TLS perform similarly. On lossy mobile networks, avoiding TCP HOL blocking and using a modern loss detector helps. But CPU cost per packet is higher in userspace, and some networks throttle UDP.
Takeaway: QUIC decouples stream delivery, not congestion. Benchmark on the networks your users actually have.