msquic

C#源码 2025-08-11

msquic是IETF QUIC协议的Microsoft实现。它是跨平台,用C编写,设计为通用Quic库。 msquic还具有C ++ API包装程序类,并揭示了Rust和C#的互动层。

提示

您正在使用msquic吗?让我们知道!知道我们的用户让我们优先考虑工作,并继续朝着最佳方向改进msquic 。在讨论中发布打个招呼,并在不和谐方面浪潮!

协议功能

与现有的“ TCP上的TLS”方案相比,Quic有很多好处:

  • 所有数据包均已加密,并用TLS 1.3对握手进行身份验证。
  • (可靠和不可靠的)应用程序数据的并行流。
  • 在第一次往返(0-RTT)中交换应用程序数据。
  • 改善了拥塞控制和损失恢复。
  • 在客户IP地址或端口的客户IP地址有所改变。
  • 无状态负载平衡。
  • 对于新功能和扩展,很容易扩展。

库功能

msquic具有将其与其他Quic实现区分开的几个功能:

  • 针对客户端和服务器进行了优化。
  • 优化用于最大吞吐量和最小潜伏期。
  • 异步IO。
  • 接收侧面缩放(RSS)支持。
  • UDP发送和接收联合支持。
  • 内核堆栈旁路通过XDP。

文档

  • 有关平台支持详细信息,请参见“平台文档”。
  • 有关发布详细信息,请参见发布文档。
  • 有关性能数据,请参见性能仪表板。
  • 有关构建图书馆,请参阅“构建文档”。
  • 要测试库,请参见测试文档。
  • 有关使用API,请参见API文档或样品。
  • 有关运行示例服务器和客户端应用程序,请参阅《快速启动指南》。
  • 有关部署QUIC,请参见部署文档。
  • 有关诊断问题,请参阅诊断文档和《故障拍摄指南》。
  • 有关其他常见问题,请参阅常见问题解答。

贡献

有关贡献的信息,请参阅我们的贡献指南。如果您要在某个地方开始,请随时查看我们的第一个问题清单。如果您想谈谈,请在不和谐中与我们聊天。

下载源码

通过命令行克隆项目:

git clone https://github.com/microsoft/msquic.git