1. BBR与BBR Plus算法概述
BBR(Bottleneck Bandwidth and Round-trip propagation time)是Google提出的拥塞控制算法,通过实时测量带宽和往返时间(RTT)动态调整发送速率,避免传统基于丢包的算法在高带宽、高延迟网络中产生的缓冲区膨胀问题。其核心优势在于主动探测网络瓶颈,而非被动依赖丢包事件判断拥塞。
BBR Plus是开源社区对BBR v1的改进版本,主要解决两大问题:
1) 失速问题:通过引入extra_acked机制动态扩展拥塞窗口,补偿因ACK聚合导致的发送停滞
2) 收敛速度:采用自适应Drain阶段替代固定周期,加速队列排空过程
2. 吞吐量优化机制对比
在吞吐量优化方面,BBR与BBR Plus呈现显著差异:
- BBR特性:
- 在浅缓存网络(缓冲区≤BDP)中吞吐量比Cubic高200%
- 高丢包率(>20%)时吞吐量急剧下降
- BBR Plus改进:
- 窗口化最大值统计:通过10-RTT滑动窗口记录历史最大extra_acked值
- 随机化探测周期:将固定8-RTT探测周期改为2-8 RTT随机值
测试数据显示,在15%丢包率、190ms±20ms抖动环境下,BBR Plus前段加速曲线更快,但全程平均吞吐量(700-800KB/s)仍低于5.x内核原生BBR。
3. 延迟控制策略差异
延迟优化是两者另一关键差异点:
- 原生BBR在深缓存网络中可能残留队列,导致延迟波动
- BBR Plus引入动态Drain机制:
- 持续降低发送速率直至inflight≤BDP
- 减少平均队列长度约40%
- 滑动窗口统计机制有效抑制突发延迟,降低99%尾延迟
4. 实际网络环境性能测试
通过tc模拟网络环境测试显示:
指标 | BBR | BBR Plus |
---|---|---|
峰值吞吐量 | 950KB/s | 1250KB/s |
平均延迟 | 210ms | 185ms |
延迟标准差 | ±25ms | ±18ms |
数据表明BBR Plus在突发传输场景具备优势,但稳定性仍待提升。
BBR Plus通过动态窗口扩展和自适应队列管理,在复杂网络环境下实现更均衡的吞吐量与延迟表现。原生BBR在高带宽、低延迟场景仍具优势,而BBR Plus更适合存在ACK聚合、随机丢包的移动网络环境。用户应根据实际网络特征选择算法,动态资源分配的VPS建议优先测试BBR Plus。
本文由阿里云优惠网发布。发布者:编辑员。禁止采集与转载行为,违者必究。出处:https://aliyunyh.com/587716.html
其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。