|
QOS这块还是要非常注意流量和延迟的反比关系。老外的设定档可能是因为他们有足够的上行吧。所以如果你全照它的设定肯定会不适应你的网络情况。注意TT是以百分比进行取值的,如果你总的上行值设得过大,那么相应的分类流量都会远远超过你的网络实际可以使用的网络流量。pps这种p2p应用60Kb的上行对它来说一下就没了。关于SIP电话只注意到说是用5060端口,可能还有其它前向端口,所以干脆就使用ip来划分规则。
同样的QOS脚本在光纤和ADSL线路由于上行带宽不同效果完全不一样。
这个是以前的一段回复。关于QOS涉及的东西太多了,每次回答都没回答到要点上。但是下面的回复侧重了prio优先权设定和限制流量来获得良好的延迟,以及为什么端口是那样设定的。
----------------------------------------------------------
ADSL线路端口流量划分。
400000bit/1000/8=50kb/s
root@onlyit:/tmp# tc class show dev ppp0
class htb 1:1 root rate 400000bit ceil 400000bit burst 2099b cburst 2099b
class htb 1:2 parent 1:1 leaf 2: prio 0 rate 280000bit ceil 400000bit burst 1949
b cburst 2099b
class htb 1:3 parent 1:1 leaf 3: prio 1 rate 280000bit ceil 400000bit burst 1949
b cburst 2099b
class htb 1:4 parent 1:1 leaf 4: prio 2 rate 40000bit ceil 400000bit burst 1649b
cburst 2099b
class htb 1:5 parent 1:1 leaf 5: prio 3 rate 40000bit ceil 200000bit burst 1649b
cburst 1849b
class htb 1:6 parent 1:1 leaf 6: prio 3 rate 40000bit ceil 200000bit burst 1649b
cburst 1849b
root@onlyit:/tmp# cat port.tmp
tcp_53,22,23,123,3389,5060,8123_2 (35kb/s-50kb/s)
udp_53,5060,27080_2 (35kb/s-50kb/s)
tcp_80,443,1080,8080_4 (5kb/s-50kb/s)
udp_433,4000:4030,8000_4 (5kb/s-50kb/s)
tcp_20,21,25,1024:65535_6 (5kb/s-25kb/s)
udp_1024:65535_6 (5kb/s-25kb/s)
默认的_5 (5kb/s-25kb/s)
全部依赖于prio权限0 2 3优先级进行调整,数字越小优先级越高。
上面的设置显然prio0+prio2+prio3总的流量限定值是远远超过65kb/s上限的。关于tc如何在各个class之间借流量以及导致的延迟变化这块太数学了偶也看得稀里糊涂。你可以简单的理解为把需要小流量(对是小流量不要把产生大量流量的端口也划到这里)低延迟()快速响应()的端口划分到2级。如果在tomato里它就是highest。4级这几个端口就是常见的tcpweb浏览以及QQ需要用到的几个端口,但是8080这个也是快播的端口,所以平时可能也会产生25kb/s左右的上传流量。如果在tomato里它就是Medium。所有的高端口以及其它末划分的都划到prio3,而且限定到25kb/s。如果在tomato里它就是Lowest。因为在公司里确实这些端口都是用不到的。基本上划分3个优先级就足够了。_5 _6级里的端口的延迟将会非常得高,现在p2p的应用太常见的,随便有人进来电脑里都有大量的p2p程序,随便就可以把这25kb撑满,然后延迟超过600ms以上。所以如果你想玩游戏比如cs udp27080,你可以将这个端口单独置于_2分类。然后注意流量和延迟的反比关系就可以了。_2分类里估计流量最高的可能是tcp3389远程桌面应用,但是它每秒能产生多大的流量没实际测试过,平时也不怎么用到,所以在这分类里面的延迟应该蛮小的。_6分类里将会是乱78糟的一堆p2p程序,基本上接入的电脑越多,它枆掉的上传带宽将越多,这个分类里的延迟也将非常的高。你可以用tc -s -d class show dev ppp0来实际注意1:4+1:5+1:6=每秒产生的流量,是否会过高而影响1:2处高响应端口的延迟。没办法上行太小了只能根据自己实际需求慢慢调整了。
所以用prio权限对应用进行优先级划分。
限定流量来保证延迟响应。
|
|