Visualizing TCP Head-of-Line Blocking vs QUIC Independent Streams
Adjust the RTT latency and packet loss sliders above to observe how a single dropped packet stalls every multiplexed stream in HTTP/2 while HTTP/3 streams complete independently over QUIC.
Frequently Asked Questions (FAQ)
Q1 Why does HTTP/2 still suffer from Head-of-Line (HoL) blocking despite multiplexing?
Although
HTTP/2 multiplexes multiple streams over a single TCP connection, TCP enforces strict in-order byte delivery at the OS kernel level. When a single packet in Stream #1 is lost, the TCP stack holds back already-arrived packets belonging to Streams #2, #3, and #4 until the lost packet is retransmitted. Q2 How does HTTP/3 (QUIC over UDP) eliminate TCP Head-of-Line blocking?
QUIC implements stream multiplexing natively over UDP. Each stream has its own independent flow control and packet sequence numbering, so a lost packet in Stream #1 only stalls Stream #1 while all other streams are delivered immediately to the browser.