1.前言
互联网+让我们的家用宽带基本上都是100M左右,但是总还能听到抱怨:我都100M的光纤宽带,打个游戏,卡;看个视频,卡;浏览个网页还是卡.
这里不谈家庭内部的网络构成,也不谈是不是AC路由或无千兆局域网.今天只从服务器端来说说.
2.带宽拥塞
列举一个简单的例子可以更清楚的说明:
不错,你的确是100M的宽带,如果服务器端也是100M.问题就在于这并不像家庭宽带一样,只是几个人在使用,而是几万人同时在访问,而全球总线宽带可能是几十亿人在使用.
这就像家庭网络环境在没有使用Qos的情况下,某台电脑在使用迅雷全速下载,其他电脑网络会变得非常的慢.相对于100M的视频服务器来说,其他用户访问总和就是迅雷,所以当你访问视频服务器的时候,就会变得卡.这种现象就可以理解为带宽拥塞.
3.过去解决拥塞
不言而喻,可能人们最容易想的办法就是提高服务器端的带宽.但是提高服务器带宽还是不够,因为传输总线也会受到限制.就像你想多蓄水,光增大进口(家庭带宽)和出口(服务器带宽)的管口大小,而不是增加中间断(网管总线带宽)的大小,效果是非常不明显的.特别是总线带宽的增加的成本非常高,工程量也非常大,消耗时间也比较长.
所以geek们就想到了别外的办法:我把某个端口的优先权提高.所以就有了锐速、finalspeed、kcptun等加速工具.就好比你使用了一辆"救护车"在高速路上奔跑.
锐速闭源软,扩展或制定非常的方便,如果有需要保护的隐私内容,使用闭源软件也需要权衡一下.finalspeed是开源的,但原作者已经不维护了,另提供收费版.kcptun是新兴的开源端口加速软件,年轻力壮,颇受欢迎.
那么问题来了,你也开一辆"救护车”,我一开一辆,这还好办,我们就占了两根通道,但是大家都开"救护车”,这样仍然会出现别车抢道的情况,拥塞会变得更加"拥塞”.
4.新方法解决拥塞
为此google提出了新的BBR算法,来解决这一难题.与传统解决TCP拥塞的办法比较,有两个不同:
- 不考虑丢包
- 预估宽带和延迟
我不再开车站一个通道,而是开车找空位别车.(这个说法可能恰当,但是我现在不能更好的描述.)
名称 | 是否开源 | 是否单边 |
---|---|---|
锐速 | 否 | 是 |
finalspeed | 是 | 否 |
kcptun | 是 | 否 |
BBR | 是 | 是 |
如上表,只要在服务器端安装BBR提升的是上传速度,也就等于提升了客户端的下载速度。 |
安装
- 自动安装:[1]
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
chmod +x bbr.sh
./bbr.sh
- 手动安装:喜欢动手的同学可以参考:CENTOS7安装4.9内核并开启BBR[2]
PS:手动方法亲测过.自动方法不有测度
检验
lsmod | grep bbr
tcp_bbr 16384 11
显示tcp_bbr说明BBR已正常启动。
5.总结
像finalspeed,如果运营商禁止UDP后,你完全没有多大的体验效果.看着很好的变化,最终都会带来新的麻烦.只有不断创新,原是永恒的.
参考与注释
[1]. 一键安装最新内核并开启 BBR 脚本 秋水逸冰↩
[2]. CENTOS7安装4.9内核并开启BBR 可乐没气的猫↩
访问量