微软全面推进 QUIC 协议替代 TCP/IP,或将重塑未来的互联网?
近日,微软在其技术社区官方博客宣布,开源自己的内部 QUIC 库 —— MsQuic。微软表示,MsQuic 很快将成为旗下大多数产品的一部分,例如 Windows,.NET,Microsoft 365 等。
该技术也被国际互联网技术和标准组织 IETF 认为有可能重塑未来的互联网。
即将到来的 HTTP/3 和 QUIC
QUIC(Quick UDP Internet Connections,快速 UDP 网络连接)是一种实验性的网络传输协议。从网络层级来看,QUIC 是类似于 TCP,UDP 和 SPDY 的数据传输协议,目前正在由 Internet 工程任务组(IETF)进行标准化。
关于 QUIC 的研究始于 2010 年代初期,由 Google 率先进行的尝试。当时 Google 希望创建一个更快,更强调性能的数据传输协议来代替 HTTPS/HTTP。
QUIC 借鉴了 TCP、UDP 和 TLS(用于加密)的原理和功能,在这个基础上优化了传输的速度。QUIC 的数据传输从第一个数据包传送(0-RTT)开始立即开始,从而减少了应用程序延迟时间。并且可以在数据量已满时调整管理流程(拥塞控制),从而更快更安全。QUIC 协议在登录成功、推拉流成功的耗时,大幅低于 TCP 协议,优化百分比在 30% 以上,极端场景甚至超过 90%。
2018 年,基于 QUIC 协议的 HTTP(HTTP over QUIC)也就是 HTTP/3,正式被确定为下一代网络规范。
微软的 MsQuic 战略式推进
MsQuic 作为微软开发的 C 语言库,唯一目的是支持其产品内部的 QUIC 数据连接。目前已经支持 Windows 和 Linux 平台(Microsoft 的某些云基础架构依赖于 Linux)。
微软程序经理丹尼尔·哈维(Daniel Havey)表示,该库将在微软内部进行广泛部署,作为 Microsoft 产品处理 QUIC 连接的主要方法。例如:
-
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 用法作为原型。
Havey 在近日发表的博客文章中说:“微软是 QUIC 技术的积极参与者和推动者,因此将开源我们的项目作为行业参考。”
重塑未来的互联网技术
不久前,国际电信联盟 ITU-T 审议了有关“新 IP,塑造未来网络”的提案。该提案支持,应以一种新的 IP 的方式重新设计互联网。国际互联网技术和标准组织 IETF 主席于 3 月 30 日发表声明,对这一提案进行了回应,并提到了我们今天所说的 QUIC 技术。
IETF 主席表示,消除不必要的延迟是 IETF 和 ITU 长期共同关注的工程目标。IETF 在这个领域的研究历史可以追溯到上世纪 90 年代,先后提出了多种技术,例如集成服务(IntServ),资源保留协议(RSVP),多协议标签交换(MPLS),差异化服务(DiffServ)和主动队列管理(AQM)。
在过去的五年中,又实现了更多新技术的进展:定向 HTTP、传输层安全(TLS)、QUIC、确定性网络(DetNet),以及其他低延迟、低损耗、可扩展吞吐量(L4S)技术。
那些对网络抖动、延迟和吞吐量等属性有严格要求的应用程序如今已部署在互联网上,同时并没有使用设想的中的紧密跨层链接,而都是部署在现有协议和设计约束之下。这些应用程序,包括会议、增强现实和游戏,都是为改进网络协议的特性提供了市场动力。
IETF 正在多个领域中开展网络组件或协议层次之间的协调工作。希望能满足新型实时应用的需要,包括全息通信,而无需新的网络体系结构。
HTTP/3 作为超文本传输协议的下一个主要迭代版本,目前仅被全球 3% 的互联网网站所使用。但好消息是,微软、谷歌等科技巨头都表现出了浓厚的兴趣并付出了实际的支持行动,结合 QUIC 协议深度优化信令服务,新形态的互联网技术,可能不用等太久了。