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.
QUIC řeší dva hlavní nedostatky kombinace TCP + TLS:
QUIC spojuje navazování transportní vrstvy i zabezpečení (TLS 1.3) do jednoho kroku.
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í.
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).
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.
| 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ší.