Cloudflare hat ein Modul zur Unterstützung von HTTP/3 in NGINX implementiert

Cloudflare-Unternehmen vorbereitet Modul um Unterstützung für das HTTP/3-Protokoll in NGINX bereitzustellen. Das Modul ist als Add-on zur von Cloudflare entwickelten Bibliothek konzipiert Quiche mit der Implementierung des QUIC- und HTTP/3-Transportprotokolls. Der Quiche-Code ist in Rust geschrieben, aber das NGINX-Modul selbst ist in C geschrieben und greift über dynamische Verknüpfung auf die Bibliothek zu. Entwicklungen offen unter der BSD-Lizenz.

Zum Zusammenbau einfach herunterladen patch zu Nginx 1.16 und Code Quiche-Bibliotheken erstellen und dann Nginx mit den Optionen „—with-http_v3_module –with-quiche=../quiche“ neu erstellen. Beim Aufbau sollte die TLS-Unterstützung auf der BoringSSL-Bibliothek basieren („--with-openssl=../quiche/deps/boringssl“), die Verwendung von OpenSSL wird noch nicht unterstützt. Um Verbindungen zu akzeptieren, müssen Sie die Listen-Direktive mit dem Flag „quic“ zu den Einstellungen hinzufügen (z. B. „listen 443 quic reuseport“).

In der Client-Software wurde HTTP/3-Unterstützung bereits zu experimentellen Builds von Chrome Canary und dem Curl-Dienstprogramm hinzugefügt. Auf der Serverseite war bisher die Verwendung separater, begrenzter Protokolle erforderlich Testimplementierungen. Die Möglichkeit, HTTP/3 in Nginx zu verarbeiten, wird die Bereitstellung von Servern mit HTTP/3-Unterstützung erheblich vereinfachen und die Testimplementierung des neuen Protokolls leichter zugänglich machen. Das Aufkommen der Standardunterstützung für HTTP/3 in Nginx ожидается im 1.17.x-Zweig für 6-12 Monate.

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