Die nächtlichen Firefox-Builds unterstützen jetzt HTTP/3

В nächtliche Bauten Firefox, das die Grundlage für die für den 72. Januar geplante Veröffentlichung von Firefox 7 bilden wird, hinzugefügt Unterstützung des HTTP/3-Protokolls. Standardmäßig ist HTTP/3 deaktiviert und erfordert die Aktivierung der Option „network.http.http3.enabled“ in about:config.

Die HTTP/3-Unterstützung in Firefox basiert auf einem von Mozilla entwickelten Projekt neqo, das eine Client- und Serverimplementierung für das QUIC-Protokoll bereitstellt. Der Komponentencode für HTTP/3- und QUIC-Unterstützung ist in Rust geschrieben.
Von der Client-Software gibt es auch bereits experimentelle Unterstützung für HTTP/3 hinzugefügt in Chrome und Curl, und für Server ist es im Formular verfügbar Modul für Nginx und Testserver bibliotheksbasiert Quiche (Implementierung QUIC und HTTP/3 in Rust von Cloudflare). Um den Betrieb von HTTP/3-Clients zu testen gestartet Mehrere Testseiten, von denen sich die meisten noch nicht korrekt in Firefox öffnen lassen (HTTP/3 ist in Vorbereitung). Entwurf einer Spezifikation und ist nicht vollständig standardisiert).

Denken Sie daran, dass HTTP/3 die Verwendung des QUIC-Protokolls als Transport für HTTP/2 standardisiert. Protokoll QUIC (Quick UDP Internet Connections) wurde von Google seit 2013 als Alternative zur TCP+TLS-Kombination für das Web entwickelt und löst Probleme mit langen Einrichtungs- und Aushandlungszeiten für Verbindungen in TCP und eliminiert Verzögerungen, wenn Pakete während der Datenübertragung verloren gehen. QUIC ist eine Erweiterung des UDP-Protokolls, das das Multiplexen mehrerer Verbindungen unterstützt und Verschlüsselungsmethoden bereitstellt, die TLS/SSL entsprechen.

Haupt- eigenschaften SCHNELL:

  • Hohe Sicherheit ähnlich wie TLS (im Wesentlichen bietet QUIC die Möglichkeit, TLS über UDP zu verwenden);
  • Kontrolle der Flussintegrität, um Paketverluste zu verhindern;
  • Die Fähigkeit, sofort eine Verbindung aufzubauen (0-RTT, in etwa 75 % der Fälle können Daten sofort nach dem Senden des Verbindungsaufbaupakets übertragen werden) und minimale Verzögerungen zwischen dem Senden einer Anfrage und dem Empfang einer Antwort (RTT, Round Trip Time) bereitzustellen;
  • Bei der erneuten Übertragung eines Pakets wird nicht dieselbe Sequenznummer verwendet, wodurch Unklarheiten bei der Identifizierung empfangener Pakete vermieden und Zeitüberschreitungen vermieden werden.
  • Der Verlust eines Pakets wirkt sich nur auf die Zustellung des damit verbundenen Streams aus und stoppt nicht die Zustellung von Daten in parallelen Streams, die über die aktuelle Verbindung übertragen werden.
  • Fehlerkorrekturfunktionen, die Verzögerungen aufgrund der erneuten Übertragung verlorener Pakete minimieren. Verwendung spezieller Fehlerkorrekturcodes auf Paketebene, um Situationen zu reduzieren, die eine erneute Übertragung verlorener Paketdaten erfordern.
  • Kryptografische Blockgrenzen sind an den QUIC-Paketgrenzen ausgerichtet, wodurch die Auswirkungen von Paketverlusten auf die Dekodierung des Inhalts nachfolgender Pakete verringert werden.
  • Keine Probleme mit der TCP-Warteschlangenblockierung;
  • Unterstützung für Verbindungsidentifikatoren, wodurch die Zeit zum Herstellen einer erneuten Verbindung für mobile Clients verkürzt wird;
  • Möglichkeit der Anbindung erweiterter Mechanismen zur Kontrolle von Verbindungsüberlastungen;
  • Verwendet Techniken zur Vorhersage des Durchsatzes pro Richtung, um sicherzustellen, dass Pakete mit optimalen Raten gesendet werden und so verhindert wird, dass sie überlastet werden und Paketverluste verursachen.
  • Wahrnehmbar Wachstum Leistung und Durchsatz im Vergleich zu TCP. Bei Videodiensten wie YouTube reduziert QUIC nachweislich die Umpufferungsvorgänge beim Ansehen von Videos um 30 %.

Source: opennet.ru

Kommentar hinzufügen