HTTP/3 – HTTP over QUIC

von Thomas


Erstellt am 14.06.2019


https

Das neue Protokoll, bzw. die neue Version des Netzwerkprotokolls HTTP steht in den Startlöchern. Es wird Version 3 sein, wobei HTTP/2 erst von knapp 40 % der Internetnutzer verwendet wird (Stand Juni 2019).
Da stellt sich einem die Frage – Wieso bereits HTTP Version 3, wenn die meisten Version 2 noch nicht verwenden? Der Hauptgrund liegt darin, dass HTTP/2 noch auf dem Transportprotokoll TCP basiert. TCP ist eine Transportmethode mit viel Protokoll-Overhead. Die transportieren Daten im Internet werden von Tag zu Tag größer, daher ist es nötig Protokolle weiter zu entwickeln.

HTTP/2 und HTTP/3 im vereinfachten Schichtenmodell

Werden die Protokolle im Schichtenmodell verglichen, wird der Unterschied deutlicher.

Anwendung HTTP/2 HTTP/3
Transport TLS QUIC
TCP UDP
Internet IP IP
Netzwerk Ethernet, WI-FI, etc. Ethernet, WI-FI, etc.

HTTP/2 basiert auf dem Transportprotokoll TCP, das durch Handshakes zwischen Client-Server viel Overhead erzeugt. HTTP/3 basiert auf QUIC und nutz UDP als verbindungsloses Transportprotokoll mit bedeutend weniger Overhead. UDP muss keine Verbindung etablieren. Gleichzeitig verschlüsselt QUIC die Daten direkt mit, wodurch der Layer bzgl. TLS wegfällt. Ein weiterer Vorteil ist, dass die Metadaten bei QUIC verschlüsselt werden. TLS hingegen verschlüsselt nur den Payload (Daten).

Arbeitsweise HTTP/2 und HTTP/3

Prinzipiell ist bei HTTP/2 Multiplexing möglich, aber wirkliches asynchrones senden von Daten ist nicht möglich. Verloren gegangene Daten werden neu angefordert und müssen erneut zugestellt werden. Dabei wartet die ganze Übertragung auf das wieder angeforderte Paket. HTTP over QUIC (HTTP3) hingegen kann Anfragen asynchron absetzten und unterwegs verloren gegangene Pakete kompensieren.
QUIC bringt zusätzlich eine neue Identifizierung von Verbindungen mit. Dem Header wird eine 64-Bit-Kennung angehängt, welche netzwerkunabhängig arbeiten kann. Wechselt die Verbindung von einem Mobiltelefon aus dem WLAN in das mobile Netz, wird sie nicht unterbrochen. Die Verbindung ist netzwerkübergreifend. HTTP/2 ist mit TCP auf ein bestimmtes Netzwerk und Port festgelegt ist.

Handshakes HTTP2 und HTTP3

HTTP/2

  • Zusätzlicher SSL-Layer
  • Nur Payload (Daten) ist verschlüsselt
  • Multiplexing von Paketen nur auf Anwendungsebene
  • Adressierung über IP-Adresse und Port

HTTP/3

  • TLS1.3 per default in QUIC implementiert
  • Alle Daten (Payload und Metadaten) verschlüsselt
  • Multiplexing auf Transportebene
  • Adressierung anhand einer 64-Bit-Kennung

Wann kann HTTP over QUIC erwartet werden?

Die QUIC-Arbeitsgruppe innerhalb der IETF ist kurz davor, den 20. Entwurf zu veröffentlichen (Stand Juni 2019). Der Standard sollte Ende diesen Jahres (2019) fertig sein. Erst danach ist damit zu rechnen, dass Clientsoftware wie (Mozilla Firefox, Google Chrome, etc.) das Protokoll implementieren.