Microsoft har åpnet for implementeringen av QUIC-protokollen som brukes i HTTP/3

Microsoft kunngjort om å åpne bibliotekkoden msquic med implementering av nettverksprotokollen QUIC. Koden er skrevet i C og distribuert av under MIT-lisens. Biblioteket er på tvers av plattformer og kan brukes ikke bare på Windows, men også på Linux Kanal eller OpenSSL for TLS 1.3. I fremtiden er det planlagt å støtte andre plattformer.

Biblioteket er basert på msquic.sys-driverkoden gitt i Windows 10-kjernen (Insider Preview) for å aktivere HTTP og SMB på toppen av QUIC. Koden brukes også til å implementere HTTP/3 i den interne Windows-stakken og i .NET Core. Utviklingen av MsQuic-biblioteket vil bli utført utelukkende på GitHub ved bruk av offentlig fagfellevurdering, pull-forespørsler og GitHub-problemer. Det er utarbeidet en infrastruktur som sjekker hver commit- og pull-forespørsel i et sett med mer enn 4000 tester. Etter å ha stabilisert utviklingsmiljøet er det planlagt å akseptere endringer fra tredjepartsutviklere.

MsQuic kan allerede brukes til å lage servere og klienter, men ikke all funksjonalitet definert i IETF-spesifikasjonen er tilgjengelig for øyeblikket. For eksempel er det ingen støtte for 0-RTT, klientmigrering, Path MTU Discovery eller Server Preferred Address-kontroll. Blant de implementerte funksjonene er optimalisering notert for å oppnå maksimal gjennomstrømning og minimale forsinkelser, støtte for asynkron input/output, RSS (Receive Side Scaling), og muligheten til å kombinere input og output UDP-strømmer. MsQuic-implementeringen har blitt testet for kompatibilitet med eksperimentelle versjoner av Chrome- og Edge-nettleserne.

Husk at HTTP/3 standardiserer bruken av QUIC-protokollen som transport for HTTP/2. Protokoll QUIC (Quick UDP Internet Connections) har blitt utviklet av Google siden 2013 som et alternativ til TCP+TLS-kombinasjonen for nettet, og løser problemer med lange oppsett- og forhandlingstider for tilkoblinger i TCP og eliminerer forsinkelser når pakker går tapt under dataoverføring. QUIC er en utvidelse av UDP-protokollen som støtter multipleksing av flere tilkoblinger og gir krypteringsmetoder tilsvarende TLS/SSL.

Den viktigste Spesifikasjoner QUIC:

  • Høy sikkerhet som ligner på TLS (i hovedsak gir QUIC muligheten til å bruke TLS 1.3 over UDP);
  • Flytintegritetskontroll, forhindrer pakketap;
  • Muligheten til å umiddelbart opprette en forbindelse (0-RTT, i omtrent 75 % av tilfellene kan data overføres umiddelbart etter sending av tilkoblingsoppsettpakken) og gir minimale forsinkelser mellom sending av en forespørsel og mottak av svar (RTT, Round Trip Time);
    Microsoft har åpnet for implementeringen av QUIC-protokollen som brukes i HTTP/3

  • Å ikke bruke samme sekvensnummer når du sender en pakke på nytt, noe som unngår tvetydighet i å identifisere mottatte pakker og eliminerer tidsavbrudd;
  • Tap av en pakke påvirker bare leveringen av strømmen knyttet til den og stopper ikke leveringen av data i parallelle strømmer som overføres gjennom den gjeldende forbindelsen;
  • Feilrettingsfunksjoner som minimerer forsinkelser på grunn av reoverføring av tapte pakker. Bruk av spesielle feilrettingskoder på pakkenivå for å redusere situasjoner som krever reoverføring av tapte pakkedata.
  • Kryptografiske blokkgrenser er justert med QUIC-pakkegrenser, noe som reduserer effekten av pakketap på dekoding av innholdet i påfølgende pakker;
  • Ingen problemer med blokkering av TCP-kø;
  • Støtte for tilkoblingsidentifikator, som reduserer tiden det tar å etablere en ny tilkobling for mobilklienter;
  • Mulighet for å koble til avanserte mekanismer for kontroll av overbelastning;
  • Bruker prognoseteknikker per retning for å sikre at pakker sendes med optimale hastigheter, og forhindrer at de blir overbelastet og forårsaker pakketap;
  • Merkbar vekst ytelse og gjennomstrømning sammenlignet med TCP. For videotjenester som YouTube, har QUIC vist seg å redusere tilbakestillingsoperasjoner når du ser på videoer med 30 %.

Kilde: opennet.ru

Legg til en kommentar