- Der erste Patch zur offiziellen Integration des QUIC-Protokolls in den Linux-Kernel wurde eingereicht
- Ziel ist es, die Grenzen des bestehenden TCP zu verbessern, etwa Latenz, Head-of-Line-Blocking und durch Zwischenkomponenten verursachte Protokoll-Erstarrung
- QUIC basiert auf UDP, unterstützt Multistreaming und Ende-zu-Ende-Verschlüsselung; bei einer Einführung im Kernel steigt das Potenzial zur Nutzung auf breiteren Plattformen und mit mehr Hardware
- Die Leistung der ersten Kernel-Implementierung wurde zwar niedriger als bei bestehendem TCP und Kernel-TLS gemessen, doch durch künftiges Hardware-Offloading und Optimierungen sind Verbesserungen zu erwarten
- Derzeit wird die Unterstützung in Samba, kernelbasiertem SMB/NFS, curl und anderen Projekten intensiv diskutiert, allerdings dürfte es bis zur Aufnahme in den Mainline-Kernel noch dauern
Hintergrund zur Entstehung von QUIC und die Grenzen von TCP
- QUIC wurde entwickelt, um verschiedene Probleme von TCP im heutigen Internet zu lösen
- Die durch den 3-Wege-Handshake entstehende Verzögerung beim Verbindungsaufbau, fehlende gute Multistream-Unterstützung und Head-of-Line-Blocking bei Paketverlust verschlechtern die Web-Erfahrung
- TCP-Metadaten werden unverschlüsselt übertragen, wodurch das Risiko von Informationsabfluss besteht; zudem filtern Middleboxes (Zwischengeräte) den Traffic anhand von Verbindungsinformationen, was zur Protokoll-Erstarrung (ossification) führt
- Auch Verbesserungsversuche bei TCP, etwa Multipath TCP, funktionieren in der Praxis oft nur dann zuverlässig, wenn sie sich als bestehendes TCP tarnen
Eigenschaften von QUIC und technische Vorteile
- QUIC läuft über UDP und kann Verbindungen schnell aufbauen, ohne dabei einen separaten 3-Wege-Handshake zu benötigen
- Das Übertragungsdesign mit Multistreaming sorgt dafür, dass Paketverlust nicht den gesamten Stream beeinträchtigt
- QUIC-bezogene Transportdaten sind stets Ende-zu-Ende verschlüsselt (TLS-basiert), sodass Zwischengeräte nicht auf interne Nachrichten zugreifen können
- In Netzwerkumgebungen, in denen UDP-Pakete passieren können, kann in der Regel auch QUIC normal arbeiten
Überblick über den QUIC-Integrationspatch im Linux-Kernel
- Im eingereichten Patch wird mit IPPROTO_QUIC ein neuer Protokolltyp eingeführt, sodass der bestehende socket()-Systemaufruf genutzt werden kann
- Ähnlich wie bei TCP können Aufrufe wie bind(), connect(), listen() und accept() verwendet werden, allerdings unterscheidet sich die weitere Verarbeitung
- TLS-Sitzungsverwaltung sowie Authentifizierungs- und Verschlüsselungsprozesse werden im Userspace verarbeitet; nach dem Verbindungsaufbau muss auf beiden Seiten der TLS-Handshake abgeschlossen werden, bevor Daten gesendet und empfangen werden können
- Nach der ersten Verbindung kann das Ergebnis der TLS-Aushandlung zwischengespeichert werden, wodurch erneute Verbindungen zwischen zwei Systemen deutlich beschleunigt werden
Herausforderungen bei der Leistung und Ausblick
- Die eingereichte QUIC-Implementierung im Kernel liegt bei der Leistung derzeit noch hinter bestehendem Kernel-TLS und TCP zurück
- Im Vergleich zu In-Kernel-TLS liegt der Durchsatz bei weniger als einem Drittel; selbst bei deaktivierter Verschlüsselung ist der Durchsatz gegenüber TCP um bis zu den Faktor 4 geringer
- Als Ursachen werden fehlende Unterstützung für Segmentation Offloading, zusätzliche Datenkopien im Sendepfad und die Header-Verschlüsselung genannt
- Künftig werden Leistungsverbesserungen erwartet, wenn Hardware-Offloading hinzukommt und die In-Kernel-Implementierung weiter optimiert wird
Stand der Einführung und weiterer Ausblick
- In verschiedenen Projekten wird In-Kernel-QUIC-Unterstützung intensiv diskutiert, darunter Samba-Server/Client, Kernel-SMB- und NFS-Dateisysteme sowie curl
- Der Patch umfasst rund 9.000 Zeilen und enthält derzeit nur Low-Level-Unterstützungscode. Die vollständige Implementierung ist in weiteren Patches angekündigt
- Die Diskussionen zu Code-Review und Merge haben gerade erst begonnen, daher dürfte es bis zum praktischen Einsatz noch dauern
- Wenn man den jüngsten Fall des Homa-Protokolls betrachtet, das über neun Monate hinweg elf Einreichungen für die Kernel-Integration benötigte, ist auch bei QUIC ein Einzug in den Mainline-Kernel wohl erst ab 2026 zu erwarten
Noch keine Kommentare.