技术编程,网易|网易云信流媒体服务端架构设计与实现( 七 )


文章图片

文章图片

基于流级别的优先级策略以及可选择性发送策略中优先级是在实际发送包后制定的包的优先级:重传包>音频包>视频包>被切掉的流>padding包 。
可选性发送策略是在实际转发中基于上行流SVC的码流 , 我们制定了SVC时域分层选取:在实际下行转发时会实时评估各个层总体的码流 , 在实际分发过程中会基于当前近程发送队列的拥塞程度去实时选取应该分发的层 。
技术编程,网易|网易云信流媒体服务端架构设计与实现
文章图片

文章图片

拥塞缓解的具体工作为:首先下调SVC分层选取 , 如果拥塞严重就切小流 , 然后基于包级别的优先级发送 。其次是如果实际网络发生拥塞 , 需要改造BBR的发送周期 , 即减少1.0倍发送周期 。另外 , 如果数据超发 , 源端的码率波动比较大 , 需要代替网络主动丢包 。
下图是具体的丢包策略:绿色条柱是应用程序发送队列的堆积情况 , 基于堆积的安全阈值和堆积的Trendline这两个去判断当前是否需要主动丢包 。
技术编程,网易|网易云信流媒体服务端架构设计与实现
文章图片

文章图片

上图是拥塞控制总图 , 首先是拥塞避免从BBR获取匹配的发送数据 , 当避免不了的时候就需要进行流优先级控制以及SVC分层选取控制 , 并进行拥塞缓解 , 最后数据真实发送给用户时要进行平滑发送 。


推荐阅读