Microsoft hat seine Implementierung des in HTTP/3 verwendeten QUIC-Protokolls geöffnet

Microsoft kündigte die über das Öffnen des Bibliothekscodes msquic mit der Implementierung des Netzwerkprotokolls QUIC. Der Code ist in C geschrieben und vertrieben von unter MIT-Lizenz. Die Bibliothek ist plattformübergreifend und kann nicht nur unter Windows, sondern auch unter Linux genutzt werden s Kanal oder OpenSSL für TLS 1.3. Zukünftig ist geplant, weitere Plattformen zu unterstützen.

Die Bibliothek basiert auf dem msquic.sys-Treibercode, der im Windows 10-Kernel (Insider-Vorschau) bereitgestellt wird, um HTTP und zu aktivieren SMB zusätzlich zu QUIC. Der Code wird auch zur Implementierung von HTTP/3 im internen Windows-Stack und in .NET Core verwendet. Die Entwicklung der MsQuic-Bibliothek wird vollständig auf GitHub unter Verwendung öffentlicher Peer-Reviews, Pull-Requests und GitHub-Issues durchgeführt. Es wurde eine Infrastruktur vorbereitet, die jeden Commit- und Pull-Request in einem Set von mehr als 4000 Tests überprüft. Nach der Stabilisierung der Entwicklungsumgebung ist geplant, Änderungen von Drittentwicklern zu akzeptieren.

MsQuic kann bereits zum Erstellen von Servern und Clients verwendet werden, jedoch sind derzeit nicht alle in der IETF-Spezifikation definierten Funktionen verfügbar. Beispielsweise gibt es keine Unterstützung für 0-RTT, Client-Migration, Path MTU Discovery oder Server Preferred Address Control. Zu den implementierten Funktionen gehören die Optimierung, um maximalen Durchsatz und minimale Verzögerungen zu erreichen, Unterstützung für asynchrone Eingabe/Ausgabe, RSS (Receive Side Scaling) und die Möglichkeit, Eingabe- und Ausgabe-UDP-Streams zu kombinieren. Die MsQuic-Implementierung wurde auf Kompatibilität mit experimentellen Versionen der Browser Chrome und Edge getestet.

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 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;
    Microsoft hat seine Implementierung des in HTTP/3 verwendeten QUIC-Protokolls geöffnet

  • 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