What is QUIC?
QUIC is a UDP-based, encrypted transport protocol defined in RFC 9000 that serves as the foundation for HTTP/3, offering reduced latency and improved multiplexing over TCP.
QUIC (Quick UDP Internet Connections) is a transport layer network protocol initially designed by Google in 2012 and standardized as RFC 9000 in May 2021. It replaces the traditional TCP+TLS+HTTP/2 stack with a single, encrypted, multiplexed connection built directly on UDP. The protocol reduces connection establishment overhead by combining cryptographic handshake with transport parameters in a single round trip (or zero round trip for returning clients), eliminating the TCP and TLS handshake serialization.
QUIC integrates TLS 1.3 natively, encrypting both payload and most control signals, including packet headers. This prevents middlebox interference and ossification. Its multiplexing is connection-level rather than stream-level, meaning a lost packet for one stream does not block delivery on other streams (head-of-line blocking elimination). QUIC also provides connection migration: a client changes IP addresses or networks without renegotiating the connection, a feature critical for mobile devices.
In the protocol stack, QUIC sits between IP and application layers, operating as a transport protocol over UDP port 443 by convention. HTTP/3 maps HTTP semantics directly onto QUIC streams, replacing HTTP/1.1 and HTTP/2 over TCP. While primarily known for HTTP/3, QUIC is a general-purpose transport capable of carrying any application protocol, analogous to TCP but with built-in encryption and lower latency characteristics.
Key facts
- Standardized in RFC 9000, with additional RFCs 9001 and 9002 for TLS usage and loss detection.
- Runs over UDP port 443 by default, bypassing TCP-processing bottlenecks in middleboxes.
- Supports 0-RTT handshake for returning clients, allowing immediate data transmission.
- Eliminates TCP head-of-line blocking by treating packet loss per stream independently.
- Connection migration allows continued session across IP and network interface changes.
How it works in practice
Related terms
References
More in Web Protocols
CORS
CORS (Cross-Origin Resource Sharing) is a browser security mechanism that lets servers explicitly allow web pages from one origin to request resources from a different origin via HTTP response headers.
GraphQL
GraphQL is a query language and runtime for APIs that lets clients request exactly the data they need in a single round trip, reducing over-fetching and under-fetching.
gRPC
gRPC is a high-performance, open-source remote procedure call framework initially developed by Google. It uses HTTP/2 for transport, Protocol Buffers as its interface definition language and message serialization format, and supports bidirectional streaming.
HTTP
HTTP is a text-based request-response protocol that defines how web clients and servers exchange resources, forming the foundation of data communication on the World Wide Web.
HTTP Pipelining
HTTP Pipelining is a technique in HTTP/1.1 that sends multiple requests on a single connection without waiting for each response, now largely replaced by HTTP/2 multiplexing.
HTTP Status Code
A three-digit integer in an HTTP response that indicates the result of the server's attempt to process the request, grouped into five classes (1xx through 5xx).
HTTP/1.1
HTTP/1.1 is the persistent-connection version of the Hypertext Transfer Protocol, defined in RFC 2616 and updated by RFCs 7230-7235, enabling multiple requests and responses over a single TCP connection.
HTTP/2
HTTP/2 is a binary, multiplexed version of HTTP that reduces latency through header compression, stream prioritization, and server push, as defined in RFC 7540.
HTTP/3
HTTP/3 is the third major version of the Hypertext Transfer Protocol, which runs over QUIC instead of TCP to reduce latency, eliminate head-of-line blocking, and improve connection setup time.
HTTPS
HTTPS (HTTP Secure) is HTTP traffic encrypted inside a TLS session, protecting data confidentiality, integrity, and server authenticity between a client and a web server.