历时5年,IETF(互联网工程任务组)于去年正式颁布了基于QUIC协议的HTTP/3 标准。作为互联网标准的重大革新之一,网宿科技全平台率先完成了对QUIC协议的全面支持,能够大幅提升Web应用程序的性能和网络传输效率。
IETF 发布 HTTP/3 标准
TCP一直被视为网络基石,支撑着HTTP协议的演进。而随着HTTP/3标准的正式发布,QUIC将取代多年来的TCP作为传输层协议。
01 QUIC协议:让互联网更快
任何一项新兴的技术诞生都不是一蹴而就,其背后涉及多种复杂的因素。TCP在设计之初并没有考虑到现今复杂的网络环境,随着海量设备推高互联网流量,越来越多的应用场景需要低延时的网络传输,尤其是在长距离、移动弱网、网络频繁切换下的传输场景,原来基于TCP协议的延迟连接、队头阻塞等缺陷很容易触达性能瓶颈,难以满足应用需求。
QUIC(Quick UDP Internet Connections)最初是谷歌提出的基于UDP的传输层协议,于2015年提交给IETF,从那之后,更广大的IETF社区对其进行了重新设计与改进,形成了一个“让互联网更快”的新协议。相比TCP,它进行了许多改进来提升业务访问速度,改善弱网变化环境下的平滑体验。
02 为什么QUIC协议这么快?
握手建连更快
传统基于TCP的HTTPS建连至少需要3 RTT,而QUIC建连时间仅需0~1 RTT。
假设1个RTT的时间为200ms,意味着用户打开视频或网页时,首屏时间可以提前400-600ms。当然,影响首屏时间的因素很多,但QUIC对于首屏时间的作用是实实在在的。
HTTPS over TCP+TLS vs QUIC握手时延
多路复用,避免队首堵塞
虽然 HTTP/2 实现了多路复用,但是传输层还是没办法避免TCP队头阻塞问题。如果中途TCP产生丢包,还是会导致后面队列的堵塞。
QUIC 支持在单个UDP连接中复用多个流,并保证UDP报文的丢失仅影响相应的流,而不会影响其他的流,在设计上就解决了队头阻塞问题。
弱网情况下,QUIC相比TCP则可以接收更多的传输内容。
TCP vs QUIC 数据传输
支持连接迁移
TCP采用四元组(包括源IP、源端口、目标地址、目标端口)标识一个连接,网络切换时,客户端的IP发生变化,TCP连接被瞬间切断,然后重连。比如手机使用4G远程会议时,当网络被切换到Wi-Fi,会议客户端会立马重连,视频同时出现一瞬间的卡顿。
QUIC则用一个(一般是64位随机数)ConnectionID标识连接,即使源IP或端口发生变化,只要ConnectionID一致,连接都可以保持,不会发生切断重连。
更灵活的拥塞控制
与TCP不同的是,QUIC 的传输控制是实现在应用层上,可以选择像Cubic、BBR、Reno等拥塞控制算法,也可以根据场景定制私有算法。
前向纠错,抗弱网能力更强
QUIC支持前向纠错,弱网丢包环境下,动态增加一些FEC数据包,可以减少重传次数,提升传输效率。QUIC相比TCP的抗弱网能力提升明显,丢包率越高,提升越明显。
03 网宿全平台支持HTTP/3和QUIC
为了迎接HTTP/3新时代的到来,网宿科技平台早在5年前就实现了对QUIC协议的支持。在HTTP/3标准发布之后,网宿率先响应市场需求,在原来的QUIC基础上进行全网升级,现已全面支持gQUIC和iQUIC所有版本。
网宿QUIC演进时间线
网宿基于QUIC的实战效果
以直播拉流为例,使用同一边缘节点服务器(可进行丢包控制),使用QUIC协议和TCP协议分别进行视频播放,数据显示:在丢包20%的情况下,无论是流畅度还是首包,QUIC相对TCP的实际传输性能提升十分明显。
流畅度
在20%丢包的情况下,QUIC的流畅度比TCP高20%。
QUIC vs TCP流畅度实测数据
首包
在20%丢包的情况下,QUIC的首包时间比TCP少0.2~0.8秒。
QUIC vs TCP首包时间实测数据
04 QUIC未来的应用场景
根据W3Teches的采集统计数据,到目前为止HTTP/3的使用量已达到25%左右。QUIC已经展现了其强大的生命力。未来,QUIC 也将被应用在更广泛的场景中,以此改善用户上网体验。
直播(移动直播、海外直播)
在移动直播和海外直播的场景中,网络环境更加复杂,存在更严重的丢包和网络延迟。而基于QUIC更强的抗弱网能力和连接迁移,可以有效提高视频画面秒开率,降低画面卡顿率和请求失败率,在切换网络的时候,用户体验无感知。
Web应用
随着网络技术的发展, Web的内容元素更加丰富,图片视频更高清。如果在山区移动网络、海外等复杂网络下访问,页面加载显示时间长,且容易出现加载失败。
HTTP/3除了继承HTTP/2多路复用的特性,同时底层使用QUIC传输,避免了队头堵塞。弱网情况下,可大幅提高网络传输效率,提升页面的加载率。
物联网
在物联网场景中,基本都是终端设备和物联网平台进行连接通信。由于终端设备使用的环境比较复杂混乱,比如在高速移动、海上、深山等环境,设备能使用的网络资源非常有限。基于TCP的MQTT物联网通信协议会出现经常性连接中断、重连时Server/Client开销较大等问题。
而QUIC 0 RTT重连/1 RTT新建能力及多路复用的特性就显示出了其优势,能够在弱网与不固定的网络中提高内容传输效率,提升用户体验。