搜档网
当前位置:搜档网 › 第八部分 QOS配置指导

第八部分 QOS配置指导

RGNOS?用户配置指导手册QOS配置

目录

第一章QOS概述 (2)

1.1 什么是QOS (2)

1.2 为什么采用QOS (2)

1.3 区分服务下的qos (3)

第二章拥塞管理 (4)

2.1 什么是拥塞管理 (4)

2.2 拥塞管理策略 (4)

2.2.1 先入先出排队方式(FIFO) (5)

2.2.2 加权公平排队方式(WFQ) (5)

2.2.3 基于类的加权公平排队方式(CBWFQ) (5)

2.2.4 低延迟队列(llQ)和rtp优先级队列(rtpq) (5)

2.2.5 优先权排队方式(PQ) (6)

2.2.6 自定义排队方式(CQ) (6)

2.3 如何决定选用哪种拥塞管理策略 (6)

2.4 拥塞管理机制的工作机制 (7)

2.4.1 先入先出排队方式(FIFO) (7)

2.4.2 加权公平排队方式(WFQ) (8)

2.4.3 基于类的加权公平排队方式(CBWFQ) (9)

2.4.4 低延迟队列(llq)和rtp优先级队列(rtpQ) (10)

2.4.5 自定义排队方式(CQ) (10)

2.4.6 优先权排队方式(PQ) (13)

2.5 加权公平排队(WFQ)的配置 (14)

2.5.1 WFQ配置任务 (14)

2.5.2 配置WFQ (14)

2.5.3 监视WFQ (14)

2.5.4 WFQ配置实例 (15)

2.6 基于类的加权公平队列(CBWFQ)的配置 (15)

2.6.1 CBWFQ配置任务 (15)

2.6.2 配置CBWFQ (15)

2.6.3 监视CBWFQ (19)

2.6.4 CBWFQ配置示例 (20)

2.7 低延迟排队(Llq&Rtpq)的配置 (21)

2.7.1 Llq&Rtpq配置任务 (22)

2.7.2 配置Llq&Rtpq (22)

2.7.3 监视Llq&Rtpq (23)

2.7.4 Llq&Rtpq配置实例 (23)

2.8 自定义排队(CQ)的配置 (24)

2.8.1 CQ配置任务 (24)

2.8.2 配置CQ (24)

2.8.3 监视CQ (26)

2.8.4 CQ配置实例 (27)

2.9 优先权排队(PQ)的配置 (27)

2.9.1 PQ配置任务 (27)

2.9.2 配置PQ (27)

2.9.3 监视PQ (29)

2.9.4 PQ配置实例 (29)

第三章流量监管和整形 (31)

3.1 什么是流量监管和整形 (31)

3.2 流量监管和整形介绍 (31)

3.3 流量监管的配置任务 (32)

3.4 流量整形的配置任务 (33)

3.5 流量监管的配置实例 (34)

3.5.1 接口上所有流量进行流量监管的配置实例 (34)

3.5.2 符合条件的流量监管配置实例 (35)

3.6 流量整形的配置实例 (36)

3.6.1 接口上所有流量进行流量整形的配置实例 (36)

3.6.2 符合条件的流量整形配置实例 (36)

3.7 流量监管和整形的维护和调试 (37)

第四章压缩协议 (39)

4.1 什么是报文压缩协议 (39)

4.2 报文压缩协议介绍 (39)

4.2.1 vj tcp报文压缩协议 (39)

4.2.2 iphc报文压缩协议 (40)

4.3 报文压缩效率和不适用场合 (40)

4.4 报文压缩协议配置 (41)

4.5 报文压缩协议配置实例 (42)

4.5.1 ppp协议上的报文压缩配置实例 (42)

4.5.2 hdlc协议上的报文压缩配置实例 (43)

4.5.3 frame-relay协议上的报文压缩配置实例 (43)

4.6 报文压缩协议的维护和调试 (43)

第五章IP流量限速配置 (45)

5.1 流量限速概述 (45)

5.2 流量限速配置 (45)

5.2.1 流量限速配置任务列表 (45)

5.2.2 设置限速模式 (45)

5.2.3 设置限速值 (46)

5.3 流量限速监控 (46)

5.4 流量限速的典型配置 (48)

第一章 QOS概述

1.1 什么是QOS

在传统的IP网络中,路由器对所有的报文都采用没有区别的等同对待方式,采取按

照报文到达的时间先后,先入先出的排队策略(FIFO)处理,尽最大的努力

(best-effort)将数据报文传送到目的地。但对报文传送的可靠性、传送延迟等方面

的性能,则不提供任何的保证。

随着Internet在全球的迅速发展和社会信息化程度的提高,人们对网络的要求也越

来越高,信息化需求已从单纯的数据信息向交互式多媒体信息发展,从分别服务向

数据、语音、图像统一服务和一网传输发展。带宽延迟、抖动敏感的且实时性强的

语音、图象和其他的重要数据越来越多地在网上传输,一方面使得网络资源得到了

极大的丰富,另一方面,由于数据、语音、图像等业务在延时、吞吐量或丢失率等

