Cloudflare HTTP/3 protokolli toe tagamiseks NGINX-is. Moodul on loodud Cloudflare'i arendatavast raamatukogust QUIC transportprotokolli ja HTTP/3 rakendamisega. Quiche kood on kirjutatud Rusti keeles, kuid moodul NGINX-i jaoks on kirjutatud C keeles ja see kasutab raamatukogu dĂŒnaamilise sidumise kaudu. Arendused BSD litsentsi alusel.
Kogumiseks piisab NGINX 1.16 jaoks ja quiche raamatukogu kood, mille jĂ€rel tuleb NGINX kokku panna valikutega ââwith-http_v3_module âwith-quiche=../quicheâ. Kogumisel peab TLS tugi pĂ”hinema BoringSSL raamatukogul (ââwith-openssl=../quiche/deps/boringsslâ), OpenSSL-i kasutamine ei ole praegu toetatud. Ăhenduste vastuvĂ”tmiseks tuleb seadistustesse lisada listen direktiiv koos âquicâ lipuga (nĂ€iteks âlisten 443 quic reuseportâ). quiche raamatukogud, pĂ€rast mida tuleb nginx uuesti koostada valikute "âwith-http_v3_module âwith-quiche=../quiche" abil. Koostamisel peab TLS-i tugi pĂ”hinema BoringSSL raamatukogul ("âwith-openssl=../quiche/deps/boringssl"), OpenSSL-i kasutamine ei ole veel toetatud. Ăhenduste vastuvĂ”tmiseks tuleb seadistustesse lisada listen direktiiv koos "quic" flaaÍgiga (nĂ€iteks "listen 443 quic reuseport").
Klienditarkvara poolelt on HTTP/3 tugi juba lisatud eksperimentaalsetesse Chrome Canary versioonidesse ja curl utiliiti. Serveri poolel on endiselt nÔutud piiratud vÔimalustega isoleeritud . HTTP/3 toeprotsessi toimetamine nginxis muudab HTTP/3 toega serverite rakendamise oluliselt lihtsamaks ja muudab uue protokolli katsetamise kergemini kÀttesaadavaks. HTTP/3 tugi nginxis on tulemas 1.17.x haru jooksul 6-12 kuu jooksul.
Meenutame, et HTTP/3 standardiseerib QUIC protokolli kasutamise HTTP/2 transpordina. Protokoll (Quick UDP Internet Connections) on alates 2013. aastast arendatud Google'i poolt TCP+TLS alternatiivina, mis lahendab TCP ĂŒhenduste loomise ja kokkuleppimise suure aja probleeme ning kĂ”rvaldab andmeĂŒlekande kĂ€igus pakettide kaotsimineku tĂ”ttu tekkivad viivitused. QUIC on UDP protokolli pealispind, mis toetab mitme ĂŒhenduse multiplexerimist ja pakub krĂŒpteerimismeetodeid, mis on vĂ”rdsed TLS/SSL-iga.
Peamised QUIC:
- KÔrge turvalisus, mis on sarnane TLS-ile (QUIC vÔimaldab tegelikult kasutada TLS-i UDP peal);
- Voogude terviklikkuse kontrollimine, mis takistab pakettide kadumist;
- Kohene ĂŒhenduse loomise vĂ”imalus (0-RTT, umbes 75% juhtudest saab andmeid edastada kohe pĂ€rast ĂŒhenduse loomise paketi saatmist) ning tagab minimaalsed viivitused pĂ€ringu saatmise ja vastuse saamise vahel (RTT, Round Trip Time);
- Ei kasutata sama jÀrjestikuse numbri paketi kordussaatmisel, mis vÔimaldab vÀltida segadust saadud paketide tuvastamisel ja kÔrvaldab ajutised katkestused;
- Paketi kadu mĂ”jutab ainult seotud voogu ja ei peata andmete edastamist paralleelselt edastatavatest voogudest lĂ€bi praeguse ĂŒhenduse;
- Vigade parandamise vahendid, mis minimeerivad viivitused kadunud pakettide kordussaatmise tÔttu. Spetsiaalsete vigade parandamise koodide kasutamine paketi tasandil, et vÀhendada olukordade arvu, mis vajavad kadunud paketi andmete uuesti edastamist.
- KrĂŒptograafiliste plokkide piirid on joondatud QUIC pakettide piiride kĂŒlge, mis vĂ€hendab pakettide kadumise mĂ”ju jĂ€rgmiste pakettide sisu dekodeerimisele;
- TCP jÀrjekorra ummistusega seotud probleeme pole.
- Ăhenduse identifikaatori toetus, mis vĂ”imaldab mobiilsete klientide uuesti ĂŒhendamise aega lĂŒhendada;
- TĂ€psemate ĂŒhenduse koormusjuhtimise mehanismide toetus;
- VĂ”imet kasutada igas suunas lĂ€bipÀÀsutehnika prognoosimist, et tagada optimaalne pakettide saatmise intensiivsus, vĂ€ltides ĂŒlekoormusse sattumist, mille korral toimub pakettide kadu;
- Silmatorkav suurem jÔudlus ja lÀbilaskevÔime, vÔrreldes TCP-ga. Video teenuste, nagu YouTube, puhul on QUIC-i kasutamine vÀhendanud uuesti puhverdamise operatsioonide arvu video vaatamise ajal 30% vÔrra.
Allikas: opennet.ru
