RobustThroughputEstimator在WebRTC中负责精确估计网络吞吐量,为拥塞控制提供关键数据支撑。它采用滑动窗口机制,基于ACKed数据包的发送/接收时间动态计算速率,通过双重验证(取发送/接收速率最小值)和抗干扰设计(去除最大时间间隙、乱序恢复)确保估计结果稳定可靠。该估计器能有效抵抗网络抖动和包乱序,在复杂网络环境下为码率自适应、带宽预测等核心功能提供准确的吞吐量参考,从而保障音视频传输的流畅性和质量。
一. 核心功能
RobustThroughputEstimator 是一个鲁棒吞吐量估计器,主要功能:
-
基于ACKed数据包的发送/接收时间窗口计算网络吞吐量
-
提供抗抖动和抗乱序的吞吐量估计
-
同时考虑发送速率和接收速率,取最小值作为最终估计
-
支持滑动窗口机制,自动淘汰过期数据
二. 核心算法原理
2.1 吞吐量计算原理
// 接收速率 = (总接收数据量 - 首个包数据量) / (调整后的接收时间窗口) DataRate recv_rate = recv_size / recv_duration; // 发送速率 = (总发送数据量 - 末个包数据量) / 发送时间窗口 DataRate send_rate = send_size / send_duration; // 最终吞吐量取两者最小值 return std::min(send_rate, recv_rate);
2.2 鲁棒性处理
-
去除最大间隙:用第二大接收时间间隙替换最大间隙,避免突发延迟影响
-
乱序检测:检测严重乱序情况并清空窗口重新开始
-
权重调整:对未确认数据应用权重衰减
<

最低0.47元/天 解锁文章
1035

被折叠的 条评论
为什么被折叠?