方面有不同的要求,也就引入了如何保证网络服务质量的问题。

解决这个问题的一个途径是增加网络的带宽,但带宽的增加毕竟是有限的,而且代

价昂贵,只能在一定程度上缓解这个问题。保证服务质量的其它有效的手段是通过

对不同要求的报文采用不同路由途径的策略路由(Policy-Based Routing)、拥塞管

理(Congestion Management)、拥塞避免(Congestion Avoidance)和流量整

形(Traffic Shaping)、传输压缩等技术,对网络上的流量进行管理,以解决网上

不断增长的流量需求所带来的问题。

QoS(Quality of Service)又称服务质量。是指一个网络能够利用各种各样的基础

技术,向指定的网络通信提供更好的服务的能力。简单地说,就是针对各种不同需

求,提供不同的网络服务质量,对实时性强,重要的数据报文提供更好的服务质量,

优先处理;而对于实时性不强,一般的普通数据报文,则提供较低的处理优先级。

若要在网络上承载各种不同的业务,就要求网络不仅能提供单一的尽力而为的服务,

而且能为不同业务提供不同的QOS。可以说提供QoS 能力将是对未来IP 网络的

基本要求。

锐捷系列路由器实现了多种QOS策略,能够在一定程度上满足不同业务对不同服

务质量的需求。

1.2 为什么采用QOS

QoS功能可以使网络能控制和有预见性地为各种各样的网络化应用和通信类型提供

服务。在网络上使用QoS可以实现:

z控制资源的能力。用户可以控制那些正在被使用的网络资源。比如用户可

以控制FTP(File Transfer Protocol,文件传输协议)传输占用的网络资源,

或为更重要的数据访问提供更高的优先级别。

z划分细致的服务。如果用户是一个ISP,那么利用QoS功能,便可以为不

同类型的客户、不同要求的数据报文提供不同优先级别的网络服务。

z在同一网络环境下,对各种不同类型的应用提供不同的服务质量,确保重

要数据报文的网络服务。如对那些重要的数据提供优先的服务;对时间敏感

的多媒体和语音应用可提供所要求的最小延时。

z此外,在网络上实现QoS功能可以为将来实现网络的全面集成奠定良好基

础全面地集成网络打下一个基础。

1.3 区分服务下的qos

z什么是区分服务

区分服务(Differentiated Services, DiffServ),利用DSCP(DiffServ CodePoint)

与PHB的对应机制,采用聚合的机制将具有相同特性的若干业务流聚合起来,

为整个聚合流提供服务,而不再面向单个业务流。

区分服务提供了3种级别服务:

快速转发服务(Expedited Forwarding,EF)

保证转发服务(Assured Forwarding,AF)

尽力而为业务服务(Best Effort,BE)

DiffServ大大降低了信令的工作,而将重点放在流聚集以及适用于全网业务等

级的一套"逐跳行为"上。我们可以根据预先确定的规则对数据流进行分类,从

而将多种应用数据流聚集为有限的几种数据流等级。

因此锐捷系列路由器的qos所基于的体系就是区分服务的体系。

z区分服务下的qos

在区分服务中,qos主要分为分类/标识,计量/整形/丢包,最后是拥塞管理和拥塞避免,基本处理如下图所示:

在以下的章节中,我们将分别对这些qos进行介绍。

第二章 拥塞管理

2.1 什么是拥塞管理

对于在网络中的某个节点,数据包抵达这个接口的速度比这个接口把数据包发送出

去的速度要快时,便会在这个网络节点产生拥塞。如果该网络节点不能提供足够的

缓冲区来保存这些网络数据,就会造成网络数据的丢失。有些网络协议如TCP协议

提供数据重传机制,也就是发送网络数据的节点在规定时间内没有收到由对方发送

过来的表明已经接收到数据的应答消息就会进行数据重传,这将使得接收网络数据

的节点的情况雪上加霜并会造成整个网络性能的下降。

造成拥塞的原因有多种,比如当数据包流从高速链路进入路由器,由低速链路传送

出去时,就可能在路由器产生拥塞;数据包流同时从多个接口进入路由器,由一个

接口转发出去或处理器速度慢也可能会产生拥塞。

如果在网络中传送的一些重要的数据,同时又有大量在重要性方面不如它的数据也

需要传送。路由器却对这些数据的重要性不予识别而是予以同等的处理,便会由于

不重要的数据占用了大量的网络带宽,耽误了重要的数据的传输,便有可能造成重

大的损失。

所以便引入了一种管理机制――拥塞管理机制。利用这个机制,给不同应用的数据

包分配不同的优先权,根据数据包的优先权,来确定数据包发送出网络接口的顺序,

拥塞管理功能允许你对拥塞进行控制,对于一些重要的数据,提高数据报文的优先

权,在拥塞发生时,优先发送,确保关键业务能够得到及时服务。

2.2 拥塞管理策略

路由器的拥塞管理承担如下的任务:创建不同类别的队列、对数据包进行分类并将

其添加到对应的队列中去、按照设定规则进行队列调度并发送队列中的数据包。拥

塞管理QoS功能提供五种类型的排队机制,每一种都可以允许指定创建数目不等的

