Cloudflare'i ettevĂ”te HTTP/3 protokolli toetamiseks NGINX-is. Moodul on loodud Cloudflare'i poolt vĂ€lja töötatud teegi lisandmoodulina QUIC ja HTTP/3 transpordiprotokolli rakendamisega. Quiche'i kood on kirjutatud Rusti keeles, kuid NGINX-moodul ise on kirjutatud C-keeles ja pÀÀseb teeki dĂŒnaamilise linkimise abil. Arengud BSD litsentsi alusel.
Kokkupanemiseks laadige lihtsalt alla kuni nginx 1.16 ja quiche'i teegid, seejĂ€rel ehitage nginx uuesti suvanditega "âwith-http_v3_module âwith-quiche=../quiche". Ehitamisel peaks TLS-i tugi pĂ”hinema BoringSSL teegil (â--with-openssl=../quiche/deps/boringsslâ), OpenSSL-i kasutamist veel ei toetata. Ăhenduste vastuvĂ”tmiseks tuleb seadistustesse lisada kuulamiskĂ€sk lipuga âquicâ (nĂ€iteks âkuula 443 quic reuseportâ).
Klienditarkvaras on HTTP/3 tugi juba lisatud Chrome Canary eksperimentaalsetele jÀrgudele ja curl-utiliidile. Serveri poolel oli seni vaja kasutada eraldi, piiratud . HTTP/3 töötlemise vÔimalus nginxis lihtsustab oluliselt HTTP/3 toega serverite juurutamist ja muudab uue protokolli testrakenduse ligipÀÀsetavamaks. HTTP/3 standardtoe tekkimine nginxis 1.17.x filiaalis 6-12 kuud.
Tuletage meelde, et HTTP/3 standardib QUIC-protokolli kasutamist HTTP/2 transpordina. Protokoll (Quick UDP Internet Connections) on Google alates 2013. aastast vĂ€lja töötanud alternatiivina TCP+TLS-i kombinatsioonile veebi jaoks, lahendades probleeme pikkade hÀÀlestus- ja lĂ€birÀÀkimisaegadega TCP-ĂŒhenduste jaoks ning kĂ”rvaldades viivitused, kui andmeedastuse ajal paketid kaovad. QUIC on UDP-protokolli laiendus, mis toetab mitme ĂŒhenduse multipleksimist ja pakub TLS/SSL-iga samavÀÀrseid krĂŒpteerimismeetodeid.
KÔik QUIC:
- KĂ”rge turvalisus, mis sarnaneb TLS-iga (sisuliselt annab QUIC vĂ”imaluse kasutada TLS-i ĂŒle UDP);
- Voo terviklikkuse kontroll, mis hoiab Àra pakettide kadumise;
- VĂ”imalus koheselt luua ĂŒhendus (0-RTT, ligikaudu 75% juhtudest saab andmeid edastada kohe pĂ€rast ĂŒhenduse seadistuspaketi saatmist) ja tagada minimaalsed viivitused pĂ€ringu saatmise ja vastuse saamise vahel (RTT, Round Trip Time);
- Paketi uuesti edastamisel ei kasutata sama jÀrjenumbrit, mis vÀldib vastuvÔetud pakettide tuvastamisel ebaselgust ja vabaneb ajalÔppudest;
- Paketi kadumine mĂ”jutab ainult sellega seotud voo edastamist ega peata andmete edastamist paralleelsetes voogudes, mis edastatakse praeguse ĂŒhenduse kaudu;
- Veaparandusfunktsioonid, mis minimeerivad kadunud pakettide uuesti saatmisest tingitud viivitusi. Spetsiaalsete veaparanduskoodide kasutamine paketi tasemel, et vÀhendada olukordi, mis nÔuavad kadunud pakettandmete uuesti edastamist.
- KrĂŒptograafiliste plokkide piirid joondatakse QUIC-pakettide piiridega, mis vĂ€hendab pakettide kadude mĂ”ju jĂ€rgnevate pakettide sisu dekodeerimisele;
- TCP jÀrjekorra blokeerimisega probleeme pole;
- Ăhenduse identifikaatori tugi, mis vĂ€hendab mobiiliklientide taasĂŒhenduse loomiseks kuluvat aega;
- VĂ”imalus ĂŒhendada tĂ€iustatud ĂŒhenduse ĂŒlekoormuse kontrollimehhanisme;
- Kasutab suunapÔhiseid lÀbilaskevÔime prognoosimise tehnikaid, et tagada pakettide saatmine optimaalse kiirusega, vÀltides nende ummistumist ja pakettide kadumist;
- Tajutav jÔudlus ja lÀbilaskevÔime vÔrreldes TCP-ga. Videoteenuste (nt YouTube) puhul vÀhendab QUIC taaspuhverdamistoiminguid videote vaatamisel 30%.
Allikas: opennet.ru
