Cloudflare har implementerat en modul för att stödja HTTP/3 i NGINX

Cloudflare Company beredd modul för att ge stöd för HTTP/3-protokollet i NGINX. Modulen är designad som ett tillägg till biblioteket utvecklat av Cloudflare quiche med implementeringen av QUIC och HTTP/3 transportprotokoll. Quichekoden är skriven i Rust, men själva NGINX-modulen är skriven i C och kommer åt biblioteket med dynamisk länkning. Utvecklingen öppen under BSD-licensen.

För att montera, ladda bara ner plåster till nginx 1.16 och код quichebibliotek, bygg sedan om nginx med alternativen "—with-http_v3_module —with-quiche=../quiche". När du bygger bör TLS-stöd baseras på BoringSSL-biblioteket ("--with-openssl=../quiche/deps/boringssl"), användningen av OpenSSL stöds ännu inte. För att acceptera anslutningar måste du lägga till lyssningsdirektivet med "quic"-flaggan till inställningarna (till exempel "lyssna 443 quic reuseport").

I klientprogramvara har HTTP/3-stöd redan lagts till i experimentella versioner av Chrome Canary och curl-verktyget. På serversidan var det fram till nu nödvändigt att använda separata, begränsade testimplementationer. Möjligheten att bearbeta HTTP/3 i nginx kommer avsevärt att förenkla driftsättningen av servrar med HTTP/3-stöd och kommer att göra testimplementering av det nya protokollet mer tillgängligt. Framväxten av standardstöd för HTTP/3 i nginx förväntas i grenen 1.17.x i 6-12 månader.

Kom ihåg att HTTP/3 standardiserar användningen av QUIC-protokollet som en transport för HTTP/2. Protokoll QUIC (Quick UDP Internet Connections) har utvecklats av Google sedan 2013 som ett alternativ till kombinationen TCP+TLS för webben, vilket löser problem med långa installations- och förhandlingstider för anslutningar i TCP och eliminerar förseningar när paket går förlorade under dataöverföring. QUIC är en förlängning av UDP-protokollet som stöder multiplexering av flera anslutningar och tillhandahåller krypteringsmetoder motsvarande TLS/SSL.

Den huvudsakliga särdrag QUIC:

  • Hög säkerhet liknande TLS (QUIC ger i huvudsak möjlighet att använda TLS över UDP);
  • Flödesintegritetskontroll, förhindrar paketförlust;
  • Möjligheten att omedelbart upprätta en anslutning (0-RTT, i cirka 75 % av fallen kan data överföras omedelbart efter att anslutningspaketet har skickats) och ger minimala förseningar mellan att skicka en förfrågan och ta emot ett svar (RTT, Round Trip Time);
  • Att inte använda samma sekvensnummer vid återsändning av ett paket, vilket undviker tvetydighet när det gäller att identifiera mottagna paket och blir av med timeouts;
  • Förlust av ett paket påverkar endast leveransen av strömmen som är associerad med den och stoppar inte leveransen av data i parallella strömmar som överförs genom den aktuella anslutningen;
  • Felkorrigeringsfunktioner som minimerar förseningar på grund av återsändning av förlorade paket. Användning av speciella felkorrigeringskoder på paketnivå för att minska situationer som kräver återsändning av förlorad paketdata.
  • Kryptografiska blockgränser är anpassade till QUIC-paketgränser, vilket minskar effekten av paketförluster på avkodning av innehållet i efterföljande paket;
  • Inga problem med TCP-köblockering;
  • Stöd för anslutningsidentifierare, vilket minskar tiden det tar att upprätta en återanslutning för mobila klienter;
  • Möjlighet att ansluta avancerade mekanismer för kontroll av överbelastning av anslutningar;
  • Använder tekniker för prognostisering av genomströmning per riktning för att säkerställa att paket skickas med optimala hastigheter, vilket förhindrar att de blir överbelastade och orsakar paketförlust;
  • Märkbar tillväxt prestanda och genomströmning jämfört med TCP. För videotjänster som YouTube har QUIC visat sig minska återlagringsoperationer när du tittar på videor med 30 %.
  • Källa: opennet.ru

Lägg en kommentar