队列。这些机制提供通信的发送顺序上的差异性。

在通信量比较少的时间段里,确切地说,当没有拥塞发生的时候,数据包一到达接

口,立即就被发送出去。在发送接口发生通信拥塞期间,数据包抵达这个接口的速

度比这个接口把数据包发送出去的速度要快。使用了拥塞管理功能,积累在拥塞接

口的数据包就会排队等候,根据它们所分配的优先权以及为这个接口配置的排队机

制,按照排定的顺序发送出去。通过控制哪些数据包应该放置在哪个队列,以及如

何为这些队列提供服务,路由器决定了数据包的传输顺序,这就是路由器的拥塞管

理策略。

以下讨论6种类型的拥塞管理队列控制,它们构成了拥塞管理QoS功能:

2.2.1 先入先出排队方式(FIFO)

先入先出排队方式(First-In, First-Out Queuing,简写为FIFO),——FIFO不需

要通信优先权以及分类的概念。使用FIFO时,数据包发送出接口的顺序依赖于数

据包抵达这个接口的顺序。对于高带宽的接口,FIFO方式是缺省的排队方式,不需

要特殊的配置。

2.2.2 加权公平排队方式(WFQ)

加权公平排队方式(Weighted Fair Queuing,简写为WFQ)——WFQ提供了动态

的、公平的排队方式,它基于权重来划分通信队列的带宽。WFQ可以保证,所有的

通信都能够根据它的权重而受到公平的对待。WFQ可以保证某些苛刻的应用(比如

一些要求及时响应的交互式或者事务处理的应用)能够得到令人满意的响应时间。

WFQ对流量进行分类的依据有源地址、目的地址、源端口、目的端口号及协议的类

型等。对于带宽为2.048Mbps或者更低的串行接口来说,WFQ是默认使用的。当

没有配置其他排队策略的时候,所有其他接口都默认使用FIFO排队方式。

2.2.3 基于类的加权公平排队方式(CBWFQ)

基于类的加权公平排队方式(Class-Based Weighted Fair Queueing,简写为

CBWFQ) ——CBWFQ是对标准WFQ功能的扩展。与WFQ一样,CBWFQ提供

了动态的、公平的排队方式,它基于权重来划分通信队列的带宽。与WFQ不同的

地方在于它与WFQ的分类规则以及权重计算方式不同。WFQ对流量进行分类的依

据有源地址、目的地址、源端口、目的端口号及协议的类型等;而CBWFQ对网络

数据流进行分类依据的是用户自定义的分类规则。WFQ对网络数据包权重是按照固

定的规则(譬如IP包依据ToS域计算权重);而CBWFQ是按照用户自定义的带宽

分配来计算权重的并由此来实现通信队列带宽的按比例分配。

CBWFQ实现了网络数据流分类与带宽分配的即时可控。CBWFQ可用来实现用户

自定义的带宽分配,它可用确保不同类型的网络数据流获得指定比例的带宽分配。

2.2.4 低延迟队列(llQ)和rtp优先级队列(rtpq)

低延迟排队方式(Low Latency Queueing,简写为llq)。可以把llq理解成pq+cbwfq, 就

是有个严格的优先级队列,该队列的报文都要发送完以后才发送cbwfq队列的报文,

这样就保证了符合流量的报文能够有低延迟的传输。

Rtp优先级队列(rtpq)其功能和llq类似,就是每个接口都有一个rtp优先级队列,专

门用来保证rtp协议报文的低延迟的传输,它只匹配一定端口范围的udp报文。

2.2.5 优先权排队方式(PQ)

优先权排队方式(Priority Queuing,简写为PQ)——在PQ排队方式下,属于某

个通信优先权等级的数据包可以比所有优先权等级低的数据包先发送出去,以保证

优先权级别高的数据包能够及时地发送出去。

PQ 队列用来为重要的网络数据提供严格的优先级别,可根据网络协议(如IP 协

议)、数据流入的接口报文长短、源地址/目的地址等,灵活地指定优先次序,确保

了在应用PQ的网络节点上最重要的网络数据能够得到最快速的处理。

2.2.6 自定义排队方式(CQ)

自定义排队方式(Custom Queuing,简写为CQ)——在CQ排队方式下,对于每

一种不同类型的通信种类来说,带宽是按照比例来分配的,用户可以根据数据报文

的重要程度,来为不同类型的报文划分不同比例的带宽,确保关键数据报文的通过,

CQ排队方式还允许你指定从队列中抽取出来的字节或者数据包的总数。

对于速度比较慢的接口来说,这种功能是非常有用的。

说明:

注意:一个接口只能分配一种排队机制。

2.3 如何决定选用哪种拥塞管理策略

锐捷系列路由器实现了上述的六种拥塞管理策略(FIFO、PQ、CQ、WFQ、

CBWFQ,llq&rtpq),能够在一定程度上满足不同业务对不同服务质量的需求。下面

对主要独立的5种队列进行比较:

z FIFO排队方式在用户数据通信上对数据包采取默认的优先权策略――即先

到达先服务的策略。不需要确定通信的优先权或者种类。当使用FIFO策略

