hostprofi.ru
Подобрать хостинг
Термин

QUIC

краткое определение

QUIC (Quick UDP Internet Connections) — транспортный протокол Google, стандартизированный в 2021 году как RFC 9000. Работает поверх UDP, обеспечивает шифрование TLS 1.3 по умолчанию и устраняет head-of-line blocking протокола TCP.

QUIC объединяет транспортный уровень и шифрование в одном протоколе. Рукопожатие занимает 1 RTT (или 0-RTT при повторном подключении) против 3 RTT у TCP+TLS. Это основа HTTP/3.

Ключевые отличия от TCP

ХарактеристикаTCP+TLSQUIC
ТранспортTCPUDP
Рукопожатие3 RTT1 RTT (0-RTT повторно)
ШифрованиеTLS отдельноTLS 1.3 встроено
Head-of-line blockingЕстьНет (независимые потоки)
Смена сетиРазрывает соединениеConnection ID (без разрыва)

Почему UDP, а не TCP

TCP реализован в ядре ОС и практически невозможно быстро изменить. QUIC работает в user space — Google, Cloudflare и другие могут обновлять протокол независимо от ОС. Потери пакетов в QUIC не блокируют все потоки сразу: если потерян пакет потока 3, потоки 1, 2, 4 продолжают работать — в отличие от TCP.

История

QUIC разработан Google в 2012 году. В 2015 году Google открыл спецификацию. К 2017 году ~7% трафика Google проходило через QUIC. IETF начал стандартизацию в 2016 году, RFC 9000 опубликован в мае 2021 года. HTTP/3 (RFC 9114) использует QUIC как транспорт и в 2023 году поддерживается 29% сайтов по данным W3Techs.

QUIC в хостинге и CDN

Nginx поддерживает QUIC/HTTP/3 начиная с версии 1.25.0 (2023). CDN Cloudflare включил QUIC по умолчанию в 2020 году. Для включения в nginx нужен специальный пакет с поддержкой BoringSSL или OpenSSL 3.x. Прирост производительности наиболее заметен на мобильных клиентах с нестабильным соединением и высоким RTT (>100 мс).

На VPS для включения QUIC открывают UDP/443 в файрволе — многие по умолчанию открывают только TCP/443.

Как работает QUIC

QUIC работает поверх UDP, что обходит ограничения TCP. Установка соединения: первое подключение требует 1 RTT (Round Trip Time) для QUIC handshake (TLS 1.3 интегрирован) против 3 RTT для TCP+TLS 1.2 (1 RTT TCP + 2 RTT TLS). Повторное подключение: 0-RTT (Zero-RTT) — клиент отправляет данные сразу, без ожидания подтверждения, используя сохранённые параметры сессии. Это критично для мобильных сетей с высокой задержкой.

Мультиплексирование потоков: несколько HTTP-запросов идут параллельно внутри одного QUIC-соединения без проблемы head-of-line blocking. В HTTP/2 потеря одного TCP-пакета блокирует все потоки (head-of-line blocking на транспортном уровне). В QUIC потеря пакета одного потока не влияет на другие.

QUIC и хостинг

Nginx поддерживает QUIC/HTTP3 с версии 1.25.0 (2023). Caddy поддерживал HTTP/3 с версии 2.0 (2020). Для включения QUIC на сервере нужны: UDP-порт 443 открыт в файрволе (QUIC работает только на 443), поддержка TLS 1.3, современная версия веб-сервера. Проверка поддержки: https://http3check.net/.

Cloudflare поддерживает QUIC для всех сайтов за их CDN с 2019 года. По данным Cloudflare, доля QUIC-соединений выросла с 10% в 2020 году до 25%+ в 2023 году. Google Chrome выбирает QUIC для подключений к Google-сервисам начиная с Chrome 29 (2013).

История QUIC

QUIC разработан Google в 2012–2013 годах под руководством Джима Роскинда. Имя — акроним Quick UDP Internet Connections, хотя впоследствии стал просто именем собственным. В 2016 году IETF начал стандартизацию. RFC 9000 (IETF QUIC) опубликован в мае 2021 года. HTTP/3 (RFC 9114) — HTTP поверх QUIC, опубликован одновременно. По данным W3Techs на 2024 год, 28% веб-сайтов поддерживают HTTP/3.

Другие термины