Microsoft har öppnat upp sin implementering av QUIC-protokollet som används i HTTP/3

Microsoft Company tillkännagav om att öppna bibliotekskoden msquic med implementeringen av nätverksprotokollet QUIC. Koden är skriven i C och levererad av under MIT-licens. Biblioteket är plattformsoberoende och kan användas inte bara på Windows utan även på Linux Kanal eller OpenSSL för TLS 1.3. I framtiden är det planerat att stödja andra plattformar.

Biblioteket är baserat på msquic.sys-drivrutinskoden som tillhandahålls i Windows 10-kärnan (Insider Preview) för att aktivera HTTP- och SMB ovanpå QUIC. Koden används också för att implementera HTTP/3 i den interna Windows-stacken och i .NET Core. Utvecklingen av MsQuic-biblioteket kommer att utföras helt och hållet på GitHub med hjälp av offentlig referentgranskning, pull-förfrågningar och GitHub-problem. En infrastruktur har utarbetats som kontrollerar varje commit- och pull-förfrågan i en uppsättning av mer än 4000 XNUMX tester. Efter att ha stabiliserat utvecklingsmiljön är det planerat att acceptera ändringar från tredjepartsutvecklare.

MsQuic kan redan användas för att skapa servrar och klienter, men inte all funktionalitet som definieras i IETF-specifikationen är för närvarande tillgänglig. Till exempel finns det inget stöd för 0-RTT, klientmigrering, Path MTU Discovery eller Server Preferred Address-kontroll. Bland de implementerade funktionerna noteras optimering för att uppnå maximal genomströmning och minimala fördröjningar, stöd för asynkron input/output, RSS (Receive Side Scaling), och möjligheten att kombinera in- och utdata UDP-strömmar. MsQuic-implementeringen har testats för kompatibilitet med experimentversioner av webbläsarna Chrome och Edge.

Kom ihåg att HTTP/3 standardiserar användningen av QUIC-protokollet som en transport för HTTP/2. Protokoll QUIC (Quick UDP Internet Connections) har utvecklats av Google sedan 2013 som ett alternativ till kombinationen TCP+TLS för webben, vilket löser problem med långa installations- och förhandlingstider för anslutningar i TCP och eliminerar förseningar när paket går förlorade under dataöverföring. QUIC är en förlängning av UDP-protokollet som stöder multiplexering av flera anslutningar och tillhandahåller krypteringsmetoder motsvarande TLS/SSL.

Den huvudsakliga särdrag QUIC:

  • Hög säkerhet liknande TLS (i huvudsak ger QUIC möjligheten att använda TLS 1.3 över UDP);
  • Flödesintegritetskontroll, förhindrar paketförlust;
  • Möjligheten att omedelbart upprätta en anslutning (0-RTT, i cirka 75 % av fallen kan data överföras omedelbart efter att anslutningspaketet har skickats) och ger minimala förseningar mellan att skicka en förfrågan och ta emot ett svar (RTT, Round Trip Time);
    Microsoft har öppnat upp sin implementering av QUIC-protokollet som används i HTTP/3

  • Att inte använda samma sekvensnummer vid återsändning av ett paket, vilket undviker tvetydighet när det gäller att identifiera mottagna paket och blir av med timeouts;
  • Förlust av ett paket påverkar endast leveransen av strömmen som är associerad med den och stoppar inte leveransen av data i parallella strömmar som överförs genom den aktuella anslutningen;
  • Felkorrigeringsfunktioner som minimerar förseningar på grund av återsändning av förlorade paket. Användning av speciella felkorrigeringskoder på paketnivå för att minska situationer som kräver återsändning av förlorad paketdata.
  • Kryptografiska blockgränser är anpassade till QUIC-paketgränser, vilket minskar effekten av paketförluster på avkodning av innehållet i efterföljande paket;
  • Inga problem med TCP-köblockering;
  • Stöd för anslutningsidentifierare, vilket minskar tiden det tar att upprätta en återanslutning för mobila klienter;
  • Möjlighet att ansluta avancerade mekanismer för kontroll av överbelastning av anslutningar;
  • Använder tekniker för prognostisering av genomströmning per riktning för att säkerställa att paket skickas med optimala hastigheter, vilket förhindrar att de blir överbelastade och orsakar paketförlust;
  • Märkbar tillväxt prestanda och genomströmning jämfört med TCP. För videotjänster som YouTube har QUIC visat sig minska återlagringsoperationer när du tittar på videor med 30 %.

Källa: opennet.ru

Lägg en kommentar