上图:在每一轮循环调度过程中,每一个队列只允许发送一定数量的字节数(可配)。
16
上图,如果进入队列的第一个包大小为1499字节,第二个经过调度后进入队列的包大小为1500字节,根据路由器的默认规定,依然可以传送这个1500字节大小的数据包。但是,如果此时有第三个包到来,则不允许进入队列。
上图,将telnet数据流调度进入队列2,将icmp数据流调度进入队列3.
Show inter s/1如下:
上图,因为CQ默认采用RR的调度算法,所以每一个队列的max值都相同,默认20(队列中允许存在的包的最大数目)。
17
注意:缺省使用队列为1。CQ使用了17个子队列(其中0子队列是PQ队列,优先级很高,留给系统使用)。
18
CQ可以基于两个参数控制queue:1. 限制每个queue最多可容纳的包数(默认20)。2.限制每个queue最多可容纳的字节数(默认1500 Bytes)。
R1(config)#queue-list 1 queue 2 limit 40
RR的改进版是 WRR(Weighted Round-Robin),WRR允许用户为每个队列分配一个权值,根据这个权值,每个队列都能获得一定的接口带宽。
在CQ 中,权值就是一次轮循中可以转发的字节数。如上图所示,队列2的权值更高。
19
CQ使用了17个子队列(其中0子队列是PQ队列,优先级很高,留给系统使用),可以把CQ看成是PQ+CQ。
即:0队列是PQ队列,实际上可以把其他队列也设置成PQ队列: 可以通过以下命令来设置:
queue-list list-number lowest-custom queue-number 比如命令:queue-list 1 lowest-custom 3
说明:0,1,2都是PQ队列(0队列总是最优),3以及3以上编号的队列都是CQ队列,按照Round Robin轮询。
r2(config)#access-list 101 permit ip any any precedence 5
r2(config)#queue-list 16 protocol ip 1 list 101 //把ACL101定义的数据流映射到子队列1中// r2(config)#queue-list 16 queue 1 limit 40 //设置子队列1的队列深度为40个数据包// r2(config)#queue-list 16 lowest-custom 2 //设置queue 0,1为优先级队列PQ,其余的为CQ// r2(config)#queue-list 16 interface s0/0 2 //把s0/0接口进入的流量映射到子队列2中// r2(config)#queue-list 16 queue 2 byte-count 3000 //设置子队列2在一个轮循内可以传输
20