Microsoft raamatukogu koodi avamise kohta vÔrguprotokolli rakendamisest . Kood on kirjutatud C keeles ja ilma Microsofti litsentsita. Raamatukogu on platvormidevaheline ja seda saab kasutada mitte ainult Windowsis, vaid ka Linuxis, kasutades vÔi OpenSSL-i TLS 1.3 jaoks. Tulevikus on plaanis toetada ka teisi platvorme.
Raamatukogu pĂ”hineb msquic.sys draiveri koodil, mis on saadaval Windows 10 tuumas (Insider Preview) HTTP ja QUIC-i peal. Sealhulgas kasutatakse koodi HTTP/3 rakendamiseks Windowsi sisesteks protokollideks ja .NET Core'is. MsQuic'i arendustööd toimuvad tĂ€ielikult GitHubis, kasutades avalikku ĂŒlevaatust, pull-pĂ€ringuid ja GitHub Issues. On loodud infrastruktuur, mis kontrollib iga commit'i ja pull-pĂ€ringut enam kui 4000 testide komplekti kaudu. PĂ€rast arenduskeskkonna stabiliseerimist on plaanis aksepteerida muudatusi vĂ€listelt arendajatelt.
MsQuic on juba kasutatav serverite ja klientide loomiseks, kuid mitte kĂ”ik IETF spetsifikatsioonis mÀÀratletud funktsioonid on praegu saadaval. NĂ€iteks puudub hetkel 0-RTT, klientide migratsiooni, Path MTU Discovery ja serveripoolse aadressi valiku haldamise tugi (Server Preferred Address). Rakendatud omaduste seas on mĂ€rgitav optimeerimine maksimaalse lĂ€bilaskevĂ”ime ja minimaalsete viiviste saavutamiseks, asĂŒnkroonne sisend-/vĂ€ljundtoimingute tugi, RSS (Receive Side Scaling) ja vĂ”imalus ĂŒhendada sissetulevad ja vĂ€ljund UDP vood. MsQuic'i rakenduse ĂŒhilduvust on testitud Chrome'i ja Edge'i eksperimentaalsete harudega.
Tuletame meelde, et HTTP/3 standardiseerib QUIC protokolli kasutamise transpordina HTTP/2 jaoks. Protokoll (Quick UDP Internet Connections) areneb alates 2013. aastast Google'i poolt alternatiivina TCP+TLS ĂŒhenduse jaoks, lahendades TCP pika ĂŒhenduse loomise ja kokku leppimise probleemid ning kĂ”rvaldab pakettide kadumise tĂ”ttu tekkivad viivitused andmete edastamise protsessis. QUIC on UDP protokolli peal olev lisakiht, mis toetab mitme ĂŒhenduse mitmekordistamist ja pakub krĂŒpteerimismeetodeid, mis on vĂ”rdsed TLS/SSL-iga.
Peamised QUIC:
- KĂ”rge turvalisus, mis on sarnane TLS-iga (sisuliselt vĂ”imaldab QUIC kasutada TLS 1.3 ĂŒle UDP);
- Voolu terviklikkuse jÀlgimine, mis takistab pakettide kaotust;
- VĂ”ime koheselt ĂŒhendust luua (0-RTT, umbes 75% juhtudest saab andmeid edastada kohe pĂ€rast ĂŒhenduse loomise paketi saatmist) ja tagada minimaalne viivitus kĂŒsimise ja vastuse saamise vahel (RTT, Round Trip Time);
- Paketi sama jÀrjestuse numbri uuesti edastamisel mittekasutamine, mis vÔimaldab vÀltida segadust vastuvÔetud pakettide mÀÀratlemisel ja kaotada aegumised;
- Paketi kaotus mĂ”jutab ainult selle kaasnevat voolu ja ei peata andmete edastamist samaaegselt praeguse ĂŒhenduse kaudu edastatavatest voogudest;
- Vigade parandusmeetmed, mis minimeerivad viivitusi kadunud pakettide uuesti edastamise tÔttu. Eriliste vigade parandamise koodide kasutamine paketi tasemel, et vÀhendada olukordi, mis nÔuavad kadunud paketi andmete uuesti edastamist.
- KrĂŒptograafiliste plokkide piirid on joondatud QUIC pakettide piiridega, mis vĂ€hendab pakettide kaotuse mĂ”ju jĂ€rgmiste pakettide sisu dekodeerimisele;
- TCP jÀrjekorra ummistumise probleemide puudumine;
- Ăhenduse identifikaatori tugi, mis vĂ”imaldab vĂ€hendada mobiilsete klientide uuesti ĂŒhendamise aega;
- VĂ”ime ĂŒhendada laienevaid ĂŒhenduse ĂŒlekande kontrolli mehhanisme;
- Igas suunas lĂ€bilaskevĂ”ime ennustamise tehnika kasutamine, et tagada pakkide edastamise optimaalne intensiivsus, vĂ€ltides ĂŒleminekuid koormuse seisundisse, kus esineb pakettide kaotust;
- TÀhtis tÔhususes ja lÀbilaskevÔimes vÔrreldes TCP-ga. Videoteenuste, nagu YouTube, puhul nÀitas QUIC kasutamine video vaatamise jooksul uuesti vahepealsete operatsioonide vÀhenemist 30% vÔrra.
Allikas: opennet.ru
