QoS设置超详细教程,DD,Tomato

番茄QoS设置超详细教程, DD和带QOS功能的用户也可参考。(让BT满负荷,上网照样快如飞)

BT满负荷下载,上网还是快如飞(当然没有不下BT的时候那么快,不过比不用qos快太多了),一个字,爽。


Basic (基本设置)

Enable QoS 激活QoS,选定。

Prioritize ACK 提升ACK优先级。大家知道TCP协议是基于发送-〉应答机制的。服务器只有收到客户端的应答之后才会发送下一个数据包。ACK就是这个应答。默认这个选项是选定的。不过值得注意的是P2P软件会产生大量的ACK数据包。比如说在下载BT的时候,如果这个选项被选定的话,你就会看到许多不明的Highest流量。这些Highest的流量就是BT产生的ACK数据。所以如果你经常下载P2P软件的话我推荐把这个选项关闭,以免产生不必要的Highest流量。干扰其他正常的网络应用。

Prioritize ICMP 提升ICMP的优先级。ICMP就是Ping之类的数据包。选定这个选项的话,ping值会好看一些。

Strict Rule Ordering 严格按照规QoS则顺序执行。选定这个选项的话,QoS的规则就会按照Classification里面的顺序从头到尾执行,直到碰到一个符合的规则。否则L7,IPP2P规则会先被执行,然后才执行基于端口,IP地址的规则。建议选定,以便于精确控制。

Reset Classification When Making Changes 在设置被改变的时候重置Classification。选定的话每次改变qos设置,所有的连接都会被重新评估。否则你必须从启动正在下载的程序,重新连接才能使设置生效。推荐选上。

Default Class 缺省QoS级别。这个指的是所有未被定义的协议的优先级。这个要配合classification里面的设置来决定。默认是Low。

 

Outbound Rate / Limit

Max Bandwidth kbit/s上行速度。注意,这个值千万不能乱填。它直接决定了qos是否能够正常工作。不适当的值不但qos不工作,严重的话在下载的时候连网都上不去了。这个值应该是你网络上行的最大带宽x90%。填得太大的话QoS就会发送比你的网络能承受的更多的数据,从而使网络阻塞,QoS也失去效果了。

而且必须是实际的最大带宽而不理论最大带宽。比如说ADSL最大理论上行是512K,但是我实测下来只有400多K。因为ADSL传输的时候要给每个包加载包头还有校验位,占用了一定的带宽。大家一定想我怎么才能知道我最大上行呢?其实用番茄就可以测到。随便找一个BT的种子下载,要下得人多的。然后不限制上行速度。观察番茄的流量监视表,当上行速度稳定为一条直线的时候就是你的最大上行带宽。

番茄把从高到低级别分为了Highest – 〉Class E几个级别。Highest是最高的级别。Class A -> E是番茄作者自己定义的几个级别,他的优先级比Lowest还低
下面是我的设置,大家要根据自己的实际带宽相应设置。

Highest 320 – 400 kbit/s
High 40 – 396 kbit/s
Medium 20 – 392 kbit/s
Low 12 – 388 kbit/s
Lowest 8 – 380 kbit/s
Class A 4 – 200 kbit/s
Class B 4 – 160 kbit/s
Class C 4 – 120 kbit/s
Class D 4 – 80 kbit/s
Class E 4 – 40 kbit/s

 

Inbound Limit

Max Bandwidth kbit/s下行速度。其实这一项实际意义不大。下行的qos是没有意义的,因为数据包已经通过网络瓶颈(你的宽带线路)到达你的路由器了,再限制速度的话路由器只能丢弃多余的数据包。直接结果就是这些数据包不得不重新传一遍,白白浪费了网络带宽。下行的qos只有ISP支持才可能实现。大家可能会想,我只用上行的QoS有什么作用呢?我要的就是能够控制下行的速率啊。其实控制了上行,间接的也就控制了下行。你想想如果某个协议的网络请求能够优先发送出去,返回的数据是不是也相应的会先到达呢?

