Skip to content
hashkey.bond

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.