Obsah
QUIC (Quick UDP Internet Connections)
QUIC je moderní síťový transportní protokol, který zásadně zrychluje a zabezpečuje internetovou komunikaci. Na rozdíl od tradičního webu, který stojí na protokolu TCP, QUIC využívá jako svůj základ UDP (User Datagram Protocol).
Původně byl vyvinut společností Google, dnes je standardizován jako RFC 9000 a tvoří základ protokolu HTTP/3.
Proč vznikl QUIC? (Řešení problémů TCP)
QUIC řeší dva hlavní nedostatky kombinace TCP + TLS:
- Vysoká latence při navazování (Handshake): U TCP + TLS se musí nejprve navázat TCP spojení a až poté TLS. To vyžaduje několik cest tam a zpět (RTT).
- Head-of-Line Blocking (HoL): Pokud se u TCP ztratí jeden paket, celé spojení se zastaví a čeká na jeho znovudoručení, i když ostatní data (např. jiné obrázky na stránce) už dorazila.
Klíčové vlastnosti
1. Rychlé navázání spojení (0-RTT a 1-RTT)
QUIC spojuje navazování transportní vrstvy i zabezpečení (TLS 1.3) do jednoho kroku.
- Při prvním připojení stačí 1 RTT.
- Při opakovaném připojení podporuje 0-RTT, tedy odeslání dat okamžitě.
2. Multiplexing bez blokování (No HoL Blocking)
V rámci jednoho QUIC spojení může běžet více datových proudů (streamů) nezávisle na sobě. Pokud se ztratí paket patřící jednomu obrázku, ostatní proudy dat (text, jiné obrázky) pokračují v načítání bez přerušení.
3. Migrace připojení (Connection Migration)
V TCP je spojení definováno IP adresami a porty. Pokud přepnete z Wi-Fi na LTE, spojení se rozpadne. QUIC používá Connection ID. Spojení tak zůstane aktivní, i když se uživateli změní IP adresa (např. při chůzi z budovy na ulici).
4. Vždy šifrovaný
Na rozdíl od TCP, kde je šifrování (TLS) volitelný doplněk, QUIC má TLS 1.3 integrováno přímo v sobě. Téměř celá hlavička protokolu je šifrovaná, což brání síťovým prvkům v neoprávněném zasahování do provozu.
Srovnání: TCP vs. QUIC
| Vlastnost | TCP + TLS 1.2/1.3 | QUIC (HTTP/3) |
|---|---|---|
| Základní protokol | TCP | UDP |
| Navázání (Handshake) | 2 až 3 RTT | 0 až 1 RTT |
| Odolnost proti ztrátě | Celé spojení čeká (HoL) | Čeká jen poškozený stream |
| Změna IP adresy | Spojení se rozpadne | Spojení plynule pokračuje |
| Zabezpečení | Volitelné (TLS) | Povinné (integrované) |
Zajímavost: Ačkoliv QUIC běží nad „nespolehlivým“ UDP, sám o sobě implementuje vlastní mechanismy pro potvrzování doručení a kontrolu zahlcení, takže je stejně spolehlivý jako TCP, ale mnohem pružnější.
