当前的终端基本都能支持蜂窝网络和wifi网络,然而,不同的网络通路都不可避免的会出现信号不好或者其他因素引起的通路性能(吞吐量、时延等)下降。为了能够提升终端业务体验,很多不同的MultiPath方案被提出,其中,包括应用层的MultiPath HTTP,传输层的MultiPath TCP,MultiPath QUIC等等。
2023年Mobicom会议中有一篇关于MultiPath HTTP的文章,由北大与华为联合发表,名为"Experience: A Three-Year Retrospective of Large-scale Multipath Transport Deployment for Mobile Applications"。文章中所提出的基于MultiPath HTTP的方案FLEETY,从2019年9月开始,部署在142款不同的终端中,有156种不同的应用支持。截止到2022年1月,有约1000万用户使用到了FLEETY。在吞吐量增益维度,中值和平均值的增加值分别为82 Kbps和4.43 Mbps。在时延增益维度,增益不明显,其中,时延降低100ms的占比约5.32%,时延降低在30ms之内的占比约为49.97%。在功耗维度,对于大数据量的下载类业务增益明显。
FLEETY框架:
(1) Flow classifier:将不同的包(DNS、HTTP等)分发到不同的模块,HTTP数据包会分发到MPHTTP proxy模块。DNS数据包会同时往wifi和Cell通路发送以提升可靠性;
(2) MPHTTP proxy:在收到HTTP请求后,将数据包拆分为两个,分别从wifi和cell通路发送。MPHTTP proxy会根据wifi和cell通路的速率来确定分配到两条通路上的数据的大小,以保证两条通路的数据传输时延一致;
(3) Consistency verifier:通过扩展在wifi通路所发送数据包的尾部,以及扩展在cell通路所发送数据包头部,在接收端进行检测;
FLEETY性能:
FLEETY由于采用的是MultiPath HTTP技术,只需要终端侧的修改。相比于MultiPath TCP以及MultiPath QUIC等技术,它们都需要同时在终端侧以及服务端侧的修改。
从作者的实验结果看,FLEETY对于吞吐量有一定的增益,对时延增益不太明显。
MultiPath相关方案对于终端而言的另一个重要影响是功耗,从作者的实验结果看到,对于大文件下载业务,是可以很明显的降低功耗,约40%。但对于小数据量的业务,比如游戏和网页浏览,功耗是有一定的增加,分别是6.4%和1.4%。
论文原文链接:
Experience: A Three-Year Retrospective of Large-scale Multipath Transport Deployment for Mobile Applications | Proceedings of the 29th Annual International Conference on Mobile Computing and Networking