Mozilla heeft aangekondigd te beginnen met de gefaseerde invoering van de HTTP/3- en QUIC-protocollen in de release van Firefox 88, die gepland staat voor 19 april (oorspronkelijk werd de release op 20 april verwacht, maar volgens het schema is deze met een dag verschoven). In het begin zal de ondersteuning voor HTTP/3 alleen worden geactiveerd voor een klein percentage gebruikers en, als er geen onverwachte problemen optreden, zal deze tegen het einde van mei voor iedereen beschikbaar zijn. In de nachtbouwe en bètaversies was HTTP/3 eind maart standaard ingeschakeld.
Ter herinnering: de implementatie van HTTP/3 in Firefox is gebaseerd op het door Mozilla ontwikkelde neqo-project, dat een clientimplementatie biedt voor de server het QUIC-protocol. De code van de componenten ter ondersteuning van HTTP/3 en QUIC is geschreven in Rust. Voor het beheer van de inschakeling van HTTP/3 in about:config is er een optie "network.http.http3.enabled". In experimentele software is ondersteuning voor HTTP/3 ook toegevoegd aan Chrome en curl, en voor servers is beschikbaar in nginx, evenals in de vorm van een nginx-module en een testserver van Cloudflare. Aan de zijde van websites is de ondersteuning voor HTTP/3 al verzekerd op de servers van Google en Facebook.
Het HTTP/3-protocol bevindt zich momenteel in de fase van een voorlopige specificatie en is nog niet definitief gestandaardiseerd door de IETF. Voor het gebruik van HTTP/3 is ondersteuning aan zowel de client- als serverzijde vereist voor dezelfde versie van de voorlopige QUIC- en HTTP/3-standaard, die wordt opgegeven in de Alt-Svc-header (Firefox ondersteunt voorlopige specificaties van 27 tot 32).
HTTP/3 definieert het gebruik van het QUIC-protocol als transport voor HTTP/2. Het QUIC-protocol (Quick UDP Internet Connections) wordt sinds 2013 ontwikkeld door Google als alternatief voor de combinatie TCP+TLS voor het web, en lost problemen op met lange opstart- en onderhandelingsprocessen in TCP, evenals vertragingen bij pakketverlies tijdens gegevensoverdracht. QUIC is een uitbreiding bovenop het UDP-protocol, ondersteunt multiplexing van meerdere verbindingen en biedt versleutelingsmethoden die gelijkwaardig zijn aan TLS/SSL. In de loop van de ontwikkeling van de IETF-norm zijn er wijzigingen in het protocol aangebracht, wat heeft geleid tot de oprichting van twee parallelle takken, één voor HTTP/3 en de andere ondersteund door Google (Chrome ondersteunt beide versies).
Belangrijkste kenmerken van QUIC:
- Hoge beveiliging, vergelijkbaar met TLS (in wezen biedt QUIC de mogelijkheid om TLS boven UDP te gebruiken);
- Integriteitscontrole van de stream, wat pakketverlies voorkomt;
- De mogelijkheid om onmiddellijk een verbinding op te zetten (0-RTT, in ongeveer 75% van de gevallen kunnen gegevens direct worden verzonden na het versturen van het verbindingsinstallatiepakket) en om minimale vertragingen te garanderen tussen het verzenden van een verzoek en het ontvangen van een antwoord (RTT, Round Trip Time);
- Gebruik van een ander volgnummer voor de opnieuw verzonden pakketten, waardoor verwarring bij de identificatie van ontvangen pakketten wordt vermeden en time-outs worden geëlimineerd;
- Pakketverlies heeft alleen invloed op de aflevering van de bijbehorende stroom en stopt de aflevering van gegevens in de parallelle stromen die via de huidige verbinding worden verzonden;
- Foutcorrectiemechanismen verminderen vertragingen door het opnieuw verzenden van verloren pakketten. Het gebruik van speciale foutcorrectiecodes op het niveau van pakketten om situaties te verkorten die opnieuw verzenden van verloren gegevens vereisen.
- De grenzen van cryptografische blokken zijn afgestemd op de grenzen van QUIC-pakketten, wat de impact van pakketverlies op de decodering van de inhoud van volgende pakketten vermindert.
- Geen problemen met TCP-queue blocking.
- Ondersteuning voor een connectie-ID, waardoor de tijd voor het opnieuw tot stand brengen van een verbinding voor mobiele clients kan worden verkort.
- De mogelijkheid om geavanceerde mechanismen voor congestiecontrole in te schakelen.
- Het gebruik van bandbreedtevoorspellingstechnieken in beide richtingen om een optimale verzendintensiteit van pakketten te waarborgen, en te voorkomen dat het systeem in een overbelastingsstaat terechtkomt waarin pakketverlies optreedt.
- Een significante toename van prestaties en bandbreedte in vergelijking met TCP. Voor videoservices zoals YouTube heeft het gebruik van QUIC geleid tot een vermindering van het aantal herbufferingsoperaties met 30% tijdens het bekijken van video's.
Bron: opennet.ru
