Cloudflare har implementeret en modul til støtte for HTTP/3 i NGINX

Cloudflare has prepared modul for at sikre støtte til HTTP/3 protokollen i NGINX. Modulet er udført som et lag oven på det udviklede bibliotek i Cloudflare. quiche med implementeringen af transportprotokollen QUIC og HTTP/3. Koden til quiche er skrevet i Rust, men selve modulet til NGINX er skrevet i C og interagerer med biblioteket via dynamisk binding. Arbejdet åbnet under BSD-licensen.

For at bygge er det tilstrækkeligt at hente patch til nginx 1.16 og koden quiche biblioteket, hvorefter nginx skal recompiles med indstillingerne "--with-http_v3_module --with-quiche=../quiche". Under bygningen skal TLS-støtten baseres på BoringSSL biblioteket ("--with-openssl=../quiche/deps/boringssl"), brugen af OpenSSL er endnu ikke understøttet. For at modtage forbindelser skal direktivet listen tilføjes med flaget "quic" (for eksempel "listen 443 quic reuseport").

I klientsoftware er støtte til HTTP/3 allerede tilføjet i eksperimentelle builds af Chrome Canary og curl værktøjet. På serversiden har det stadig været nødvendigt at bruge begrænsede separate testimplementeringer. Muligheden for at håndtere HTTP/3 i nginx vil i betydelig grad forenkle implementeringen af servere med støtte for HTTP/3 og gøre testimplementeringen af den nye protokol mere tilgængelig. Den indgående støtte til HTTP/3 i nginx forventes i branch 1.17.x inden for 6-12 måneder.

Det skal bemærkes, at HTTP/3 standardiserer brugen af PROTOKOLQUIC som transport for HTTP/2. Protokollen QUIC (Quick UDP Internet Connections) har været i udvikling af Google siden 2013 som et alternativ til TCP+TLS for Web, der løser problemer med lang forbindelsesetablering og -forhandling i TCP og fjerner forsinkelser ved tab af pakker under dataoverførsel. QUIC er en overbygning over UDP-protokollen, der understøtter multiplexing af flere forbindelser og tilbyder krypteringsmetoder, der svarer til TLS/SSL.

Vigtige funktioner QUIC:

  • Høj sikkerhed svarende til TLS (faktisk giver QUIC mulighed for brug af TLS oven på UDP);
  • Overvågning af strømmens integritet, der forhindrer tab af pakker;
  • Mulighed for straks at etablere forbindelse (0-RTT, i ca. 75% af tilfældene kan data overføres straks efter sending af forbindelsespakken) og sikre minimale forsinkelser mellem fremsendelse af anmodning og modtagelse af svar (RTT, Round Trip Time);
  • Undgåelse af at bruge den samme sekvensnummer ved genoverførsel af pakken, hvilket forhindrer tvetydighed ved identifikation af modtagne pakker og eliminerer timeouts;
  • Pakketab påvirker kun leveringen af den tilknyttede strøm og stopper ikke dataoverførslen i parallelt overførte strømme gennem den aktuelle forbindelse;
  • Fejlkorrektionsmidler, der minimerer forsinkelser på grund af genoverførsel af tabte pakker. Brug af specialiserede fejlkorrektionskoder på pakkeniveau for at reducere situationer, der kræver genoverførsel af data fra en tabt pakke.
  • Grænserne for kryptografiske blokke er justeret med grænserne for QUIC-pakker, hvilket reducerer tabspakkernes indvirkning på afkodningen af indholdet i efterfølgende pakker;
  • Ingen problemer med TCP-køblokering;
  • Understøttelse af forbindelsesidentifikatoren, der reducerer tiden til at etablere en genforbindelse for mobile klienter;
  • Mulighed for at tilslutte udvidede mekanismer til overvågning af forbindelsesoverbelastning;
  • Brug af kapacitetsprognoseteknikker i hver retning for at sikre optimal intensitet i pakkeafsendelsen, hvilket forhindrer at glide ind i en overbelastningssituation, hvor pakkemister forekommer;
  • Bemærkbar vækst i ydeevne og kapacitet sammenlignet med TCP. For videotjenester som YouTube har brugen af QUIC vist sig at reducere genbufferingsoperationer med 30% under videovisning.
  • Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster