全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 6664|回复: 20
打印 上一主题 下一主题

[经验] 调整TCP拥塞控制算法

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-4 22:40:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
中美之间的线路质量不是很好,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=×××
复制代码

评分

参与人数 3威望 +42 收起 理由
我是人 + 20 值得研究研究。。。
tony1999 + 15 貌似是某白的马甲,文章质量不错 ...
opuer + 7 技术帖

查看全部评分

2#
发表于 2011-4-4 22:44:06 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
3#
发表于 2011-4-4 22:47:10 | 只看该作者
顶上楼下来
4#
发表于 2011-4-4 22:50:56 | 只看该作者
没分了.今天扣的太起劲
5#
发表于 2011-4-4 22:51:22 | 只看该作者
我靠……
6#
发表于 2011-4-4 23:00:39 | 只看该作者
OpenVZ的可以在母鸡上改tcp_congestion_control,建议凡是国人做OpenVZ的,一律把tcp_congestion_control改成hybla;做Xen的,一律把OS模板里的tcp_congestion_control改成hybla。提高很明显的。
7#
发表于 2011-4-4 23:11:08 | 只看该作者
听起来hybla不错
8#
发表于 2011-4-4 23:21:18 | 只看该作者
xxx为多少?
i65u 该用户已被删除
9#
发表于 2011-4-4 23:23:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
10#
发表于 2011-4-4 23:42:03 | 只看该作者
原帖由 lxfy 于 2011-4-4 23:21 发表
xxx为多少?

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

评分

参与人数 1威望 +15 收起 理由
tony1999 + 15 你也这么说,LZ也这么说,可能有些道理。不过实 ...

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-12 10:27 , Processed in 0.071517 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表