A Cloudflare bevezetett egy modult a HTTP / 3 támogatására az NGINX-ben

Cloudflare cég előkészített modul hogy támogatást nyújtson a HTTP/3 protokollhoz az NGINX-ben. A modul a Cloudflare által fejlesztett könyvtár kiegészítőjeként készült quiche a QUIC és a HTTP/3 szállítási protokoll megvalósításával. A quiche kód Rust nyelven van írva, de maga az NGINX modul C nyelven van írva, és dinamikus hivatkozással éri el a könyvtárat. Fejlesztések nyisd ki a BSD licenc alatt.

Az összeszereléshez csak töltse le tapasz nginx 1.16-hoz és kód quiche könyvtárakat, majd építse újra az nginxet a „—with-http_v3_module —with-quiche=../quiche” opciókkal. Építéskor a TLS-támogatásnak a BoringSSL könyvtáron kell alapulnia (“--with-openssl=../quiche/deps/boringssl”), az OpenSSL használata még nem támogatott. A kapcsolatok elfogadásához hozzá kell adni a figyelési utasítást a „quic” jelzővel a beállításokhoz (például „hallgatni 443 quic reuseport”).

Az ügyfélszoftverben a HTTP/3 támogatást már hozzáadták a Chrome Canary és a curl segédprogram kísérleti buildjéhez. Szerver oldalon eddig külön, korlátozottan kellett használni teszt megvalósítások. A HTTP/3 feldolgozási képessége az nginxben jelentősen leegyszerűsíti a HTTP/3 támogatással rendelkező szerverek telepítését, és elérhetőbbé teszi az új protokoll tesztimplementációját. A HTTP/3 szabványos támogatásának megjelenése az nginx-ben várhatóan az 1.17.x ágban 6-12 hónapig.

Emlékezzünk vissza, hogy a HTTP/3 szabványosítja a QUIC protokoll használatát a HTTP/2 átviteleként. Jegyzőkönyv QUIC (Quick UDP Internet Connections) 2013 óta fejlesztette ki a Google a TCP+TLS kombináció alternatívájaként a weben, amely megoldja a TCP-kapcsolatok hosszú beállítási és egyeztetési idejével kapcsolatos problémákat, és kiküszöböli a késéseket, amikor a csomagok elvesznek az adatátvitel során. A QUIC az UDP protokoll kiterjesztése, amely támogatja több kapcsolat multiplexelését, és a TLS/SSL-lel egyenértékű titkosítási módszereket biztosít.

A főbb Jellemzők QUIC:

  • Magas biztonság, hasonlóan a TLS-hez (valójában a QUIC lehetővé teszi a TLS használatát UDP-n keresztül);
  • Az adatfolyam integritásának ellenőrzése a csomagvesztés megelőzése érdekében;
  • Azonnali kapcsolat létrehozásának képessége (0-RTT, az esetek kb. 75%-ában az adatok közvetlenül a kapcsolatbeállító csomag elküldése után továbbíthatók), és minimális késéseket biztosít a kérés elküldése és a válasz fogadása között (RTT, Round Trip Time) ;
  • Csomag újraküldésekor ne használja ugyanazt a sorszámot, ami lehetővé teszi, hogy elkerülje a kétértelműséget a fogadott csomagok meghatározása során, és megszabaduljon az időtúllépésektől;
  • A csomagvesztés csak a hozzá tartozó adatfolyam kézbesítését érinti, és nem akadályozza meg az adatok kézbesítését az aktuális kapcsolaton keresztül párhuzamosan továbbított folyamokban;
  • Hibajavító eszközök, amelyek minimalizálják az elveszett csomagok újraküldése miatti késéseket. Speciális hibajavító kódok használata csomagszinten az elveszett csomagadatok újraküldését igénylő helyzetek csökkentése érdekében.
  • A kriptográfiai blokkhatárok igazodnak a QUIC csomaghatárokhoz, ami csökkenti a csomagvesztések hatását a következő csomagok tartalmának dekódolására;
  • Nincs probléma a TCP-sor blokkolásával;
  • Connection ID támogatás a mobil kliensek újracsatlakozási idejének csökkentése érdekében;
  • Speciális mechanizmusok csatlakoztatásának lehetősége a csatlakozás túlterhelés-szabályozására;
  • Sávszélesség-előrejelzési technikák alkalmazása minden irányban a csomagok küldésének optimális intenzitásának biztosítására, megakadályozva a torlódásos állapotba gurulást, amelyben a csomagok elvesznek;
  • Érezhető növekedés teljesítmény és átviteli sebesség a TCP-hez képest. Az olyan videoszolgáltatások esetében, mint a YouTube, a QUIC 30%-kal csökkenti a video-újrapufferelési műveleteket.
  • Forrás: opennet.ru

Hozzászólás