Microsoft hat seine Implementierung des QUIC-Protokolls veröffentlicht, das in HTTP/3 verwendet wird.

Das Unternehmen Microsoft hat bekannt gegeben über die Veröffentlichung des Codes der Bibliothek MsQuic mit der Implementierung des Netzwerkprotokolls QUIC. Der Code ist in C geschrieben und wird unter der GPLv3-Lizenz bereitgestellt. unter der MIT-Lizenz verfügbar. Die Bibliothek ist plattformübergreifend und kann nicht nur unter Windows, sondern auch unter Linux mit Unterstützung von Schannel oder OpenSSL für TLS 1.3 verwendet werden. Zukünftig ist die Unterstützung weiterer Plattformen geplant.

Die Bibliothek basiert auf dem Code des Treibers msquic.sys, der im Windows 10-Kernel (Insider Preview) bereitgestellt wird, um das Funktionieren der Protokolle HTTP und SMB über QUIC sicherzustellen. Zudem wird der Code für die Implementierung von HTTP/3 im internen Stack von Windows und in .NET Core verwendet. Die Entwicklung der MsQuic-Bibliothek wird vollständig auf GitHub erfolgen, mit öffentliches Review, Pull-Anfragen und GitHub Issues. Eine Infrastruktur wurde eingerichtet, die jeden Commit und jede Pull-Anfrage in einem Set von mehr als 4000 Tests überprüft. Nach der Stabilisierung der Entwicklungsumgebung wird geplant, Änderungen von Drittentwicklern anzunehmen.

MsQuic kann bereits für die Erstellung von Servern und Clients verwendet werden, jedoch ist derzeit nicht die gesamte Funktionalität verfügbar, die in der IETF-Spezifikation definiert ist. Zum Beispiel wird 0-RTT, die Migration von Clients, Path MTU Discovery und die Verwaltung der Serverpräferenzen (Server Preferred Address) aktuell nicht unterstützt. Zu den implementierten Funktionen gehören Optimierungen zur Maximierung der Bandbreite und Minimierung der Latenzzeiten, Unterstützung für asynchrone Ein-/Ausgabe, RSS (Receive Side Scaling) und die Möglichkeit, eingehende und ausgehende UDP-Streams zu bündeln. Die MsQuic-Implementierung wurde auf die Kompatibilität mit experimentellen Versionen der Browser Chrome und Edge getestet.

Wir erinnern daran, dass HTTP/3 die Verwendung des QUIC-Protokolls als Transport für HTTP/2 standardisiert. Das Protokoll QUIC (Quick UDP Internet Connections) wird seit 2013 von Google als Alternative zu TCP+TLS für das Web entwickelt. Es adressiert die Probleme langer Verbindungsaufbauzeiten und -aushandlungen in TCP und beseitigt Verzögerungen, die durch Paketverluste während der Datenübertragung entstehen. QUIC ist eine Erweiterung des UDP-Protokolls, das die Multiplexierung mehrerer Verbindungen unterstützt und verschlüsselungsverfahren bietet, die TLS/SSL entsprechen.

Haupt Eigenschaften QUIC:

  • Hohe Sicherheit, ähnlich wie bei TLS (QUIC ermöglicht im Wesentlichen die Verwendung von TLS 1.3 über UDP);
  • Stream-Integrity-Kontrolle zur Vermeidung von Paketverlusten;
  • Es ermöglicht, eine Verbindung sofort herzustellen (0-RTT, in etwa 75 % der Fälle können Daten sofort nach dem Senden des Verbindungsaufbaupakets übertragen werden) und sorgt für minimale Verzögerungen zwischen dem Senden einer Anfrage und dem Erhalten einer Antwort (RTT, Round Trip Time);
    Microsoft hat seine Implementierung des QUIC-Protokolls veröffentlicht, das in HTTP/3 verwendet wird.
  • Die Nichtverwendung derselben Sequenznummer bei der Wiederübertragung von Paketen vermeidet Zweideutigkeiten bei der Bestimmung empfangener Pakete und beseitigt Zeitüberschreitungen.
  • Ein Paketverlust beeinflusst nur die Zustellung des damit verbundenen Streams und stoppt nicht die Übertragung von Daten in parallel über die aktuelle Verbindung übertragenen Streams;
  • Fehlerkorrekturmaßnahmen, die Verzögerungen durch die erneute Übertragung verlorener Pakete minimieren. Einsatz spezieller Fehlerkorrekturcodes auf Paketebene zur Verringerung von Situationen, die eine erneute Übertragung verlorener Daten erfordern.
  • Die Grenzen der kryptografischen Blöcke sind an die Grenzen der QUIC-Pakete angepasst, was den Einfluss von Paketverlusten auf die Dekodierung des Inhalts nachfolgender Pakete verringert.
  • Keine Probleme mit der TCP-Warteschlangensperre.
  • Unterstützung für eine Verbindungs-ID, die die Wiederherstellungszeit für mobile Clients verkürzt.
  • Die Möglichkeit, erweiterte Mechanismen zur Überwachung der Verbindungsüberlastung zu integrieren.
  • Der Einsatz von Bandbreitenvorhersagetechniken in beide Richtungen sorgt für eine optimale Paketversandintensität und verhindert das Abgleiten in einen Überlastungszustand, der zu Paketverlusten führt.
  • Deutlich der Leistungszuwachs verbessert sich die Leistung und Bandbreite im Vergleich zu TCP. Bei Video-Diensten wie YouTube zeigte die Verwendung von QUIC eine Reduzierung der Pufferungsoperationen beim Anschauen von Videos um 30%.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster