第1年1月4日 拥塞控制gcc

1.

GCC算法是大家普遍使用的一个RTC里的拥塞控制算法,它也是开源WebRTC当前默认使用的,算法是主要基于时延+丢包,核心模块有三个:

(1)到达时间滤波器;

(2)过载检查器;

(3)速率控制器。

GCC算法这几年也在不断的更新迭代,早期带宽在接收端估计,发送端在媒体包头上需要携带abs-sendtime,接收端采用的是卡尔曼滤波器,估算出带宽后用REMB协议带回发送端;后来带宽估计在发送端来做,发送端在媒体包头上需要携带统一序transport-sequence-number,然后接收端将收包信息,主要包括收包时间等使用transportCC报文带回发送端,在发送端采用线性滤波器进行相关带宽估计。

 

因为GCC算法在业界比较成熟,这里我就不多做介绍,简单分享一下我们在实践的过程中发现的几个问题:

(1)带宽估计不够准确,特别是低带宽时会过降;

(2)与TCP竞争会过度退避;

(3)在时延抖动场景,带宽波动大。

当然这些问题,随着GCC的持续优化有些会逐渐被优化,但是有些问题却是在GCC框架下无法解决的。后来,我们关注到了BBR。

https://blog.csdn.net/netease_im/article/details/104844583

 

posted @ 2021-01-04 16:06  lianhuaren  阅读(139)  评论(0编辑  收藏  举报