Microsoft otvoril implementáciu protokolu QUIC používaného v HTTP/3

Microsoft oznámila, o otvorení kódu knižnice msquic s implementáciou sieťového protokolu QUIC. Kód je napísaný v C a distribuovaný pod licenciou MIT. Knižnica je multiplatformová a dá sa použiť nielen na Windows, ale aj na Linuxe s kanál alebo OpenSSL pre TLS 1.3. V budúcnosti sa plánuje podpora ďalších platforiem.

Knižnica je založená na kóde ovládača msquic.sys poskytnutom v jadre Windows 10 (Insider Preview) na povolenie HTTP a SMB na vrchole QUIC. Kód sa tiež používa na implementáciu HTTP/3 v internom zásobníku Windows a v .NET Core. Vývoj knižnice MsQuic bude prebiehať výlučne na GitHub pomocou verejnej partnerskej kontroly, žiadostí o stiahnutie a problémov s GitHub. Bola pripravená infraštruktúra, ktorá kontroluje každú požiadavku na potvrdenie a stiahnutie v súbore viac ako 4000 XNUMX testov. Po stabilizácii vývojového prostredia sa plánuje prijať zmeny od vývojárov tretích strán.

MsQuic už možno použiť na vytváranie serverov a klientov, ale nie všetky funkcie definované v špecifikácii IETF sú momentálne dostupné. Napríklad neexistuje podpora pre 0-RTT, migráciu klienta, zisťovanie cesty MTU alebo kontrolu preferovanej adresy servera. Medzi implementovanými funkciami je uvedená optimalizácia na dosiahnutie maximálnej priepustnosti a minimálnych oneskorení, podpora asynchrónneho vstupu/výstupu, RSS (Receive Side Scaling) a schopnosť kombinovať vstupné a výstupné UDP toky. Implementácia MsQuic bola testovaná na kompatibilitu s experimentálnymi verziami prehliadačov Chrome a Edge.

Pripomeňme, že HTTP/3 štandardizuje používanie protokolu QUIC ako prenosu pre HTTP/2. Protokol QUIC (Quick UDP Internet Connections) vyvinula spoločnosť Google od roku 2013 ako alternatívu ku kombinácii TCP+TLS pre web, čím rieši problémy s dlhými časmi nastavenia a vyjednávania pre pripojenia v TCP a odstraňuje oneskorenia pri strate paketov počas prenosu dát. QUIC je rozšírenie protokolu UDP, ktoré podporuje multiplexovanie viacerých pripojení a poskytuje metódy šifrovania ekvivalentné TLS/SSL.

Hlavné rysy QUIC:

  • Vysoká bezpečnosť podobná TLS (v podstate QUIC poskytuje možnosť používať TLS 1.3 cez UDP);
  • Kontrola integrity toku, zabránenie strate paketov;
  • Schopnosť okamžitého nadviazania spojenia (0-RTT, v približne 75 % prípadov je možné preniesť dáta ihneď po odoslaní paketu nastavenia spojenia) a poskytnúť minimálne oneskorenia medzi odoslaním požiadavky a prijatím odpovede (RTT, Round Trip Time);
    Microsoft otvoril implementáciu protokolu QUIC používaného v HTTP/3

  • nepoužívanie rovnakého poradového čísla pri opätovnom prenose paketu, čo zabraňuje nejednoznačnosti pri identifikácii prijatých paketov a zbavuje sa časových limitov;
  • Strata paketu ovplyvňuje iba doručovanie toku, ktorý je s ním spojený, a nezastavuje doručovanie údajov v paralelných tokoch prenášaných cez aktuálne spojenie;
  • Funkcie opravy chýb, ktoré minimalizujú oneskorenia v dôsledku opätovného prenosu stratených paketov. Použitie špeciálnych kódov na opravu chýb na úrovni paketov na zníženie situácií vyžadujúcich opakovaný prenos stratených paketových dát.
  • Hranice kryptografických blokov sú zarovnané s hranicami paketov QUIC, čo znižuje vplyv strát paketov na dekódovanie obsahu nasledujúcich paketov;
  • Žiadne problémy s blokovaním fronty TCP;
  • Podpora pre identifikátor pripojenia, ktorý znižuje čas potrebný na vytvorenie opätovného pripojenia pre mobilných klientov;
  • Možnosť pripojenia pokročilých mechanizmov kontroly preťaženia pripojenia;
  • Používa techniky predpovedania priepustnosti v každom smere, aby sa zabezpečilo, že pakety budú odosielané optimálnou rýchlosťou, čím sa zabráni ich preťaženiu a strate paketov;
  • Vnímateľné rast výkon a priepustnosť v porovnaní s TCP. V prípade video služieb, ako je YouTube, sa ukázalo, že QUIC znižuje operácie opätovného vyrovnávania pamäte pri sledovaní videí o 30 %.

Zdroj: opennet.ru

Pridať komentár