NGINX-Unternehmen über den Testbeginn QUIC- und HTTP/3-Protokolle im HTTP-Server und Nginx-Proxy. Die Umsetzung basiert auf IETF-QUIC-Spezifikation und ist verfügbar über , gegabelt aus Version 1.19.0. Der Code wird unter der BSD-Lizenz verbreitet und stört nicht HTTP/3-Implementierung für Nginx von Cloudflare, einem separaten Projekt.
Die HTTP/3-Unterstützung in Nginx ist aus diesem Grund als experimentell markiert Protokolle werden implementiert. Gleichzeitig kann nginx bereits verwendet werden, um Antworten auf einfache HTTP/3-Anfragen über QUIC zu senden und große Dateien herunterzuladen/hochzuladen. Zu den derzeit fehlenden Protokollfunktionen gehören Protokollversions-Aushandlungstools, ECN- und Überlastungskontrolle, strukturierte Protokolle, Wiederherstellungsmodus (QUIC-Wiederherstellung, Fluss- und Überlastungskontrolle), NAT-Rebinding, mobile Adressen, Server-Push, Datenanhang (Trailer). Außerdem bietet es nur grundlegende Unterstützung für die ACK-Paketverarbeitung und Flusskontrolle, was einer weiteren Entwicklung bedarf. Es werden nicht alle Anforderungen der Norm berücksichtigt.
Um HTTP/3 zu aktivieren, müssen Sie nginx mit dem Modul http_v3_module erstellen und eine zusätzliche Direktive hinzufügen
„listen“ mit dem Flag „http3“, um einen UDP-Listening-Socket zu erstellen. Zum Beispiel:
server {
Hören Sie 443 SSL; # TCP-Socket für HTTP/1.1
listen 443 http3 reuseport; # UDP-Socket für QUIC+HTTP/3
ssl_protocols TLSv1.3; # QUIC erfordert TLS 1.3
ssl_certificate ssl/www.example.com.crt;
ssl_certificate_key ssl/www.example.com.key;
add_header Alt-Svc 'quic=":443″'; # QUIC-Barrierefreiheitsflag
add_header QUIC-Status $quic; # Header mit QUIC-Nutzungsstatus
}
Denken Sie daran, dass HTTP/3 die Verwendung des QUIC-Protokolls als Transport für HTTP/2 standardisiert. Protokoll (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. Auf der Clientseite wurde bereits die experimentelle Unterstützung für HTTP/3 hinzugefügt , и .
Haupt- SCHNELL:
- Hohe Sicherheit ähnlich wie TLS (im Wesentlichen bietet QUIC die Möglichkeit, TLS 1.3 ü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 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
