Was ist QUIC?

Protokoll der Transportschicht, das über UDP läuft. Es integriert die Verschlüsselung nach TLS 1.3, und Verbindungsaufbau und Schlüsselaustausch erfolgen zusammen in einem Umlauf. Es multiplext mehrere Streams in einer Verbindung, und der Verlust eines Pakets in einem Stream hält die anderen nicht auf. Es ist die Grundlage von HTTP/3 und wurde 2021 von der IETF als RFC 9000 standardisiert.

Japanische Bezeichnung: QUIC

„QUIC“ kommt in 3 Übungsfragen aus 2 Themen vor, z. B. Grundlagen der Computernetzwerke, Grundlagen der Webtechnologien.

Fachgebiet: Grundlagen der Computernetzwerke

Warum auf UDP aufbauen

Ein neues Transportprotokoll direkt auf IP würde von vielen NAT-Geräten und Firewalls unterwegs blockiert, die Pakete unbekannter Protokolle nicht durchlassen. TCP ist zudem im Betriebssystemkernel implementiert, sodass Verbesserungen lange brauchen, bis sie überall auf den Geräten ankommen. QUIC läuft auf UDP, das fast überall durchkommt, und arbeitet in Anwendungen und Bibliotheken, sodass es so schnell verbessert werden kann, wie Browser aktualisiert werden. Außerdem verschlüsselt es den größten Teil seines Headers, damit Geräte unterwegs sich nicht auf dessen Details verlassen und künftige Änderungen blockieren.

Schneller Verbindungsaufbau und Multiplexing von Streams

Bei TCP mit TLS folgt der TLS-Handshake auf den Drei-Wege-Handschlag von TCP; QUIC fasst beide zusammen, sodass nach einem Umlauf Daten fließen können. An einen Server, mit dem bereits eine Verbindung bestand, kann es schon im allerersten Paket Daten senden (0-RTT), allerdings nur für Anfragen, deren Wiederholung unschädlich ist. HTTP/2 überträgt mehrere Streams über eine TCP-Verbindung, sodass ein einziges verlorenes Paket alle Streams aufhält; QUIC ordnet Daten pro Stream, sodass ein Verlust nur den betroffenen Stream trifft.

Verbindungs-IDs und Verlustbehandlung

Eine TCP-Verbindung wird durch IP-Adresse und Portnummer identifiziert und bricht daher ab, wenn ein Smartphone vom WLAN ins Mobilfunknetz wechselt. QUIC identifiziert Verbindungen über Verbindungs-IDs, sodass eine Verbindung einen Adresswechsel überstehen kann (Verbindungsmigration). Verlusterkennung, Sendewiederholung und Überlastkontrolle finden innerhalb von QUIC statt, und weil die Nummer eines Pakets nie wiederverwendet wird, lässt sich eine Wiederholung vom Original unterscheiden und die RTT genau messen. Andererseits verbraucht QUIC tendenziell mehr CPU-Leistung als TCP, das von umfangreicher Unterstützung durch Kernel und Netzwerkkarten profitiert.

Jetzt üben: Fragen zu QUIC

Welche Beschreibung von UDP ist richtig?

  1. AEs baut keine Verbindung auf und steuert weder Sendewiederholung noch Reihenfolge, daher ist der Header klein, und vor dem Senden entsteht keine Wartezeit
  2. BEs baut eine Verbindung auf, wiederholt nicht angekommene Daten und bringt sie beim Empfänger in die richtige Reihenfolge
  3. CEs stellt Daten ohne IP-Adressen nur anhand von MAC-Adressen an das Zielgerät zu
Antwort und Erläuterung anzeigen

Antwort: A. Es baut keine Verbindung auf und steuert weder Sendewiederholung noch Reihenfolge, daher ist der Header klein, und vor dem Senden entsteht keine Wartezeit

