比较 QoS 服务策略的 bandwidth 和 priority 命令

前言

要想知道梨子的味道最好亲口尝一尝,网上本来有篇“比较QoS服务策略的bandwidth及priority 命令”,怎么看怎么像机器翻出来的,这里重新翻译了下

介绍

bandwidthpriority这两个命令定义了一系列在命令行模式下的QOS policy-map,这里policy-map可以通过service-policy命令应用到接口、子接口或者虚链路(VC)上。这些命令通过匹配预先定义的traffic-class来提供数据包带宽的保证(guarantee)。然而,这二个命令在带宽保证的功能上是不同。本文解释了这些不同点和如何将未使用的类(class)的带宽分配到其他的未匹配的类(class)。

区别汇总

下表列出bandwidthpriority命令功能上的区别:

功能

bandwidth命令

priority命令

保证的最小带宽

保证的最大带宽

内置策略器

提供低延时

另外,bandwidthpriority命令用来满足不同的QoS要求,下表列出了这些QOS要求。

应用程序

bandwidth命令

priority命令

广域网链路的带宽管理

部分

管理发生延迟(抖动)时的延迟和变化

优化应用的响应时间

即使是快速的接口,大多数网络还是需要一个强大的QoS管理模型来有效的处理由于速度不匹配或者不同的流量类型产生的不可避免的网络拥塞点和瓶颈。在真实的网络世界中,必须减少资源和资源间的瓶颈和使用QoS策略来保证正确的资源分配。

配置bandwidth命令

Cisco IOS® 配置指南中描述bandwidth命令为“将相当数量的带宽(单位kbps) ,分配到类(class)。可以在policy map中指定和修改分配到类(class)的带宽”。

在拥塞期间,bandwidth命令提供最小带宽保证(minimum bandwidth guarante)。如下表所示,有三个命令参数。

命令参数

说明

bandwidth {kbps}

指定要分配的带宽,单位kbps

bandwidth percent {value}

指定要分配的带宽,占总可用带宽的百分比

bandwidth remaining percent {value}

指定要分配的带宽,占未分配到其他类(class)的带宽的百分比

注意:bandwidth命令定义的行为是保证最小带宽(minimum bandwidth guarantee),不是所有的Cisco 路由器平台都使用加权公平排队(WFQ)作为底层算法来实现这些行为

配置priority命令

Cisco IOS® 配置指南中描述priority命令为“一个优先级队列指定在CBWFQ流量中可用的带宽(单位kbps)。根据可用带宽的数量在traffic policy中将优先级分配到一个类。”

使用下面的命令创建一个优先级队列:

Router(config)#policy-map policy-name Router(config-pmap)#class class-name Router(config-pmap-c)#priority kpbs [bytes]

