Cloudflare heeft een module geïmplementeerd om HTTP/3 in NGINX te ondersteunen

Cloudflare-bedrijf bereid module om ondersteuning te bieden voor het HTTP/3-protocol in NGINX. De module is ontworpen als add-on voor de door Cloudflare ontwikkelde bibliotheek quiche met de implementatie van het QUIC- en HTTP/3-transportprotocol. De quichecode is geschreven in Rust, maar de NGINX-module zelf is geschreven in C en heeft toegang tot de bibliotheek via dynamische koppeling. Ontwikkelingen open onder BSD-licentie.

Om te monteren hoeft u alleen maar te downloaden lapje naar nginx 1.16 en code quiche-bibliotheken en bouw vervolgens nginx opnieuw op met de opties “—with-http_v3_module —with-quiche=../quiche”. Bij het bouwen moet TLS-ondersteuning gebaseerd zijn op de BoringSSL-bibliotheek (“--with-openssl=../quiche/deps/boringssl”), het gebruik van OpenSSL wordt nog niet ondersteund. Om verbindingen te accepteren, moet u de luisterinstructie met de vlag “quic” aan de instellingen toevoegen (bijvoorbeeld “listen 443 quic hergebruikport”).

In clientsoftware is HTTP/3-ondersteuning al toegevoegd aan experimentele builds van Chrome Canary en het curl-hulpprogramma. Aan de serverkant was het tot nu toe nodig om afzonderlijke, beperkte bestanden te gebruiken implementaties testen. De mogelijkheid om HTTP/3 in nginx te verwerken zal de inzet van servers met HTTP/3-ondersteuning aanzienlijk vereenvoudigen en zal de testimplementatie van het nieuwe protocol toegankelijker maken. De opkomst van standaardondersteuning voor HTTP/3 in nginx wordt verwacht in de 1.17.x-tak voor 6-12 maanden.

Bedenk dat HTTP/3 het gebruik van het QUIC-protocol als transportmiddel voor HTTP/2 standaardiseert. Protocol QUIC (Quick UDP Internet Connections) is sinds 2013 door Google ontwikkeld als alternatief voor de TCP+TLS-combinatie voor het web, waardoor problemen met lange installatie- en onderhandelingstijden voor verbindingen in TCP worden opgelost en vertragingen worden geëlimineerd wanneer pakketten verloren gaan tijdens de gegevensoverdracht. QUIC is een uitbreiding van het UDP-protocol dat multiplexing van meerdere verbindingen ondersteunt en coderingsmethoden biedt die gelijkwaardig zijn aan TLS/SSL.

De belangrijkste kenmerken SNEL:

  • Hoge beveiliging, vergelijkbaar met TLS (in feite biedt QUIC de mogelijkheid om TLS via UDP te gebruiken);
  • Streamintegriteitscontrole om pakketverlies te voorkomen;
  • De mogelijkheid om direct een verbinding tot stand te brengen (0-RTT, in ongeveer 75% van de gevallen kunnen gegevens direct worden verzonden na het verzenden van een verbindingssetuppakket) en zorgen voor minimale vertragingen tussen het verzenden van een verzoek en het ontvangen van een antwoord (RTT, Round Trip Time) ;
  • Gebruik niet hetzelfde volgnummer bij het opnieuw verzenden van een pakket, waardoor u dubbelzinnigheid bij het bepalen van de ontvangen pakketten kunt voorkomen en time-outs kunt verwijderen;
  • Pakketverlies heeft alleen invloed op de bezorging van de bijbehorende stream en stopt niet de bezorging van gegevens in streams die parallel worden verzonden via de huidige verbinding;
  • Foutcorrectietools die vertragingen minimaliseren als gevolg van het opnieuw verzenden van verloren pakketten. Gebruik van speciale foutcorrectiecodes op pakketniveau om situaties te verminderen waarbij verloren pakketgegevens opnieuw moeten worden verzonden.
  • Cryptografische blokgrenzen zijn uitgelijnd met QUIC-pakketgrenzen, waardoor de impact van pakketverliezen op het decoderen van de inhoud van volgende pakketten wordt verminderd;
  • Geen problemen met het blokkeren van de TCP-wachtrij;
  • Verbindings-ID-ondersteuning om de herverbindingstijd voor mobiele clients te verkorten;
  • Mogelijkheid om geavanceerde mechanismen aan te sluiten voor controle over overbelasting van verbindingen;
  • Het gebruik van bandbreedtevoorspellingstechnieken in elke richting om te zorgen voor optimale verzendsnelheden van pakketten, waardoor wordt voorkomen dat er congestie ontstaat waarbij pakketten verloren gaan;
  • Waarneembaar groei prestaties en doorvoer in vergelijking met TCP. Voor videoservices zoals YouTube is aangetoond dat QUIC het opnieuw bufferen van video's met 30% vermindert.
  • Bron: opennet.ru

Voeg een reactie