的时候,运行异常的数据源可能会耗费可用带宽,突发的数据源可能在时间

敏感性的或者重要的通信中引发延时现象,并且因为不重要的报文充满这个

队列,重要的通信也许会被丢弃。

z CQ给所有的通信都保证某种等级的服务,可以给所有种类的通信分配带

宽。通过决定队列所配置的数据包总数的容量,能够决定这个队列的大小,

因此可以控制每种不同的报文对带宽的占用。

z PQ保证严格的优先级,它保证某种指定类型的通信将会优先发送出去,但

可能会影响其他类型的数据包的发送。对于PQ来说,优先权级别较低的队

列将处于非常不利地位,最坏的情况是(可用带宽有限、高优先级的数据的

发送的频率很高),处于优先权级别低的队列的数据包将可能没有机会被发

送出去。

z WFQ不需要配置访问列表来决定接口上的首选通信。WFQ动态地把通信分成消息。消息是一个会话的一部分。使用WFQ,容量比较小的、交互式的

通信可以同容量比较大的通信(例如,文件传输)一样,得到公平的带宽分

配。

z CBWFQ允许用户自定义以及即时控制网络数据流分类规则与带宽分配。使用CBWFQ,用户可以为指定的网络数据流在规定的范围内按照用户自己设

定分配带宽从而确保某些网络应用的带宽。用户可以随时按照自己的需要控

制带宽分配。

下表对五种不同的拥塞管理策略进行了比较:

FIFO WFQ CBWFQ PQ CQ

队列数量1 配置决定

(缺省

256)

320(64个CBWFQ

队列,256个WFQ

队列)

4 17(16个用户队

列,1个系统队

列)

优点处理简单、速度

快所有的通

信都能够

根据它的

权重而受

到公平的

对待。

合乎用户自定义的

分类规则的网络数

据流放到对应的

CBWFQ队列中,其

它的放入对应的

WFQ队列中。网络

数据报文按照用户

定义的带宽分配比

例发送。

优先级高的报

文总是比优先

级低的报文更

先得到处理。处

理绝对按照优

先级由高到低

进行,保证紧急

的通信具有最

高优先级。

按照一定的比

例来为不同类

型的服务分配

带宽,当没有某

些类型的报文

时,可以自动的

增加带宽到其

他的报文流中

缺点所有报文同等

对待,报文到达

接口的顺序决

定了报文发送

的顺序,关键应

用无法得到保

证。处理速度

相对

FIFO慢。

处理速度相对

FIFO慢。

处理速度相当

较慢,并且在极

端情况下优先

级低的报文可

能永远也无法

得到处理。

处理速度相对

配置

要求

没有配置要求配置简单需要配置需要配置需要配置

2.4 拥塞管理机制的工作机制

2.4.1 先入先出排队方式(FIFO)

2.4.1.1 工作原理

FIFO是一种较为简单的服务规则,仅仅提供了一条排队队列,数据包按照接收到的

先后顺序发送。FIFO不能提供延迟或速率保证,不能对共享同一链路的业务流进行

隔离,因而不能公平地对待共享同一链路的业务流。

图2-1:先入先出队列示意图

如上图所示,数据包按照到达的先后顺序进入队列,出队列的顺序与进队列的顺序一

致,即先到达的数据包先发送,后到达的数据包后发送,FIFO方式不对数据包进行

裁决,数据包到达的顺序决定了对网络带宽和资源的占用,因此一些恶性应用或者

攻击将占用所有的网络资源并严重影响关键业务。

2.4.1.2 适用环境

当网络上没有配置其他排队策略的时候,除了数据传输速率为2.048Mbps或者更低

的串行接口以外,所有其他的接口都默认使用FIFO策略。FIFO是排队策略中最快

的方法,如果网络很少发生拥塞现象,FIFO排队方式是最好的排队方式。

2.4.2 加权公平排队方式(WFQ)

2.4.2.1 工作原理

WFQ克服了FIFO式的严重局限性。当FIFO 排队方式生效的时候,通信根据抵达

接口的顺序发送出去,而与带宽的耗费或者相关的延时无关。其结果是,文件传输

和其他数据量较大的网络应用常常会生成相关数据的数据包链,数据包链是多组数

据包,它们在网络上往往会作为整体进行传输。这些数据包链可能耗费所有可用的

带宽,从而剥夺其他通信的带宽。

WFQ保证各个业务流公平的共享链路带宽,保证数据量少的业务流能够以一种及时

的方式进行传输。

图2-2:加权公平队列示意图

如上图所示,WFQ对报文按流进行分类(相同源IP 地址、目的IP 地址、源MAC

地址、目的MAC地址、源端口号、目的端口号、协议类型、TOS 的报文属于同一

个流),每一个流被分配到一个队列中,在发送的时候,WFQ按流的优先级来分配

每个流应占有的带宽,优先级的越小所得的带宽越少,优先级的越大所得的带宽越

多,每一个数据流将会得到的带宽与这个链路的总带宽之比是它的优先权级别+1比

上这个链路的总带宽。

例如:接口中当前有7个流,它们的优先级分别为0、1、2、3、4、5、6,则接口

