Cloudflare zur UnterstĂŒtzung des Protokolls HTTP/3 in NGINX. Das Modul ist als Erweiterung der in Cloudflare entwickelten Bibliothek konzipiert mit der Implementierung des Transportprotokolls QUIC und HTTP/3. Der Code von quiche ist in Rust geschrieben, aber das Modul fĂŒr NGINX ist in C geschrieben und greift ĂŒber dynamisches Linking auf die Bibliothek zu. Entwicklungen unter der BSD-Lizenz stehen.
Um die Installation durchzufĂŒhren, reicht es aus, nginx 1.16 und Quiche-Bibliotheken, gefolgt von der Neukompilierung von Nginx mit den Optionen ââwith-http_v3_module âwith-quiche=..\/quicheâ. Bei der Kompilierung sollte die UnterstĂŒtzung fĂŒr TLS auf der BoringSSL-Bibliothek basieren (ââwith-openssl=..\/quiche\/deps\/boringsslâ), die Verwendung von OpenSSL wird derzeit nicht unterstĂŒtzt. Um Verbindungen anzunehmen, muss die Direktive listen mit dem Flag âquicâ in die Konfiguration hinzugefĂŒgt werden (zum Beispiel âlisten 443 quic reuseportâ).
FĂŒr die Client-Software wurde die UnterstĂŒtzung fĂŒr HTTP/3 bereits in experimentelle Builds von Chrome Canary und dem Tool curl integriert. Auf der Serverseite war es bisher erforderlich, begrenzte, eigenstĂ€ndige zu verwenden. Die Möglichkeit, HTTP/3 in nginx zu verarbeiten, wird die Bereitstellung von Servern mit HTTP/3-UnterstĂŒtzung erheblich vereinfachen und die experimentelle EinfĂŒhrung des neuen Protokolls zugĂ€nglicher machen. Die native UnterstĂŒtzung fĂŒr HTTP/3 wird in der Version 1.17.x innerhalb von 6-12 Monaten verfĂŒgbar sein.
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
