XQUIC是阿里巴巴淘系架构团队自研的IETF QUIC标准化协议库实现,在手机淘宝上广泛应用,并在多个业务场景下取得明显的效果提升,为手机淘宝APP的用户带来顺畅的网络体验。从以上效果可以看出,对QUIC的一个常见误解是它只在弱网场景下有优化提升,实际上QUIC对整体网络体验都有普遍提升,尤其在弱网场景下效果更显著。此外,在5G推广初期,基站部署不够密集的情况下,如何保证稳定有效的带宽速率,是未来2-3年内手机视频应用将面临的重大挑战,而阿里巴巴研发的MPQUIC将为这些挑战提供解决方案。
本文将重点介绍XQUIC的设计原理、面向业务场景的网络传输优化,以及面向5G的Multipath QUIC技术。QUIC是基于UDP的可靠传输协议,最早的原型是SPDY + QUIC-Crypto + Reliable UDP,后来发展为HTTP/2.0 + TLS/1.3 + QUIC-Transport的组合。XQUIC是阿里巴巴自研的IETF QUIC标准化实现,选择标准协议 + 自研实现的道路是为了兼顾开源实现的问题,并且能够与外部客户打通。XQUIC的整体架构和传输框架设计包括QUIC-Transport、QUIC-TLS和HTTP/3.0的实现,同时提供了HTTP/3请求应答接口和传输层独立接口,使得其他应用层协议可以较为轻松地接入。
XQUIC的拥塞控制算法模块是决定传输行为和效率的核心模块之一。为了方便实现多套拥塞控制算法,XQUIC将拥塞控制算法流程抽象成7个回调接口,每种算法只需要实现这些接口即可。XQUIC在RPC请求场景降低了网络耗时15%,在短视频场景下降低了20%的卡顿率,在直播场景高峰期降低了30%的卡顿率并提升了2%的秒开率。
针对网络较差用户的流媒体观看体验优化,XQUIC采取了多种策略。在TCP握手阶段,调低初始重传超时时间可以提升秒开率。此外,XQUIC减少往返次数和调整拥塞控制算法参数,可以降低卡顿率。针对5G网络环境,XQUIC还研发了Multipath QUIC技术,可以同时利用Wi-Fi和蜂窝移动网络进行数据传输,提升传输速度和对抗弱网的能力。
XQUIC计划在2020年底开源,以加速IETF标准化QUIC的推广,并希望吸引更多开源社区开发者参与其中。随着5G的普及,QUIC将能更好地发挥优势,适应不同的业务场景需求,并为5G带来更好的网络体验。