«

利用net-speeder优化加速国外VPS网速

老王 发布于 阅读:18273 Hosting


当使用国外服务器时,经常会发现,下载速度只有十几k。平时可能不太注意,认为服务器带宽不足,或者自己使用的宽带不给力,其实很有可能原因并不在此。

由于光速的局限性,延迟会比较高(即使光沿直线传播,太平洋一个往返也要一百多毫秒)。并且由于距离较远,途径路由跳数较多,并且网络拥堵的原因。经常会发生丢包的情况。

对于平时使用最广泛的TCP协议来讲,发送端发出包后,接收端会回复ACK,表示自己收到了。用这种机制来保证可靠性。但对于高延迟链路来讲,如果每发送一个包都等待应答,那么大部分时间都在等待数据包到达,而链路则空置了。为此一般会采用滑动窗口技术。即在窗口满之前,发送端一直发送包,然后收到应答后将确认收到的包从窗口中移除。这样可以提高链路利用率。

还有一个特性则是拥塞控制。当发送端检测到链路发生丢包时,则会主动缩小窗口大小以减慢发送速度,避免拥塞。不过对于跳数较多的链路来讲,只要有一个路由不够稳定丢包,就会被发送端判断为拥塞,从而影响网络速度。

为了解决丢包问题,最简单粗暴的方法就是双倍发送,即同一份数据包发送两份。这样的话在服务器带宽充足情况下,丢包率会平方级降低。

利用一款叫做net-speeder程序,可以有效提高网速。

项目托管地址:http://code.google.com/p/net-speeder/

                       https://github.com/snooda/net-speeder

这种方式下,直接优点是降低丢包率,直接缺点是耗费双倍流量。一些延伸影响是更容易触发快速恢复逻辑,避免了丢包时窗口缩减过快。一定程度也能提高网络速度。

在此台VPS上放置一个QQ安装程序下载测试后发现,未开启时下载速度在300K+级别。开启后可以达到平均800KB+的速度。效果非常明显。但对于不加速就可以跑满带宽的类型来讲(多线程下载),开启后反而由于多出来的无效流量,导致速度减半。所以对于多线程/高速链路,这个方案是不适合的。

QQ截图20150507004357.jpg

(未开启net-speeder)

QQ截图20150507004544.jpg

(已开启net-speeder)


安装步骤如下:

安装脚本

获得安装包: wget http://feil.wang/tools/netspeeder.sh

运行安装包:sh netspeeder.sh

安装完成后,使用top命令,可以查看进程,如果能找到net_speeder ,说明它正在运行,安装就成功了

其他操作:

停止net_speeder服务:service netspeederd stop

启动net_speeder服务:service netspeederd start

VPS net-speeder linux

收到5条评论
avatar
xyzbeta 2016-04-07 11:05
搞了那么久,按你的方法一次就成功了。谢谢
回复
commentator
老王 2016-04-11 18:40
@xyzbeta:用了之后效果不错的
回复
commentator
xyzbeta 2016-05-12 17:52
@老王:感觉还是Finalspeed效果显著些。
我用这个看youtube只是700Kb左右,而Finalspeed可以瞬间到2000Kb以上,但是却需要装客户端,心累。除了这些还有什么办法吗?
回复
commentator
老王 2016-05-24 18:44
@xyzbeta:服务器里两个都安装了,FS提升速度是非常明显的,对于自己本机装个客户端做代理是个不错的选择,而netspeeder对于那些没有装客户端的用户也有一定的提升作用,比如访问你的一些博客之类的
回复
commentator
xyzbeta 2016-05-24 23:10
@老王:最终还是选择了破解版的锐速、然后把它部署在了路由器上,这样全部的设备都带起来了。而且效果也很好。有机会多交流交流