聊聊QUIC协议的发展

0ca06a98edff14bd352d604ad62457c8.gif

点击上方“LiveVideoStack”关注我们

作者 | 王盛

策划 | 包研、Alex

编辑 | Alex

QUIC

年终盘点

#001#

QUIC(Quick UDP Internet Connections,快速UDP互联网连接)是一种新的“更快”的通用网络传输协议。相比于TCP和TLS,QUIC提供了许多改进来提升网络传输的性能。随着QUIC协议的标准化,QUIC之上的HTTP/3协议已经被众多浏览器所支持,其中包括Chrome、Microsoft Edge(Chrome内核版本)、Firefox和Safari,除了浏览器,也有不少客户端App也开始支持和使用HTTP/3。本篇文章就和大家一起聊聊QUIC协议的发展历程,和我认为的QUIC未来发展趋势。

 QUIC协议的发展

cc7318c7800c1272c864929b23972306.png

事实上,我们现在谈论的QUIC协议有两个协议同名:“Google QUIC”(简称gQUIC)和“IETF QUIC”(简称iQUIC)。gQUIC是由Google工程师们在2012年设计的原始协议,2013年Google公开了QUIC协议,同年也将此协议提交给IETF。这与SPDY和HTTP/2协议的发展历程如出一辙,先由Google公司设计和试验,在性能有提高的情况下提交给IETF工作组进行标准化。

2015年6月,一份QUIC的Internet Draft提交到IETF组织进行标准化,同年IETF的QUIC工作组也因此成立[1]。

2018年10月,IETF的HTTP工作组和QUIC工作组联合声明了HTTP/3,也就是QUIC之上运行的HTTP协议,但此时HTTP/3的具体标准尚未定稿。

2021年5月,IETF宣布了QUIC的标准RFC9000[2],同时RFC9000由RFC8999[3](Version-Independent Properties of QUIC),RFC9001[4](Using TLS to Secure QUIC)和RFC9002[5](QUIC Loss Detection and Congestion Control)所支持。

至此,QUIC协议的完整标准已经形成,iQUIC与当初的gQUIC已有相当大的不同,可以完全将其视为一个单独的协议。从数据包的格式、握手方式和HTTP映射,iQUIC改进了当初gQUIC的设计,这也得益于许多组织和个人的开放协作,他们的共同努力让互联网变得更快、更安全。

作者注:本文后续如未加特殊说明,都是在描述iQUIC。

QUIC协议的现状

QUIC协议的诞生与今天的互联网应用场景和传输性能密切相关。在互联网和HTTP发展的过程中,HTTP底层协议大体上来说基本没变。但是,随着海量移动设备推高互联网流量,越来越多的应用场景需要低延迟、高吞吐、应用QoS感知的网络传输等,原来的HTTP协议在提供流畅、高效的Web访问方面越来越难以满足应用需求。

QUIC的一切特性始于“构建在UDP之上”

“构建在UDP之上”意味着可以不关心内核或者不用深入了解内核的开发,也可以灵活地调整可靠传输机制和拥塞控制算法等,这极大地方便了各种对传输QoS敏感的应用,比如实时音视频传输、在线游戏等。QUIC的主要特性如下所示:

  • 选择UDP也能让QUIC协议不依赖网络中间设备Middle-Boxes做调整。

  • TCP协议的开发、调试、观测的困难问题也会迎刃而解,无需通过复杂的BPF(Berkeley Packet Filter)来采集和调试协议栈程序,只需在用户态部署简单的数据收集程序。

  • 应用程序的崩溃问题也不至于影响系统内核,而且可以留足崩溃现场做后续分析。

  • 用户态有更多的程序库帮我们实现更复杂、更全面的策略,比如自适应CC(Congestion Control)算法。<

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值