Skip to content
hashkey.bond

Archivenetworking

Head-of-Line Blocking, From TCP to HTTP/3

One lost packet can stall unrelated requests if they share an ordered stream. Multiplexing only helps if it is real.

Published
Reading time
1 min read

Head-of-line (HOL) blocking happens when an earlier item delays later ones that could have proceeded independently.

The layers

  • TCP: bytes are delivered in order. A lost segment stalls everything behind it, even data for other requests, until retransmission.
  • HTTP/1.1: pipelining was HOL-blocked by design; browsers opened six connections instead.
  • HTTP/2: multiplexes streams over one TCP connection — solving application-level HOL but inheriting TCP-level HOL.
  • HTTP/3/QUIC: streams are independent at the transport level, so a lost packet blocks only its stream.

The practical result

HTTP/2 helps on low-loss networks and can hurt on lossy mobile links, where one dropped packet freezes all streams. That is a large part of why QUIC exists.

Takeaway: ask which layer is ordered. Multiplexing above an ordered transport does not remove the queue; it just hides it.