近日,腾讯云宣布负载均衡(CLB)率先支持QUIC(全称是“Quick UDP Internet Connections”)协议,成为国内首家拥抱新一代网络传输标准的云计算服务商。这意味着用户基于该协议进行网络文件传输时,能够将访问速度大幅提升15%以上,获得更高效的网络传输体验。此外,QUIC协议在切换网络时连接保持的特性,可以实现客户端在4G和Wifi间的无缝切换,极大提升用户体验。
QUIC协议实现更快速的网络传输
QUIC是由Google提出的基于UDP构建的安全多路并发的传输层协议,代表了快速UDP Internet连接。作为一个新兴的协议,QUIC具有非常大的势能与效用。它通过改进TCP协议的功能,重构TLS(Transport Layer Security,即传输层安全)协议,以及吸收HTTP2的大部分特性,使其在网络传输稳定性、安全性、并发性和快速性等方面做了很大提升。
QUIC支持加密层和传输层0RTT(Round-Trip Time,即往返时延)握手即可实现数据发送,并且0RTT的成功率相比TLS的Session ticket要高很多。在QUIC连接里,数据可以直接发送,而不用等待服务器握手完成。
QUIC最基本的传输单元是Packet(信息包),加密和认证过程也是基于Packet。QUIC Stream之间又相互独立,单个Stream的数据丢失不会影响其他的Stream.因此基于QUIC传输大量数据时,比如视频,受到队头阻塞的影响很小。QUIC的拥塞控制实现了可插件形式,使用Packet Number代替TCP的sequence number,每个Packet Number都严格递增。并且,QUIC在协议层面禁止Reneging,有效减少数据重传的干扰。同时,它还提供更多的Ack块,既能够更加精准地计算RTT,又能够提供更加丰富的重传信息。
与以往TCP连接不同的是,QUIC连接是以一个64位的随机数作为ID来标识。这样即使IP或者端口发生变化时,只要ID不变,QUIC连接依然维持,整个网络和IP切换过程,用户和业务将毫无感知。
腾讯云负载均衡率先支持QUIC协议
早在2016年,腾讯云便对QUIC协议的特性及性能做了一个全面的测试,测试结果证明QUIC的优势对比HTTP也较为突出。例如,在页面元素比较少(12个元素)的情况下,相比HTTP提升9%,相比HTTP2提升42%,相比HTTPS提升52%;在页面元素增多的情况下,相比HTTP提升36%,相比HTTP2提升47%,相比HTTPS提升64%。
用户接入腾讯云CLB并使用QUIC协议时将通过如下步骤:
QUIC接入架构
1. 用户侧使用的各种请求,首先接入CLB;
2. 请求到达CLB后,CLB使用ID负载均衡算法将请求转发到CLB QUIC集群;非QUIC协议,使用用户配置的各种负载均衡算法进行转发;
3. CLB针对请求进行解析,如果需要私钥计算(比如TLS完全握手),会将部分重要参数转发到私钥计算集群进行高强度计算。如果需要查询Session ID或者Server Config ID,会做一些缓存查询。这样能够减少计算量,也能减少握手时间;
4. CLB接下去会将QUIC/HTTP2/HTTPS协议统一转换成HTTP1.1请求。由于QUIC使用的是UDP协议,HTTP1.1使用的是TCP,UDP协议的内容经过转换后会使用TCP进行转发;
5. 业务集群只需要处理HTTP1.1协议即可。如果是自定义的私有协议,腾讯云也支持TCP/UDP透明转发,由业务自行处理。
目前,腾讯云已在包括QQ黄钻页面,游戏页面在内的多项内部业务中验证了QUIC协议的性能数据。
Qzone QUIC页面
如上图所示,图中红色箭头指向的绿色标识表示该页面使用了QUIC协议,可以看出灰度实验的效果也非常明显。其中QUIC请求的首字节时间比http2平均减少326ms,性能提升约25%。此外,QUIC请求发出的时间比http2平均减少250ms,QUIC请求页面加载完成的时间平均减少2s,由于整体页面比较复杂,很多其它的资源加载阻塞,导致整体加载完成的时间约9s,性能提升比例约22%。
可以发现,用户在通过QUIC协议进行网络操作时,即使网络页面元素较多,也将极大的提高页面的加载进度,从而有效降低网络延时带来的用户体验不佳的风险。
腾讯云网络产品中心总监刘颖表示,腾讯云会持续探索业界先进的标准协议并提供支持和优化,以更安全、更快速的网络服务助力用户业务在云端实现增值创新。