UDP ist ein schlankes Protokoll, das IP lediglich um Portnummern und eine einfache Fehlerprüfung (Prüfsumme) ergänzt; sein Header ist 8 Byte groß (der von TCP ohne Optionen 20 Byte). Ohne Verbindungsaufbau, Empfangsbestätigung und Sendewiederholung eignet es sich für Sprachanrufe und Live-Video, bei denen ein kleiner Verlust besser ist als Verzögerung, und für DNS, das mit einer Anfrage und einer Antwort auskommt. Wird Zuverlässigkeit benötigt, sorgt die Anwendung dafür; QUIC, das HTTP/3 verwendet, implementiert zum Beispiel Sendewiederholung und Verschlüsselung auf UDP. Verbindungsaufbau, Sendewiederholung und Reihenfolgesteuerung leistet TCP.

Ein Client baut zu einem Webserver mit einer Umlaufzeit (RTT) von 100 ms eine neue HTTPS-Verbindung auf (TLS 1.3 über TCP). Wie lange dauert es ungefähr, bis die Antwort auf die erste Anfrage einzutreffen beginnt? Die DNS-Namensauflösung ist bereits erledigt; Verarbeitungszeit des Servers und Übertragungszeit der Daten werden vernachlässigt.

  1. AEtwa 100 ms
  2. BEtwa 300 ms
  3. CEtwa 200 ms
Antwort und Erläuterung anzeigen

Antwort: B. Etwa 300 ms

Zuerst braucht der TCP-Drei-Wege-Handschlag einen Umlauf (der Client kann seine erste TLS-Nachricht zusammen mit dem letzten ACK senden). Dann braucht der Handshake von TLS 1.3 einen Umlauf und anschließend die HTTP-Anfrage mit Antwort einen weiteren, zusammen drei Umläufe: 3 × 100 = 300 ms. Mit TLS 1.2 braucht der Schlüsselaustausch zwei Umläufe, insgesamt also vier Umläufe bzw. 400 ms. Diese Wartezeit hängt von der Zahl der RTTs ab, die durch die Entfernung bestimmt sind; mehr Bandbreite verkürzt sie daher nicht. QUIC, das HTTP/3 verwendet, fasst den Transport- und den kryptografischen Handshake zu einem Umlauf zusammen und bietet bei erneuten Verbindungen außerdem die Möglichkeit, schon im ersten Umlauf Daten zu senden (0-RTT).

Häufige Fragen

Was ist der Unterschied zwischen QUIC und TCP?

Beide bieten zuverlässige, geordnete Zustellung, aber QUIC läuft über UDP und integriert die Verschlüsselung von TLS 1.3. Es baut Verbindungen schneller auf (in einem Umlauf, bei Wiederaufnahme ohne Umlauf), überträgt mehrere unabhängige Streams in einer Verbindung und hält eine Verbindung aufrecht, wenn sich die IP-Adresse ändert.

Wie hängen HTTP/3 und QUIC zusammen?

HTTP/3 ist die HTTP-Version, die über QUIC läuft. Das Multiplexing von Streams und die Verschlüsselung, die HTTP/2 von TCP und TLS erhielt, stellt stattdessen QUIC bereit; deshalb nutzt HTTP/3-Verkehr normalerweise UDP-Port 443.

„QUIC“ in den Erläuterungen

Fragen mit „QUIC“ (3)

  1. Welche Beschreibung von UDP ist richtig?
  2. Ein Client baut zu einem Webserver mit einer Umlaufzeit (RTT) von 100 ms eine neue HTTPS-Verbindung auf (TLS 1.3 über TCP). Wie lange dauert es ungefähr, bis die Antwort auf die erste Anfrage einzutreffen beginnt? Die DNS-Namensauflösung ist bereits erledigt; Verarbeitungszeit des Servers und Übertragungszeit der Daten werden vernachlässigt.
  3. Welche Aussage über HTTP/2 und HTTP/3 ist richtig?

Verwandte Begriffe

TCP (Transmission Control Protocol) HTTP (Hypertext Transfer Protocol) UDP (User Datagram Protocol) DNS (Domain Name System) IP (Internet Protocol) Portnummer ARQ (automatische Wiederholungsanfrage) RTT (Round-Trip-Time) HTTPS TLS (Transport Layer Security)

Zur Glossarübersicht