带宽总配额是所有流的优先级+ 1,即:

1 +

2 +

3 +

4 +

5 +

6 +

7 = 28

每个流所占带宽比例为自己的优先级数+ 1 / 所有(流的优先级+ 1),所以每个流可得

的带宽分别为总带宽的1/28、2/28、3/28、4/28、5/28、6/28、7/28。

如果优先级为1的数据流的个数有10条,那么总带宽为:

1 + 2*10 + 3 + 4 + 5 + 6 + 7 = 46

因此优先级为0的数据流占用的带宽为总带宽的1/46,而优先级为1的10条数据

流,占用的带宽为总带宽的2/46,依次类推,优先级为6的数据流占用总带宽的7/46。

当添加或者结束数据流的时候,实际所分配的带宽会连续发生变化。因此,通过分

配每一个通信所获得的带宽,WFQ可以适应于不断变化的网络环境。

2.4.2.2 适用环境

带宽为2.048Mbps或者更低的串行接口,WFQ为默认的排队方式。

2.4.3 基于类的加权公平排队方式(CBWFQ)

2.4.

3.1 工作原理

CBWFQ是对标准WFQ功能的扩展。它确保带宽按照用户的定义在各类网络数据

流之间按照设定分配。

图2-3 基于类的加权公平队列(CBWFQ)示意图

如上图所示,CBWFQ对报文按流进行分类:首先按照用户自定义的分类规则来进行

分类,合乎用户自定义的同一个匹配规则的网络数据包将被当作同一个网络数据流

放入对应的同一个CBWFQ队列,不合乎用户自定义的匹配规则的将按照WFQ分

类规则处理(相同源IP 地址、目的IP 地址、源MAC地址、目的MAC地址、源端

口号、目的端口号、协议类型、TOS 的报文属于同一个流,每一个流被分配到一个

保留的WFQ队列中)。在发送的时候,CBWFQ按照设定的带宽分配规则分配带宽。

当添加或者结束数据流的时候,CBWFQ实际所分配的带宽会连续发生变化。因此,

CBWFQ也可以适应于不断变化的网络环境。

2.4.

3.2 适用环境

带宽为2.048Mbps或者更低的串行接口上需要严格控制网络数据流的分类规则以

及带宽分配的时候,宜采用CBWFQ。

2.4.4 低延迟队列(llq)和rtp优先级队列(rtpQ)

2.4.4.1 工作原理

llq是对CBWFQ功能的扩展。它确保某些对时延敏感的报文不但能得到带宽分配,

而且能得到低时延的发送保证。

可以把llq理解成pq+cbwfq, 就是有个严格的优先级队列,该队列的报文都要发送完

以后才发送cbwfq队列的报文。

对llq队列中的不同类型的流量分别进行监视,在不拥塞的情况下允许发送,在拥塞

的情况下,不同类型的流量要监视其发送速率,如果超过其带宽,必须予以丢弃。

Rtp优先级队列(rtpq)其功能和llq类似,就是每个接口都有一个rtp优先级队列,专

门用来保证rtp协议报文的低延迟的传输,它只匹配一定端口范围的udp报文。

对Rtp队列中的不同类型的流量分别进行监视,在不拥塞的情况下允许发送,在拥

塞的情况下,不同类型的流量要监视其发送速率,如果超过其带宽,必须予以丢弃。

Rtp优先级队列和llq队列每个接口都只有一个,但是Rtp优先级队列的优先级比llq

高。

2.4.4.2 适用环境

带宽为2.048Mbps或者更低的串行接口上需要对时延敏感,严格控制网络数据流的

分类规则以及带宽分配的时候,宜采用llq或者rtpq +cbwfq。

2.4.5 自定义排队方式(CQ)

2.4.5.1 工作原理

CQ按照一定的规则将数据包分成17类(对应于CQ的17个队列),数据包根据

各自的类别按照先入先出的策略进入相应的CQ队列。在CQ的17个队列中,0号

队列是系统队列,1到16号队列是用户队列。每一个队列可以配置单次发送的字节

总数,指定系统在处理该发送队列时,应当从该队列中取出多少字节的数据进行发

送。在队列调度时,系统队列中的数据包被优先发送,直到系统队列为空,再采用

轮询的方式按照预先分配的带宽比例,即依次从1到16号用户队列取出一定数量

的数据包发送出去。

图2-4:定制队列示意图

当线路负载很重的时候,CQ能够保证没有任何一个应用或者指定的应用组可以得

到超过总带宽的预定比例的带宽分配。与PQ相似的是,CQ是静态配置的,因此

不能够自动地适应不断变化的网络环境,同时使用CQ策略时,要对数据包进行排

队,消耗系统资源,也会降低系统的性能。

2.4.5.2 如何确定队列发送字节总数

为了给不同的队列分配带宽,必须为每一个队列指定字节总数,那么应该如何确定

为每个发送队列的字节总数呢?

路由器对各个发送队列进行轮循发送,当轮到给某个队列发送数据包时,需要一直

发送,直到发送的的数据包的字节总数已经超出了为该队列配置的字节总数为止。

但是如果发送该队列的数据包已经超出该队列配置的字节总数的值,数据包还没有

发送完毕,那么将继续发送,直到数据包完全发送出去为止。因此,如果你把队列

的字节总数的值设置为300字节,而使用的协议所规定的数据包的大小为1500字

节,那么,每次当这个队列接受服务的时候,系统会发送1500个字节,而不是300

个字节。

例如:假设一个协议拥有500个字节的数据包,另外一个协议拥有300个字节的数

据包,而第三个协议拥有100个字节的数据包。如果你想要在这三种协议之间平均

地分配带宽,你必须选择为每一个队列指定的字节总数为200、200、200。但是,

这种配置决不会导致33/33/33的比率。当路由器为第一个队列提供服务的时候,它

发送一个500字节的数据包;当路由器为第二个队列提供服务的时候,它发送一个

300字节的数据包;当路由器为第三个队列提供服务的时候,它发送两个100字节

的数据包。所以,实际的比率是50/30/20。

因此,把字节总数的值设置得过小,会导致一种非预期的带宽分配。但是,如果字

节总数的值设置得过大,将会产生一种“不平稳的”分配。具体地说,在上面所给

出的示例中,如果你给三个队列分配的字节总数为10KB、10KB、10KB,则当每个

队列接受服务的时候,都可以发送出大量的数据包,并且确实也是基本平均分配带

宽的,但是这些队列也许都会等待很长的时间,才能够得到第二次服务。一个更好

的解决方案是,把这三个队列的字节总数指定为500字节、600字节以及500字节。

这种配置所产生的比率是31/38/31,这是可以接受的。为了以一种及时的方式来对

队列提供服务,并且保证所配置的带宽分配尽可能地与实际所要求的带宽分配相接

近,你必须根据每一种协议的数据包大小来决定字节总数。否则,你实际得到的数

据包发送比率将不会符合于你所配置的比率。

为了确定最佳的每个队列的发送字节总数,可以用如下的步骤来确定:

步骤1:对于每一个队列,都用你想分配给这个队列的带宽百分数来除数据包的大

小(以字节为单位)。例如:假定协议A的数据包大小是1086字节,协议B的数

据包大小是291字节,协议C的数据包大小是831字节。你想分配20%的带宽给

协议A,60%的带宽给协议B,20%的带宽给协议C,则比率应当是:20/1086,60/291,

20/831 或者0.01842,0.20619,0.02407

步骤2:使用最小的数字来把上面所列出的三个数字进行归一化处理:1,11.2,1.3

这个结果是必须被发送的数据包数量的比率,因此,每一种协议所使用的带宽的百

分比大致是20%、60%和20%。

步骤3:任何一个比率值的尾数都意味着系统将要发送一个额外的数据包。把比率

值进行只入不舍操作,所得到的整数就是实际所要发送的数据包的总数。在这个示

例中,实际的所发送的数据包的比率将是1:12:2。

步骤4:用每一种协议的数据包总数乘上相应的数据包大小,可以把数据包数目比

率转换成字节总数。在这个示例中,所发送的数据包总数是一个1086字节的数据

包、12个291字节的数据包以及2个831字节的数据包;或者换一种说法,分别

从每一个队列发送1086、3492、1662字节。这就是你将在你的自定义排队配置中

指定的字节总数。

步骤5:为了确定这个比率所代表的带宽分配,首先要确定当对三个队列都提供一

次服务的时候,系统所传输的字节总数:(1×1086) + (12×291) + (2×831) = 1086

+3492 +1662 = 6240

步骤6:然后确定每一个队列所发送的字节总数的百分比:1086/6240,3492/6240,

1662/6240 = 17.4%,56%和26.6%正如你所看见的一样,这三个百分比很接近我

们所期望的比率20/60/20。

步骤7:如果实际的带宽比率与所希望的带宽比率不太接近,则可以用原来的比率

1:11.2:1.3乘上最佳的值,这样能够使实际的带宽比率尽量地靠近这三个整数。注

意,你所使用的乘数不必是一个整数。例如:如果你用2来乘上这个比率,得到

2:22.4:2.6。那么,你现在将要发送两个1086字节的数据包,23个291字节的数

据包以及3个831字节的数据包;或者说,系统所发送数据包的总数是11,358字

节,这三种协议所发送的数据包的比例是2172/6693/2493。最终所得到的比率是

19/59/22,这个结果更近似于所希望得到的最佳比率。

窗口的大小也会影响带宽的分配。如果某个特殊协议的窗口大小设置为1那么除非

这个协议收到一个确认信号,否则它不会把另外一个数据包放置在这个队列中。如

果所发送的字节数已经超过了字节总数,或者在这个队列中已经没有任何数据包,

则自定义排队算法都会移动到下一个队列。因此,如果某个协议的窗口大小是1,

那么每次就只会发送一帧的数据。如果帧的总数设置为2KB,并且帧的大小是256

个字节,那么每次当这个队列接受服务的时候,系统只发送256个字节的数据。2.4.5.3 适用环境

对于速度比较慢的接口来说,这种功能是非常有用的。

