Cloudflare har implementeret et modul til at understøtte HTTP/3 i NGINX

Cloudflare Company forberedt modul at yde support til HTTP/3-protokollen i NGINX. Modulet er designet som en tilføjelse til biblioteket udviklet af Cloudflare quiche med implementering af QUIC- og HTTP/3-transportprotokollen. Quichekoden er skrevet i Rust, men selve NGINX-modulet er skrevet i C og får adgang til biblioteket ved hjælp af dynamisk linking. Udviklinger åben under BSD-licensen.

For at samle skal du blot downloade lappe til nginx 1.16 og kode quiche-biblioteker, og genopbygg derefter nginx med mulighederne "—with-http_v3_module —with-quiche=../quiche". Ved opbygning bør TLS-understøttelse være baseret på BoringSSL-biblioteket ("--with-openssl=../quiche/deps/boringssl"), brugen af ​​OpenSSL er endnu ikke understøttet. For at acceptere forbindelser skal du tilføje lyttedirektivet med "quic" flaget til indstillingerne (for eksempel "lyt 443 quic genbrugsrapport").

I klientsoftware er HTTP/3-understøttelse allerede blevet tilføjet til eksperimentelle builds af Chrome Canary og curl-værktøjet. På serversiden var det indtil nu nødvendigt at bruge separat, begrænset testimplementeringer. Evnen til at behandle HTTP/3 i nginx vil væsentligt forenkle udrulningen af ​​servere med HTTP/3-understøttelse og vil gøre testimplementering af den nye protokol mere tilgængelig. Fremkomsten af ​​standardunderstøttelse af HTTP/3 i nginx forventes i 1.17.x-grenen i 6-12 måneder.

Husk, at HTTP/3 standardiserer brugen af ​​QUIC-protokollen som en transport for HTTP/2. Protokol QUIC (Quick UDP Internet Connections) er blevet udviklet af Google siden 2013 som et alternativ til TCP+TLS-kombinationen til nettet, hvilket løser problemer med lange opsætnings- og forhandlingstider for forbindelser i TCP og eliminerer forsinkelser, når pakker går tabt under dataoverførsel. QUIC er en udvidelse af UDP-protokollen, der understøtter multipleksing af flere forbindelser og giver krypteringsmetoder svarende til TLS/SSL.

The main Egenskaber QUIC:

  • Høj sikkerhed svarende til TLS (i det væsentlige giver QUIC mulighed for at bruge TLS over UDP);
  • Flowintegritetskontrol, forhindrer pakketab;
  • Evnen til øjeblikkeligt at etablere en forbindelse (0-RTT, i ca. 75 % af tilfældene kan data transmitteres umiddelbart efter afsendelse af forbindelsesopsætningspakken) og give minimale forsinkelser mellem afsendelse af en anmodning og modtagelse af et svar (RTT, Round Trip Time);
  • Ikke at bruge det samme sekvensnummer ved gentransmission af en pakke, hvilket undgår tvetydighed i at identificere modtagne pakker og slipper af med timeouts;
  • Tab af en pakke påvirker kun leveringen af ​​den strøm, der er knyttet til den, og stopper ikke leveringen af ​​data i parallelle strømme, der transmitteres gennem den aktuelle forbindelse;
  • Fejlretningsfunktioner, der minimerer forsinkelser på grund af gentransmission af tabte pakker. Brug af specielle fejlkorrektionskoder på pakkeniveau for at reducere situationer, der kræver gentransmission af mistede pakkedata.
  • Kryptografiske blokgrænser er tilpasset QUIC-pakkegrænser, hvilket reducerer virkningen af ​​pakketab på afkodning af indholdet af efterfølgende pakker;
  • Ingen problemer med blokering af TCP-køer;
  • Understøttelse af forbindelsesidentifikator, som reducerer den tid, det tager at etablere en genforbindelse for mobile klienter;
  • Mulighed for tilslutning af avancerede mekanismer til kontrol af forbindelsesoverbelastning;
  • Bruger per-direction-gennemløbsprognoseteknikker for at sikre, at pakker sendes med optimale hastigheder, hvilket forhindrer dem i at blive overfyldte og forårsage pakketab;
  • Mærkbar vækst ydeevne og gennemløb sammenlignet med TCP. For videotjenester som f.eks. YouTube har QUIC vist sig at reducere tilbagesendelsesoperationer, når man ser videoer med 30 %.
  • Kilde: opennet.ru

Tilføj en kommentar