手机淘宝在短视频、图片等多个场景下会用到CDN内容分发网络,手机淘宝技术和阿里云CDN技术有非常多的共建合作,其中包括在IETF QUIC加速产品方向。1月12日的「阿里云CDN重磅升级 | 新一代传输协议QUIC让CDN更快一步」产品发布会中,来自大淘宝平台技术团队,负责手机淘宝网络和网关技术的喵吉,分享了手机淘宝使用IETF QUIC加速产品的应用场景和效果,以及介绍下配套的XQUIC库的情况。以下为分享全文。
回顾过去,早在18年左右,基于GQUIC,手机淘宝和阿里云就开始合作,主要应用在手机淘宝的图片和短视频等内容分发的场景。在19年初,当时大家有一个共同的判断是要走标准化道路,一方面是因为从商业化产品角度,私有协议解决方案更难被用户认可,另一方面整个标准化协议的设计和安全性都有更完备的考量。在决定选择标准化道路之后,当时市面上也没有特别成熟并适用于移动端的IETF QUIC协议栈实现,所以手机淘宝就启动了自研XQUIC项目,经过1年半的研发和打磨,于20年的6月份开始全面上线,并且在21年初与CDN IETF QUIC产品实现对接,并在短视频场景上开始逐步应用IETF QUIC技术。在去年的9月份我们实现了IETF QUIC整套协议栈在短视频场景下的规模化应用。之后,我们经历了同年双十一的考验,XQUIC和CDN产品的性能和稳定性都有了很好的验证,因此在今年的1月7号我们完成了XQUIC开源,同时也在此支持CDN IETF QUIC新品发布。
目前在手机淘宝主要在短视频场景使用CDN QUIC加速产品,最佳实践的技术方案是端侧XQUIC协议栈和CDN QUIC加速产品配套使用。针对手机淘宝短视频场景,带来的网络体验优化效果,体现在短视频分片下载耗时优化20%,卡顿率整体优化在10%。考虑到整体的优化效果非常明显,我们后续也会进一步在图片等场景下应用这一套加速技术。同时也把这一套最佳实践贡献给大家,希望能给云产品的客户带来更好的网络加速体验。
图片
发布会中前两位专家已经对QUIC的性能和优势做了详尽的分享,具体可以参考:
在此,我简单介绍下最佳实践端侧使用的XQUIC库。XQUIC是一个轻量、高性能、标准化的跨平台协议库。
轻量, XQUIC在Android/iOS双端的编译产物均小于400KB,我们知道为了减少新用户的安装成本,移动端的APP希望能尽量减少APP的包大小,因此XQUIC很适用于需要高性能但同时又对包大小敏感的移动端APP场景。
高性能传输,XQUIC已经在手机淘宝实现核心导购、短视频链路大规模使用,就比如我们打开手机淘宝的首页,或是搜索我们感兴趣的商品,或是打开逛逛浏览达人的视频,XQUIC都为这些场景的提供更快的网络数据传输。
在标准化方面,XQUIC实现了整套IETF QUIC标准协议,包含传输层、加密层、应用层协议栈。
在跨平台方面,我们的网络库支持Linux/Android/iOS/Mac等平台,后续也会支持Windows平台适配,客户端可以通过SDK方式很方便地接入并使用。
如前所述,XQUIC提供IETF QUIC标准包含的3层协议栈能力,它在客户端以sdk的方式运行,在服务端,可以通过module对接到tengine/nginx框架使用。
此外,针对移动端使用内容分发网络的场景,我们针对协议互通性、0-RTT比例提升、明文和密文模式兼容等方面做了不少额外工作。比如明文和密文模式兼容方面,我们除了支持标准TLS/1.3推荐的加密套件之外,也额外提供了明文模式,并且在握手阶段可以实现自适应的协商,通过握手阶段的alpn参数实现协商,并保证对标准密文模式的兼容性。在0-RTT比例提升方面,我们也针对server config以及token的缓存策略进行了优化,0-RTT比例在无线端可以达到68%以上。
相信XQUIC协议库与CDN QUIC加速产品的配合,能够整体给用户带来更丝滑的网络传输体验。