Interested Article - QUIC

QUIC (сокр. от англ. Quick UDP Internet Connections ; произносится quick ) — экспериментальный интернет-протокол , разработанный Google в конце 2012 года .

QUIC позволяет мультиплексировать несколько потоков данных между двумя компьютерами, работая поверх протокола UDP , и содержит возможности шифрования , эквивалентные TLS и SSL . Имеет более низкую задержку соединения и передачи, чем TCP . Хорошо переносит потерю части пакетов путём выравнивания границ криптографических блоков по границам пакетов. В протокол заложена возможность прямой (упреждающей) коррекции ошибок на уровне пакетов , но на практике она отключена .

Поддержка

Код для поддержки QUIC был добавлен в Google Chrome начиная с версии 29 (в предрелизных ветках dev и canary — с июня 2013, в релизной — с 20 августа 2013 года). Он может быть включен на странице chrome://flags/#enable-quic , активные сеансы видны на chrome://net-internals/#quic .

Реализация на языке C++ для поддержки QUIC доступна под лицензией BSD . Клиентская часть протокола доступна на Git .

Экспериментальный сервер с поддержкой QUIC доступен как часть проекта Chromium .

HTTP-сервер может объявить клиенту о поддержке протокола QUIC с помощью дополнительного заголовка «Alternate-Protocol: 80:quic» или «Alternate-Protocol: 443:quic».

В мае 2021 года протокол был принят в качестве официального стандарта RFC 9000. Социальная сеть ВКонтакте заявила о внедрении протокола для всех пользователей своих приложений .

Недостатки клиентской реализации

По состоянию на 2015 г. существует одна открытая реализация протокола, разработанная в Google. Представленная реализация обладает следующими недостатками [ источник не указан 2951 день ] :

  • серверная часть использует epoll , что, как минимум, не позволяет без дополнительной доработки собрать и запустить серверную часть протокола на других ОС за исключением Linux ;
  • реализация интегрирована в Chromium , что затрудняет использование в других проектах, как в плане интеграции, так и в плане синхронизации и обновления кодовой базы.

Существует извлечённая из дерева исходных текстов Chromium клиентская часть реализации протокола под названием libQUIC . Извлечением и синхронизацией с кодовой базой, а также некоторой доработкой занимается компания Devsisters. Данное ответвление от основной реализации устраняет недостаток интеграции в проект Chromium.

Серверная реализация

Имеется серверная реализация на языке Go , что позволяет использовать её в других проектах. 11 июля 2017 года LiteSpeed Technologies, Inc. начали официально поддерживать QUIC в своём балансировщике нагрузки (WebADC) и веб-сервере (LiteSpeed Web Server).

В конце 2020 года появилась реализация IETF QUIC протокола от Microsoft — MsQuic, написанная на языке C . Утверждается, что MsQuic имеет отличия от других вариантов библиотек тем, что:

  • Оптимизирована для клиентской и серверной стороны.
  • Оптимизирована для максимальной пропускной способности при минимизации задержки.
  • Асинхронная работа.
  • Поддержка масштабирования на стороне приёма (RSS).
  • Поддержка слияния приёма и отправки по UDP .

См. также

Примечания

  1. . Дата обращения: 29 октября 2017. 4 июля 2013 года.
  2. . Дата обращения: 29 июня 2013. 4 июля 2013 года.
  3. . Дата обращения: 17 декабря 2017. 13 апреля 2020 года.
  4. от 11 декабря 2021 на Wayback Machine «FEC (currently disabled)»
  5. Дата обращения: 22 февраля 2013. 24 декабря 2013 года.
  6. . Дата обращения: 30 июня 2013. 16 мая 2013 года.
  7. . Дата обращения: 2 ноября 2020. 10 апреля 2021 года.
  8. . Дата обращения: 22 сентября 2021. 16 марта 2022 года.
  9. . РИА Новости (20 сентября 2021). Дата обращения: 22 сентября 2021. 21 сентября 2021 года.
  10. . Дата обращения: 30 сентября 2013. 3 июня 2016 года.
  11. . Дата обращения: 12 декабря 2015. 7 декабря 2020 года.
  12. от 6 февраля 2022 на Wayback Machine GitHub
  13. . Дата обращения: 18 августа 2017. 18 августа 2017 года.
  14. github.com . github.com (6 января 2021). Дата обращения: 5 марта 2021. 9 мая 2022 года.

Литература

  • // LWN, Nathan Willis, July 17, 2013

Ссылки

  • François Beaufort — Blog discussion
Источник —

Same as QUIC