webrtc弱网-ProbeBitrateEstimator类源码分析与算法原理

一、核心功能

ProbeBitrateEstimator 是 WebRTC 中用于估计网络带宽的探测器类,其主要功能是通过分析探测包(probe packets)的发送和接收情况,来估算当前网络的可用带宽。它在拥塞控制中起到关键作用,帮助确定合适的发送速率。

二、核心算法原理

算法基于发送和接收探测包的时间间隔和数据量来计算带宽:

  1. 将属于同一探测簇(cluster)的包进行聚合统计

  2. 计算发送端速率:(总数据量 - 最后一个包大小) / (最后发送时间 - 最先发送时间)

  3. 计算接收端速率:(总数据量 - 第一个包大小) / (最后接收时间 - 最先接收时间)

  4. 取两个速率的最小值作为初步估计

  5. 如果接收速率远小于发送速率,则应用目标利用率系数进行调整

三、关键数据结构

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值