注意上图,high后面并没有参数可以指定协议类型(如:ICMP协议的协议号是1,TCP的协议号是6),但是有参数list,即可以指定一条acl来匹配ICMP数据流。 配置如下:
R1(config)#priority-list 1 protocal ip low list 100 R1(config)#access-list 100 permit icmp any any
接下来配置“调度”,即将priority-list绑定到哪个接口上,注意Qos通常定义在“出接口”!
查看:show inter serial 0/1
上图的数值为四种优先级队列默认允许最大占包数,默认分别为20/40/60/80。
上图,priority-list 1的配置,将telnet放入high队列,将icmp放入low队列。
下面来测试一下,通过在R1上执行指令“debug priority”查看,如下:
在R1上ping 13.1.1.3,如下:
11
在R1上telnet 13.1.1.3,如下:
PQ缺点:
1.对单一子队列而言,会继承FIFO队列的所有缺点。 2.对低优先级的数据流而言,可能会被“饿死”,因为只有高优先级队列里有数据,PQ就不会服务低优先级队列。
3.需要在每一跳(沿途每一台路由器)上都手工的配置分类。
注意:上图配置在入接口上(基于接口配置PQ),即从该接口进入的数据流都分配high priority。其余未做分类的流进入默认的队列,默认进入normal队列。
12
13
上图,PQ的第一条缺点,PQ仅有四种优先级队列,对于所有的数据流来说,分类有些少,这样导致大部分流进入normal或low优先级队列中,而在单一队列中,又遵守先进先出原则。
PQ的第三条缺点,假如对于语音流配置High优先级,需要在每一台路由器上做同样的配置。
14
上图:CQ在16个队列中“轮询调度”,体现了公平原则,每个Queue默认容纳的包大小为1500字节(每个queue默认容纳的包数目为20),同样采取“尾部丢弃”法则。 其实是16+1个队列(0-16),其中,queue 0为系统队列,它拥有绝对的优先权,分给控制类报文,如ospf hello包。
CQ可以基于两个参数控制queue:1. 限制每个queue最多可容纳的包数(默认20)。2.限制每个queue最多可容纳的字节数(默认1500 Bytes)。
15