Cloudflare för att möjliggöra stöd för protokollet HTTP/3 i NGINX. Modulen Àr utformad som ett tillÀgg till det bibliotek som utvecklas av Cloudflare med implementering av transportprotokollet QUIC och HTTP/3. Koden för quiche Àr skriven i Rust, medan modulen för NGINX Àr skriven i C och anropar biblioteket med hjÀlp av dynamisk lÀnkning. Resultaten under BSD-licensen.
För att sammanstÀlla rÀcker det att ladda ner till nginx 1.16 och biblioteket quiche, och sedan kompilera om nginx med instÀllningarna "--with-http_v3_module --with-quiche=../quiche". Vid kompilering mÄste TLS-stödet baseras pÄ biblioteket BoringSSL ("--with-openssl=../quiche/deps/boringssl"), anvÀndning av OpenSSL stöds Ànnu inte. För att ta emot anslutningar mÄste instÀllningarna inkludera direktivet listen med flaggan "quic" (till exempel "listen 443 quic reuseport").
Stöd för HTTP/3 har redan lagts till i experimentella versioner av Chrome Canary och verktyget curl. PÄ serversidan har det fortfarande krÀvts att anvÀnda begrÀnsade, separata . Möjligheten att hantera HTTP/3 i nginx kommer att förenkla distributionen av servrar med stöd för HTTP/3 avsevÀrt och göra testimplementering av det nya protokollet mer tillgÀngligt. Den inbyggda stödet för HTTP/3 i nginx i version 1.17.x förvÀntas inom 6-12 mÄnader.
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 utvecklats av Google sedan 2013 som ett alternativ till TCP+TLS-kopplingen för webben, som löser problem med lÄng tid för anslutning och förhandling i TCP och eliminerar fördröjningar vid paketförlust under dataöverföring. QUIC Àr ett tillÀgg till UDP-protokollet som stödjer multiplexering av flera anslutningar och tillhandahÄller krypteringsmetoder motsvarande TLS/SSL.
Huvud QUIC:
- Hög sÀkerhet, liknande TLS (i praktiken ger QUIC möjlighet till anvÀndning av TLS ö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
