Förhandsversion av nginx med stöd för QUIC och HTTP/3

Företaget NGINX tillkännagav meddelar om påbörjan av testning om implementering) av protokollen QUIC och HTTP/3 i HTTP-servern och proxynginx. Implementation baseras på 27-draften av IETF-QUIC-specifikationen och är tillgänglig via ett separat repository, som är en avgrening av version 1.19.0. Koden sprids under BSD-licensen och överlappar inte med den tidigare föreslagna implementationen av HTTP/3 för nginx från Cloudflare, som är ett separat projekt.

Stödet för HTTP/3 i nginx är märkt som experimentellt, eftersom inte alla funktioner i protokollet är implementerade. Dock kan nginx redan användas för att skicka svar på enkla HTTP/3-förfrågningar över QUIC och ladda / överföra stora filer. Bland de saknade funktionerna i protokollet noteras protokollversionsförhandling, ECN och överbelastningskontroll, strukturerade loggar, återhämtningsläge (QUIC recovery, flödes- och överbelastningskontroll), NAT Rebinding, mobila adresser, Server push och anslutning av data (trailer). Dessutom erbjuds endast grundläggande stöd för behandling av ACK-paket och flödeskontroll, som kräver ytterligare arbete. Inte alla krav i standarden har beaktats.

För att aktivera HTTP/3 krävs det att kompilera nginx med modulen http_v3_module och lägga till ytterligare en direktiv
«listen» med flaggan «http3″ för att skapa en lyssnande UDP-socket. Till exempel:

server {
listen 443 ssl; # TCP-socket för HTTP/1.1
listen 443 http3 reuseport; # UDP-socket för QUIC+HTTP/3

ssl_protocols TLSv1.3; # TLS 1.3 krävs i QUIC
ssl_certificate ssl/www.example.com.crt;
ssl_certificate_key ssl/www.example.com.key;

add_header Alt-Svc ‘quic=»:443″‘; # indikator för tillgång till QUIC
add_header QUIC-Status $quic; # Header med status för användning av QUIC
}

Vi påminner om att HTTP/3 standardiserar användningen av protokollet QUIC som transport för HTTP/2. Protokollet QUIC (Quick UDP Internet Connections) har sedan 2013 utvecklats av Google som ett alternativ till TCP+TLS för webben, som löser problem med lång tid för etablering och förhandling av anslutningar i TCP och eliminerar fördröjningar vid paketförluster under datatransmission. QUIC är ett överliggande protokoll ovanpå UDP som stöder multiplexering av flera anslutningar och tillhandahåller krypteringsmetoder som motsvarar TLS/SSL. På klientsidan har experimentellt stöd för HTTP/3 redan lagts till i Curl, Firefox och Chromium.

Förhandsversion av nginx med stöd för QUIC och HTTP/3

Huvud funktioner QUIC:

  • Hög säkerhet, jämförbar med TLS (QUIC gör i grunden det möjligt att använda TLS 1.3 över UDP);
  • Kontroll av strömmens integritet, vilket förhindrar pak förlust;
  • Möjlighet att omedelbart upprätta en anslutning (0-RTT, i ungefär 75% av fallen kan data överföras omedelbart efter att anslutningsinstallationspaketet skickats) och säkerställa minimala fördröjningar mellan begäran och svar (RTT, Round Trip Time);
    Förhandsversion av nginx med stöd för QUIC och HTTP/3
  • Ingen användning av samma sekvensnummer vid återöverföring av paket som gör att man kan undvika tveksamhet vid identifieringen av mottagna paket och eliminera timeout-problem;
  • Paketsförlust påverkar endast leveransen av den relaterade strömmen och stoppar inte dataöverföringen i parallella strömmar som sänds via den aktuella anslutningen;
  • Felkorrekteringsmedel som minimerar förseningar på grund av återöverföring av förlorade paket. Användning av speciella felkorrekteringskoder på paketnivå för att minska situationer där återöverföring av förlorad data krävs.
  • Gränserna för kryptografiska block överensstämmer med gränserna för QUIC-paketen, vilket minskar påverkan av paketförluster på avkodningen av innehållet i efterföljande paket;
  • Ingen köblockering som uppstår i TCP;
  • Stöd för anslutningsidentifierare som gör att tiden för att återansluta till mobila kunder minskar;
  • Möjlighet att ansluta avancerade mekanismer för överbelastningskontroll;
  • Användning av tekniker för kapacitetsprognoser i varje riktning för att säkerställa optimal paketöverföringstakt och förhindra att man hamnar i en överbelastad status där paketförluster observeras;
  • Särskild ökning i prestanda och kapacitet jämfört med TCP. För videotjänster som YouTube har användningen av QUIC visat på en minskning av buffran under videoavspelning med 30%.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster