QUIC
- Pronunciation
- KWIK
In short
QUIC is a modern transport protocol built on UDP that provides encrypted, reliable, multiplexed connections with fast setup, and it is the foundation of HTTP/3.
What is QUIC?
QUIC is a transport protocol that does the job TCP and TLS usually do together, delivering data reliably and encrypted, but it runs on top of UDP. It began as an experiment at Google in the early 2010s and was standardized by the IETF in 2021 as RFC 9000, and HTTP/3 is defined as HTTP running over QUIC. The name started as an abbreviation of Quick UDP Internet Connections, but the standard treats QUIC simply as a name.
QUIC builds TLS 1.3 encryption directly into its handshake, so a new connection is usually ready after a single round trip, while TCP plus TLS needs extra round trips before any data flows, and a returning client can even send data in its very first packet (0-RTT). One connection carries many independent streams, and because QUIC tracks lost packets per stream, a lost packet delays only its own stream instead of everything behind it, a problem known as head-of-line blocking. Connections are identified by connection IDs rather than by IP address and port, so a download can survive a phone switching from Wi-Fi to mobile data.
If TCP is a single-lane road where one stalled car holds up everyone behind it, QUIC is a multi-lane road where each lane keeps moving on its own. Most major browsers, websites, and CDNs use QUIC for HTTP/3, and it also carries DNS over QUIC and newer real-time media protocols. Because QUIC runs in user space inside applications and libraries rather than in the operating system kernel, it can evolve much faster than TCP.
QUIC is often misunderstood as unreliable because it runs over UDP. UDP is only the envelope: QUIC adds its own acknowledgments, retransmissions, ordering within each stream, and congestion control, so applications get the same reliability as with TCP. It is also not the same as HTTP/3, since QUIC is the transport underneath and other protocols can run on it too. One practical catch is that some corporate firewalls block UDP port 443, in which case browsers quietly fall back to HTTP/2 over TCP.
Key takeaways
- QUIC is a reliable, encrypted transport protocol that runs over UDP.
- TLS 1.3 encryption is built in, and new connections usually need only one round trip.
- Independent streams avoid TCP's head-of-line blocking.
- Connection IDs let a connection survive network changes, such as moving from Wi-Fi to mobile data.
- HTTP/3 is HTTP over QUIC, with a fallback to HTTP/2 over TCP when UDP is blocked.
Example
# Request a page over HTTP/3 (needs a curl build with HTTP/3 support)
curl --http3 -sI https://example.com | head -n 1
# HTTP/3 200
# Servers advertise HTTP/3 support in the Alt-Svc response header
curl -sI https://example.com | grep -i alt-svc
# alt-svc: h3=":443"; ma=86400
# QUIC traffic is UDP on port 443, so the firewall must allow it
sudo ufw allow 443/udpReaders ask
What is the difference between QUIC and TCP?
TCP is a reliable byte stream built into the operating system and usually paired with TLS for encryption. QUIC runs over UDP, has encryption built in, sets up connections in fewer round trips, carries independent streams without head-of-line blocking, and survives changes of IP address.
Is QUIC the same as HTTP/3?
No. QUIC is the transport protocol, and HTTP/3 is the version of HTTP designed to run on top of it. Other protocols, such as DNS over QUIC, use QUIC as well.
Is QUIC reliable if it uses UDP?
Yes. QUIC uses UDP only to carry its packets and adds its own acknowledgments, retransmissions, and congestion control, so data arrives complete and in order within each stream.
See also
- UDPNetworking, p. 35UDP is a lightweight internet protocol that sends small, independent messages called datagrams without a connection, favoring speed over guaranteed delivery.
- TCPNetworking, p. 30TCP is a core internet protocol that delivers data between two programs reliably and in order, by opening a connection and resending anything that gets lost.
- TLSSecurity, p. 45TLS is the cryptographic protocol that encrypts data sent over a network and verifies the server's identity, securing HTTPS, email, and many other connections.
- HTTPWeb Development, p. 19HTTP is the protocol that browsers, apps, and servers use to exchange web pages and data through a simple cycle of requests and responses.
- LatencyNetworking, p. 14Latency is the delay between sending a request and the start of a response, usually measured in milliseconds, and it shapes how responsive an app feels.
- PortNetworking, p. 22A port is a number from 0 to 65535 that identifies a specific program or service on a device, so traffic reaching an IP address gets to the right application.
- HTTP/2Networking, p. 9HTTP/2 is the second major version of HTTP, sending many requests and responses at once over one connection in a compact binary format so pages load faster.
Spotted a mistake or something missing on this page?Suggest an edit