QUIC (Quick UDP Internet Connections) is a transport protocol developed by Google and now standardized by the IETF. It is designed to improve upon TCP by addressing its key limitations, especially for modern web applications like video streaming.
Key Features of QUIC
- Runs Over UDP:
- Unlike TCP, which is connection-oriented, QUIC uses UDP as its underlying transport layer.
- UDP is simpler and has no built-in reliability, but QUIC adds its own reliability, congestion control, and stream management on top of UDP.
- Fast Connection Setup:
- TCP Handshake: Establishing a connection in TCP requires a 3-step handshake (SYN, SYN-ACK, ACK), which adds latency.
- QUIC Handshake: Combines connection setup and cryptographic negotiation (TLS 1.3) into a single step, drastically reducing latency.
- Eliminates Head-of-Line Blocking:
- In TCP, packet loss blocks the delivery of subsequent packets until the lost packet is retransmitted (head-of-line blocking).
- QUIC streams are independent of one another, so packet loss in one stream doesn’t delay others.
- Better Performance for Video Streaming:
- QUIC is particularly effective in high-latency or lossy networks, such as mobile or satellite connections.
- Reduces buffer underruns and improves adaptive bitrate responsiveness.
QUIC vs. TCP for Streaming
| Feature | TCP | QUIC (UDP-Based) |
|---|---|---|
| Handshake Latency | 3 steps (higher latency) | 1 step (lower latency) |
| Head-of-Line Blocking | Affects entire connection | Only affects individual streams |
| Multiplexing | Limited to HTTP/2 streams over TCP | Native, stream-level multiplexing |
| Resilience to Loss | Limited (blocking behavior) | Higher resilience due to independent streams |