Microsoft released the source code for MsQuic, a network protocol used for HTTP3

Microsoft logo

Microsoft developers announced the release of the MsQuic library source code with the implementation of the QUIC network protocol. The library is cross-platform and can be used not only on Windows but also on Linux using Schannel or OpenSSL for TLS 1.3In addition, work continues to expand support for other platforms in the future.

The library is based on the msquic.sys driver code provided in Windows 10 kernel (Internal Preview) to guarantee the operation of the HTTP and SMB protocols over QUIC. Code inclusion is used to implement HTTP / 3 on the internal Windows stack and on .NET Core.

Development of the MsQuic library will be done entirely on GitHub using public review, pull requests, and GitHub issues. An infrastructure has been prepared that verifies each commit and pull request against a set of more than 4000 tests. After stabilizing the development environment, it is planned to accept changes from external developers.

About MsQuic

msquic can be used to create servers and clients, but not all the functionality defined in the IETF specification is currently available. For example, there is no support for 0-RTT, client migration, Path MTU Discovery, or server preferred address control.

Among the features implemented, optimization for maximum performance and minimum delay is highlighted, support for I/ O asynchronous, RSS (Receive lateral scaling), the ability to combine UDP input and output streams. The MsQuic implementation has been tested for compatibility with the experimental Chrome and Edge browser branches.

It also highlights the ability to establish a connection to instante (0-RTT, in about 75% of cases, the data can be transmitted immediately after sending the connection setup packet) and guarantee minimal delays between sending a request and receiving a response (RTT , Round trip time).

Also, has error correction tools that minimize delays due to retransmission of lost packets.

The use of special packet-level error-correcting codes to reduce situations that require retransmission of lost packet data orlearning the technique to predict bandwidth in every direction to ensure optimal package delivery intensity, preventing it from reaching a state of congestion in which packet loss is observed.

Of the other characteristics QUIC key:

  • High security, similar to TLS (in fact, QUIC provides the ability to use TLS 1.3 over UDP).
  • Flow integrity control that prevents packet loss.
  • Not using the same sequence number when retransmitting a packet, which avoids ambiguity in determining received packets and eliminates timeouts.
  • Losing a packet affects the delivery of only the stream associated with it and does not stop the delivery of data in parallel streams transmitted over the current connection.
  • Cryptographic block boundaries are aligned with QUIC packet boundaries, reducing the effect of packet loss on decoding the content of subsequent packets.
  • There are no problems with blocking the TCP queue.
  • Connection identifier support, which reduces the time to establish a reconnection for mobile clients.
  • It has the ability to connect advanced mechanisms to control connection congestion.
  • It boasts remarkable performance and performance gains over TCP. For video services like YouTube, QUIC has demonstrated a 30% reduction in re-buffering operations when watching videos.

Finally for those interested in knowing more about it About MsQuic or want to take a look at its source code, you should know that the code is written in C, it is cross-platform, general purpose, it is distributed under the MIT license and the released code is hosted on GitHub.

Source: https://techcommunity.microsoft.com


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.