Microsoft выпустила исходный код MsQuic, сетевого протокола, используемого для HTTP3.

Логотип Microsoft

Разработчики Microsoft объявила о выпуске исходного кода библиотеки MsQuic с реализацией сетевого протокола QUIC. Библиотека кроссплатформенная и может использоваться не только в Windows, но и в Linux с использованием Schannel или OpenSSL для TLS 1.3.Кроме того, в будущем продолжается работа по расширению поддержки других платформ.

Библиотека основана на коде драйвера msquic.sys. предоставляется в ядре Windows 10 (внутренняя предварительная версия) чтобы гарантировать работу протоколов HTTP и SMB через QUIC. Включение кода используется для реализации HTTP / 3 во внутреннем стеке Windows и в .NET Core.

Разработка библиотеки MsQuic будет полностью осуществляться на GitHub с использованием публичного обзора, запросов на вытягивание и проблем с GitHub. Подготовлена ​​инфраструктура, которая проверяет каждую фиксацию и пул-реквест по набору из более чем 4000 тестов. После стабилизации среды разработки планируется принять изменения от внешних разработчиков.

О MsQuic

мсквик можно использовать для создания серверов и клиентов, но не все функции, определенные в спецификации IETF, в настоящее время доступны. Например, нет поддержки 0-RTT, миграции клиента, обнаружения MTU пути или управления предпочтительным адресом сервера.

Среди реализованных функций: выделена оптимизация для максимальной производительности и минимальной задержки, поддержка я/ O асинхронный, RSS (Получите латеральное масштабирование), возможность объединить потоки ввода и вывода UDP. Реализация MsQuic была протестирована на совместимость с экспериментальными ветками браузера Chrome и Edge.

Это также подчеркивает возможность установить соединение с мгновеннымe (0-RTT, примерно в 75% случаев данные могут быть переданы сразу после отправки пакета установки соединения) и гарантируют минимальные задержки между отправкой запроса и получением ответа (RTT, время приема-передачи).

Кроме того, есть инструменты исправления ошибок которые минимизируют задержки из-за повторной передачи потерянных пакетов.

Использование специальных кодов исправления ошибок на уровне пакетов для уменьшения ситуаций, требующих повторной передачи потерянных пакетных данных илиизучение техники прогнозирования пропускной способности во всех направлениях для обеспечения оптимальной интенсивности доставки посылок, не позволяя ему достичь состояния перегрузки, при котором наблюдается потеря пакетов.

Из других характеристик Клавиша QUIC:

  • Высокая безопасность, похожая на TLS (по сути, QUIC предоставляет возможность использовать TLS 1.3 поверх UDP).
  • Контроль целостности потока, предотвращающий потерю пакетов.
  • Не использовать один и тот же порядковый номер при повторной передаче пакета, что позволяет избежать неоднозначности при определении принятых пакетов и сократить время ожидания.
  • Потеря пакета влияет на доставку только связанного с ним потока и не останавливает доставку данных в параллельных потоках, передаваемых через текущее соединение.
  • Границы криптографических блоков выровнены с границами пакетов QUIC, что снижает влияние потери пакетов на декодирование содержимого последующих пакетов.
  • Проблем с блокировкой очереди TCP нет.
  • Поддержка идентификатора подключения, что сокращает время установления повторного подключения для мобильных клиентов.
  • Он имеет возможность подключать расширенные механизмы для управления перегрузкой соединения.
  • Он может похвастаться замечательной производительностью и увеличением производительности по сравнению с TCP. Для видеосервисов, таких как YouTube, QUIC продемонстрировал сокращение операций повторной буферизации при просмотре видео на 30%.

В конце концов для тех, кто хочет узнать об этом больше Что касается MsQuic или вы хотите взглянуть на его исходный код, вы должны знать, что код написан на C, он кроссплатформенный, общего назначения, распространяется под лицензией MIT, а выпущенный код размещен на GitHub.

источник: https://techcommunity.microsoft.com


Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.