任何隧道都不支持CQ排队策略。

2.4.6 优先权排队方式(PQ)

2.4.6.1 工作原理

PQ允许在网络中区分数据包发送的先后次序,可以配置四种通信优先级。根据数

据包的特性(源地址、目的地址、协议类型、数据包的大小等),将数据包放到这

四种队列中;优先权级别高的队列首先得到服务,直到等到高优先级队列数据全部

发送完毕之后,然后依次发送优先权级别较低的队列数据流。

图2-5:优先队列示意图

如上图所示,根据用户所定义的标准,对数据包进行分类,然后把它们放置在四种

不同优先级别的输出队列中,当发送数据包时,按照优先权级别由高向低开始扫描

这个接口上的优先权队列。先扫描高优先权级别的队列,然后扫描中优先权级别的

队列,选中位于最高优先权级别队列最前面的数据包传输。要发送数据包的时候,

就重复这个过程。

优先级比较高的数据流优先处理,优先级比较低的数据流可能无法分配到带宽,所

以,如果使用PQ策略的话,最坏的结果会导致优先级比较低的数据永远不能够发

送出去,同时PQ引入额外的系统开销,对于传输速率比较慢的接口来说,这是可

以接受的;但对于传输速率比较高的接口(例如Ethernet)来说,这是不合理的的。

使用PQ策略,系统将会花费更多的时间用于转换数据包,降低系统性能。PQ使用

了一个静态的配置,因此不能够适应于不断变化的网络环境。

2.4.6.2 适用环境

虽然可在任何接口上使用优先级排队方式,但最好应用于低带宽、经常拥塞的串行

接口。

说明:

任何隧道都不支持PQ排队策略。

2.5 加权公平排队(WFQ)的配置

2.5.1 WFQ配置任务

在使用标准WFQ的情况下,数据包通过流进行分类。具有如下相同特性的数据包

属于同一个流:相同的源IP地址、目的IP地址,对于TCP(Transmission Control

Protocol,传输控制协议)和UDP(UserDatagram Protocol,用户数据报协议)而言,

还包括源端口与目的端口。WFQ给每一个流分配相同的带宽。基于流的WFQ也称

为公平排队,因为所有的流都赋予相等的权重。

为了配置WFQ,需要完成下列任务:

z配置WFQ

z监视公平排队

2.5.2 配置WFQ

要配置WFQ,在接口配置模式下,执行如下命令:

命令功能

Router(config-if)# fair-queue [congestive-discard-threshold

设置WFQ

[dynamic-queues]]

Router(config-if)# no fair-queue取消WFQ配置

配置WFQ参数描述

参数描述

congestive-discard-threshold在每个队列中所允许容纳的数据包的最大数目

(阈值)。默认值是64,一个新的阈值必须是

在1到4096之间的2的幂。当数据包数目达到

该阈值时,将丢弃新到达的数据包。(该参数可

选)

dynamic-queues动态队列的数量,默认值是256,取值范围1~

4096。(该参数可选)

2.5.3 监视WFQ

要查看接口配置了WFQ后的信息,可以在特权用户模式下执行如下命令:

命令功能

Router# show queue [interface] 显示队列的接口信息

2.5.4 WFQ配置实例

如下所示的示例,在同步口0设置一个公平排队,具体配置是拥塞丢弃门限(阈值)

为128个消息、512个动态队列以及50个保留队列:

interface Serial 1/0

ip address 1.1.1.1 255.255.255.0

fair-queue 128 512

下面是在特权用户模式下,查看该接口配置的例子:

Router#show queue interface serial 1/0

Queueing strategy: weighted fair

Output queue: 0/128/0 (size/threshold/drops)

Output queue num: 0/0 (now/max)

通过如上的显示,可以看出接口的排队策略采用WFQ排队方式,拥塞丢弃门限(阈

值)为128。

2.6 基于类的加权公平队列(CBWFQ)的配置

2.6.1 CBWFQ配置任务

缺省状态下,RGNOS上低带宽(<4Mbps)网络接口默认的QoS策略为WFQ。为了

配置CBWFQ功能,需要完成下面的配置任务:

z定义类映射表

z在规则映射表中设置类规则

z在指定接口上应用服务规则

z为指定类设置带宽

z为指定类设置队列深度

z设置分配给CBWFQ的带宽

z监控CBWFQ设置

2.6.2 配置CBWFQ

2.6.2.1 定义类映射表

该项功能设置对于实现CBWFQ功能是必须的。用户在类映射表中定义网络数据包

分类规则,用户在规则映射表中可以通过指定类映射表的名称来引用这些类映射表,

同一个类映射表可以被一个规则映射表引用,也可以同时被多个规则映射表引用。

该项功能的典型设置如下:

命令功能

Router(config)# class-map match-all class-map-name 进入/创建与类型的类映射表,也就是要满足类映射表下的所有条件

Router(config)#

class-map match-any class-map-name 进入/创建或类型的类映射表,只要

满足类映射表下的一个条件

Router(config-cmap)# match access-group access- list-number or Router(config-cmap)# match

input-interface interface- name

or

Router(config-cmap)# match protocol

protocol-name

