Kompania Microsoft об открытии кода библиотеки с реализацией сетевого протокола . Код написан на языке Си и под лицензией MIT. Библиотека кроссплатформенная и может использоваться не только в Windows, но и в Linux с задействованием или OpenSSL для TLS 1.3. В дальнейшем планируется поддержка и других платформ.
Библиотека основана на коде драйвера msquic.sys, предоставляемого в ядре Windows 10 (Insider Preview) для обеспечения работы протоколов HTTP и поверх QUIC. В том числе код используется для реализации HTTP/3 во внутреннем стеке Windows и в .NET Core. Разработка библиотеки MsQuic целиком будет вестись на GitHub с использованием публичного рецензирования, pull-запросов и GitHub Issues. Подготовлена инфраструктура, проверяющая каждый коммит и pull-запрос в наборе из более 4000 тестов. После стабилизации окружения для разработки планируется принимать изменения от сторонних разработчиков.
MsQuic уже можно использовать для создания серверов и клиентов, но не вся функциональность, определённая в спецификации IETF в настоящее время доступна. Например, пока нет поддержки 0-RTT, миграции клиентов, Path MTU Discovery и управления выбором адресов для сервера (Server Preferred Address). Из реализованных особенностей отмечается оптимизация для достижения максимальной пропускной способности и минимальных задержек, поддержка асинхронного ввода/вывода, RSS (Receive Side Scaling), возможность объединения входных и выходных UDP-потоков. Реализация MsQuic проверена на совместимость с экспериментальными ветками браузеров Chrome и Edge.
Le të përkujtojmë se HTTP/3 standardizon përdorimin e protokollit QUIC si transport për HTTP/2. Protokolli (Quick UDP Internet Connections) që nga viti 2013 është zhvilluar nga kompania Google si alternativë ndaj kombinimit TCP+TLS për Web-in, duke zgjidhur problemet me kohën e gjatë të vendosjes dhe negociatës së lidhjeve në TCP dhe duke eliminuar vonesat gjatë humbjes së paketave gjatë transmetimit të të dhënave. QUIC është një shtesë mbi protokollin UDP, duke mbështetur shumëzimin e disa lidhjeve dhe duke siguruar metoda enkriptimi, ekuivalente me TLS/SSL.
Main QUIC:
- Высокая безопасность, аналогичная TLS (по сути QUIC предоставляет возможность использования TLS 1.3 поверх UDP);
- Kontrolli mbi integritetin e rrjedhës, që parandalon humbjen e pacakove;
- Mundësia për të vendosur një lidhje menjëherë (0-RTT, në rreth 75% të rasteve, të dhënat mund të transmetohen menjëherë pas dërgimit të paketës së vendosjes së lidhjes) dhe të sigurojë vonesa minimale midis dërgimit të kërkesës dhe marrjes së përgjigjes (RTT, Round Trip Time);
- Mos përdorimi i numrit të njëjtë të rendit për dërgimin përsëri të paketës, që lejon shmangien e dyshimeve në përcaktimin e paketave të marra dhe eliminimin e kohëve të pritjes;
- Humorja e paketës ndikon vetëm në dërgesën e fluksit lidhur me të dhe nuk ndalon dërgimin e të dhënave në flukset që dërgohen paralelisht nëpërmjet lidhjes aktuale;
- Mjetet për korrigjimin e gabimeve, që minimizojnë vonesat për shkak të dërgimit përsëritës të paketave të humbura. Përdorimi i kodeve speciale për korrigjimin e gabimeve në nivelin e paketës për të reduktuar situatat që kërkojnë dërgim përsëritës të të dhënave të paketës së humbur.
- Kufijtë e bllokave kriptografikë janë përputhur me kufijtë e paketave QUIC, duke zvogëluar ndikimin e humbjeve të paketave në dekodimin e përmbajtjes së paketave të ardhshme;
- Mungesa e problemeve me bllokimin e radhës TCP;
- Mbështetje për identifikuesin e lidhjes, që lejon zvogëlimin e kohës për vendosjen e lidhjes përsëritëse për klientët mobilë;
- Mundësia e lidhjes së mekanizmave të zgjeruar të kontrollit të ngarkesës së lidhjes;
- Përdorimi i teknikave të parashikimit të kapacitetit në çdo drejtim për të siguruar intensitetin optimal të dërgimit të paketave, duke parandaluar rënien në një gjendje ngarkese, ku humbjet e paketave vërehen;
- Rritje të dukshme performancës dhe kapacitetit, në krahasim me TCP. Për shërbimet video, si YouTube, përdorimi i QUIC ka treguar një ulje të operacioneve të ripërtypjes gjatë shikimit të videove me 30%.
Burimi: opennet.ru
