Microsoft announces MsQuic, cross platform C implementation of the IETF QUIC protocol

Microsoft announced on the blog that it has open-sourced its own internal QUIC library, MsQuic. QUIC (Quick UDP Internet Connections) is an experimental network transmission protocol that is being standardized by the IETF. QUIC was originally developed by Google and implemented in 2013. Google hopes to use this protocol to replace the HTTPS / HTTP protocol to speed up the transmission of web pages. In 2018, HTTP (HTTP over QUIC) based on QUIC became the upcoming HTTP/3 and was officially confirmed as the next-generation network specification.Open Network Emulator

MsQuic is a cross-platform universal library that implements the QUIC transmission protocol and is mainly used to support QUIC data connections within its products. MsQuic is optimized for multiple usage models and has been used by multiple Microsoft products and services, including but not limited to:

  • Windows will ship with MsQuic in the kernel to support various inbox features. The Windows HTTP/3 stack is being built on top of MsQuic.
  • Microsoft 365 is testing a preview version of IIS using HTTP/3 to reduce tail loss latencies in the last mile. This is currently active in internal dogfood environments.
  • .NET Core has built HTTP/3 support into Kestrel and HttpClient on top of MsQuic. HTTP/3 support is in experimental preview for the 5.0 release of .NET Core.
  • SMB in Windows is also prototyping MsQuic usage. QUIC brings several benefits for SMB, such as better internet reachability, a secured connection based on industry standard TLS and server authentication with certificate validation. Best of all, this brings a completely different workload on top of MsQuic, strengthening the general-purpose nature of the transport.

MsQuic is still under development and is currently in preview, available on Windows and Linux. The source code is available on Github.