Microsoft je otvorio svoju implementaciju QUIC protokola koji se koristi u HTTP/3

Microsoft najavio o otvaranju šifre knjižnice gospođice Quic uz implementaciju mrežnog protokola QUIC. Kod je napisan u C i distribuira pod licencom MIT-a. Knjižnica je višeplatformska i može se koristiti ne samo na Windowsima, već i na Linuxu s kanal ili OpenSSL za TLS 1.3. U budućnosti se planira podržati i druge platforme.

Biblioteka se temelji na kodu upravljačkog programa msquic.sys koji se nalazi u jezgri sustava Windows 10 (Insider Preview) kako bi se omogućio HTTP i SMB na vrhu QUIC-a. Kod se također koristi za implementaciju HTTP/3 u internom Windows stogu iu .NET Core. Razvoj biblioteke MsQuic u potpunosti će se provoditi na GitHubu korištenjem javne recenzije, zahtjeva za povlačenjem i GitHub Issues. Pripremljena je infrastruktura koja provjerava svaki zahtjev za predaju i povlačenje u skupu od više od 4000 testova. Nakon stabilizacije razvojnog okruženja, planira se prihvatiti promjene od programera treće strane.

MsQuic se već može koristiti za izradu poslužitelja i klijenata, ali trenutno nisu dostupne sve funkcionalnosti definirane u IETF specifikaciji. Na primjer, nema podrške za 0-RTT, migraciju klijenta, Path MTU Discovery ili kontrolu željene adrese poslužitelja. Među implementiranim značajkama navodi se optimizacija za postizanje maksimalne propusnosti i minimalnih kašnjenja, podrška za asinkroni ulaz/izlaz, RSS (Skaliranje strane primanja) i mogućnost kombiniranja ulaznih i izlaznih UDP tokova. Implementacija MsQuic testirana je na kompatibilnost s eksperimentalnim verzijama preglednika Chrome i Edge.

Podsjetimo se da HTTP/3 standardizira korištenje QUIC protokola kao prijenosa za HTTP/2. Protokol QUIC (Quick UDP Internet Connections) Google je razvio od 2013. kao alternativu kombinaciji TCP+TLS za web, rješavajući probleme s dugim vremenom postavljanja i pregovaranja za veze u TCP-u i eliminirajući kašnjenja kada se paketi izgube tijekom prijenosa podataka. QUIC je proširenje UDP protokola koji podržava multipleksiranje više veza i pruža metode šifriranja ekvivalentne TLS/SSL-u.

Glavni značajke QUIC:

  • Visoka sigurnost slična TLS-u (u osnovi QUIC pruža mogućnost korištenja TLS-a 1.3 preko UDP-a);
  • Kontrola integriteta protoka, sprječavanje gubitka paketa;
  • Mogućnost trenutnog uspostavljanja veze (0-RTT, u otprilike 75% slučajeva podaci se mogu prenijeti odmah nakon slanja paketa za postavljanje veze) i pružanja minimalnih kašnjenja između slanja zahtjeva i primanja odgovora (RTT, Round Trip Time);
    Microsoft je otvorio svoju implementaciju QUIC protokola koji se koristi u HTTP/3

  • Nekorištenje istog sekvencijskog broja pri ponovnom slanju paketa, čime se izbjegava dvosmislenost u identificiranju primljenih paketa i rješava se vremenskih ograničenja;
  • Gubitak paketa utječe samo na isporuku toka koji je s njim povezan i ne zaustavlja isporuku podataka u paralelnim tokovima koji se prenose kroz trenutnu vezu;
  • Značajke ispravljanja pogrešaka koje minimiziraju kašnjenja zbog ponovnog slanja izgubljenih paketa. Korištenje posebnih kodova za ispravljanje pogrešaka na razini paketa za smanjenje situacija koje zahtijevaju ponovni prijenos izgubljenih paketnih podataka.
  • Granice kriptografskih blokova usklađene su s granicama QUIC paketa, što smanjuje utjecaj gubitaka paketa na dekodiranje sadržaja sljedećih paketa;
  • Nema problema s blokiranjem TCP čekanja;
  • Podrška za identifikator veze, što smanjuje vrijeme potrebno za uspostavljanje ponovne veze za mobilne klijente;
  • Mogućnost povezivanja naprednih mehanizama kontrole zagušenja veze;
  • Koristi tehnike predviđanja propusnosti po smjeru kako bi se osiguralo da se paketi šalju optimalnim brzinama, sprječavajući da postanu zagušeni i uzrokuju gubitak paketa;
  • Primjetno rast performanse i propusnost u usporedbi s TCP-om. Za video usluge kao što je YouTube, pokazalo se da QUIC smanjuje operacije ponovnog međuspremnika prilikom gledanja videa za 30%.

Izvor: opennet.ru

Dodajte komentar