QUIC
QUIC ist ein Netzwerkprotokoll, das gegenüber seinen Vorgängern insbesondere eine höhere Geschwindigkeit sowie konsequente Verschlüsselung auch von Metadaten mit sich bringt.
QUIC | |
---|---|
Familie: | Internetprotokollfamilie |
Einsatzfeld: | Datenübertragung (Hypertext u. a.) auf Anwendungsschicht |
aufbauend auf | UDP |
Einführung: | Mai 2021 |
entwickelt aus | SPDY |
Entwickler: | Google LLC, IETF |
Internet-Standards | |
RFC 8999 | Versionsunabhängige Eigenschaften |
RFC 9000 | Hauptdefinition |
RFC 9001 | Benutzung von TLS |
RFC 9002 | Verlusterkennung und Staukontrolle |
Anwendung | QUIC | ||||
Transport | UDP | ||||
Internet | IP (IPv4, IPv6) | ||||
Netzzugang | Ethernet | Token Bus |
Token Ring |
FDDI | … |
Es wird von HTTP/3 verwendet. Auch für andere Protokolle wie beispielsweise DNS over QUIC (DoQ) kann es als Basis dienen.[1]
Geschichte
QUIC wurde ursprünglich von Google entwickelt. Der Name wurde ursprünglich als Akronym für "Quick UDP Internet Connections" vorgeschlagen,[2] wird jedoch nicht verwendet.[3] Seit Februar 2017 arbeitete die Internet Engineering Task Force (IETF) an einer Standardisierung des QUIC-Protokolles.[4][5] Der Standard wurde im Mai 2021 als RFC 8999, RFC 9000, RFC 9001 und RFC 9002 veröffentlicht.[3]
Hintergrund und Eigenschaften
Als Weiterentwicklung von HTTP hat Google bereits das Protokoll SPDY ausgearbeitet, dessen Neuerungen aber aufgrund von Beschränkungen des darunterliegenden Transmission Control Protocol nicht in vollem Umfang genutzt werden können. Diese Beschränkungen soll das auf UDP basierende QUIC aufheben.[6]
Die ursprüngliche Form von QUIC wurde von Google am 20. Juli 2016 zur Standardisierung eingebracht.[7]
QUIC schreibt vor, dass die gesendeten Daten mit TLS 1.3 verschlüsselt übertragen werden.[8] Es kommen zwei unterschiedliche Header zum Einsatz. Der erste Header enthält mehr Informationen und dient dem Verbindungsaufbau. Sobald die Verbindung hergestellt wurde, wird der kürzere Header verwendet. Bei einem bekannten Host wird die Verschlüsselung bei einer erneuten Verbindungsherstellung zudem nicht neu ausgehandelt, sondern ab dem ersten Paket verschlüsselt übertragen. Da der Header zu einem großen Teil verschlüsselt wird, sind – im Vergleich zu älteren Protokollen – weniger Metadaten aus dem Header auslesbar. Hierdurch wird einerseits die Privatsphäre der Nutzer besser gewahrt, aber anderseits das Netzwerk-Monitoring und -Management erschwert.[9]
QUIC bietet höherliegenden Schichten gemultiplexte Verbindungen an, so dass mehrere Datenströme unabhängig voneinander empfangen und gesendet werden können.[3] Dies kann von HTTP/2 genutzt werden, HTTP/3 wird sogar immer über QUIC genutzt.[10] Im Gegensatz dazu kann es bei Multiplexing über TCP zu Verzögerungen auf Grund von Head-of-Line-Blocking aller gemultiplexten Streams kommen, wenn eines der TCP-Pakete verzögert wird oder verloren geht.
Zu den weiteren Zielen von QUIC gehören eine reduzierte Verbindungs- und Transportlatenz sowie eine Geschwindigkeitsabschätzung in beide Richtungen, um Überlastungen zu vermeiden. Außerdem werden die Algorithmen zur Staukontrolle an beiden Endpunkten in den User-Space (anstatt Kernel-Space) verlagert, was eine schnellere Verbesserung dieser Algorithmen ermöglichen soll. Zusätzlich kann das Protokoll mit einer Vorwärtsfehlerkorrektur (FEC) versehen werden, um die Leistung bei zu erwartenden Fehlern weiter zu verbessern, was als nächster Schritt in der Evolution des Protokolls angesehen wird.
Seit Anfang 2021 sind die grundlegenden Protokollspezifikationen von QUICv1 standardisiert. Zu den wichtigsten weiterhin diskutierten vielfältigen Erweiterungen gehört Multipath, also – analog zu Multipath TCP (MPTCP) – der parallele Verbindungsaufbau zwischen Endgeräten und einem netzseitigen Server über mehrere (z. B. leitungsgebundene und drahtlose) Pfade.[11]
Unterstützung
QUIC muss von der Anwendung unterstützt werden. Der erste Browser, der clientseitig QUIC unterstützt, war Google Chrome ab Version 29.[12] Beispielimplementierungen für Client und Server finden sich im Repository von Chromium. Hierbei handelt es sich allerdings noch um die ursprünglich von Google implementierte Variante. Ab Version 72 hat auch Firefox experimentelle Unterstützung für die vom IETF entwickelte Version implementiert.[13]
Im Oktober 2020 gab Facebook bekannt,[14] dass es sowohl seine Apps auf Android und iOS als auch seine Server-Infrastruktur auf QUIC umgestellt habe und mittlerweile 75 % seines Internet-Datenverkehrs darüber erfolge. Für die Benutzer ergäben sich daraus eindeutig messbare Verbesserungen u. a. hinsichtlich Fehlerraten und Latenzzeiten.
Weblinks
- HTTP/3 explained freies und offenes Buch über http/3 und QUIC in verschiedenen Sprachen
- Revolution in den Tiefen des Internets
Einzelnachweise
- Monika Ermert: Internetbeschleuniger: Die IETF lässt das QUIC-Protokoll vom Stapel. In: heise online. 1. Juni 2021, abgerufen am 1. Juni 2021.
- QUIC: Design Document and Specification Rationale. Jim Roskind, Chromium Contributor.
- Sebastian Grüner: Quic ist offizieller Internet-Standard. In: golem.de. 28. Mai 2021, abgerufen am 28. Mai 2021.
- QUIC Workgroup. Abgerufen am 5. April 2017.
- Monika Ermert: QUIC kommt quicker: IETF bringt neues Internet-Transportprotokoll voran. Heise, 5. April 2017, abgerufen am 5. April 2017.
- Experimenting with QUIC. In: Chromium Blog. Google, 27. Juni 2013, abgerufen am 29. Juni 2013 (englisch).
- IETF-96: QUIC. 20. Juli 2016, abgerufen am 10. Dezember 2016 (englisch).
- M. Thomson, S. Turner: Using Transport Layer Security (TLS) to Secure QUIC. (txt) IETF, 13. März 2017, abgerufen am 5. April 2017 (englisch).
- M. Kuehlewind, B. Trammell, D. Druta: Manageability of the QUIC Transport Protocol. (txt) IETF, 9. März 2017, abgerufen am 5. April 2017 (englisch).
- Sebastian Grüner: HTTP über Quic wird zu HTTP/3. In: golem.de. 12. November 2018, abgerufen am 29. Mai 2021.
- heise online: IETF-Vorsitzender im Interview: Lars Eggert über das QUIC-Protokoll. Abgerufen am 6. Mai 2021.
- Christian Kirsch: Google experimentiert mit UDP fürs Web. In: iX. Heise, 28. Juni 2013, abgerufen am 29. Juni 2013.
- Sebastian Grüner: Firefox Nightly unterstützt HTTP/3-Experimente. In: Golem.de. Computec Media GmbH, 6. November 2019, abgerufen am 15. November 2019.
- Matt Joras, Yang Chi: How Facebook is bringing QUIC to billions. 21. Oktober 2020, abgerufen am 23. Oktober 2020.