一、核心功能
ProbeBitrateEstimator 是 WebRTC 中用于估计网络带宽的探测器类,其主要功能是通过分析探测包(probe packets)的发送和接收情况,来估算当前网络的可用带宽。它在拥塞控制中起到关键作用,帮助确定合适的发送速率。
二、核心算法原理
算法基于发送和接收探测包的时间间隔和数据量来计算带宽:
-
将属于同一探测簇(cluster)的包进行聚合统计
-
计算发送端速率:
(总数据量 - 最后一个包大小) / (最后发送时间 - 最先发送时间) -
计算接收端速率:
(总数据量 - 第一个包大小) / (最后接收时间 - 最先接收时间) -
取两个速率的最小值作为初步估计
-
如果接收速率远小于发送速率,则应用目标利用率系数进行调整
三、关键数据结构
struct AggregatedCluster {
int num_probes = 0; // 探测包数量
Timestamp first_send = Timestamp::PlusInfinity(); // 最早发送时间
Timestamp last_send = Timestamp::MinusInfinity(); // 最晚发送时间
Timestamp first_receive = Timestamp::PlusInfinity(); // 最早接收时间
Timestamp last_receive = Timestamp::MinusInfinity(); // 最晚接收时间
DataSize size_last_send = DataSize::Zero(); // 最后发送包大小
DataSize size_first_receive = DataSize::Zero(); // 最先接收包大小
DataSiz

最低0.47元/天 解锁文章
885

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



