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

Microsoft najavljeno o otvaranju koda biblioteke msquic sa implementacijom mrežnog protokola QUIC. Kod je napisan u C i distribuira pod MIT licencom. Biblioteka je višeplatformska i može se koristiti ne samo na Windows-u, već i na Linux-u s kanal ili OpenSSL za TLS 1.3. U budućnosti se planira podrška drugim platformama.

Biblioteka je zasnovana na kodu drajvera msquic.sys koji se nalazi u jezgru Windows 10 (Insider Preview) za omogućavanje HTTP i SMB na vrhu QUIC-a. Kod se takođe koristi za implementaciju HTTP/3 u interni Windows stog i u .NET Core. Razvoj MsQuic biblioteke će se u potpunosti odvijati na GitHubu koristeći javnu recenziju, zahtjeve za povlačenje i GitHub probleme. Pripremljena je infrastruktura koja provjerava svaki zahtjev za urezivanje i povlačenje u setu od više od 4000 testova. Nakon stabilizacije razvojnog okruženja, planirano je prihvatanje promjena od strane programera trećih strana.

MsQuic se već može koristiti za kreiranje servera i klijenata, ali trenutno nisu dostupne sve funkcionalnosti definirane u IETF specifikaciji. Na primjer, ne postoji podrška za 0-RTT, migraciju klijenta, otkrivanje putanje MTU ili kontrolu željene adrese servera. Među implementiranim karakteristikama, istaknuta je optimizacija za postizanje maksimalne propusnosti i minimalnih kašnjenja, podrška za asinhroni ulaz/izlaz, RSS (Receive Side Scaling) i mogućnost kombinovanja ulaznih i izlaznih UDP tokova. MsQuic implementacija je testirana na kompatibilnost s eksperimentalnim verzijama preglednika Chrome i Edge.

Podsjetimo da HTTP/3 standardizira upotrebu QUIC protokola kao transporta za HTTP/2. Protokol QUIC (Quick UDP Internet Connections) razvija Google od 2013. godine kao alternativu TCP + TLS za Web, rješavajući probleme s dugim vremenom podešavanja i pregovaranja za veze u TCP-u i eliminirajući kašnjenja u slučaju gubitka paketa tokom prijenosa podataka. QUIC je dodatak UDP protokolu koji podržava multipleksiranje višestrukih veza i pruža metode šifriranja ekvivalentne TLS/SSL-u.

Glavni Značajke QUIC:

  • Visoka sigurnost slična TLS-u (u suštini QUIC pruža mogućnost korištenja TLS-a 1.3 preko UDP-a);
  • Kontrola integriteta toka kako bi se spriječio gubitak paketa;
  • Mogućnost trenutnog uspostavljanja veze (0-RTT, u oko 75% slučajeva, podaci se mogu prenijeti odmah nakon slanja paketa za postavljanje veze) i osigurati minimalna kašnjenja između slanja zahtjeva i prijema odgovora (RTT, Round Trip Time) ;
    Microsoft je otvorio implementaciju QUIC protokola koji se koristi u HTTP/3

  • Nemojte koristiti isti redni broj prilikom ponovnog slanja paketa, što vam omogućava da izbjegnete dvosmislenost u određivanju primljenih paketa i riješite se tajm-auta;
  • Gubitak paketa utiče samo na isporuku toka koji je sa njim povezan i ne zaustavlja isporuku podataka u tokovima koji se prenose paralelno preko trenutne veze;
  • Alati za ispravljanje grešaka koji minimiziraju kašnjenja zbog ponovnog prijenosa izgubljenih paketa. Upotreba posebnih kodova za ispravljanje grešaka na nivou paketa kako bi se smanjile situacije koje zahtijevaju ponovni prijenos izgubljenih paketnih podataka.
  • Granice kriptografskih blokova su usklađene sa granicama QUIC paketa, što smanjuje uticaj gubitka paketa na dekodiranje sadržaja sledećih paketa;
  • Nema problema sa blokiranjem TCP reda;
  • Podrška za ID veze za smanjenje vremena ponovnog povezivanja za mobilne klijente;
  • Mogućnost povezivanja naprednih mehanizama za kontrolu preopterećenja konekcije;
  • Korištenje tehnika predviđanja propusnog opsega u svakom smjeru kako bi se osigurao optimalan intenzitet slanja paketa, sprječavajući prelazak u stanje zagušenja, u kojem dolazi do gubitka paketa;
  • Primjetno rast performanse i propusnost u poređenju sa TCP. Za video usluge kao što je YouTube, pokazalo se da QUIC smanjuje operacije rebaferiranja video zapisa za 30%.

izvor: opennet.ru

Dodajte komentar