Ettevõte Cloudflare HTTP/3 protokolli toe toetamiseks NGINX-is. Modul on välja töötatud Cloudflare'i raamatukogule tugineva laiendusena QUIC transpordiprotokolli ja HTTP/3 rakendamisega. Quiche'i kood on kirjutatud Rusti keeles, kuid NGINX-i modul on kirjutatud C keeles ja kutsub raamatukogu dünaamilise sidumise kaudu. Tootmist BSD litsentsi all.
Kogumiseks piisab, kui laadida alla NGINX 1.16 ja Quiche'i raamatukogu, pärast mida tuleb NGINX uuesti kompileerida valikutega "--with-http_v3_module --with-quiche=../quiche". Kompileerimisel peab TLS-i tugi põhinema BoringSSL raamatukogul ("--with-openssl=../quiche/deps/boringssl"), OpenSSL kasutamine ei ole veel toetatud. Ühenduste vastuvõtmiseks tuleb seadistusse lisada listen direktiiv koos "quic" lipuga (näiteks "listen 443 quic reuseport").
Kliendi tarkvaras on HTTP/3 tugi juba lisatud eksperimentaalsetesse Chrome Canary versioonidesse ja utiliiti curl. Serveri pool on endiselt vajalik kasutada piiratud võimalustega eraldiseisvaid . HTTP/3 töötlemise võimalus NGINX-is lihtsustab märkimisväärselt HTTP/3 toe toetavate serverite seadistamist ja muudab uue protokolli katsetamise kergemaks. HTTP/3 algselt toetuse esitlemine NGINX-is on oodata 1.17.x haru jooksul 6-12 kuu jooksul.
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, võrreldav TLS'iga (QUIC pakub tegelikult võimalust kasutada TLS'i UDP peal);
- 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