在发生拥塞期间,流量的类(class)用来保证带宽为某个指定速率,注意:只有在一个接口翻身拥塞时,才会进行带宽保证(bandwidth guarantees。换句话说,priority命令保证最小带宽(minimum bandwidth guarantee)

另外,priority命令也能够实现保证最大带宽(a maximum bandwidth guarantee)。这里,优先级队列采用令牌桶来调节提供的负载并且保证流量符合配置的速率。只有符合令牌桶的流量才能保证低延迟。超出部分的流量在链路不拥塞时会被发送,在链路拥塞时会被丢弃。

内置策略器(built-in policer)用来保证其他队列由排队调度程序进行处理。在原先的Cisco优先级队列特性中,使用priority-grouppriority-list命令,排队调度程序总是先处理最高优先级的队列。在极端情况下,低优先级队列几乎不会处理并且本配不到一点带宽。

priority命令与bandwidth命令主要的区别是如何提供严格的离开队列(de-queueing)的优先级来保证一个有限制的延迟。这是Cisco IOS® 配置指南中的描述“一个严格优先级队列(PQ)允许像语音这样对延迟敏感的数据在其他数据包队列之前被处理。”

每个路由器接口维护以下两组队列:

队列

位置

排队方法

服务策略适用

命令调整

硬件队列或 传输环路

端口适配器或网络模块

仅FIFO

tx-ring-limit

第三层队列

第三层处理器系统或接口缓 冲区

基于流的WFQ,CBWFQ, LLQ

在带宽的类(bandwidth)中使用queue-limit命令设置不同的队列方法

从上述表中,我们能发现服务策略只能应用在三层队列的数据包上

严格离开队列提到的处理优先级队列的队列调度程序和首先转发其数据包到传输环路 (transmit ring)。只有物理媒介终止了,传输环路才会终止。

在接下去的介绍中,传输环路被配置为接收四个数据包。如果三个包已经在队列上,则最好我们能排队到第四个位置然后等待其他三个队列情况。因此,低延时列队LLQ机制在传输环路上提供简单的尾部数据包离队,就像使用先入先出队列(FIFO )

使用tx-ring-limit命令调整传输环路的大小到一个非默认值。Cisco推荐在传输语音流量时调整传输环路。

流量优先级划分在对延迟敏感,交互式交易的应用程序是特别重要的。为了使延迟和抖动减到最小,网络设备必须能够在语音数据包一到达时就进行处理,换句话说,就是严格的优先级方式。严格的优先级队列才能保证语音的质量。如果语音数据包没有立即被处理,每一跳都会增加更多的延迟。

国际通信联合会(ITU)推荐最大150毫秒的单向端到端延迟。如果没有在路由器接口上立即处理,单跳的路由器也会造成大量的延迟。

注意: 用两个命令,kbps值会计算在二层报头上。换句话说,如果将一个guarantee应用到一个类(class)上,则保证了各自二层的流量。

哪些话务类别能使用超额带宽?

虽然bandwidthpriority命令提供的带宽保证被描述为“保留(reserved)”和“预先分配好的带宽(bandwidth to be set aside)”但两个命令都不是真正的保留(reservation)。换句话说,如果一个流量类别没有配置带宽,那么未被使用的带宽会被其他类(class)。

这个排队系统在prioirty类(class)上增加了重要的规则。如上所述,prioirty类(class)提供的负载是由流量策略器计算的。在发生拥塞期间,优先级队列不能使用任何超额的带宽。

下面的表描述了什么时候bandwidth类和priority类能使用超额带宽

命令

发生拥塞时

未发生拥塞时

bandwidth命令

允许分配超额的带宽

允许分配超额的带宽

priority命令

Cisco IOS计算了数据包并且通过令牌桶应用数据流量检测系统。匹配的数据包被调整为配置好的bps带宽,其他所有超额的数据包都会被丢弃

类(class)能够使用超额的带宽

注意: 这些LLQ指南对于在Cisco7200路由器的帧中继和其他non-Route/Switch 处理器(RSP)平台上是例外。对于原始的这些平台上的帧中继的LLQ实施来说,在非拥塞期间,不允许prioirty类(class)超过配置的速率。在Cisco IOS 版本12.2时,取消这个例外,并且保证只有在拥塞期间,超出的数据包会被丢弃。另外,小于FRF.12分段大小的数据包不会进行分段,从而降低CPU的利用率。

从上述论述,因为prioirty类(class)在拥塞的情况下,会被实施策略处理,他们不会被分配任何剩余的带宽。因此,剩余带宽(remaining bandwidth)会被分配给所有bandwidt类(class)和class-default 共享。

如何分配未使用的带宽?

这节解释了排队系统如何分配任何剩余带宽。“基于类的加权公平排队”描述分配机制:"如果超额带宽是可用的,超额带宽会在话务类别(traffic classes )中会按配置的比例地分配给其他带宽。如果还有带宽未被分配,剩余的带宽会根据配置的带宽比例在类(class)中进行分配"。请看二个例子。

在第一个例子中,policy-map foo保证bar 类(class)使用30%的带宽,baz类(class)使用60%的带宽。

policy-map foo  class bar      bandwidth percent 30  class baz  bandwidth percent 60

运用在1 Mbps链路的链路上运用这个策略,意味着保证bar类(class)使用300 kbps,baz类(class)使用600 kbps,重要地,class-default使用剩下的100 kbps。如果class-default不需要它,未使用的100 kbps可以分配给bar类(class)和baz类(class)使用。如果两个类(class)都需要带宽,他们按配置的比例共享速率。在这个配置中,共享的比率是30:60或1:2。

下一个例子中配置了3个策略(policy)map-bar,baz,和poli,在bar策略map和baz策略map中,带宽是按照百分比分配的,然而,poli策略map,带宽是指定kbps的

记住,class map必须在创建了policy maps后才能创建

policy-map bar class voice    priority percent 10 class data    bandwidth percent 30 class video    bandwidth percent 20 policy-map baz class voice    priority percent 10 class data    bandwidth remaining percent 30 class video    bandwidth remaining percent 20 policy-map poli class voice class data    bandwidth 30 class video    bandwidth 20

注意:这里bandwidth remaining percent 命令在Cisco IOS 版本12.2(T)后开始使用.

使用police命令设置一个最大值

如果带宽(bandwidth)或优先级(priority)类(class)在没有发生拥塞期间,未超过分配的带宽,您能够在police命令中使用priority命令。这个配置总是在一个活动的类(class)中使用了最大速率。应该选择性的根据策略的目的配置police命令。

了解可用带宽值

这节根据使用show interfaceshow queueing命令的输出,解释了说明排队系统如何得到可用带宽值。

我们创建了名为leslie的以下policy-map:

7200-16# show policy-map leslie Policy Map leslie Class voice Weighted Fair Queueing Strict Priority Bandwidth 1000 (kbps) Burst 25000 (Bytes) Class data Weighted Fair Queueing Bandwidth 2000 (kbps) Max Threshold 64 (packets)

我们创建了一个ATM永久虚拟电路(PVC),然后分配了可变的速率到非实时ATM服务类别,并且配置了6 Mbps的持续信元速率。然后我们通过service-policy output leslie命令在PVC上应用了policy-map。

7200-16(config)# interface atm 4/0.10 point 7200-16(config-subif)# pvc 0/101  7200-16(config-if-atm-vc)# vbr-nrt 6000 6000  7200-16(config-if-atm-vc)# service-policy output leslie

show queueing interf ace atm 命令显示"可用的带宽为1500 kilobits/sec"。

7200-16# show queueing interface atm 4/0.10 Interface ATM4/0.10 VC 0/101 Queueing strategy: weighted fair Output queue: 0/512/64/0 (size/max total/threshold/drops) Conversations 0/0/128 (active/max active/max total) Reserved Conversations 1/1 (allocated/max allocated) Available Bandwidth 1500 kilobits/sec 

我们看下这个值是如何得到:

  1. 6 Mbps是持续信元速率(SCR)。 默认情况下是保留值的75%: 0.75 * 6000000 = 4500000
  2. 3000kbps已经使用到了语音和数据类(class)上: 4500000 - 3000000 = 1500000 bps
  3. 可用的带宽是1500000 bps。

75%的默认最大带宽保留值留下了充足的带宽给了上层的数据流,例如路由协议更新和第二层Keepalive。它也包括第二层数据包包头匹配定义的话务类别或class-default类(class)。您能够在ATM PVC下使用max-reserved-bandwidth命令增加最大带宽保留。

在帧中继PVC上,bandwidthpriority命令使用了下面方法的一种,技术了可用带宽的总值:

  • 如果没有配置最小可接受承诺信息速率(minCIR),CIR应该除二。
  • 如果配置了minCIR,会进行计算minCIR。根据上面的速率,所有的带宽可以被分配到bandwidth类(class)和priority类(class)

因此,尽管您可以保证配置的带宽对于第二层开销足够大,但是帧中继PVC不支持max-reserved-bandwidth命令

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励