Debian 10 开启Google BBR的方法 - Google TCP BBR

2022年4月6日 1805点热度 2人点赞 0条评论

Debian 10 BBR的开启方法

Google TCP BBR 在 Linux v4.9 及以上就自动集成在Linux系统中了

GitHub项目地址在:https://github.com/google/bbr

 

 TCP BBR(Bottleneck Bandwidth and Round-trip propagation time)是由Google设计,于2016年发布的拥塞算法。以往大部分拥塞算法是基于丢包来作为降低传输速率的信号,而BBR则基于模型主动探测。该算法使用网络最近出站数据分组当时的最大带宽和往返时间来创建网络的显式模型。数据包传输的每个累积或选择性确认用于生成记录在数据包传输过程和确认返回期间的时间内所传送数据量的采样率。该算法认为随着网络接口控制器逐渐进入千兆速度时,与缓冲膨胀相关的延迟相比丢包更应该被认为是识别拥塞的主要决定因素,所以基于延迟模型的拥塞控制算法(如BBR)会有更高的吞吐量和更低的延迟,可以用BBR来替代其他流行的拥塞算法,例如CUBIC。Google在YouTube上应用该算法,将全球平均的YouTube网络吞吐量提高了4%,在一些国家超过了14%。

BBR之后移植入Linux内核4.9版本,并且对于QUIC可用。

BBR效率很高,速度也很快,但是它与非BBR的流的公平性有争议。虽然谷歌的展示显示 BBR 与 CUBIC 共存良好,但像杰夫·休斯顿和霍克、布利斯和齐特巴特等研究者发现它对其他流不公平,并且不可扩展。霍克等人还发现,在Linux 4.9的BBR实现中“存在一些严重的固有问题,如排队延迟增加、不公平和大量数据包丢失”。

索海尔·阿巴斯洛等人(C2TCP的作者)指出,BBR在动态环境中表现不佳,比如蜂窝网络。他们还表明BBR存在不公平问题。例如,当一个CUBIC流(在Linux、Android和MacOS中是默认的TCP实现)与网络中的BBR流共存时,BBR流可以支配 CUBIC 流并从中获得整个链路带宽。

 

Debian 开启BBR

  1. 查看内核版本
    $ uname -a
    
    
    输出如: Linux nsone 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux

     

  2. 查看系是否已经开启BBR
    $ sysctl net.ipv4.tcp_available_congestion_control
    
    $ sysctl net.ipv4.tcp_congestion_control

     

  3. 修改系统变量
    $ echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
    $ echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

     

  4. 保存并且生效
    $ sysctl -p
    

     

  5. 查看是否开启
    $ sysctl net.ipv4.tcp_congestion_control
    
    输出:net.ipv4.tcp_congestion_control = bbr
    
    $ sysctl net.ipv4.tcp_available_congestion_control
    
    输出:net.ipv4.tcp_available_congestion_control = reno cubic bbr

     

  6. 查看BBR是否启动
    $ lsmod | grep bbr
    
    输出:tcp_bbr                20480  84
    

     

 

到这里BBR就开启成功了,赶快试试吧,是否访问、下载等等快了许多,比如下载从 200Kbps 蹦到了 2Mbpbs

 

帮助教程

提供最新的帮助教程,方便使用。

文章评论