ADSL共享只限上传速度即可-原理图说明
本帖最后由 byman 于 2009-7-13 13:55 编辑图这么小啊,写文字吧
现在很多用户都是用个小路由器共享ADSL上网,这就面临着一个问题,局域网里有人BT、看电影会弄得网络很慢!解决这个问题,就要用到QOS。
我们先来看看ADSL上网的数据流:
用户X——>用户路由器A,这里一般是上下行都是100M的局域网;
A——>电信路由器B,这里是个上行0.5Mb下行2Mb的ADSL;
B到远端服务器或用户是广域网,我们姑且认为速度是很大,足够用。
从这里我们就可以看得出瓶颈在ADSL这里,我们来模拟一下用户BT。
上行:
X1在BT,它会发出大量的上行数据包,很快就占光了0.5M的上行带宽,大量的上行数据就会堆积在路由器A这里;
X2……Xn用户发现他们打不开网页,因为他们的上行数据基本上都抢不到上行带宽,甚至A的缓存被用光,直接把后来的数据抛弃,发不出去。
局域网是100M,ADSL是0.5M差距太大,这里就必须限制BT用户X1的上行带宽,保留一部分带宽给别的用户X2……Xn;
我们再来看看下行的数据情况:
远端服务器或用户计算机Y1……Yn发来大量的数据,超过2M,电信路由器B开始限速,问题是B不会管这个数据是谁发来的,它只管按先到先发的原则转发到A,而不会选择Yn发来的数据更重要优先级更高而先发送Yn的数据到A。
数据到了A后,转发给X1,由于局域网100M远大于2M,A对X1的下行限速没有多大意义。即便限制了X1的下行速度,也只是延缓了数据到达X1的时间,数据实际还是堆积在B那里,白白浪费了ADSL的2M带宽。
但有用户会说,不限制用户的下行带宽,有时候也会很慢,具体原理比较难说清楚,这就要了解TCP/IP的工作原理了,具体原理自己上网查!我这里只是简单解释一下:
X1和远端服务器Y1建立连接,Y1开始给X1开始发送数据,理想情况下跑满ADSL2M的下行,X1每接到一个TCP包就会给Y1也发送一个ACK应答包,这里还有个时间的协商。
假设Y1给X1连续不断的发送了大量的数据包到B,占用了那个2M的带宽,这时候Y3给X3发送数据,就会难抢到带宽,甚至B可能会缓存占满而把Y3发送给X3的数据丢弃,出现了像路由器A丢弃上行数据一样的情况。
而这时候在A那里限制下行到X1的速度,数据包到X1的时间就会延长,同样X1发送ACK应答包就会推迟,Y1通过TCP协议会降低发包速度,这时候Y3发送给X3的数据就能下行到A了。
对于UDP数据就麻烦了,特别是一些视频流用了一些PUSH技术占带宽更狠,往往抢得一些TCP数据根本就没有带宽可用,具体原理自己上网查
总之,我在自己的小局域网里试验,限制下行带宽收效不大还白白浪费很多下行带宽。但限制每个用户的上行,那效果可是天壤之别!我的路由器是205+改的2805,2MADSL现在带6个用户,限制上行16K,下行不限,3个用户同时BT、看电影,其他3个用户看网页、游戏、QQ一点都不影响。现在每时每刻上行>40Kbyte,下行>200Kbtye,很爽!
欢迎大侠们一起讨论!
急急忙忙瞎写于 2009-7-13
现有2个问题,请懂的帮忙解释一下:
1、电信局端那边限速,下行满载时,到什么程度会丢包(只指下行速度,上行512Kb,在电信局端那边肯定不会塞车)?
2、有谁这样设置,看看玩大型网游的会不会卡 这个也并非限制好上行就一定可以速度流畅,只是上行不被满载不会干扰到下行的速度。如果本身下行带宽就不够用,这样你怎么限制上行都是没用的 本帖最后由 byman 于 2009-7-13 14:34 编辑
呵呵,我是看到很多用户都在那里限制下行速度,实际却得不偿失的,特说明一下。绝大部分用户的ADSL不会超过4M,说实在的,只要有人看电影、BT,下行怎么也不会够的。
我们现在是要讨论怎样设置能使局域网里其他用户不觉得网络慢,而要看电影、BT的用户又能使用最大的带宽,物尽其能嘛!
反正就是要设置好上行带宽一个最优的值,当然不能让上行满载!
要尽可能的让用户的请求和ACK应答包能上行发送出去,用户就不会觉得网络慢了 本帖最后由 onlinelove123 于 2009-7-13 14:23 编辑
很好!同感.普通家庭ADSL用户.限制上行基本就满足了.我实际测试过,两台机子开BT,开迅雷,只要限制这两台机子上行链路,其他机子都能枪回下行带宽..
(原PING 202.96.134.134 为22ms)而且PING值不高100ms内,只是偶尔会超,但都在200ms内也不断流.玩游戏还不错了...
实际有效果才是不错的东西.
见我测试
https://www.chinadsl.net/thread-35659-1-1.html 用什么软件也,限制上行速度呢,可望学习。呵呵 呵呵,我们用的都是路由器 呵呵,学习了{{XPX1{{ 很好。
电信级的设备,丢包主要有两个考虑因素:1. 缓冲区的占用情况,2. 廷时具体说起来就很复杂,一个包在缓冲区里呆多一点点时间就可能被丢掉了,缓冲区满了当然也会丢掉,系统overload level也直接决定丢包策略。复杂得很 本帖最后由 byman 于 2009-7-13 21:21 编辑
2805用了一个月,现在发现他的QOS算法真的太好了,不知道能不能弄到源码看看?!
谁有这方面的资料吗?
要有可以自己再动手优化一下,那就爽歪歪啦{{gangzai9{{ 本帖最后由 byman 于 2009-7-13 21:23 编辑
其时现在的SOHU路由器,WAN口的速度很少有100M的速度,而且用户也不需要业务带宽上的考虑,里面的限速这样设计就行了,没必要搞那么复杂:
按在线的用户一个IP一个队列,然后轮询着发,这样既不会浪费带宽,大家也都公平了!