|
本人不是搞计算机或者网络的,所以以下认识都是基于我半吊子的英文和想当然的推测,仅供新人参考,欢迎老鸟能给予指正,因为这方面的中文资料实在太少了,逼得我去看英文的介绍,费牛劲得到的一些认识。
一、 路由器是发送(接收)数据的
二、 qos是在发送数据时路由器使用的方法(专业点的话应该叫策略),大体上说就是让某些数据具有特权。饭不够吃的时候,让一些人把吃到嘴的都要吐出来给那些有特权的人吃。
三、 石像鬼的qos的步骤先是把数据分类,即设置页中的Service Classes
3.1 Service Class Name: 这个随便写,名字
3.2 Percent Bandwidth At Capacity: 这个意思是带宽占用百分比,当全部带宽都被使用时才起作用,因此,为了让他起作用,全部带宽的大小(Total Download Bandwidth)需要准确,设定值过大,可能会使这个参数或者说功能(还有其他功能)不起作用。设定值过小,会使网络效率下降。当所有的带宽都被使用后,为了满足当时对带宽的占用率小于这个设定值的那些数据发送请求,路由器会中断那些占用率大于这个设定值的那些数据发送请求,以此释放带宽。
3.3 Bandwidth Minimum: 最小带宽,可以认为是路由器预留给这种数据的带宽,即使目前没有这种数据出现,这部分带宽也是不给别的数据用的。就像你上了火车发现N多空座,但你买票时却只能买到无座票,这就叫预留,你懂的。
3.4 Bandwidth Maximum 最大带宽,就是这个数据最多能用到的带宽,就算还有多余的带宽可以用,也不让用。
例子,你想限制某台电脑192.168.0.11 的下载带宽为100K(填在空里的数据都是千位每秒,一般电信说的2M4M什么的也是位每秒,对应下载速度一般是千字节每秒,他们之间是八倍的关系,如果你想让他下载速度限制在100K字节每秒的话,那个空需要填800),那么你就建立一个Service Classes,就起名叫“d100”吧,让他的Bandwidth Maximum 为800,然后在rule【这个后面再细说】中建立Destination IP: 192.168.0.11,Set Service Class To:d100.
至此路由器已经可以实现这样的功能了:一、当全部带宽都被使用时,中断某(几)种数据以释放带宽给那些有特权的数据使用,二、保留一些带宽给一些特权数据用,即使他目前不需要使用那么多带宽,三、限制某些数据的带宽占用,即使还有空闲带宽也不给他用。很明显,只有功能一是最经常用到的,也是保证路由器效率的。但功能一在实现上会有问题,那就是,如何判断此时的状态是全部带宽被使用呢?按照介绍,只能依靠全部带宽的大小(Total Download Bandwidth)的设定值,这个值设定小的话会始终影响路由器的效率,设定大了又会让qos失效,电信承诺的带宽又不能很稳定的保持住,为此,路由器还可以通过另一种方法判断当前我的状态如何,这种方法被称作Min RTT(最小往返时延)。这里先说一下ACC(Active Congestion Control)(主动拥塞控制)。ACC的方法就是主动的通过Min RTT(最小往返时延)来判断路由器的状态,如果他认为当前路由器的状态不好,就会中断一些数据连接(我猜想是中断那些占用率大于 Percent Bandwidth At Capacity设定值的数据吧,见3.1)。通常,一旦你激活了ACC(勾选了Enable active congestions control (Download Direction) ),他就会ping外网的网关,除非你勾选了Use non-standard ping target:并填上某个ip,那样的话他就ping你填的那个ip。你也可以勾选Manually control ping targets:以告诉他多长时间ping一次。介绍上说,一旦路由器认为ping的返回值过高,超过了Min RTT,他会减少15%到100%的带宽,可见,ACC还是比较狠的,但应该也是最有效的。他的策略叫,宁死不将就。
3.5 Minimize Round Trip Times (RTT):如果你选了Minimize RTT (ping times) when active,那么当有这种数据出现的时候,路由器就会判断Minimize RTT (ping times) ,要是这个ping值过高,他就会中断一些数据连接。和ACC不同,ACC是先降低15%带宽,然后试试看情况,还不好就继续降低带宽,而他则是通过中断其他数据连接来降低20%的带宽。
我的经验,我用迅雷同时下载10部电影,另一台主机在线看电影,同时ping dns,如果开ACC,则下载速度慢(200K左右),而且在线看电影卡,但是ping dns 的值确实不高。如同介绍所说,此时路由器始终保持较好的状态,注意,是路由器有比较好的状态,而不一定你玩游戏就会不卡,因为那个ACC没准也会中断你游戏的连接用来保证自己的状态.所以通常我都不会开ACC,并且只让游戏的数据开RTT(我只玩一种游戏,在11上dota)。如果你让dns请求数据成了RTT,那就相当于时不时的来一次ACC,或许这也是一个不错的办法,可以尝试。我家是6M的小区宽带,如果我设定Total Download Bandwidth 为无限大,比如99999,那么下载速度能上800K,但是其他的电脑在线看电影就不行了,看个网页什么的还将就,ping dns 的数值会保持在3位数,一般都是300多,如果我设定Total Download Bandwidth 为6300(6x1024x1024=6291456),下载速度能在650左右,同时dns的ping值一般都在30以内。如果有人在线看电影也不卡,前提是我让看电影的数据 Percent Bandwidth At Capacity:值比较高,而下载的数据Percent Bandwidth At Capacity:值为1%。
综上,
1.Total Download Bandwidth 的设定很重要,一般6M的带宽设定为6300就行
2.Percent Bandwidth At Capacity:的设定是qos工作的主要依据,当带宽不够时,断开哪种数据连接给别的用,就让那种数据的Percent Bandwidth At Capacity:值为1%好了。
3.Bandwidth Minimum:我不认为这个参数有啥用处,我的理解它就是在和Total Download Bandwidth的设定做加减法。
4.Bandwidth Maximum:限制速度的方法,在我的实例中,我限制了平板电脑的带宽,因为平板电脑在线看电影的时候会疯狂的占用带宽达到缓存的目的(也许还有不可告人的目的), 而实际上他有个1500的带宽已经足够了。当然有人对限制上传的速度情有独钟,你也可以通过这个来限制。
5 Minimize Round Trip Times (RTT):这个应该谨慎使用,是很容易让路由器的效率下降的,只有确实需要保证带宽的数据才设定。
6 ACC:这个就别开了,除非你的路由器是那种很牛的很贵的,我的破hg255d(连邮费45元购于tb,二手货)真心开不起。
四、接下来我们需要指定不同的数据分属哪种Service Classes,也就是如何区分不同的数据,石像鬼的qos管他叫rule(规则)。正如人会有不同的身份,坐火车时你可能是车长的弟弟,办户口时你又成了所长的外甥。对于数据来说他也是有不同的特征的,而石像鬼的qos能够分别9种特征,分别是1.Source IP: 2. Source Port(s): 3, Destination IP: 4. Destination Port(s): 5. Maximum Packet Length:6. Minimum Packet Length: 7. Transport Protocol: 8. Connection bytes reach: 9.Application (Layer7) Protocol
先说一下什么是upload和download
一个数据从wan口进入路由器从lan口离开路由器就是download,反过来,从lan口进入路由器从wan口离开路由器的就是upload。
什么Source和Destination
数据出发的地方就是Source,数据到达的地方就是Destination
之前的那个限速的例子,因为是限制192.168.0.11下载的速度,很明显是要限制到达那台主机的数据,所以要在Destination IP: 中填上192.168.0.11
对于ip和port我就不多说了,在后面我会提到如何得到相关的信息。
Transport Protocol: (传输协议),石像鬼认识四种传输协议,tcp,udp不多说,icmp协议我知道的就是ping在用,gre应该是virtual**在用。Application (Layer7) Protocol (应用层协议),这个比较不靠谱,很多都会误判的,我开了ntp协议(网络时间协议),结果一开迅雷就出来大堆的ntp数据,数据量还有十几M的。Maximum Packet Length:Minimum Packet Length: Connection bytes reach:这三个东西我不懂,需要对数据传输的细节有更多了解才行,比如语音流数据在传输中是否存在比较严格的要求等等。
事实上路由器区分数据主要是通过1.Source IP: 2. Source Port(s): 3, Destination IP: 4. Destination Port(s):7. Transport Protocol: 这5个特征来完成的,通常来说我们最关心的是port,众所周知80是看网页的,53是dns。而迅雷,在线电影则使用大量的没啥规律的数值比较大的port。
到此为止我们已经能用qos做很多设定了
我们给那些我们能够明确识别的数据指定Service Class,以此来赋予不同数据不同的特权。比如我们需要经常的连到总公司的oa平台去办公,那台主机的ip是1.2.3.4,使用12345port(tcp),我们已经设定好了一个Percent Bandwidth At Capacity值很高的Service Class叫fast,那么在 upload qos中应该建立这样的rule:Destination IP: 1.2.3.4 ,Destination Port(s):12345,Transport Protocol:tcp,Set Service Class To:fast。在 download qos中应该建立这样的rule:Source IP: 1.2.3.4 ,Source Port(s):12345,Transport Protocol:tcp,Set Service Class To:fast。
对于没法判断数据,qos也会指定Service Class,即Default Service Class:的设定值,通常迅雷下载在线看电影都是很难判断的数据类型,而他们恰好是我要首先放弃的数据。所以Default Service Class:一般都会指定Percent Bandwidth At Capacity:值为1%的Service Class。那么怎么算是没法判断呢,就是按顺序检查所有的rule,还是不能满足该数据的特征,那么这条数据就会被指定为Default Service Class。类似的有些数据其实满足多条rule,那么这条数据会被指定为最先满足的rule的Service Class,也就是rule是有顺序的,比如在刚才限速的例子中,我们建立一个rule,Destination IP: 192.168.0.11,Set Service Class To:d100.那么到达192.168.0.11的数据应该被指定为d100的Service Class,但是如果在那条rule前面还存在另一条rule:Transport Protocol:tcp,Set Service Class To:fast。那么由于他下载使用的是tcp传输协议,那么这个数据就被指定为fast了,限速也就失效了。
综上,qos通过建立rule来给不同的数据指定Service Class,rule里面有9种特征,当你选择多于一种的特征时,他们的关系是同时满足的意思,之前我不能区分Source和Destination,于是在限速的例子中我就把Source和Destination都填上了192.168.0.11,结果不能出现预想的效果,因为路由器理解为这条数据来自192.168.0.11,并最终到达192.168.0.11,当然不是我所预想的了。这里我觉的,如果一个内网地址出现在download qos的Source ip中的话,或者外网地址出现在Destination IP中,应该能够给出一个错误提示,至少是警告,那就是这很可能是一个错误。另外,通讯是一个相互的过程,所以往往最好能upload qos和download qos 对应的一起设置,比如看网页吧,虽然主要是download,但是也是需要upload的,你得告诉服务器你要看什么不是,所以我们不仅需要在download qos 中做Source Port(s): 80的rule,最好对应的在upload qos中也设定 Destination Port(s):80的rule。最后就是要注意rule的顺序,后面的rule别被前面的吃掉(除非你故意让他吃)。
超字数,还有续。
|
评分
-
查看全部评分
|