
在多链路调度策略中通常有三种调度策略流间调度、流内帧粒度调度、流内包粒度调度三种策略的难度逐步增加但链路使用效率和时延控制也是依次更优。流间调度的难度小主要原因是该调度策略只要能相对准确判断各条流的优先级即可实现其不足之处也很明显假如发生了链路质量反转这种流间调度依然会粘滞在某一条链路一段时间而这段时间会出现负载与链路质量的交叉则负载就会与时延产生错位流内帧粒度调度相对于流利度调度更优但难度更大要想进行合理的流内调度又不能够产生比流间调度更大的乱序其难度将增加数倍但带来的增益是明显的颗粒度的降低显然能够带来更好的时延控制和带宽利用率虽然如此该机制的调度颗粒度仍高于帧粒度在视频业务中通常I帧与BP帧的体积占比差异很大只要I帧被粘滞不进行链路切换这种粘滞效应依然会导致负载与链路质量出现剪刀差。流内包粒度调度可以很好的规避上述问题但难度会陡增这种最小颗粒度的调度方案能够把链路的利用率和时延控制水平都推到极致然而难度也是地狱级的要想实现本包的调度与总体时延的完全匹配是个极难的工作青岛乾元通科技目前采用的就是流内包粒度调度从实测效果来看在90%满载单链路无丢包负载之和的90%情况下上层业务的稳定性不仅能够超过流间调度的稳定性也能把全时段最高时延控制在各链路本底时延附近。