Společnost Mozilla oznámila svůj záměr zahájit postupné zapínání protokolů HTTP/3 a QUIC ve verzi Firefox 88, plánované na 19. dubna (původně se očekávalo, že vydání proběhne 20. dubna, ale podle rozvrhu se posune o jeden den). Zpočátku bude podpora HTTP/3 aktivována pouze pro malé procento uživatelů a pokud nenastanou nečekané problémy, bude rozšířena na všechny do konce května. V nočních verzích a beta verzích byl HTTP/3 standardně zapnut na konci března.
Připomínáme, že implementace HTTP/3 v prohlížeči Firefox je založena na projektu neqo, který rozvíjí společnost Mozilla a poskytuje implementaci klienta a serveru pro protokol QUIC. Kód komponentů pro podporu HTTP/3 a QUIC je napsán v jazyce Rust. Pro správu zapínání HTTP/3 v about:config je určena volba "network.http.http3.enabled". Do experimentálního software byla také přidána podpora HTTP/3 do prohlížeče Chrome a curl, a pro servery je dostupná v nginx, stejně jako ve formě nginx modulu a testovacího serveru od společnosti Cloudflare. Na straně webů je podpora HTTP/3 již zajištěna na serverech Google a Facebook.
Protokol HTTP/3 je zatím ve fázi návrhu a nebyl ještě definitivně standardizován v IETF. Pro použití HTTP/3 je vyžadována podpora na straně klienta a serveru shodného verze návrhu protokolu QUIC a HTTP/3, která je uvedena v hlavičce Alt-Svc (Firefox podporuje návrhy specifikací od 27 do 32).
HTTP/3 definuje použítí protokolu QUIC jako transport pro HTTP/2. Protokol QUIC (Quick UDP Internet Connections) se od roku 2013 vyvíjí společností Google jako alternativa k kombinaci TCP+TLS pro Web, řešící problémy s vysokou latencí při navazování a vyjednávání spojení v TCP a eliminující zpoždění při ztrátě paketů během přenosu dat. QUIC představuje nadstavbu nad protokolem UDP, která podporuje multiplexování více připojení a poskytuje šifrovací metody ekvivalentní TLS/SSL. Během vývoje standardu v IETF byly do protokolu provedeny změny, což vedlo k vytvoření dvou paralelně existujících větví, jedné pro HTTP/3 a druhé, která je podporována Googlem (Chrome podporuje obě varianty).
Hlavní vlastnosti QUIC:
- Vysoká bezpečnost, srovnatelná s TLS (v podstatě QUIC poskytuje možnost použití TLS nad UDP);
- Kontrola integrity toku, která zabraňuje ztrátě paketů;
- Možnost okamžitého navázání připojení (0-RTT, v přibližně 75 % případů lze data odesílat ihned po odeslání balíčku pro navázání připojení) a zajištění minimálních zpoždění mezi odesláním žádosti a příjmem odpovědi (RTT, Round Trip Time);
- Použití při opětovném přenosu paketu jiného pořadového čísla, což umožňuje vyhnout se nejasnostem při určení přijatých paketů a zbavit se časových limitů;
- Ztráta paketu ovlivňuje doručení pouze souvisejícího toku a nezastavuje doručení dat v paralelně přenášených tocích přes aktuální spojení;
- Nástroje pro opravu chyb, které minimalizují zpoždění způsobené opětovným přenosem ztracených paketů. Využití speciálních chybových kódů na úrovni paketů pro snížení situací, které vyžadují opětovný přenos dat ztraceného paketu.
- Hranice kryptografických bloků jsou sladěny s hranicemi paketů QUIC, což snižuje dopad ztráty paketů na dekódování obsahu následujících paketů;
- Žádné problémy s blokováním front TCP;
- Podpora identifikátoru spojení, která snižuje čas potřebný k opětovnému navázání spojení pro mobilní klienty;
- Možnost připojení rozšířených mechanismů řízení přetížení spojení;
- Použití techniky predikce šířky pásma v každém směru pro zajištění optimální intenzity odesílání paketů, což zabraňuje přechodu do stavu přetížení, ve kterém dochází ke ztrátě paketů;
- Výrazný nárůst výkonu a propustnosti ve srovnání s TCP. Pro video služby, jako je YouTube, použití QUIC ukázalo snížení operací opětovného buffrování při sledování videa o 30%.
Zdroj: opennet.ru
