Протокол QUIC

Тема дорожной карты · Компьютерные сети

QUIC · надёжные потоки поверх UDP

Нажмите на схему, чтобы увеличить ↗

UDP переносит пакеты. Надёжность, потоки и защиту обеспечивает QUIC.

Пошаговое объяснение
  1. Initial + ClientHello
    Клиент начинает QUIC-соединение и рукопожатие TLS внутри него.
  2. Initial / Handshake + ответ TLS
    Сервер отвечает; клиент проверяет сертификат и параметры защиты.
  3. Handshake + Finished
    Клиент завершает рукопожатие; доступны ключи прикладных данных.
  4. Несколько независимых потоков
    QUIC управляет порядком и повторами внутри потоков; HTTP/3 использует QUIC.
Источники схемы
QUIC · надёжные потоки поверх UDP

UDP переносит пакеты. Надёжность, потоки и защиту обеспечивает QUIC.

Протокол QUIC — это современный, многоканальный и безопасный транспортный протокол, разработанный Google и стандартизированный IETF. Он предназначен для ускорения установки соединений и улучшения производительности в ненадежных сетях. Используйте QUIC, если вам нужно более быстрое и надежное соединение для веб-приложений.

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

Протокол QUIC работает на основе UDP, но обеспечивает надежность, аналогичную TCP. TCP — это connection-oriented, надёжный и упорядоченный протокол с управлением потоком и затуханием (flow control и congestion control), что подходит для большинства приложений, таких как HTTP, SSH и подключения к базам данных. UDP же является connectionless и ненадёжным, но обеспечивает быструю передачу данных, что подходит для DNS, видео и гейминга. Three-way handshake (SYN → SYN-ACK → ACK) устанавливает TCP-соединение. Flow control (sliding window) и congestion control (Reno/Cubic/BBR) адаптируют пропускную способность к условиям сети. QUIC (HTTP/3) использует UDP для быстрого установления соединений и обеспечивает TCP-like reliability с возможностью 0-RTT resumption.

Когда применять

Используйте TCP для большинства приложений. UDP подходит, когда вы можете терпеть потери данных (например, видео или гейминг), или когда вы реализуете надежность самостоятельно (например, QUIC или DNS), или когда задержка TCP-рукопожатия неприемлема. Современный Linux по умолчанию использует алгоритм Cubic, но BBR лучше подходит для long-fat networks (высокий BDP). Для новых public-facing сервисов рекомендуется поддерживать QUIC (HTTP/3), так как это ускоряет мобильные соединения и уменьшает head-of-line blocking.

Типичные ошибки

Использование UDP для надежной передачи без собственного retransmission приводит к потере данных. Неоптимизированные TCP buffer sizes могут ограничивать пропускную способность на long-fat connections. Слишком короткие TCP-таймауты могут приводить к ложным закрытиям соединений при пиковых нагрузках. Игнорирование HOL blocking в HTTP/2 поверх TCP может привести к снижению производительности, что HTTP/3 решает.

Связанные понятия

Полезные ресурсы

🔤 Английские термины в этой теме

Слова из этой темы, которые русскоязычные часто произносят неверно. Кнопка 🔊 произносит голосом браузера.

Весь словарь терминов →