极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

近日,艾媒咨询发布了《2021 年中国泛娱乐行业体验共享专题报告》,首次提出「体验共享」将成为泛娱乐行业日后发展的重要方向。针对该趋势,网易云信推出「体验共享」技术专题,从 QoS 策略、WE-CAN 全球智能路由网络、视频、音频等维度解读一起听、一起看、一起唱、一起玩等场景背后的技术支持。

作者:王任 网易云信资深音视频引擎开发工程师

随着移动网络的普及和发展,视频会议、互动直播等音视频交互式应用迎来了爆发式的增长,为满足人们对音视频高品质、低延时、极致流畅体验的要求,网络 QoS(Quality of Service,服务质量)策略提供了对数据传输通道的基础保障。

音视频网络传输常见的问题和挑战有:拥塞、延时抖动、丢包等。当网络出现拥塞,对拥塞的处理不当,会导致网络延时不断变大,严重时甚至会出现丢包,最终导致音视频播放延时久、卡顿等。拥塞控制是网络 QoS 非常重要的部分,本文主要介绍网易云信的拥塞控制技术和策略。

一、什么是网络拥塞和拥塞控制

网络拥塞是指对网络资源(包括链路带宽、存储空间和处理器能力等)的使用超过了固有的处理能力和容量,造成网络传输性能下降的情况。拥塞控制的目的是通过控制发送端发送数据的速率,避免出现网络拥塞,以及出现拥塞之后,进行拥塞消除,从而提升网络吞吐率。如果把网络中传输的数据比喻为道路交通中的车辆,网络拥塞就如同交通拥塞,拥塞控制策略就像是交通秩序管理和疏通措施。

极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

二、网络拥塞产生的原因与网络分类

在 WIFI 网络中,信号强度和传输能力随着传输距离的增加而下降,物理遮挡、信号干扰、接入设备众多等原因都会导致链路的可用传输带宽受到限制。

移动通信网络中,同样也会受到移动网络信号强度以及基站接入容量的限制。

有线网络中,如果分配的是共享带宽,而不是独享带宽,上网高峰期间同样也有可能存在带宽的限制。

无论是哪种物理类型的网络,根据拥塞后不同的表现现象,可把网络大致分为两类:

浅缓冲区(shallow buffers) 网络:几乎没有网络节点 buffers,拥塞后直接表现为丢包,丢包前延时不增加或增加不明显。

深缓冲区(depth buffers)网络:有较大的网络节点 buffers,拥塞后最先表现为延时增加,只有当网络节点 buffers 消耗殆尽时,才会产生丢包。

极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

Figure 1:负载延时示意图

三、拥塞控制策略介绍

拥塞控制策略,主要包括实时带宽估计算法、码率分配策略以及平滑发送。

极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

(一)融合的带宽估计算法

采用融合算法,分别使用基于延时变化 (delay-based)的算法和基于丢包 (loss-based)的算法,对网络拥塞状态、丢包趋势进行检测,并结合 ACK 码率,计算得到带宽估计值。

算法流程如下:

  1. 发送端平滑发送数据,接收端周期性反馈收包情况,包括每个包是否到达,以及具体的到达时间;
  2. 发送端在接收到反馈信息后,把包到达时间以及包大小进行输入,计算给定时间窗内(通常是数百 ms)接收方接收码率的样本值,并通过贝叶斯估计算法(使用当前估计值和新的样本码率计算得到新的估计值,与当前估计值相差甚远的样本,被赋予较小的权重,因为它们被认为更有可能是与拥塞无关的延迟峰值造成的),计算接收方的接收码率(以下称为 ACK 码率),网络出现拥塞时,把 ACK 码率作为估计带宽值的参考值。
  3. delay-based 算法进行带宽估计时,首先,把发送数据包进行分组(burst group)处理,并计算得到相邻包组的传输延时梯度变化值,然后把它作为输入,通过趋势线性(trendline)算法,对网络负载情况进行估计。一共有三种网络状态:拥塞(overuse)、正常(normal)、低负载(underuse)。
  4. loss-based 算法,根据反馈信息,计算得到样本丢包率,然后把它和发送码率一起作为输入,通过滤波算法对丢包率趋势做出判定,有三种趋势状态:LossIncr、LossHold、LossDecr。
  5. 首先根据网络负载状态、丢包趋势状态以及 ACK 码率,进行码率计算(Rate Control ),有三种状态:RC Decr、RC Hold、RC Incr,得到 RC 估计值,然后再结合当前丢包率和丢包趋势状态,计算得到最终的带宽估计值(Bandwidth Estimate)。

