BBR(Bottleneck Bandwidth and Round-trip propagation time)是一种由Google开发的TCP拥塞控制算法,旨在通过测量网络瓶颈带宽和往返传播时间,提高网络传输效率和吞吐量,减少延迟。与传统基于丢包的拥塞控制算法不同,BBR不依赖丢包信号,而是主动探测网络链路的最佳带宽,从而避免拥塞队列堆积,在高延迟或丢包环境中也能保持稳定性能。BBR广泛应用于Linux内核、CDN、游戏加速等场景,能显著提升视频流、大文件下载等应用的传输速度。
【常见问题】
问题1:BBR与传统拥塞控制算法有什么区别?
回答1:传统算法(如CUBIC)依赖检测数据包丢失来判断网络拥堵,容易导致队列溢出和延迟波动;而BBR通过实时计算瓶颈带宽和最小RTT,主动调整发送速率,避免队列堆积,从而在同等网络条件下实现更低延迟和更高吞吐量。
问题2:BBR是否适合所有网络环境?
回答2:BBR在长距离、高延迟或有轻微丢包的网络中表现优异,但在短距离高带宽环境(如局域网)可能不如CUBIC;此外,BBR对路由器队列调度策略敏感,若遇到AIMD友好性要求严格的环境,可能需配合公平性调整。
问题3:如何在Linux系统开启BBR?
回答3:在Linux内核版本4.9以上,可通过执行`echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf`和`echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf`,然后运行`sysctl -p`启用BBR;验证可用`sysctl net.ipv4.tcp_congestion_control`查看当前拥塞控制算法。
问题4:BBR会消耗更多CPU资源吗?
回答4:BBR需要实时计算RTT和带宽,相比传统算法会略微增加CPU开销(约1-5%),但通常可忽略不计;对于长期高负载服务器,建议根据实际压力评估是否启用。
问题5:BBR是否还有其他含义?
回答5:在网络领域之外,BBR还可能是板球统计指标(击球员击球数)、英文缩写“Be Back Right”等,但最常用含义仍指Google开发的拥塞控制算法。


