Microsoft on avannut HTTP/3:ssa käytetyn QUIC-protokollan toteutuksen

Microsoft ilmoitti kirjastokoodin avaamisesta msquic verkkoprotokollan käyttöönoton kanssa QUIC. Koodi on kirjoitettu kielellä C ja jakelija MIT-lisenssillä. Kirjasto on monialustainen ja sitä voidaan käyttää paitsi Windowsissa, myös Linuxissa s kanava tai OpenSSL TLS 1.3:lle. Jatkossa on tarkoitus tukea muita alustoja.

Kirjasto perustuu Windows 10 -ytimessä (Insider Preview) toimitettuun msquic.sys-ohjainkoodiin HTTP- ja SMB QUICin päällä. Koodia käytetään myös HTTP/3:n toteuttamiseen sisäisessä Windows-pinossa ja .NET Coressa. MsQuic-kirjaston kehitys suoritetaan kokonaan GitHubissa käyttämällä julkista vertaisarviointia, vetopyyntöjä ja GitHub-ongelmia. On valmisteltu infrastruktuuri, joka tarkistaa jokaisen commit- ja pull-pyynnön yli 4000 XNUMX testin sarjassa. Kehitysympäristön vakautumisen jälkeen on tarkoitus hyväksyä muutokset kolmansien osapuolien kehittäjiltä.

MsQuicilla voidaan jo luoda palvelimia ja asiakkaita, mutta kaikki IETF-spesifikaatiossa määritellyt toiminnot eivät ole tällä hetkellä saatavilla. Ei esimerkiksi tueta 0-RTT:tä, asiakassiirtoa, polun MTU-etsintä- tai palvelimen ensisijaisen osoitteen ohjausta. Toteutettujen ominaisuuksien joukossa on huomioitu optimointi maksimaalisen suorituskyvyn ja minimaalisten viiveiden saavuttamiseksi, tuki asynkroniselle tulolle/lähdölle, RSS:lle (Receive Side Scaling) ja kyky yhdistää tulo- ja lähtö-UDP-virtoja. MsQuic-toteutuksen yhteensopivuus Chrome- ja Edge-selaimien kokeellisten versioiden kanssa on testattu.

Muista, että HTTP/3 standardoi QUIC-protokollan käytön HTTP/2:n siirtona. pöytäkirja QUIC (Quick UDP Internet Connections) on Googlen kehittämä vuodesta 2013 lähtien vaihtoehtona TCP+TLS-yhdistelmälle Webissä. Se ratkaisee TCP-yhteyksien pitkiin asennus- ja neuvotteluaikoihin liittyvät ongelmat ja eliminoi viiveitä pakettien katoamisesta tiedonsiirron aikana. QUIC on UDP-protokollan laajennus, joka tukee useiden yhteyksien multipleksointia ja tarjoaa TLS/SSL:ää vastaavia salausmenetelmiä.

Pääasiallinen ominaisuudet QUIC:

  • Korkea turvallisuus, joka muistuttaa TLS:ää (olennaisesti QUIC tarjoaa mahdollisuuden käyttää TLS 1.3:a UDP:n yli);
  • Virran eheyden valvonta, joka estää pakettien katoamisen;
  • Mahdollisuus muodostaa yhteys välittömästi (0-RTT, noin 75 %:ssa tapauksista tiedot voidaan lähettää välittömästi yhteydenmuodostuspaketin lähettämisen jälkeen) ja tarjota minimaaliset viiveet pyynnön lähettämisen ja vastauksen vastaanottamisen välillä (RTT, Round Trip Time);
    Microsoft on avannut HTTP/3:ssa käytetyn QUIC-protokollan toteutuksen

  • Samaa järjestysnumeroa ei käytetä uudelleenlähetettäessä pakettia, mikä välttää epäselvyyden vastaanotettujen pakettien tunnistamisessa ja poistaa aikakatkaisut;
  • Paketin katoaminen vaikuttaa vain siihen liittyvän virran toimitukseen, eikä se pysähdy nykyisen yhteyden kautta lähetettävien rinnakkaisten virtojen datan toimittamiseen;
  • Virheenkorjausominaisuudet, jotka minimoivat kadonneiden pakettien uudelleenlähetyksestä johtuvat viiveet. Erityisten virheenkorjauskoodien käyttö pakettitasolla vähentämään tilanteita, jotka edellyttävät kadonneen pakettidatan uudelleenlähetystä.
  • Salauslohkojen rajat kohdistetaan QUIC-pakettirajojen kanssa, mikä vähentää pakettihäviöiden vaikutusta seuraavien pakettien sisällön dekoodaukseen;
  • Ei ongelmia TCP-jonojen estämisessä;
  • Tuki yhteystunnisteelle, joka lyhentää mobiiliasiakkaiden yhteyden muodostamiseen kuluvaa aikaa;
  • Mahdollisuus yhdistää kehittyneitä yhteyden ruuhkanhallintamekanismeja;
  • Käyttää suuntakohtaisia ​​suorituskyvyn ennustustekniikoita varmistaakseen, että paketit lähetetään optimaalisilla nopeuksilla, mikä estää niitä ruuhkautumasta ja aiheuttamasta pakettien katoamista;
  • Havaittava kasvu suorituskykyä ja suorituskykyä verrattuna TCP:hen. Videopalveluissa, kuten YouTubessa, QUIC:n on osoitettu vähentävän uudelleenpuskurointitoimintoja videoita katsottaessa 30 %.

Lähde: opennet.ru

Lisää kommentti