В течение почти пятидесяти лет интернет опирался на два основных протокола: TCP, который отвечал за надежную передачу данных, и UDP, используемый там, где важнее скорость, чем гарантия доставки. Сегодня к ним присоединился третий игрок — протокол QUIC, который уже давно функционирует «под капотом» веба и постепенно меняет логику сетевого взаимодействия.
Авторы нового издания учебника Computer Networks: A Systems Approach существенно расширили раздел о QUIC, поскольку его значение в ближайшие годы может сравняться с TCP. Для обновления материала один из авторов, Брюс Дэви, тщательно изучил спецификации QUIC и связанные с ним технологии, чтобы представить наиболее точную картину.
Особенностью QUIC является использование полей переменной длины в заголовках пакетов, что затрудняет традиционное битовое представление протоколов. Это решение помогает избежать ограничений, присущих TCP и IP, где фиксированные размеры полей со временем переставали соответствовать требованиям. Например, идентификаторы соединений QUIC могут достигать 160 бит.
Экономия байтов также важна: при передаче небольших HTTP-объектов значительную часть трафика занимают заголовки. QUIC сокращает их размер, адаптируя длину полей под текущие нужды, что особенно эффективно для современных систем, готовых работать с невыравненными данными.
В отличие от TCP, который связывает сессию с IP-адресами и портами, QUIC использует уникальный идентификатор соединения, позволяющий сохранить сессию при смене сети, например при переходе с Wi-Fi на мобильный интернет.
Главное новшество — интеграция с TLS. В классической модели HTTP работал поверх TLS и TCP, а теперь QUIC включает функции TLS внутрь себя, позволяя обмениваться данными уже после одного обмена пакетами (RTT), что значительно снижает задержки.
QUIC также поддерживает множественные параллельные потоки внутри одного соединения, что решает проблему «head-of-line blocking», характерную для TCP. Потеря пакета влияет только на отдельные потоки, а не на весь канал, что ускоряет обработку множества независимых запросов.
Алгоритмы контроля перегрузки и восстановления потерь QUIC описаны в RFC 9002, где нумерация ведется по пакетам с гибкими подтверждениями, повышая эффективность передачи.
После долгих поисков «третьего» массового транспортного протокола, альтернативного TCP и UDP, QUIC стал реальным кандидатом благодаря технической продуманности и практической внедряемости. Работая поверх UDP, протокол избегает проблем совместимости с сетевыми устройствами и уже активно ускоряет работу веба и современных сервисов, ориентированных на модель запрос-ответ.