Företaget NGINX meddelar om pÄbörjan av testning av protokollen QUIC och HTTP/3 i HTTP-servern och proxynginx. Implementation baseras pÄ av IETF-QUIC-specifikationen och Àr tillgÀnglig via , som Àr en avgrening av version 1.19.0. Koden sprids under BSD-licensen och överlappar inte med 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 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 (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 , och .
Huvud 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);
- 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 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
