In experimentelle Builds Unterstützung für das HTTP/3-Protokoll, das eine Schnittstelle bereitstellt, um HTTP über das QUIC-Protokoll zu betreiben. Das QUIC-Protokoll selbst wurde vor fünf Jahren in den Browser integriert und wird seitdem zur Optimierung der Nutzung von Google-Diensten eingesetzt. Dabei unterscheidet sich die in Chrome verwendete QUIC-Variante von Google in einigen Details von der Variante aus IETF, aber nun sind die Implementierungen synchronisiert.
HTTP/3 standardisiert die Nutzung von QUIC als Transportprotokoll für HTTP/2. Um HTTP/3 und die QUIC-Variante aus der IETF-Spezifikationen zu aktivieren, muss Chrome mit den Optionen „—enable-quic —quic-version=h3-23“ gestartet werden; danach wird beim Öffnen der Testseite im Netzwerkinspektormodus der Entwicklertools die Aktivität über HTTP/3 als „http/2+quic/99“ angezeigt.
Zur Erinnerung, das Protokoll (Quick UDP Internet Connections) wird seit 2013 von Google als Alternative zum TCP+TLS-Bündel für das Web entwickelt; es löst das Problem der langen Verbindungsaufbau- und Aushandlungszeiten bei TCP und eliminiert Verzögerungen bei Paketverlusten während der Datenübertragung. QUIC ist eine Erweiterung des UDP-Protokolls, die die Multiplexierung mehrerer Verbindungen unterstützt und Verschlüsselungsmethoden bietet, die TLS/SSL entsprechen. Das betreffende Protokoll ist bereits in die Serverinfrastruktur von Google integriert, Teil von Chrome, wird aktiviert für Firefox und findet umfangreiche Anwendung zur Bearbeitung von Clientanfragen auf Google-Servern.
Haupt- QUIC:
- Hohe Sicherheit, vergleichbar mit TLS (im Grunde ermöglicht QUIC die Verwendung von TLS über UDP);
- Kontrolle der Integrität des Datenstroms, um Paketverluste zu verhindern;
- Die Möglichkeit, eine Verbindung sofort aufzubauen (0-RTT, in etwa 75 % der Fälle können Daten sofort nach dem Senden des Verbindungsaufbaus übertragen werden) und minimale Verzögerungen zwischen der Anfrage und dem Erhalt einer Antwort (RTT, Round Trip Time) zu gewährleisten;
- Die Wiederverwendung der gleichen Sequenznummer bei der erneuten Übertragung von Paketen zu vermeiden, um Mehrdeutigkeiten bei der Identifizierung empfangener Pakete zu beseitigen und Zeitüberschreitungen zu vermeiden;
- Paketverluste beeinflussen nur den damit verbundenen Datenstrom und stoppen nicht die Datenübertragung in parallel über die aktuelle Verbindung gesendeten Datenströmen;
- Fehlerkorrekturmaßnahmen, die Verzögerungen aufgrund der erneuten Übertragung verlorener Pakete minimieren. Verwendung spezieller Fehlerkorrekturcodes auf Paketeebene, um Situationen zu reduzieren, die eine erneute Übertragung der Daten des verlorenen Pakets erfordern.
- Die kryptografischen Blockgrenzen sind mit den QUIC-Paketgrenzen ausgerichtet, was den Einfluss von Paketverlusten auf die Dekodierung des Inhalts nachfolgender Pakete verringert;
- Keine Probleme mit der Blockierung von TCP-Warteschlangen;
- Unterstützung einer Verbindungs-ID, die die Zeit für die Wiederherstellung einer Verbindung für mobile Clients reduziert;
- Die Möglichkeit, erweiterte Mechanismen zur Überlaststeuerung der Verbindung zu integrieren;
- Einsatz von Bandbreitenvorhersagetechniken in jede Richtung, um die optimale Intensität der Paketsendung sicherzustellen und ein Abrutschen in einen Überlastzustand, der Paketverluste zur Folge hat, zu verhindern;
- Deutlicher an Leistung und Geschwindigkeit im Vergleich zu TCP. Für Video-Dienste wie YouTube hat die Anwendung von QUIC zu einer 30%igen Verringerung der Puffervorgänge beim Ansehen von Videos geführt.
Quelle: opennet.ru
