QUIC / HTTP/3
Problem
HTTP/2-Multiplexanforderungen, aber alle Streams teilen sich immer noch eine TCP-Verbindung.
Paketverlust bei TCP kann den Fortschritt aller Streams dieser Verbindung vorübergehend blockieren.
Der Verbindungsaufbau hat auch Latenzkosten.
Lösung — QUIC
QUIC implementiert sicheren Multiplex-Transport über UDP.
Eine QUIC-Verbindung zwischen Browser und Server führt mehrere Streams - zum Beispiel separate HTML-, CSS- und Bildanforderungen und -antworten, die jeweils durch eine Stream-ID identifiziert werden.
UDP-Datagramme können ungeordnet ankommen oder verloren gehen. QUIC fügt nummerierte Pakete, Bestätigungen und die erneute Übertragung verlorener Stream-Daten in neuen Paketen hinzu. Stream-IDs und Byte-Offsets ermöglichen es dem Empfänger, jeden Stream in der Reihenfolge zu rekonstruieren.
HTTP/3 verwendet diese zuverlässigen Streams für Anfragen und Antworten. Wenn Bilddaten verloren gehen, wartet dieser Stream auf die Wiederherstellung, während ein nicht betroffener API-Stream fortgesetzt werden kann.
HTTP/3 ↓ QUIC ↓ UDP ↓ IP
Streams können sich unabhängiger erholen.
Kerngedanke: QUIC verschiebt moderne Transportfunktionen über UDP und vermeidet mehrere Einschränkungen von HTTP-over-TCP.