net-speeder 在高延迟不稳定链路上优化单线程下载速度
项目由https://code.google.com/p/net-speeder/ 迁入
关注微信公众号了解最新开发进度/获取帮助/提出建议:
A program to speed up single thread download upon long delay and unstable network
在高延迟不稳定链路上优化单线程下载速度
注1:开启了net-speeder的服务器上对外ping时看到的是4倍,实际网络上是2倍流量。另外两倍是内部dup出来的,不占用带宽。 另外,内部dup包并非是偷懒未判断。。。是为了更快触发快速重传的。 注2:net-speeder不依赖ttl的大小,ttl的大小跟流量无比例关系。不存在windows的ttl大,发包就多的情况。
安装步骤:
1:下载源码并解压
wget https://github.com/snooda/net-speeder/archive/master.zip
unzip master.zip
2:准备编译环境
debian/ubuntu:
#安装libnet-dev:
apt-get install libnet1-dev
#安装libpcap-dev:
apt-get install libpcap0.8-dev
centos:
#下载epel:https://fedoraproject.org/wiki/EPEL/zh-cn 例:CentOS6 64位:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#(如果是centos5,则在epel/5/下)
#安装epel:
rpm -ivh epel-release-6-8.noarch.rpm
#然后即可使用yum安装:
yum install libnet libpcap libnet-devel libpcap-devel
编译:
Linux Cooked interface使用编译(venetX,OpenVZ):
sh build.sh -DCOOKED
普通网卡使用编译(Xen,KVM,物理机):
sh build.sh
使用方法(需要root权限启动):
#参数:./net_speeder 网卡名 加速规则(bpf规则)
#ovz用法(加速所有ip协议数据):
./net_speeder venet0 "ip"
如果kvm下报错:err msg:[libnet_write_raw_ipv4(): -1 bytes written (Message too long)
#关闭tso
ethtool -K 网卡名 tso off