这里我填入了一个很大的值10000K,其他全部选None,不限制下行速度。

当然在特定的情况下,这个选项还是有用的。具体我就没有研究了。毕竟我只有512k的带宽,当然要榨干它。

 

Classification (分类设定)

这里就是设定哪个网络协议拥有什么样的优先级的地方拉。每一条有3行。

第一行:
地址:可以是源或目标IP地址或MAC地址。如果你想控制来自某个客户端的,就要在这里填上相应的值。
优先级:Highest -> Class E。定义符合这条规则的网络协议的优先级。
描述:对这条规则的简单描述。

第二行:
网络协议:一般选TCP/UDP。除非是一些特殊的网络应用。
端口:应用于所有经过这个端口的数据

第三行:
IPP2P: 这是一种P2P协议的过滤器。能够识别常见的P2P协议,比如BT,电驴。不过我实际使用下来发现基本没用。
Layer 7:第七层过滤器。这是一种非常高级的过滤器,工作于网络的最高层:应用层。它能够识别数据包里面的字符串,从而识别数据包是那个应用程序发出来的。番茄里面包含了许多常见的网络应用程序,如BT,电驴,迅雷,CS,魔兽等。

值得注意的是L7过滤器因为非常复杂,所以要小心使用。有些过滤器会overmatch,也就是说会把许多其他程序发出的数据包误认,比如说SkypeOut过滤器。有些过滤器会undermatch,也就是说不捕捉到全部的流量,比如说BT过滤器。实际使用中我发现Skypeout过滤器会把大约5%的BT数据认为是skype的数据,而BT过滤器则有20%左右的BT数据没认出来。在这里我们要尽量把overmatch的过滤器放在后面,undermatch的放在前面,以减少误报的可能性。有些过滤器是另一些得子集,如果你把这些子集放在他们的父集后面,他们是不会生效的,因为父集过滤器已经把数据包截获了。例如,http-video是http得子集。另外,并不是所有的L7过滤器都能保证工作,有些实际上效果不佳。要了解更多的信息比如那些是overmatch/undermatch的,那些确定是有效的,请参看L7过滤器的主页http://l7-filter.sourceforge.net/protocols

另外值得注意的是L7过滤器很占用系统资源,它会明显占用CPU和内存的使用。加载了不少L7的过滤器后,我的WRT54GS(32M内存)的内存使用稳定在21M左右。用WRT54G的兄弟可得悠着点,因为只有16M。内存溢出的话说不定就死机了。

在这些设置里面,端口/IP地址的过滤器是最有效的,能够100%的有效,而且资源占用率最低。IPP2P和L7过滤器并不是100%有效。

下面是我的一些设置,大家还要根据自己的实际情况量身定做。。

TCP/UDP
Dst Port: 53 Highest DNS
DNS非常重要,一定要设置为最高,并且放在最前面。不这样的话在大量下载的时候,DNS数据包可能会因为网络阻塞发送不出去,导致网页无法访问。

TCP/UDP
Port: 500,1701,1723,4500,3389,33089 High VPN,RDP
我经常使用公司的VPN,把VPN设为高,保证VPN连接可靠。

TCP
Dst Port: 80,443
Transferred: 0 – 1024KB Medium HTTP 0-1024k
TCP
Dst Port: 80,443
Transferred: 1024KB+ Low HTTP 1024k+
HTTP优先级设为中。也就是浏览网页的优先级。每个http连接流量超过1024k后优先级为低,保证了HTTP下载文件不会影响网络的浏览。

TCP
Dst Port: 21 Low FTP
ftp优先级为低,保证ftp下载不会影响网络浏览。

L7: bittorrent Lowest BT
TCP/UDP
Port: 25000 Lowest BT
BT优先级设为最低,BT下载不会影响其他任何应用。在这里我使用了L7和端口两种过滤器,完全保证了所有BT流量都被过滤了。另外需要注意的是BT客户端的连接数不要设的太高了,否则效果打折扣。我512k的带宽,BitComet设置全局100个下行连接50个上行连接正好。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请输入正确的验证码