Microsoft адкрыў сваю рэалізацыю пратаколу QUIC, які ўжываецца ў HTTP/3

Кампанія Microsoft абвясціла аб адкрыцці кода бібліятэкі msquic з рэалізацыяй сеткавага пратакола QUIC. Код напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй MIT. Бібліятэка кросплатформавая і можа выкарыстоўвацца не толькі ў Windows, але і ў Linux з задзейнічаннем Шанэль ці OpenSSL для TLS 1.3. У далейшым плануецца падтрымка і іншых платформ.

Бібліятэка заснавана на кодзе драйвера msquic.sys, які прадастаўляецца ў ядры Windows 10 (Insider Preview) для забеспячэння працы пратаколаў HTTP і SMB па-над 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.

Нагадаем, што HTTP/3 стандартуе выкарыстанне пратаколу QUIC у якасці транспарта для HTTP/2. Пратакол QUIC (Quick UDP Internet Connections) c 2013 года развіваецца кампаніяй Google у якасці альтэрнатывы звязку TCP+TLS для Web, вырашальнай праблемы з вялікім часам усталёўкі і ўзгадненні злучэнняў у TCP і ўхіляючай затрымкі пры страце пакетаў падчас перадачы дадзеных. QUIC уяўляе сабой надбудову над пратаколам UDP, якая падтрымлівае мультыплексаванне некалькіх злучэнняў і забяспечвае метады шыфравання, эквівалентныя TLS/SSL.

Асноўныя асаблівасці QUIC:

  • Высокая бяспека, аналагічная TLS (па сутнасці QUIC дае магчымасць выкарыстання TLS 1.3-над UDP);
  • Кантроль за цэласнасцю патоку, які прадухіляе страту пакетаў;
  • Магчымасць імгненна ўсталяваць злучэнне (0-RTT, прыкладна ў 75% выпадках дадзеныя можна перадаваць адразу пасля адпраўкі пакета ўсталёўкі злучэння) і забяспечыць мінімальныя затрымкі паміж адпраўкай запыту і атрыманнем адказу (RTT, Round Trip Time);
    Microsoft адкрыў сваю рэалізацыю пратаколу QUIC, які ўжываецца ў HTTP/3

  • Не выкарыстанне пры паўторнай перадачы пакета таго ж нумара паслядоўнасці, што дазваляе пазбегнуць двухсэнсоўнасці пры вызначэнні атрыманых пакетаў і пазбавіцца ад таймаўтаў;
  • Страта пакета ўплывае на дастаўку толькі злучанага з ім струменя і не спыняе дастаўку дадзеных у раўналежна перадаюцца праз бягучае злучэнне струменях;
  • Сродкі карэкцыі памылак, якія мінімізуюць затрымкі з-за паўторнай перадачы страчаных пакетаў. Выкарыстанне спецыяльных кодаў карэкцыі памылак на ўзроўні пакета для скарачэння сітуацый, якія патрабуюць паўторнай перадачы даных страчанага пакета.
  • Межы крыптаграфічных блокаў выраўнаваны з межамі пакетаў QUIC, што памяншае ўплыў страт пакетаў на дэкадаванне змесціва наступных пакетаў;
  • Адсутнасць праблем з блакіроўкай чаргі TCP;
  • Падтрымка ідэнтыфікатара злучэння, які дазваляе скараціць час на ўстаноўку паўторнага злучэння для мабільных кліентаў;
  • Магчымасць падлучэння пашыраных механізмаў кантролю перагрузкі злучэння;
  • Выкарыстанне тэхнікі прагназавання прапускной здольнасці ў кожным кірунку для забеспячэння аптымальнай інтэнсіўнасці адпраўкі пакетаў, прадухіляючы скочванне ў стан перагрузкі, пры якой назіраецца страта пакетаў;
  • Прыкметны прырост прадукцыйнасці і прапускной здольнасці, у параўнанні з TCP. Для відэасэрвісаў, такіх як YouTube, ужыванне QUIC паказала скарачэнне аперацый паўторнай буферызацыі пры праглядзе відэа на 30%.

Крыніца: opennet.ru

Дадаць каментар