QUIC is a transport protocol built on UDP that combines the connection setup, reliability and TLS 1.3 encryption that previously took TCP plus TLS. It is the foundation of HTTP/3, used by Google, Apple, Cloudflare and others, and typically runs on UDP port 443.
How it works
Why a new protocol?
TCP is built into every operating system kernel and every middlebox, so it's almost impossible to change. QUIC implements a new transport in user space on top of UDP, so browsers and apps can improve it quickly.
What it improves
- Faster setup: transport and TLS handshakes happen together in one round trip; resumed connections can send data immediately (0-RTT).
- No head-of-line blocking: HTTP/2 over TCP stalls every stream when one packet is lost. QUIC streams are independent, so a loss delays only its own stream.
- Connection migration: connections are identified by an ID, not by IP and port, so moving from Wi-Fi to cellular doesn't break them.
- Always encrypted: even most transport headers are encrypted, which stops middleboxes from interfering.
Trade-offs
Some networks block or throttle UDP, so browsers fall back to TCP. Encrypted headers make it harder for network operators to troubleshoot. QUIC can also use more CPU than kernel TCP.
Side by side
| TCP + TLS (HTTP/2) | QUIC (HTTP/3) | |
|---|---|---|
| Transport | TCP | UDP |
| Encryption | TLS on top | TLS 1.3 built in |
| Handshake | 2 round trips (1 with TCP Fast Open) | 1 round trip, 0 when resuming |
| Packet loss | Blocks all streams | Blocks one stream |
| Network change | Connection breaks | Connection migrates |
| Implemented in | OS kernel | Apps and browsers |
Examples
- In Safari or Chrome developer tools, the Network panel's Protocol column shows
h3for requests made over HTTP/3. ERR_QUIC_PROTOCOL_ERRORin Chrome usually means something on the network is interfering with UDP 443.
On a Mac
macOS supports QUIC system-wide through Apple's Network framework, and Safari uses HTTP/3 by default. lsof -i UDP:443 shows apps with QUIC connections open.
See it in the app
LightAtom's connections view shows QUIC connections as UDP to port 443, alongside each app's TCP traffic.
Frequently asked questions
What is QUIC used for?
Mainly HTTP/3 for web traffic, but also DNS over QUIC and other protocols that need fast, encrypted connections.
Is QUIC TCP or UDP?
It runs on UDP, adding its own reliability, congestion control and encryption on top.
Is HTTP/3 the same as QUIC?
HTTP/3 is HTTP running over QUIC. QUIC is the transport; HTTP/3 is the web protocol on top.
Should I block QUIC?
Only if your network security tools can't inspect it. Browsers fall back to TCP, but you lose QUIC's speed benefits.