QUIC — новый транспортный протокол, работающий поверх UDP. Некоторые в шутку называют его TCP/2. Расскажем, что сейчас обсуждают, как принять участие и кто внедряет поддержку QUIC.


/ Unsplash / Sticker Mule

Что такое QUIC


Это — механизм передачи данных по сети, построенный на протоколе UDP. Позволяет сократить задержку соединения. В отличие от TCP, который использует принцип «тройного рукопожатия», в QUIC рукопожатие происходит в один этап со знакомым сервером и в два этапа с незнакомым.

По сравнению с TCP QUIC также обладает большей пропускной способностью. Тесты показали 30-процентное снижение числа ребуферизаций при воспроизведении YouTube-видео.

Какие документы обсуждают


В 2018 году представители Инженерного совета интернета (IETF) отмечали, что QUIC готов для широкомасштабных тестов, но пока не может стать стандартом из-за ряда недостатков. За два года протокол доработали, и группа экспертов готовится оформить его в формате RFC.

Дополнительное чтение из нашего блога на Хабре:


В середине июня сопредседатель рабочей группы в IETF Лукас Пардью (Lucas Pardue) сообщил о начале последнего этапа обсуждения черновиков QUIC. Всего документов шесть, и они посвящены различным аспектам работы протокола:

  • QUIC Transport. Это — описание механизмов транспортного протокола QUIC: управление потоками передачи данных и обработки пакетов, согласование версий, открытие защищенного канала связи и обмен криптографическими ключами.
  • QUIC Loss Detection and Congestion Control. Содержит описание методов контроля целостности данных и перегрузки каналов связи.
  • Using TLS to Secure QUIC. Документ, посвященный использованию TLS для защиты QUIC. Есть информация об интерфейсах, работе с ключами и регистрах IANA.
  • Version-Independent Properties of QUIC. Здесь описаны свойства нового протокола, которые должны оставаться неизменными от версии к версии — например, заголовки.
  • HTTP/3. Документ, описывающий сопоставление семантики HTTP на QUIC.
  • QPACK Header Compression for HTTP/3. Документ посвящен формату сжатия заголовков QPACK — в частности, работе кодировщика и декодировщика.

Обсуждение закончат на следующей неделе — 8 июля. Через какое-то время после этого спецификация QUIC получит одобрение IETF и будет опубликована. Принять участие в обсуждении могут все желающие — свои замечания и предложения можно оставить на GitHub.

Сейчас ведется дискуссия, посвященная выбору между AAD или nonce. Но возвращаться к вопросам, по которым уже был достигнут консенсус, будут только по веским причинам.

Кто уже внедряет протокол


Несмотря на то что QUIC пока не является стандартом, его используют некоторые ИТ-компании. С ним начали работать CDN-сервисы, включая Cloudflare и Verizon Digital Media Services (VDMS).


/ Unsplash / Nathan Dumlao

Экспериментальную поддержку HTTP/3 уже добавили в Chrome и Firefox. В последнем случае работа протокола строится на проекте Neqo (есть на GitHub). Это — реализация клиента и сервера для QUIC.

Черновики IETF использовали и в NGINX — в середине июня компания представила превью-версию прокси-сервера с поддержкой QUIC и HTTP/3. В конце мая Microsoft также объявили, что открывают код библиотеки MsQuic с реализацией протокола. Библиотека кроссплатформенная — можно запустить на Windows и Linux, используя Schannel и OpenSSL соответственно (для TLS 1.3). Эксперты прогнозируют, что с принятием стандарта QUIC свои реализации выпустит еще больше компаний.

О чем мы пишем в корпоративном блоге: