Microsoft a annoncé basculer en open source sa librairie Quic (Quick UDP Internet Connections), ou MsQuic, sur GitHub sous licence MIT. MsQuic est une librairie polyvalente multiplateformes qui implémente le protocole de transport Quic. « «MsQuic apporte des améliorations de performances et de sécurité à de nombreux scénarios de mise en réseau importants. Nos services en ligne bénéficient le plus des améliorations de performances telles qu'une latence réduite et une configuration de connexion plus rapide. Nos connexions pourront changer de réseau en toute transparence car elles peuvent survivre aux changements d'adresse IP de port. Cela équivaut à une meilleure expérience utilisateur sur nos terminaux edge », a expliqué Microsoft dans un billet.
MsQuic est une solution client et serveur optimisée pour plusieurs produits et services Microsoft. A savoir la pile HTTP/3 de Windows sur laquelle est testée Microsoft 365 reposant sur le serveur d'intégration IIS avec pour but de réduire latences et optimiser les mises en file d'attente. « .NET Core a intégré la prise en charge HTTP/3 dans Kestrel et HttpClient au-dessus de MsQuic », a également expliqué Microsoft qui l'utilise aussi à titre expérimental pour la version 5.0 de .NET Core ainsi que pour le prototypage Windows pour SMB. MsQuic est actuellement en préversion et prend en charge Windows et Linux. La version 1 n'est pas encore finalisée et des évolutions sont à prévoir.
Quic poussé par Google depuis 2013
Actuellement en cours de normalisation par l'Internet Engineering Task Force (IETF), Quic a été à l'origine poussé par Google dès 2013 qui l'a implémenté dans Chrome. Quic propose de nombreux avantages par rapport aux scénarios TLS sur TCP existants : prise de contact authentifiée avec TLS 1.3, chiffrement par défaut de tous les paquets, flux parallèles de données d'application, contrôle de congestion et récupération des pertes améliorés par rapport à TCP, échange des données d'application lors du premier aller-retour, résilience par rapport à un changement de l'adresse IP ou du port du client, extensibilité facilitée pour de l'ajout de fonctions...