QUIC — новый транспортный протокол, работающий поверх UDP. Некоторые в шутку называют его TCP/2. Расскажем, что сейчас обсуждают, как принять участие и кто внедряет поддержку QUIC.
/ Unsplash / Sticker Mule
Это — механизм передачи данных по сети, построенный на протоколе UDP. Позволяет сократить задержку соединения. В отличие от TCP, который использует принцип «тройного рукопожатия», в QUIC рукопожатие происходит в один этап со знакомым сервером и в два этапа с незнакомым.
По сравнению с TCP QUIC также обладает большей пропускной способностью. Тесты показали 30-процентное снижение числа ребуферизаций при воспроизведении YouTube-видео.
В 2018 году представители Инженерного совета интернета (IETF) отмечали, что QUIC готов для широкомасштабных тестов, но пока не может стать стандартом из-за ряда недостатков. За два года протокол доработали, и группа экспертов готовится оформить его в формате RFC.
В середине июня сопредседатель рабочей группы в IETF Лукас Пардью (Lucas Pardue) сообщил о начале последнего этапа обсуждения черновиков QUIC. Всего документов шесть, и они посвящены различным аспектам работы протокола:
Обсуждение закончат на следующей неделе — 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 свои реализации выпустит еще больше компаний.
/ 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 свои реализации выпустит еще больше компаний.
О чем мы пишем в корпоративном блоге:
Tangeman
QUIC конечно хорош, но вот оверхед в userspace будет очень ощутим на больших объемах — клиенты возможно этого не заметят, но вот нагрузка на CPU в серверах ощутимо возрастёт.
Пока его не прикрутят в ядра, "замена TCP" будет дорого обходится, подозреваю что потери в производительности будут сравнимы с теми которые есть у OpenVPN.