Microsoft a ouvert son implémentation du protocole QUIC utilisé dans HTTP/3

Microsoft annoncé le à propos de l'ouverture du code de la bibliothèque msquic avec la mise en œuvre du protocole réseau QUIC. Le code est écrit en C et distribué par sous licence MIT. La bibliothèque est multiplateforme et peut être utilisée non seulement sous Windows, mais également sous Linux en utilisant Schannel ou OpenSSL pour TLS 1.3. À l'avenir, il est prévu de prendre en charge d'autres plates-formes.

La bibliothèque est basée sur le code du pilote msquic.sys fourni dans le noyau Windows 10 (Insider Preview) pour activer le protocole HTTP et SMB au-dessus de QUIC. Le code est également utilisé pour implémenter HTTP/3 dans la pile Windows interne et dans .NET Core. Le développement de la bibliothèque MsQuic sera entièrement réalisé sur GitHub à l'aide d'un examen public par les pairs, de demandes d'extraction et de problèmes GitHub. Une infrastructure a été préparée pour vérifier chaque demande de validation et d'extraction dans un ensemble de plus de 4000 XNUMX tests. Après avoir stabilisé l'environnement de développement, il est prévu d'accepter les modifications des développeurs tiers.

MsQuic peut déjà être utilisé pour créer des serveurs et des clients, mais toutes les fonctionnalités définies dans la spécification IETF ne sont pas actuellement disponibles. Par exemple, il n'existe aucune prise en charge pour 0-RTT, la migration client, la découverte de MTU de chemin ou le contrôle d'adresse préférée du serveur. Parmi les fonctionnalités implémentées, on note l'optimisation pour atteindre un débit maximal et des délais minimaux, la prise en charge des entrées/sorties asynchrones, RSS (Receive Side Scaling) et la possibilité de combiner les flux UDP d'entrée et de sortie. L'implémentation de MsQuic a été testée pour vérifier sa compatibilité avec les versions expérimentales des navigateurs Chrome et Edge.

Rappelons que HTTP/3 standardise l'utilisation du protocole QUIC comme transport pour HTTP/2. Protocole QUIC (Quick UDP Internet Connections) a été développé par Google depuis 2013 comme alternative à la combinaison TCP+TLS pour le Web, résolvant les problèmes de longs temps de configuration et de négociation des connexions en TCP et éliminant les retards en cas de perte de paquets lors du transfert de données. QUIC est une extension du protocole UDP qui prend en charge le multiplexage de plusieurs connexions et fournit des méthodes de cryptage équivalentes à TLS/SSL.

principal caractéristiques RAPIDE :

  • Haute sécurité similaire à TLS (essentiellement QUIC offre la possibilité d'utiliser TLS 1.3 sur UDP) ;
  • Contrôle de l'intégrité du flux, empêchant la perte de paquets ;
  • La possibilité d'établir instantanément une connexion (0-RTT, dans environ 75 % des cas, les données peuvent être transmises immédiatement après l'envoi du paquet d'établissement de connexion) et de fournir des délais minimes entre l'envoi d'une demande et la réception d'une réponse (RTT, Round Trip Time) ;
    Microsoft a ouvert son implémentation du protocole QUIC utilisé dans HTTP/3

  • Ne pas utiliser le même numéro de séquence lors de la retransmission d'un paquet, ce qui évite toute ambiguïté dans l'identification des paquets reçus et supprime les délais d'attente ;
  • La perte d'un paquet affecte uniquement la livraison du flux qui lui est associé et n'arrête pas la livraison des données dans les flux parallèles transmis via la connexion en cours ;
  • Fonctionnalités de correction d'erreurs qui minimisent les retards dus à la retransmission des paquets perdus. Utilisation de codes de correction d'erreurs spéciaux au niveau des paquets pour réduire les situations nécessitant une retransmission de données par paquets perdues.
  • Les limites des blocs cryptographiques sont alignées sur les limites des paquets QUIC, ce qui réduit l'impact des pertes de paquets sur le décodage du contenu des paquets suivants ;
  • Aucun problème avec le blocage de la file d'attente TCP ;
  • Prise en charge de l'identifiant de connexion, qui réduit le temps nécessaire pour établir une reconnexion pour les clients mobiles ;
  • Possibilité de connecter des mécanismes avancés de contrôle de la congestion des connexions ;
  • Utilise des techniques de prévision du débit par direction pour garantir que les paquets sont envoyés à des débits optimaux, les empêchant ainsi d'être encombrés et de provoquer une perte de paquets ;
  • Perceptible gagner performances et débit par rapport à TCP. Pour les services vidéo tels que YouTube, il a été démontré que QUIC réduit de 30 % les opérations de rebuffering lors du visionnage de vidéos.

Source: opennet.ru

Ajouter un commentaire