Linode开启Google BBR的正确方法

熟悉科学上网的同学可能会知道,由于境内外网络环境复杂,延迟高、丢包率高,许多基于TCP协议的翻墙工具会存在传输速度低且不稳定的问题。这在很大程度上是因为,TCP协议可以使用多种拥塞控制算法,而最常用的CUBIC算法存在着无法全速发送数据、易被丢包干扰、容易产生锯齿状波动等问题。因此,各种TCP单边加速工具层出不穷,如锐速(Appex)、ZetaTCP。但这些工具需要较高的运行权限且大部分是收费使用并不开源,因此从安全、成本和可靠性的角度会让使用者有更多顾虑。

好在,2016年09月,Google向Linux Kernel提交了Google BBRPull Request。Google BBR是一种新的TCP拥塞控制算法,在Google的内部广域网(B4)中已经进行了广泛的测试,该算法可以充分利用网络带宽,特别是可以在20%以内丢包率下保持较高的带宽(相关论文)。

BBR对比CUBIC

继续阅读全文

修改BIND9实现TCP DNS

近日适逢某平方节日,Google国外网站陆续出现被墙的状况,想必大家都是知道的。

其实本人一直在使用SSH的Socket代理功能爬梯子,效果还是不错的,加上学校有原生IPv6支持,就算不走代理一般也能上各大网站。唯独有一点,不论是浏览器还是操作系统,DNS均使用了UDP协议,而UDP显然是无法走Socket代理的,所以对于Youtube、Facebook这些网站由于域名解析问题,仍旧无法访问。

功夫网

不过,事情总有解决的办法。

继续阅读全文