查看原文
其他

微软开源MsQuic,HTTP/3基础协议QUIC的跨平台实现

xplanet 开源中国 2020-09-02

微软在其技术社区官方博客宣布,已开源自己的内部 QUIC 库,即 MsQuic。

QUIC(Quick UDP Internet Connections,快速 UDP 网络连接)是一种实验性的网络传输协议,正在由 IETF 进行标准化。QUIC 最初由谷歌开发,在 2013 年实现。谷歌希望使用这个协议来取代 HTTPS/HTTP 协议,使网页传输速度加快。

与基于 TCP 的现有 TLS 方案相比,QUIC 具有许多优点:

  • TLS 1.3 认证的握手

  • 所有数据包均已加密

  • 应用程序数据的并行流

  • 改进拥塞控制和丢失恢复(与 TCP 相比)

  • 在第一次往返(0-RTT)中交换应用程序数据

  • 保留客户端 IP 地址或端口中的更改

  • 容易扩展新特性

2018 年,基于 QUIC 协议的 HTTP(HTTP over QUIC)成为即将到来的 HTTP/3,正式被确定为下一代网络规范。

微软的 MsQuic 是实现 QUIC 传输协议的跨平台通用库,主要用于支持其产品内部的 QUIC 数据连接。MsQuic 针对多种使用模式进行了优化,已经被多个微软产品和服务使用,包括但不限于:

  • Windows 将在内核中附带 MsQuic,Windows HTTP/3 堆栈也是基于 MsQuic 构建的。

  • Microsoft 365 正在使用 HTTP/3 测试 IIS 的预览版。

  • .NET Core 已在 MsQuic 的基础上在 Kestrel 和 HttpClient 中构建了对 HTTP/3 的支持(在 .NET Core 5.0 预览版中可用)。

  • Windows 中的 SMB 将 MsQuic 用法作为原型。

微软在博客文章中表示,“MsQuic 为许多重要的网络方案带来了性能和安全性的改进。”并称其在线服务从这些性能改进(例如减少尾部延迟和更快的连接设置)中受益最大,“我们的连接将能够无缝切换网络,因为它们可以承受 IP 地址/端口更改的影响。”

MsQuic 仍在开发中,当前处于预览状态,在 Windows 和 Linux 上可用。

推荐阅读

这一回终于把MIT协议讲明白了

80%的代码曾由一人提交,这项目何以从ASF毕业

红帽借“订阅”模式成开源一哥,首创者升任总裁

Git 15周年:当年的分道扬镳,成就了今天的开源传奇

Rust 2019调查报告发布,看看它非主流的原因

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存