Fundamentals 15 min read

Understanding HTTP Evolution and the QUIC Protocol: Connection, Congestion, and Flow Control

The article provides a comprehensive technical overview of HTTP's history, the design and advantages of the QUIC protocol—including connection establishment, migration, head‑of‑line blocking mitigation, congestion control, ACK handling, and stream/connection flow control—while contrasting it with TCP and HTTP/2 mechanisms.

Top Architect
Top Architect
Top Architect
Understanding HTTP Evolution and the QUIC Protocol: Connection, Congestion, and Flow Control

The senior architect introduces the evolution of HTTP from HTTP/1.1 (1991) through SPDY (2009), QUIC (2013), HTTP/2 (2015) to HTTP/3 (2018), highlighting that HTTP/3 builds on QUIC which uses UDP for higher speed without sacrificing TLS security.

QUIC Overview

QUIC (Quick UDP Internet Connections) combines the benefits of TCP, TLS, and HTTP/2 while operating over UDP, enabling HTTP/3 to run on top of QUIC.

Connection Establishment (RTT)

HTTP/2 requires up to three RTTs for a handshake (two RTTs with session resumption, one RTT with TLS 1.3). In contrast, HTTP/3 establishes a connection in a single RTT and subsequent connections can use 0‑RTT, sending request data in the first packet.

Client sends an Inchoate Client Hello.

Server replies with a Server Config containing DH parameters (g, p, A).

Client generates its DH values (b, B), derives the initial key K, encrypts HTTP data, and sends B and encrypted data.

Server computes the same key, decrypts data, updates its random values, and sends a Server Hello with the new key and HTTP response.

Connection Migration

Unlike TCP, which binds a connection to a four‑tuple (source IP, source port, destination IP, destination port), QUIC uses a 64‑bit Connection ID, allowing the connection to survive IP or port changes.

Head‑of‑Line Blocking and Multiplexing

Both HTTP/1.1 and HTTP/2 suffer from head‑of‑line (HoL) blocking at the TCP layer. HTTP/2 mitigates request‑level HoL by multiplexing frames over a single TCP connection, but TCP’s packet ordering still causes blocking. QUIC solves this by encrypting and transmitting independent packets; loss of one packet does not stall the entire stream.

Congestion Control

QUIC adopts TCP‑style congestion control (slow start, congestion avoidance, fast retransmit, fast recovery) and improves it with the Cubic algorithm, hot‑plug capability to change algorithms at the application layer, and Forward Error Correction (FEC) to recover lost packets without retransmission.

ACK Improvements

ACK Delay: QUIC accounts for receiver‑side processing delay, yielding more accurate RTT measurements.

More ACK blocks: QUIC can carry up to 256 ACK blocks, reducing ACK overhead in lossy networks.

Flow Control

QUIC implements two levels of flow control: connection‑level (aggregate of all streams) and stream‑level (individual streams). The receiver advertises a window based on the maximum receive window minus already received data; when the window falls below half, a WINDOW_UPDATE frame expands it, allowing continued data transmission.

The article concludes with an invitation for readers to discuss and explore these concepts further.

NetworkHTTPprotocolQUICflow controlcongestion control
Top Architect
Written by

Top Architect

Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.