MsQuic es una implementación gratuita y de código abierto del protocolo IETF QUIC escrito en C [1] que es oficialmente compatible con las plataformas Microsoft Windows (incluido Server ), Linux y Xbox . El proyecto también proporciona bibliotecas para macOS y Android , que no son compatibles. [2] Está diseñado para ser una biblioteca QUIC multiplataforma de propósito general optimizada para aplicaciones de cliente y servidor que se benefician de un rendimiento máximo y una latencia mínima. A finales de 2021, la base de código tenía más de 200 000 líneas de código de producción, con 50 000 líneas de código "central", [3] que se podía compartir entre plataformas. El código fuente tiene la licencia MIT y está disponible en GitHub . [4]
Entre sus características se encuentran, en parte, soporte para IO asíncrono , escalado del lado de recepción (RSS), fusión de envío y recepción UDP y migraciones de conexión que persisten las conexiones entre el cliente y el servidor para superar los cambios de puerto o IP del cliente, [5] como al moverse a través de redes móviles. [6]
Tanto la pila HTTP/3 [7] como la SMB [8] de Microsoft Windows aprovechan MsQuic y msquic.sys
proporciona funcionalidad en modo kernel . Al depender de Schannel para TLS 1.3 , el modo kernel no admite 0-RTT. [9]
Los programas en modo de usuario pueden implementar MsQuic, con soporte 0-RTT, a través de msquic.dll
, que puede compilarse a partir del código fuente o descargarse como una biblioteca compartida a través de versiones binarias en el repositorio. [9]
Su compatibilidad con Microsoft Game Development Kit hace que MsQuic sea posible tanto en Xbox como en Windows.