Im Firefox, die die Grundlage für die Veröffentlichung von Firefox 72 bilden, die für den 7. Januar geplant ist, unterstützt das HTTP/3-Protokoll. Standardmäßig ist HTTP/3 deaktiviert und erfordert die Aktivierung der Option „network.http.http3.enabled“ in about:config.
Die Unterstützung von HTTP/3 in Firefox basiert auf dem von Mozilla entwickelten Projekt , das eine Implementierung von Client und Server für das QUIC-Protokoll bereitstellt. Der Code der Komponenten zur Unterstützung von HTTP/3 und QUIC ist in Rust geschrieben.
Die experimentelle Unterstützung von HTTP/3 ist auch bereits in Chrome und curl verfügbar, wobei Server in Form von nginx und auf Basis der Bibliothek ( QUIC und HTTP/3 in Rust von Cloudflare). Um die Funktionalität der HTTP/3-Clients zu testen, einige Testwebsites gestartet, von denen die meisten derzeit in Firefox nicht korrekt geöffnet werden (HTTP/3 befindet sich in einem und ist noch nicht vollständig standardisiert).
Wir erinnern daran, dass HTTP/3 die Verwendung des QUIC-Protokolls als Transportmittel für HTTP/2 standardisiert. Das Protokoll (Quick UDP Internet Connections) wird seit 2013 von Google als Alternative zu TCP+TLS für das Web entwickelt, um Probleme mit langen Verbindungsaufbau- und Aushandlungszeiten bei TCP zu lösen und Verzögerungen durch Paketverluste während der Datenübertragung zu beseitigen. QUIC ist eine Erweiterung des UDP-Protokolls, die mehrere Verbindungen multiplexiert und Verschlüsselungsmethoden unterstützt, die TLS/SSL entsprechen.
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 Grenzen der kryptografischen Blöcke sind an die Grenzen der QUIC-Pakete angepasst, was die Auswirkungen von Paketverlusten auf die Dekodierung der Inhalte 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
