找回密码
 新注册用户
搜索
查看: 4355|回复: 2

大量上载而影响下载速度明显下降原因(ADSL优化)[转]

[复制链接]
发表于 2004-3-16 00:00:00 | 显示全部楼层 |阅读模式
http://bbs.gzeasy.com/index.php?showtopic=107558&st=0

我试图打造圣杯:
让交互数据包保持较低的延迟时间也就是说上载或下载文件不会打扰SSH/telnet等。这是最重要的,即使是200ms的延迟也会感觉很差。上载或下载期间有合理的速率用于网页浏览
即使http属于一种大量数据传输,也不应受其它传输影响太大。保证上载不会影响下载

上载数据流会影响下载的速率,这是相当普遍的现象。
只要花费一点点带宽就可以实现它们。之所以上载流、下载流和ssh之间要互相伤害,是因为像Cable或者DSL Modem这样的家用设备中的队列太大。
下面一节进一步解释了造成延迟的原因和如何缓解。如果你对魔术的咒语不感兴趣,完全可以不看它,直接参考脚本那一节。
15.8.1. 为什么缺省设置不让人满意
ISP们知道人们评价他们的时候要看看下载的速度。除了可用带宽之外,丢包因为会严重地牵制TCP/IP效率而极大地影响下载速度。大队列有助于改善丢包,进而提高下载速度。所以ISP们都配置成大队列。

然而,大队列会破坏交互性。一次击键行为首先要在上行流队列中排队(可能长达数秒!)才能到达对端主机。回显的时候,数据包还要回来,所以还要在你ISP的下行流队列中排队,你的本端显示器才有显示。
这个HOWTO教你如何用多种方法重组和处理队列,但是,并不是所有的队列配置我们都有权访问。你的ISP的队列肯定是无法配置的。上行流可能存在于你的cable modem或DSL设备中,你也许可以配置,也许不可以配置。绝大多数不能配置。
那怎么办呢?既然无法控制那些队列,那就除去它们,让数据包在我们的Linux路由器内排队。幸运的是,这是可能的。
限制上载速率
把上载速率限制在比可用带宽稍小一些的位置上,于是你的MODEM中就不会形成队列了。也就是说,队列转移到你的Linux路由器中了。
限制下载速率
这带点欺骗的味道,因为我们实际上不能控制Internet 向我们发包的速率。但我们可以丢掉那些太快到来的数据包,不让他们导致TCP/IP的速率低于我们期望的速率。因为我们不希望轻易地丢弃数据包,所以我们要配置“burst”来容纳突发传输。
在做完了这些之后,我们就排除了下行队列(除了偶尔的突发),并让上行队列存在于我们的Linux路由器中,以便施展Linux非凡的能力。
剩下的事情就是保证交互数据包永远排在上行队列的最前面。为了保证上行数据流不会伤害下行流,我们还要把ACK数据包排在队列前面。这就是当发生大批量数据流的时候,双向传输均受到严重影响的原因。因为下行数据的ACK必须同上行流进行竞争,并在处理过程中被延迟。

为了进一步配置,我们使用一个高质量的ADSL连接得出了如下测量结果:

基准延迟:
round-trip min/avg/max = 14.4/17.1/21.7 ms
不进行流量控制,下载数据:
round-trip min/avg/max = 560.9/573.6/586.4 ms
不进行流量控制,上载数据:
round-trip min/avg/max = 2041.4/2332.1/2427.6 ms
进行流量控制,220kbit/s上行:
round-trip min/avg/max = 15.7/51.8/79.9 ms
进行流量控制,850kbit/s下行:
round-trip min/avg/max = 20.4/46.9/74.0 ms
上载数据时,下载得到约80%的带宽。当上行流达到90%时,延迟一下子增加到850 ms,也能说明问题。
这个脚本的期望效果极大地取决于你的实际上行速率。当你满速率上载的时候,你击键的那个数据包前面总会有一个数据包。这就是你能够达到的上行延迟的下限——MTU除以上行速率。典型值会比它稍高一些。要达到更好效果,可以降低MTU!
[此贴子已经被作者于2004-3-16 5:14:08编辑过]

回复

使用道具 举报

 楼主| 发表于 2004-3-16 00:00:00 | 显示全部楼层 |阅读模式
解决方法是用一台旧电脑,装一个叫coyote 带 QOS 的软件路由器,进行带宽管理。
其实旧电脑586就可以了, adsl modem集成的DSP运算能力远比586弱.  所以 adsl modem自带的路由功能只适合家用几台电脑,  大一点的场合就不济了!!

当然这种方法比较费电,  但如果用高级一点的电脑, 结合运行分布式计算软件, 电费就能充分利用了!!!










[此贴子已经被作者于2004-3-16 5:20:32编辑过]

回复

使用道具 举报

 楼主| 发表于 2004-3-16 00:00:00 | 显示全部楼层 |阅读模式
Coyote Linux Floppy Firewall 是一種 [磁片版 linux ] , 主要作用在使用一般要退休的 586 插上兩張網路卡, 加上一部軟碟機, 就可以當成一般所謂 [ ip 分享器] 來使用.

它安裝檔有 Windows 版本, 也有 linux 版本.
一般人只要下載 windows 版本, 解開壓縮檔, 再執行 coyote.exe , 再回答一些基本問題, 例如網卡晶片, 內部網段使用的 ip , 外部網卡要使用什麼方式連上internet , 例如 回定 ip , dhcp 取得 ip, 最後在 A: 放入一張格式化的空白磁片, 它就可以作出一張開機片, 把它放進軟碟機, 開機後, 就可以使用了.

要改設定, 可以用 ssh 連線進去, 或用 http://xxx.xx.xx.xx:8180
也可以更改設定.


它的主站在 http://www.coyotelinux.com/







[此贴子已经被作者于2004-3-16 5:23:28编辑过]

回复

使用道具 举报

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

本版积分规则

论坛官方淘宝店开业啦~
欢迎大家多多支持基金会~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2024-5-16 14:10

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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