Skip to content

Introduction to QUIC

homepage-banner

Introduction

QUIC is a new multiplexed transport built on top of UDP. HTTP/3 is designed to take advantage of QUIC’s features, including lack of Head-Of-Line blocking between streams.

What is QUIC

QUIC is an abbreviation for Quick UDP Internet Connections, a new transport protocol invented by Google. Compared to TCP, QUIC can reduce latency. On the surface, QUIC is very similar to TCP+TLS+HTTP/2 implemented on UDP. Since TCP is implemented in the operating system kernel and middleware firmware, it is almost impossible to make significant changes to TCP. However, since QUIC is built on top of UDP, there is no such limitation. QUIC can achieve reliable transmission, and its flow control function is in user space rather than kernel space compared to TCP, so users are not limited to CUBIC or BBR, but can freely choose and even adjust optimization according to application scenarios.

Compared with the existing TCP + TLS + HTTP/2 solution, QUIC has the following main features:

  1. Use caching to significantly reduce connection establishment time
  2. Improve congestion control, move congestion control from kernel space to user space
  3. Multiplexing without head-of-line blocking
  4. Forward error correction to reduce retransmission
  5. Connection smooth migration, network state changes will not affect connection disconnection.

quic-vs-http2.png

Reference

  • https://en.wikipedia.org/wiki/QUIC
  • https://peering.google.com/#/learn-more/quic
  • https://www.chromium.org/quic/
  • https://tools.ietf.org/html/draft-ietf-quic-transport-34
  • https://blog.cloudflare.com/the-road-to-quic
  • https://github.com/quicwg/base-drafts/wiki/Implementations
Leave a message