WebRTC 中带宽估计与拥塞控制算法

WebRTC 中的带宽估计与拥塞控制算法有很多,以下是其中几种:

- GCC(Google Congestion Control):基于丢包的带宽估计,其基本思想是根据丢包的多少来判断网络的拥塞程度。丢包越多则认为网络越拥塞,发送速率就需要降低;如果没有丢包,则说明网络状况较好,可以提高发送码率以探测是否有更多的带宽可用。

- Goog-REMB:基于接收端的延迟算法,利用延迟值,通过卡尔曼滤波器估计出下一时刻的网络带宽趋势。但效果的准确性和公平性不如 Transport-CC,目前已经被 WebRTC 的新版本所淘汰。

**- Transport-CC:**基于发送端的延迟算法,也是利用区间延迟值,通过 TrendLine 滤波器(最小二乘法滤波器),通过斜率的增加或者减小来判断当前网络的拥塞状况。

Transport-CC将拥塞评估算法从接收端移动到了发送端,是通过接收端记录数据包到达时间,构造相关RTCP包,然后反馈给发送端,在发送端做带宽估计,从而进行拥塞控制实现的。这样做除了方便维护,也增加了相关算法的灵活性,因为大多数处理逻辑都放到了发送端。

**- BBR:**一种基于模型的拥塞控制算法,BBR 的模型包括两个显式估计参数:Bottleneck Bandwidth(瓶颈带宽)和 Round Trip Propagation Delay(双向往返传播延迟)。BBR 使用其模型寻找具有高吞吐量的操作点和低延迟,以在最佳工作点附近工作,系统需要保持两个条件:Rate Balance(最大发送速率)和 Full Pipe(BDP = BBR.BtlBw * BBR.RTprop)。

这些算法在 WebRTC 中都有广泛的应用,具体使用哪种算法取决于实际需求和网络状况。

相关推荐
喵了几个咪2 天前
Kratos WebRTC 传输中间件:H5游戏P2P实时音视频与数据通信实战
游戏·微服务·中间件·golang·webrtc·实时音视频·kratos
喵个咪2 天前
Kratos + WebRTC 实战:实现浏览器 P2P 音视频通话与实时数据通信
后端·微服务·webrtc
肖爱Kun3 天前
Webrtc本端发candidate给对端
webrtc
肖爱Kun4 天前
Webrtc本端和对端信令交互步骤
服务器·webrtc
肖爱Kun4 天前
Webrtc信令交互
服务器·webrtc
Fisher3Star6 天前
WebRTC Transport 两种创建方式的差异解析
webrtc
Fisher3Star6 天前
FFmpeg推流至Mediasoup全流程指南
webrtc
Fisher3Star7 天前
mediasoup 创建Router全流程详解
webrtc
声网7 天前
OpenAI 的 WebRTC 秘密架构:没有 SFU?没有问题!丨 Voice Agent 学习笔记
学习·架构·webrtc
HySpark10 天前
VAD 与流式 ASR 踩坑复盘及完整解决方案
webrtc·vad·离线语音转写·流式asr·qwen-asr·音频预处理