极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

  • 丢包率小于设定的阈值(低),取 θ*RC 估计值为最终估计值(θ 取值大于 1.0,根据 RTT 动态调整,RTT 越大,越接近 1.0);
  • 丢包率大于设定的阈值(高)且处于 LossIncr 状态持续超过阈值,取 ACK 码率为最终估计值;
  • 其他情况,取 RC 估计值为最终估计值。
  • 对于深缓冲区网络,当网络出现拥塞时,传输延时呈现逐渐增加的趋势,所以 delay-based 算法能够及时检测网络处于拥塞状态,从而可以准确计算得到带宽估计值,并进行拥塞控制。
  • 而对于浅缓冲区网络,当网络出现拥塞时,延时没有增加或增加不明显,delay-based 算法无法或无法及时检测到网络处于拥塞状态。此时,需结合丢包率和丢包趋势进行估计。

网络带宽变化时,根据实时带宽估计值动态调整编码码率,示例:

极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

(二)码率分配

通常,我们把带宽估计值的上限设置为视频的最大推荐码率(由视频质量控制 VQC 模块根据采集分辨率和帧率等计算得到)。当网络没有丢包时,带宽估计的所有码率,全部分配用于编码;当网络存在丢包时,采用前向纠错(FEC)+丢包重传(NACK)的策略,进行丢包恢复,因此,带宽码率分配时,需保证带宽估计值等于 FEC 码率+重传码率+编码码率三者之和,才不会导致网络拥塞。可见,丢包情况下,FEC 和重传码率会挤占编码码率,视频质量会有一定程度上的下降。

动态码率上限策略:根据过去一段时间统计的发送总码率与编码码率的比值,得到当前的带外系数样本值,经滤波平滑处理(取观察窗口内的均值)后,得到最终的带外系数,用它乘以编码最大推荐码率,作为新的带宽估计上限。上限值的更新采取快升慢降的策略。

通过动态上限机制,即通过计算带外系数,把带宽估计值的上限进行提升,在可用带宽足够的情况下,使 FEC 和重传码率占用带外码率,提升编码码率。

极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

70% 丢包+2 Mbps 带限 VS 70% 丢包不限带宽,后者视频清晰度提升效果明显:

VS

(三)平滑发送

平滑发送(Paced Send)通过令牌桶限速机制来实现对发送速度的控制:所有待发送的 RTP 数据包(包括编码、FEC、重传包),都先放入优先级队列中进行管理,定时器根据带宽估计值和 Pacer 系数定期更新预算,当预算不为零时,直接发送队列中的数据并消耗预算,预算消耗完,暂停发送数据。

极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

由 Pacer 系数控制平滑力度,若 Pacer 系数等于 1.0,则表示严格按照带宽估计值发送数据,此时对网络的突发冲击最小,有利于提升带宽利用率和稳定性,但可能会引入一定的帧发送延时(Pacer 延时)。

在音视频应用中,由于以下原因,往发送队列中添加数据的速率存在波动:

  1. 周期性的 I 帧、场景变化等导致编码器输出的帧大小、帧码率不均匀;
  2. 应对突发丢包而增加的 FEC、重传码率。

一方面要通过平滑减少码率波动峰值对网络造成的拥塞,避免引入大的拥塞延时导致卡顿,另一方面要减少较大帧的帧发送耗时,两者不可兼得。因此平滑系数的设置显得尤其重要,这实际上是 Pacer 延时、拥塞延时、带宽利用率、卡顿率等 QoE 评价指标之间的平衡。

极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题

动态 pacer 系数策略

设计原则:在带宽受限的时候,把平滑系数尽量设置小一些,并根据排队延时,动态增减。在带宽不受限时,把平滑系数设置大一些。结合当前带宽估计值和过去一段时间内(观察窗口期)的网络拥塞状态,判定带宽是否受限。

四、总结

本文主要介绍了网络 Qos 中的拥塞控制策略,包括带宽估计算法、码率分配以及平滑发送策略。拥塞控制应用到具体的音视频业务中,实际是各种 QoE 指标之间的平衡,算法的改进通常不是一蹴而就的,通过实验室弱网模拟结合线上灰度观察关键指标来验证,采用数据驱动的方式,帮助打磨出最合适的拥塞控制策略和参数:在保障低端到端播放延时、低卡顿率的同时,拥有高带宽利用率,为打造极致流畅的高品质音视频体验保驾护航。

作者介绍

王任,网易云信资深音视频引擎开发工程师,主要负责网络引擎的 QoS 算法开发,在流媒体传输协议、弱网对抗、拥塞控制算法设计方面有丰富的经验。

关于网易云信

网易云信:网易智企旗下融合通信云服务专家、通信与视频 PaaS 平台。集网易 24 年 IM 以及音视频技术打造的融合通信云服务专家,稳定易用的通信与视频 PaaS 平台。提供融合通信与视频的核心能力与组件,包含 IM 即时通讯、5G 消息平台、一键登录、信令、短信与号码隐私保护等通信服务,音视频通话、直播、点播、互动直播与互动白板等音视频服务,视频会议等组件服务,并联合网易易盾推出一站式安全通信方案「安全通」。目前,网易云信已经成功发送 1.6 万亿条消息,覆盖智能终端 SDK 数累计超过 186 亿,我们期待每个智能终端都有云信的融合通信能力。

