← Lessons

quiz vs the machine

Platinum1820

Networking

Head of Line Blocking Solved

How QUIC removes the stall that HTTP2 left at the transport layer.

6 min read · advanced · beat Platinum to climb

The Stall Problem

Head of line blocking happens when one delayed item holds up everything queued behind it. HTTP1 suffered it because a connection handled one request at a time. HTTP2 fixed that at the application layer with multiplexed streams, but a deeper problem remained.

The TCP Layer Catch

HTTP2 runs many streams over a single TCP connection. TCP guarantees one ordered byte stream, so if a single packet is lost, TCP holds back every later byte until that packet is retransmitted. Even unrelated streams stall behind one missing segment.

How QUIC Fixes It

QUIC tracks each stream's data separately within UDP. A lost packet only blocks the stream it belonged to, and other streams keep flowing.

  • HTTP2 removed application layer blocking but kept TCP transport blocking.
  • QUIC removes transport blocking by isolating loss per stream.

Key idea

HTTP2 multiplexing still suffered TCP head of line blocking, but QUIC isolates packet loss to a single stream so unrelated requests are no longer stalled.

Check yourself

Answer to earn rating on the learn ladder.

1. Where did head of line blocking remain even with HTTP2?

2. How does QUIC avoid cross stream blocking?