Mozilla oznámila svůj záměr zahájit postupné zavádění HTTP/3 a QUIC s vydáním Firefoxu 88, naplánovaným na 19. dubna (původně se očekávalo vydání 20. dubna, ale soudě podle plánu bude o jeden den posunuto zpět). Podpora HTTP/3 bude zpočátku povolena pouze pro malé procento uživatelů a s výjimkou neočekávaných problémů bude do konce května zpřístupněna všem. V nočních sestaveních a beta verzích byl HTTP/3 standardně povolen na konci března.
Pro připomenutí, implementace HTTP/3 ve Firefoxu je založena na projektu neqo vyvinutém společností Mozilla, který poskytuje klientskou implementaci a server pro protokol QUIC. Kód pro komponenty podporující HTTP/3 a QUIC je napsán v Rustu. Pro povolení HTTP/3 je v souboru about:config k dispozici možnost „network.http.http3.enabled“. Experimentální podpora HTTP/3 byla také přidána do Chromu a Curlu pro klientský software a servery Je k dispozici v platformě Nginx a také jako modul Nginx a testovací server od Cloudflare. Na straně webových stránek je podpora HTTP/3 již povolena na serverech Google a Facebooku.
Protokol HTTP/3 je stále ve fázi návrhu specifikace a ještě nebyl plně standardizován IETF. HTTP/3 vyžaduje podporu klienta a serveru pro stejnou verzi konceptu QUIC standardu a HTTP/3, která je uvedena v záhlaví Alt-Svc (Firefox podporuje koncepty specifikací 27 až 32).
HTTP/3 definuje použití protokolu QUIC jako přenos pro HTTP/2. Protokol QUIC (Quick UDP Internet Connections) vyvíjí Google od roku 2013 jako alternativu ke kombinaci TCP+TLS pro web, řeší problémy s dlouhými časy nastavování a vyjednávání pro připojení v TCP a odstraňuje zpoždění při ztrátě paketů během dat. převod. QUIC je rozšíření protokolu UDP, které podporuje multiplexování více připojení a poskytuje metody šifrování ekvivalentní TLS/SSL. Během vývoje standardu IETF byly provedeny změny protokolu, které vedly ke vzniku dvou paralelních větví, jedné pro HTTP/3 a druhé podporované Googlem (Chrome podporuje obě možnosti).
Klíčové vlastnosti QUIC:
- Vysoká bezpečnost podobná TLS (v podstatě QUIC poskytuje možnost používat TLS přes UDP);
- Řízení integrity toku, zabraňující ztrátě paketů;
- Schopnost okamžitě navázat spojení (0-RTT, v přibližně 75 % případů lze data přenést ihned po odeslání paketu nastavení spojení) a poskytnout minimální prodlevy mezi odesláním požadavku a přijetím odpovědi (RTT, Round Trip Time);
- Použití jiného sekvenčního čísla při opakovaném přenosu paketu, což zabrání nejednoznačnosti při identifikaci přijatých paketů a zbaví se časových limitů;
- Ztráta paketu ovlivní pouze doručení s ním spojeného proudu a nezastaví doručování dat v paralelních proudech přenášených prostřednictvím aktuálního připojení;
- Funkce opravy chyb, které minimalizují zpoždění kvůli opakovanému přenosu ztracených paketů. Použití speciálních kódů pro opravu chyb na úrovni paketů ke snížení situací vyžadujících opakovaný přenos ztracených paketových dat.
- Hranice kryptografických bloků jsou zarovnány s hranicemi paketů QUIC, což snižuje dopad ztrát paketů na dekódování obsahu následujících paketů;
- Žádné problémy s blokováním fronty TCP;
- Podpora pro identifikátor připojení, který zkracuje dobu potřebnou k vytvoření opětovného připojení pro mobilní klienty;
- Možnost připojení pokročilých mechanismů řízení přetížení připojení;
- Využívá techniky předpovědi propustnosti v jednotlivých směrech, aby zajistil, že pakety budou odesílány optimální rychlostí, čímž se zabrání jejich zahlcení a ztrátě paketů;
- Výrazné zvýšení výkonu a propustnosti ve srovnání s TCP. U video služeb, jako je YouTube, bylo prokázáno, že QUIC snižuje operace opětovného vyrovnávací paměti při sledování videí o 30 %.
Zdroj: opennet.ru