文章标题:极致流畅体验的密码:网易云信 QoS 策略介绍|体验共享技术专题,发布者:网易智企,转载请注明出处:https://worktile.com/kb/p/5801

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
网易智企的头像网易智企认证作者
上一篇 2022年3月16日 下午10:21
下一篇 2022年3月16日 下午10:38

相关推荐

  • 面试你如何管理好一个项目

    管理好一个项目的关键在于项目规划、组织、执行、监控和闭环。这五个步骤构成了项目管理的核心骨架。项目规划是项目管理的首要步骤,它确立项目目标、制定实施计划,并分配资源。此步骤的成功是项目成功的基石,因为它直接关系到项目能否按时、按预算完成。具体而言,项目规划需要明确项目范围、时间和成本三大约束,确保项…

    2024年4月11日
    1100
  • LBS数据库的架构是怎样的

    LBS数据库的架构是怎样的:第一部分为LBS客户端管理部分,主要提供给客户端应用使用,客户端应用调用此部分提供的功能进行位置定位。LocationManager,提供给客户端应用调用,获取位置等信息,同时当有位置信息变化时通知客户端应用。 一、LBS数据库的架构是怎样的 1)第一部分为LBS客户端管…

    2023年6月4日
    42600
  • 参股跟投项目如何管理

    参股跟投项目的管理要求明确的策略与可靠的执行,首先确保法务合规性、风险控制、盈亏跟踪、投后管理以及退出机制。明确投资策略是首要之务,比如选择合适的行业、投资时机、合作伙伴等。其次,确保法务合规,包括投资合同的制定、尽职调查以及知识产权的保护。此外,风险控制机制对于预防和应对潜在问题至关重要,它要求投…

    2024年4月10日
    1700
  • 如何理解和利用消费者行为

    本文深入探讨了消费者行为,并提供了实际应用的建议。文章聚焦在消费者行为理解和利用的四个核心观点:1、消费心理分析;2、购买决策过程;3、影响因素辨识;4、营销策略定制。消费心理分析用来解析消费者的内在需求和动机;购买决策过程阐释消费者从认识到购买的步骤;影响因素辨识梳理影响消费者选择的外部和内部因素…

    2023年11月27日
    38700
  • eplan无法找到部件数据库怎么解决

    解决方法是:一、手动添加部件数据库;二、修改部件数据库路径;三、修复或重新安装部件数据库文件。如果部件数据库文件被删除或移动了位置,可以通过手动添加部件数据库来解决问题。 一、手动添加部件数据库 如果部件数据库文件被删除或移动了位置,可以通过手动添加部件数据库来解决问题。具体步骤如下:打开EPLAN…

    2023年5月30日
    6.2K00
  • 如何进行有效的绩效评估和考核

    有效的绩效评估和考核涉及以下关键步骤:1、明确评估目的和标准;2、选择合适的评估工具和方法;3、设立公平透明的流程;4、进行持续的沟通和反馈;5、结合考核结果做出人员决策。其中,选择合适的评估工具和方法是一个重要环节,需要确保所选工具与公司战略和文化相符,能准确反映员工的绩效和潜力。有效的绩效评估和…

    2023年8月21日
    61100
  • 产品研发标准化管理

    产品研发标准化管理是确保产品质量、缩短研发周期、降低成本、提高竞争力的关键措施。通过标准化流程的建立、1、规范文档的制定、2、质量控制体系的实施、3、持续改进机制的运作等手段,实现产品研发管理的高效与科学化。特别是在规范文档制定方面,这对于信息传递的准确性和后续工作的顺利开展具有至关重要的作用。详细…

    2024年1月10日
    25300
  • 测绘项目如何管理

    测绘项目管理涉及多个关键环节,包括项目规划、成本控制、时间管理、质量保证、团队协作、技术应用等方面。项目规划尤其重要,因为它为项目的整体流程和结果设定了明确的框架和目标。确切的项目规划帮助团队预见潜在的风险、调配资源,并保持项目进度和预算的合理性。通过仔细设计项目的每一步,规划阶段确保了项目目标的实…

    2024年4月10日
    1900
  • PHP、Python、Ruby在Web开发的区别

    PHP、Python和Ruby的区别主要有:一、异常处理区别;二、关系型数据库抽象的区别;三、函数式语言特性区别。PHP是一种服务器端脚本语言,用于创建动态Web页面,而Python和Ruby都是通用编程语言,可以用于Web开发、数据分析、人工智能等领域。 一、异常处理区别 异常处理在所有三个语言都…

    2023年4月6日
    42700
  • 如何管理好高速项目部领导

    管理好高速项目部领导涉及明确目标、建立透明沟通、培养专业团队、强化责任感、以及推行有效监督。在这些策略中,建立透明沟通尤为重要,它不仅能确保信息的流动性、减少误会和冲突,而且能够建立团队成员之间的信任,进而提升项目执行效率和质量。 一、明确目标 高速项目部的领导管理首先要从明确项目目标开始。项目目标…

    2024年4月10日
    1300

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部