一、核心功能
IntervalBudget 类用于基于时间窗口的带宽预算管理。它根据设定的目标比特率(kbps)和一个固定时间窗口(500ms),计算在该时间窗口内可用的字节数(即“预算”),并支持预算的增加(随时间累积)和使用(发送数据时消耗)。该类可用于拥塞控制、码率调整等场景中,确保数据发送速率不超过目标速率。
二、核心算法原理
-
预算计算:
预算基于目标比特率和时间窗口(500ms)计算:
max_bytes_in_budget_ = (kWindowMs * target_rate_kbps_) / 8
即:最大预算 = (500ms × 目标速率kbps) / 8(转换为字节) -
预算累积(IncreaseBudget):
根据时间差delta_time_ms计算应增加的预算字节数。-
若允许积累未使用预算(
can_build_up_underuse_为true),则将剩余预算累加,但不超过最大值; -
否则,每个时间窗口的预算独立,不累积。
-
-
预算消耗(UseBudget):
每发送一定字节数,就从剩余预算中扣除,但不能低于-max_bytes_in_budget_(允许一定程度超支)。
三、关键数据结构
| 成员变量 | 类型 | 说明 |
|---|---|---|
target_rate_kbps_ |

最低0.47元/天 解锁文章
1035

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



