Nachtelijke builds van Firefox ondersteunen nu HTTP/3

В nachtelijke opbouw Firefox, dat de basis zal vormen voor de release van Firefox 72, gepland voor 7 januari, toegevoegd Ondersteuning voor HTTP/3-protocol. Standaard is HTTP/3 uitgeschakeld en moet de optie “network.http.http3.enabled” worden geactiveerd in about:config.

HTTP/3-ondersteuning in Firefox is gebaseerd op een project ontwikkeld door Mozilla nee, dat een client- en serverimplementatie biedt voor het QUIC-protocol. De componentcode voor HTTP/3- en QUIC-ondersteuning is geschreven in Rust.
Vanuit clientsoftware is er ook al experimentele ondersteuning voor HTTP/3 toegevoegd in Chrome en curl, en voor servers is het beschikbaar in de vorm модуля voor nginx en testserver bibliotheek gebaseerd quiche (implementatie QUIC en HTTP/3 in Rust van Cloudflare). Om de werking van HTTP/3-clients te testen gelanceerd verschillende testsites, waarvan de meeste nog niet correct openen in Firefox (HTTP/3 bevindt zich in de fase conceptspecificatie en is niet volledig gestandaardiseerd).

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