QUIC

On this page 7

QUIC is a general-purpose, encrypted transport protocol that runs over UDP and provides reliable, multiplexed streams with built-in TLS 1.3 security. Among internet protocols it occupies the role traditionally held by TCP plus TLS, and it is the transport beneath HTTP/3. The IETF standardized QUIC version 1 in RFC 9000 in 2021, together with companion specifications for TLS integration and loss recovery.

QUIC was designed to remove long-standing limits of TCP: slow connection setup, head-of-line blocking across multiplexed streams and connections that break when a device changes networks. Because it runs in user space on top of UDP, it can evolve without operating system or middlebox upgrades, which made rapid deployment by browsers and large services possible.

How QUIC establishes and carries connections

A QUIC connection begins with a handshake that merges transport setup and TLS 1.3 negotiation. The client sends an Initial packet, padded to at least 1,200 bytes, containing its TLS ClientHello. The server answers with its handshake data, and after one round trip the client can send application data. For servers it has contacted before, the client may send 0-RTT data immediately using resumption keys.

Each connection is identified by connection IDs rather than the IP address and port tuple. When a phone moves from Wi-Fi to a mobile network, its address changes but the connection ID stays valid, enabling connection migration without a new handshake.

Data travels in independent streams, each with its own ordering and flow control. Packets carry frames for several streams, and loss affects only the streams whose data was in the lost packet.

ComponentFunctionSpecification
Packets and framesCarry stream data, ACKs and controlRFC 9000
TLS 1.3 integrationKey exchange and packet protectionRFC 9001
Loss detection and congestion controlRetransmission and sending rateRFC 9002
Connection IDsIdentify connections across address changesRFC 9000
QUIC version 2Same mechanisms, new version numberRFC 9369
Main components of QUIC

Key parameters and protocol behavior

QUIC exposes transport parameters exchanged during the handshake, which set limits on streams, data and timing. These values shape throughput and resilience as much as the network itself.

ParameterTypical settingEffect
Initial packet sizeAt least 1,200 bytesEnsures paths support the minimum size
Anti-amplification limit3 times bytes receivedLimits reflection attacks before validation
Max idle timeoutOften 30 to 60 secondsCloses silent connections
Initial max streamsCommonly around 100Concurrent requests allowed
Flow control windowsHundreds of KB to several MBCaps unacknowledged data in flight
Congestion controllerNewReno, CUBIC or BBRHow fast sending rate grows and backs off
Important QUIC parameters

Nearly all of the QUIC header, including packet numbers, is encrypted or authenticated. Only a small set of fields, such as the connection ID and an optional latency spin bit, remains visible, which protects the protocol from ossification by middleboxes.

QUIC compared with TCP and TLS

The clearest way to understand QUIC is to compare it with the TCP plus TLS stack that carries HTTP/1.1 and HTTP/2. QUIC keeps reliability and congestion control but changes where and how they are implemented.

AspectTCP with TLS 1.3QUIC
New connection setup2 round trips (TCP then TLS)1 round trip
Resumed connection1 round trip, or 0-RTT with TLS early data0-RTT possible
Head-of-line blockingOne lost packet stalls all streamsOnly affected streams wait
Encryption scopePayload only, TCP header visiblePayload and most header fields
Network changeConnection breaksMigrates via connection ID
Implementation locationOperating system kernelUsually application user space
QUIC versus TCP with TLS

HTTP/2 multiplexes requests over one TCP connection, so a single lost packet blocks every stream until it is retransmitted. HTTP/3 maps each request to a QUIC stream, which is why its benefit is largest on lossy mobile and long-distance links.

Deployment and practical considerations

Browsers discover HTTP/3 support through the Alt-Svc header or HTTPS DNS records, then attempt QUIC on UDP port 443. If UDP is blocked, they fall back to HTTP/2 over TCP, so enabling QUIC rarely breaks access but can silently fail to deliver benefits.

SituationRecommended approachReason
Public website behind a CDNEnable HTTP/3 at the CDN edgeLow effort, broad client support
Corporate network with strict firewallsAllow UDP 443 or accept fallbackBlocked UDP disables QUIC
API with non-idempotent requestsDisable 0-RTT for those requestsEarly data can be replayed
High-throughput internal transfersBenchmark against tuned TCPUser-space stacks may cost more CPU
Mobile applicationUse QUIC with connection migrationSurvives network switches
Deployment decisions

QUIC is also used beyond HTTP, for example by DNS over QUIC, by WebTransport and by media and gaming protocols that benefit from multiplexed reliable and unreliable delivery.

Limitations and common misconceptions

QUIC is not automatically faster in every case. On clean, low-latency networks the gains over well-tuned TCP are often small, and user-space implementations can consume noticeably more CPU per byte than kernel TCP with hardware offloads.

  • 0-RTT replay risk: early data can be resent by an attacker, so only idempotent requests should use it.
  • Reduced visibility: encrypted headers limit passive troubleshooting and some security monitoring tools.
  • UDP rate limiting: some networks throttle UDP, causing fallback or poor performance.
  • Not a TCP replacement everywhere: many protocols and tools still rely on TCP semantics.
  • Misread as unreliable because of UDP: QUIC provides full reliability above UDP.

Operators should measure real-user performance before and after enabling QUIC, since outcomes depend heavily on network loss, latency and the maturity of the implementation in use.

A plain-language summary

QUIC is a newer way for computers to send data across the internet. The older method works like one long queue. If one item gets stuck, everything behind it waits.

QUIC opens several separate lanes inside one connection, so a delay in one lane does not stop the others. It also says hello and sets up security in one step. That makes pages start loading sooner. Connections even survive a switch from Wi-Fi to mobile data.

An example from practice

A video learning platform notices that many students watch on phones while commuting, where packet loss is common and devices switch between Wi-Fi and mobile networks. Playback often stalls when the network changes.

The platform enables HTTP/3 at its CDN, confirms that most clients negotiate QUIC through the Alt-Svc header and limits 0-RTT to read-only requests such as manifests and video segments. Login and payment requests continue to require a full handshake.

Real-user monitoring over the following weeks shows shorter startup times and fewer stalls during network switches for mobile viewers, while desktop users on stable connections see only modest changes, matching the expected behavior of the protocol.