全球主机交流论坛

标题: 调整TCP拥塞控制算法 [打印本页]

作者: 马甲II    时间: 2011-4-4 22:40
标题: 调整TCP拥塞控制算法
中美之间的线路质量不是很好,rtt较长且时常丢包。TCP协议是成也丢包,败也丢包;TCP的设计目的是解决不可靠线路上可靠传输的问题,即为了解决丢包,但丢包却使TCP传输速度大幅下降。HTTP协议在传输层使用的是TCP协议,所以网页下载的速度就取决于TCP单线程下载的速度(因为网页就是单线程下载的)。
丢包使得TCP传输速度大幅下降的主要原因是丢包重传机制,控制这一机制的就是TCP拥塞控制算法。
Linux内核中提供了若干套TCP拥塞控制算法,已加载进内核的可以通过内核参数net.ipv4.tcp_available_congestion_control看到:
  1. sudo sysctl net.ipv4.tcp_available_congestion_control
复制代码
没有加载进内核的一般是编译成了模块,可以用modprobe加载。
这些算法各自适用于不同的环境。
reno是最基本的拥塞控制算法,也是TCP协议的实验原型。
bic适用于rtt较高但丢包极为罕见的情况,比如北美和欧洲之间的线路,这是2.6.8到2.6.18之间的Linux内核的默认算法。
cubic是修改版的bic,适用环境比bic广泛一点,它是2.6.19之后的linux内核的默认算法。
hybla适用于高延时、高丢包率的网络,比如卫星链路——同样适用于中美之间的链路。
TCP拥塞控制算法对TCP传输速率的影响可以参看http://d.ream.at/tcp-congestion- ... -is-very-important/
修改TCP拥塞控制算法需要修改内核参数net.ipv4.tcp_congestion_control(OpenVZ的VE无此权限,Xen或者独服才有):
  1. sudo sysctl net.ipv4.tcp_congestion_control=×××
复制代码

作者: serverpoint    时间: 2011-4-4 22:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: Poison    时间: 2011-4-4 22:47
顶上楼下来
作者: yaoe    时间: 2011-4-4 22:50
没分了.今天扣的太起劲
作者: windywinter    时间: 2011-4-4 22:51
我靠……
作者: windywinter    时间: 2011-4-4 23:00
OpenVZ的可以在母鸡上改tcp_congestion_control,建议凡是国人做OpenVZ的,一律把tcp_congestion_control改成hybla;做Xen的,一律把OS模板里的tcp_congestion_control改成hybla。提高很明显的。
作者: wzhpro    时间: 2011-4-4 23:11
听起来hybla不错
作者: lxfy    时间: 2011-4-4 23:21
xxx为多少?
作者: i65u    时间: 2011-4-4 23:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: windywinter    时间: 2011-4-4 23:42
原帖由 lxfy 于 2011-4-4 23:21 发表
xxx为多少?

当然是算法的名字了。
ps. 这个不是我……是我就不告诉你们了。
ps2. 你们做vpn的实现不了tcp proxy改这个也没用。
作者: windywinter    时间: 2011-4-4 23:43
ps3. 我不是小白
作者: 有个就好    时间: 2011-4-4 23:49
前边 net.ipv4.tcp_available_congestion_control


后边 net.ipv4.tcp_congestion_control


咋整的?2个
作者: lxfy    时间: 2011-4-4 23:53
原帖由 windywinter 于 2011-4-4 23:42 发表

当然是算法的名字了。
ps. 这个不是我……是我就不告诉你们了。
ps2. 你们做vpn的实现不了tcp proxy改这个也没用。

我主要还是做网站的
作者: windywinter    时间: 2011-4-4 23:55
原帖由 lxfy 于 2011-4-4 23:53 发表

我主要还是做网站的

ps is for tony.
作者: 我是人    时间: 2011-4-5 00:35
除非是独服,要不然这个很难测。嗯。。。有没有用htcp的?

bic
  1. 2011-04-05 00:35:36 (1.50 MB/s) - `/dev/null' saved [104857600/104857600]
复制代码
hybla
  1. 2011-04-05 00:34:15 (1.88 MB/s) - `/dev/null' saved [104857600/104857600]
复制代码
htcp
  1. 2011-04-05 00:33:11 (2.52 MB/s) - `/dev/null' saved [104857600/104857600]
复制代码

作者: zllovesuki    时间: 2011-4-5 08:47
原帖由 windywinter 于 2011-4-4 23:42 发表

当然是算法的名字了。
ps. 这个不是我……是我就不告诉你们了。
ps2. 你们做vpn的实现不了tcp proxy改这个也没用。


OpenVPN可以通过TCP
作者: windywinter    时间: 2011-4-5 10:39
原帖由 zllovesuki 于 2011-4-5 08:47 发表


OpenVPN可以通过TCP

TCP over TCP is a bad idea.
UDP本来就不受丢包影响,干嘛脱了裤子放屁?
作者: 有个就好    时间: 2011-4-5 11:49
15楼给力
作者: zllovesuki    时间: 2011-4-5 11:52
原帖由 windywinter 于 2011-4-5 10:39 发表

TCP over TCP is a bad idea.
UDP本来就不受丢包影响,干嘛脱了裤子放屁?


说UDP丢包没影响的人就是没学好网络基本知识
作者: windywinter    时间: 2011-4-5 22:34
原帖由 zllovesuki 于 2011-4-5 11:52 发表


说UDP丢包没影响的人就是没学好网络基本知识

不用那么抠字眼好不好?UDP本来就是不可靠传输,丢那么几个包又有什么关系。
作者: hiemsventosa    时间: 2011-4-7 22:13
原帖由 我是人 于 2011-4-5 00:35 发表
除非是独服,要不然这个很难测。嗯。。。有没有用htcp的?

bic2011-04-05 00:35:36 (1.50 MB/s) - `/dev/null' saved [104857600/104857600]hybla2011-04-05 00:34:15 (1.88 MB/s) - `/dev/null' saved [104857600/1048 ...

htcp不如hybla。




欢迎光临 全球主机交流论坛 (https://hostloc.9hanju.com/) Powered by Discuz! X3.4