Google TCP BBR
BBR:https://github.com/google/bbr
BBR(Bottleneck Bandwidth and RTT)是Google开发的一种TCP拥塞控制算法,旨在优化网络性能,特别是在高带宽和高延迟的网络环境中。BBR算法通过计算链路的瓶颈带宽和往返时延(RTT),动态调整发送速率,从而避免传统TCP算法中出现的拥塞控制瓶颈。
BBR的核心思想:
BBR通过以下几个方面进行优化:
- 瓶颈带宽计算:BBR实时估算当前网络链路的瓶颈带宽(即网络中最慢的部分)和延迟。通过这些信息,BBR可以自适应地调整数据发送速率,避免网络发生过度拥塞。
- 延迟控制:与传统的TCP拥塞控制算法不同,BBR不仅关注丢包事件来判断拥塞,还通过延迟的变化来调整发送速率。这使得BBR可以在高延迟、低丢包的环境中表现得更好。
- 发送速率优化:BBR通过逐步增加发送速率来检测链路的实际带宽,当它接近链路的瓶颈带宽时,开始调整速率避免过度拥塞。
与传统TCP算法对比:
- 传统的TCP算法(如Cubic)主要依赖丢包来调整发送速率,常常导致拥塞窗口的剧烈波动。
- BBR则通过避免依赖丢包来判断网络状态,从而实现更加平滑和高效的数据传输,尤其在长距离、高延迟的网络中表现尤为突出。
BBR的优势:
- 高效利用带宽:在高带宽、低丢包的环境中,BBR能够有效利用带宽,减少延迟。
- 适应性强:BBR能够动态调整,适应不同网络环境。
- 减少网络拥塞:通过延迟反馈机制,BBR能够避免传统TCP拥塞控制算法中的拥塞发生。
应用场景:
BBR特别适用于大规模互联网服务、高延迟的跨国网络连接、以及需要低延迟的应用(如视频流、实时通信等)。它已经在Google的数据中心和一些公共云平台(如GCP)中得到应用。
总结:
BBR是一个旨在提高网络传输效率、减少拥塞、并最大化带宽利用率的TCP拥塞控制算法。在很多高带宽、高延迟的应用场景中,BBR相比传统的TCP算法提供了显著的性能提升。
安装教程:
原版BBR开启代码
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
lsmod | grep bbr
BBR PLUS 一键安装脚本
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh # BBR一键安装脚本