MPQUIC很好,但现有的相关讨论比较一般化,没有针对大规模视频流传输场景的。
传统的MPTCP非常难以部署,因为其需要操作系统级别的支持
默认的MPQUIC方案,使用多路径时的性能甚至比单路径还要差。其主要原因来自于多径队头堵塞(Multu-path head-of-line,MP-HoL)
一种缓解多径队头堵塞的方法是使用更加复杂的包调度算法,但是这些算法都不太行:不就难以适应高度动态的无线环境,不就使用冗余包而产生了大量的额外流量
截止目前,对于在大规模视频流传输业务上使用多径传输的可行性以及收益如何,仍然不清楚。
介绍了XLINK,这是淘宝针对短视频优化的MPQUIC方案,并介绍了其部署经验。
相比单路径的QUIC,XLINK取得显著提升:在视频块请求完成时间99th分位获得19%-50%的提升,在首个视频帧时延99th分位获得32%提升,在重缓冲比例获得23%-67%的提升。
该算法代码已开源在github(GitHub - alibaba/xquic: XQUIC Library released by Alibaba is a cross-platform implementation of QUIC and HTTP/3 protocol.),获得1.2k stars

XLINK作为一个用户空间的UDP协议,可以直接感知到视频传输质量以及QoE,从而调整其在多径上的发包策略。
注:该文章是在安卓上的淘宝客户端进行实验,打开淘宝app,可以在“设置-通用-网络加速”中找到该功能,该功能默认为开启状态。
XLINK算法实现主要包含三个部分:
基于优先级的数据包重新注入
QoE反馈控制
QoE感知的路径管理
以下进行详细介绍
Re-injection 是什么?
在多条路径发送额外的冗余数据包,这使得某些数据包在其中一部分链路丢失也没有关系,如图3所示。

传统的重新注入方案有什么缺点?
传统的重新注入方案会被其他的stream给堵塞住,如图4(a)所示。

XLINK的重新注入有什么创新点
基于优先级的重新注入,如图4(b)所示。重新注入的数据包会立即跟在对应的stream后面,避免被其他stream所堵塞。
对首个视频帧的加速方案。如果第一个视频帧恰好被放在比较差的路径上传输时,会严重影响QoE(视频无法加载)。对于这种情况,基于stream细粒度的重新注入是不够的,因为被堵塞住的首个视频帧数据包仍然会被相同stream的数据包给堵塞住。
但这种重新注入方案会带来额外的带宽开销,这对于大规模部署来说仍然是有待优化的。
具体来说,有些数据包其实没必要被重新注入,这是因为数据包距离被播放还具有比较长的时间,没有那么urgent。
XLINK在客户端可以感知到QoE,然后通过ACK_MP数据帧将该信息传达给server端,帮助server端来做重新注入决策。
具体的重新注入控制逻辑请见论文5.2章节部分
包含两部分:主路径选择以及ACK路径选择
无线感知的主路径选择
当多条路径的时延相差过大时,主路径的选择是影响多径传输性能的重要因素。而在5G SA的部署下,这个路径时延差变得相当大了。
XLINK根据路径的时延大小来选择主路径,偏好顺序为:5G SA > 5G NSA > WiFi > LTE。(注:这个顺序可能因为不同地区的无线信道特征而有所不同)
注:关于5G SA与NSA的区别,可参考这篇文章关于5G的NSA和SA,看完秒懂! - 知乎
ACK路径选择
不同于MPTCP中ACK只能在对应的sub-flow路径传输,XLINK的ACK传输路径更加灵活,可以在任意一条路径传输。
XLINK选择将ACK放在RTT最短的路径上进行传输,可以在时延差较大时有效提高吞吐量。