Router(config-cmap)#Match ip dscp value

Router(config-cmap)#Match ip precedence

value

Router(config-cmap)# Match not match-type

value

设置网络数据包分类规则(按照

ACL ,网络数据包到达接口,封装协

议类型,ip dscp 编码,ip precedence

编码或者以上分类规则的取非条件)Router(config-cmap)#exit 退出类映射表配置层

class-map-name 类映射表名称;

match-all 要满足类映射表下的所有条件;缺省创建的类映射表是match-all 类型; match-any 只要满足类映射表下的一个条件;

access- list-number 访问控制列表(ACL)号;

interface- name 网络接口名称;

protocol-name 网络数据包封装协议;

Ip dscp 网络数据包ip tos 域的dscp 编码值;

Ip precedence 网络数据包ip tos 域的precedence 编码值;

Not match-type 分类规则的取非条件。

2.6.2.2 在规则映射表中设置类规则

该项功能设置对于实现CBWFQ 功能是必须的。在规则映射表中,用户可以引用在路由器上设置的所有类映射表(最多可以同时引用64个不同的类映射表)。用户可以为引用的类映射表指定带宽,但是所有引用的类映射表分配的带宽总和不能超过应用该规则映射表的指定接口上分配给CBWFQ 的带宽。该项功能的典型设置如下:

命令

功能 Router(config)# policy-map policy-map-name

进入/创建规则映射表 Router(config-pmap)# class class-map-name 引用已定义的类映射表Router(config-pmap-c)# bandwidth { bandwidth-kbps | percent percent-number } 为指定类型的数据流分配带宽

Router(config-pmap-c)# queue-limit number-of-packets

设定队列深度

Router(config-pmap-c)# exit

退出类引用配置层 Router(config-pmap)# exit

推出规则映射表配置层

policy-map-name 规则映射表名称;

class-map-name 类映射表名称;

bandwidth-kbps 分配的带宽(以kbps 为单位); percent-number 分配的带宽百分比(相对于网络接口全部可用带宽而言);

number-of-packets CBWFQ 队列深度(最多可容纳的网络数据包数目)。

2.6.2.3 在指定接口上应用服务规则

该项功能对于实现CBWFQ 功能是必须的。在指定接口上应用服务规则将启用

CBWFQ 功能,一旦启用CBWFQ 功能,对应的规则映射表中引用的类均会获得对应的处理队列。该项功能的典型设置如下: 命令

功能 Router(config-if)#

service-policy output policy-map-name

启用CBWFQ 并指定应用的规则映射表 Router(config-if)#

service-policy input policy-map-name 对入接口的报文启用policy-map 策略。

policy-map-name 规则映射表名称

说明:

如果policy-map 启用了CBWFQ 的相关特性,比如bandwidth 命令或者是priority 命令,则该policy-map 只能应用于service-policy output 命令,而不能应用于service-policy input 命令。

2.6.2.4 为指定类设置带宽

该项功能设置对于实现CBWFQ 是可选的。该项功能的典型设置如下: 命令

功能 Router(config)# policy-map policy-map-name

进入/创建规则映射表 Router(config-pmap)# class class-name 引用已定义的类映射表Router (config-pmap-c)# bandwidth { bandwidth-kbps | percent percent } 为指定类型的数据流分配带宽

policy-map-name 规则映射表名称;

class-map-name类映射表名称;

bandwidth-kbps分配的带宽(以kbps为单位);

percent-number分配的带宽百分比(相对于网络接口全部可用带宽而言)。

用户可以在此为指定类型的网络数据流分配带宽。系统默认为指定类型的网络数据

流分配1%的带宽。

2.6.2.5 为指定类设置队列深度

该项功能设置对于实现CBWFQ是可选的。该项功能的典型设置如下:

命令功能

Router(config)# policy-map policy-map-name进入/创建规则映射表

Router(config-pmap)# class class-name引用已定义的类映射表

Router(config-pmap-c)# queue-limit number-of-packets设定队列深度

policy-map-name规则映射表名称;

class-map-name类映射表名称;

number-of-packets CBWFQ队列深度(最多可容纳的网络数据包数目)。

用户可以在此为指定类型的网络数据流对应的CBWFQ队列设置队列深度。系统默

认为64,即在对应的CBWFQ队列中已有64个数据包后,系统将会丢弃试图进入

该队列的网络数据包。此时,RGNOS只支持Tail-Drop方式的拥塞处理,不支持

RED/WRED方式的拥塞处理。

2.6.2.6 为指定类设置ip tos域的dscp编码值

该项功能设置对于实现CBWFQ是可选的。该项功能的典型设置如下:

命令功能

Router(config)# policy-map policy-map-name进入/创建规则映射表

Router(config-pmap)# class class-name引用已定义的类映射表

Router(config-pmap-c)# set ip dscp values设置报文的dscp值

policy-map-name规则映射表名称;

class-map-name类映射表名称;

ip dscp values要设置的报文的dscp值。

2.6.2.7 为指定类设置ip tos域的precedence编码值

该项功能设置对于实现CBWFQ是可选的。该项功能的典型设置如下:

相关主题