目录

简介

开始使用前

规则

先决条件

使用的组件

两组队列

激活第3层队列

什么是队列限制？

FIFO 的队列限制

CBWFQ 的队列限制

LLQ 的队列限制

队列限制与 WRED

相关信息

简介

本文档阐明当在支持IP到ATM服务类别(CoS)的ATM路由器接口上启用每条虚电路排队功能时，路由器如何计算队列限制的大小。 思科的模块化服务质量(QoS)CLI（称为MQC）用于配置应用于逻辑接口（无论是主接口、子接口还是虚电路）的服务策略。这些服务策略实施一些QoS操作，从策略和整形到标记和排队。

开始使用前

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

先决条件

本文档没有任何特定的前提条件。

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您是在真实网络上操作，请确保您在使用任何命令前已经了解其潜在影响。

两组队列

启用每VC排队功能的思科路由器接口将ATM VC的数据包存储在两组队列中的一组中，具体取决于VC的拥塞级别：

队列

位置

排队方法

应用服务策略

调整命令

硬件队列或传输环路

端口适配器或网络模块

仅 FIFO

无

tx-ring-limit

第3层队列

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

无

Yes

随排队方法变化：- vc-hold-limit - queue-limit

拥塞定义为填充传输环(tx-ring-limit)。 请参阅了解和调整tx环限制值。

激活第3层队列

了解路由器何时使用第3层队列非常重要，因为服务策略仅适用于存储在第3层队列中的数据包。ATM端口适配器或网络模块与第3层处理器系统以以下方式协作：

1. ATM接口根据ATM整形速率在每个ATM永久虚电路(PVC)上传输信元。

2. ATM接口维护每VC硬件队列或传输环，其中存储等待传输到该VC的数据包。

3. 当硬件队列或传输环填满时，ATM接口向第3层处理器系统提供显式背压。每条VC背压可防止单个ATM PVC不必要地过度消耗缓冲区。它通知第3层处理器停止将从特定VC发往ATM接口传输环的数据包取消排队，因为每VC队列已达到一定的占用级别。第3层处理器现在将超额数据包存储在第3层队列中。在此期间，第3层处理器继续转发发往其他非拥塞PVC的数据包。

4. 当ATM接口在传输环上发送数据包并清空环时，它再次具有足够的缓冲区来存储数据包。它释放背压，第3层处理器将新数据包排队到ATM接口。

5. 当所有PVC的ATM接口上缓冲的数据包总数与总可用缓冲空间相比达到一定级别时，ATM接口在聚合全VC级别提供背压。这种背压通知第3层处理器停止向ATM接口发送任何数据包。

重要的是，通过此通信系统，ATM接口识别其特定VC的传输环已满，并限制从第3层处理器系统接收新数据包。因此，当VC拥塞时，丢弃决策从发送环的先入先出(FIFO)队列中的随机、后入/先丢弃决策移动到基于由第3层处理器实现的IP级服务策略的差分决策。

什么是队列限制？

第3层队列始终有队列限制。此值定义队列中的数据包数。当此队列填满时，路由器会启动丢弃策略。此策略可以是尾部丢弃或加权随机早期检测(WRED)。 换句话说，队列限制定义在丢弃开始之前可以在第3层队列中存储多少个数据包。

路由器自动分配默认队列限制值。计算值随排队方法和平台而变化。重要的是，队列限制必须足够小，以避免因排队而引入延迟，但必须足够大，以避免丢包和对基于TCP的流造成的影响。

在Cisco 7500系列和FlexWAN等分布式平台上，默认值随系统中接口数量而变化。因此，与具有数百个子接口和VC的系统相比，仅具有两个接口的系统中的类可能会收到更多的缓冲区。路由器为每个类分配一个最小值，以确保有足够的缓冲区以线速为接口提供数据。队列限制表示接口的信用限制。换句话说，路由器会根据接口、PVC和类的带宽比例在接口、PVC和类之间分配缓冲区。默认情况下，queue-limit值不会超订用可用缓冲区。

以下各节将更详细地讨论队列限制。

FIFO 的队列限制

在非分布式平台上的ATM VC上，在支持Cisco IOS®软件版本时，默认启用每条VC队列和第3层队列。FIFO是在未配置特定排队机制时应用于第3层队列的默认排队方法。第3层队列默认使用FIFO，因为ATM接口上的默认排队算法也是FIFO。最初，这些队列仅支持40个队列限制。我们可以在以下输出中看到：

router#show queueing interface atm 2/0.10

Interface ATM2/0.10 VC 10/32

Queueing strategy: FIFO

Output queue 0/40, 244 drops per VC

从Cisco IOS软件版本12.1(5)T开始，您可以使用vc-hold-queue命令将每VC FIFO队列的大小调整为5到1024之间的值。

CBWFQ 的队列限制

queue-limit命令仅适用于使用bandwidth命令配置了基于类的加权公平队列(CBWFQ)的类。queue-limit命令定义第3层队列在丢弃开始之前将存储的数据包数。换句话说，它是第3层队列的深度。

默认queue-limit值随平台而变。

- Cisco 2600、3600、7200系列路由器和MC3810:默认值为64。在2600系列的ATM网络模块上捕获了以下输出示例。

router#show queueing interface atm 2/0.10

Interface ATM2/0.10 VC 10/32

Queueing strategy: weighted fair

Total output drops per VC: 1539

Output queue: 0/512/64/1539 (size/max total/threshold/drops)

Conversations  0/37/128 (active/max active/max total)

Reserved Conversations 0/0 (allocated/max allocated)

- Cisco 7500系列和FlexWAN:默认值通过为每个类别分配其父缓冲区的比例份额来计算。该比例基于分配给类的带宽与父级带宽的比较。具体而言，队列限制由最大延迟500ms和平均数据包大小250字节确定。例如，一个带宽为1 MB的类的队列限制为1000000 /(250 x 8 x 2)= 250。重要的是，它还基于以下内容：

- 可用SRAM或数据包内存的数量。

- 接口数量，因为可用SRAM必须划分在接口之间。

interface ATM9/1/0.100 point-to-point

ip address 1.1.1.1 255.255.255.0

pvc 1/100

ubr 1000

service-policy out pmap

flexwan#show policy-map interface atm 9/1/0.100

ATM9/1/0.100: VC 1/100

service-policy output: pmap

queue stats for all priority classes:

queue size 0, queue limit 75

packets output 0, packet drops 0

tail/random drops 0, no buffer drops 0, other drops 0

class-map: e1 (match-all)

0 packets, 0 bytes

5 minute offered rate 0 bps, drop rate 0 bps

match: ip dscp 10

Priority: kbps 300, burst bytes 7500, b/w exceed drops: 0

class-map: e2 (match-all)

0 packets, 0 bytes

5 minute offered rate 0 bps, drop rate 0 bps

match: ip dscp 20

queue size 0, queue limit 75

packets output 0, packet drops 0

tail/random drops 0, no buffer drops 0, other drops 0

bandwidth: kbps 300, weight 42

class-map: class-default (match-any)

0 packets, 0 bytes

5 minute offered rate 0 bps, drop rate 0 bps

match: any

0 packets, 0 bytes

5 minute rate 0 bps

queue size 0, queue limit 33

packets output 2, packet drops 0

tail/random drops 0, no buffer drops 0, other drops 0

注意：通用接口处理器(VIP)和FlexWAN选择默认队列限制值，并使用第一组数据包计数统计信息将其发送到主处理器（如7500系列上的路由交换处理器[RSP]）。因此，在ATM VC传输流量之前，show policy-map interface的输出中可能会显示不正确的值。

LLQ 的队列限制

低延迟队列(LLQ)实现最小和最大带宽保证，您可以使用priority命令配置这两种。LLQ实施一种设备，在拥塞期间将优先级流量限制到其分配的带宽，以确保非优先级流量（例如路由数据包和其他数据）不会饿死。由于策略用于丢弃数据包且未施加队列限制，因此queue-limit命令不能与priority命令一起使用。

队列限制与 WRED

WRED可配置为第3层队列中数据包的可选丢弃策略。您可以配置WRED和CBWFQ或低延迟队列(LLQ)等花哨排队机制。

在VIP和FlexWAN上，默认WRED参数直接从默认队列限制派生。具体而言，最大阈值设置为默认队列限制的一半，并且最小阈值按比例缩小。

此外，默认WRED阈值会考虑与VC关联的ATM整形参数。为适应以较高速率出现的较大突发，VC整形速率越高，默认最小和最大阈值越大。例如，对于10-kbps的ATM，应用于特定路由器中VC的默认WRED参数如下所示：

nf-7505-1# show running-config

interface ATM1/1/0.47 point-to-point

atm pvc 47 0 47 aal5snap 10 10 1 random-detect wredgroup1

nf-7505-1# show queueing red

VC 0/47 -

random-detect group default:

exponential weight 9

precedence    min-threshold    max-threshold   mark-probability

---------------------------------------------------------------

0:            20                    40                    1/10

1:            22                    40                    1/10

2:            24                    40                    1/10

3:            26                    40                    1/10

4:            28                    40                    1/10

5:            30                    40                    1/10

6:            32                    40                    1/10

7:            34                    40                    1/10

相比之下，以下是同一路由器应用于以9 Mbps持续信元速率(SCR)和10 Mbps峰值信元速率(PCR)整形的VC的默认WRED参数：

nf-7505-1#show running-config

interface ATM1/1/0.49 point-to-point

atm pvc 49 0 49 aal5snap 10000 9000 100 random-detect wredgroup3

nf-7505-1#show queueing red

VC 0/49 -

random-detect group default:

exponential weight 9

precedence    min-threshold    max-threshold       mark-probablity

---------------------------------------------------------------

0:            72                  144                 1/10

1:            81                  144                 1/10

2:            90                  144                 1/10

3:            99                  144                 1/10

4:            108                 144                 1/10

5:            117                 144                 1/10

6:            126                 144                 1/10

7:            135                 144                 1/10

queue-limit定义第3层队列在任何给定时间可以存储的最大数据包数。max-threshold定义最大平均队列深度。更改队列限制时，请确保您还调整了WRED阈值，且配置的队列限制大于WRED最大阈值。

即使在配置了WRED的VC上，当平均队列大小超过队列限制时到达VC的所有数据包都会被尾部丢弃。因此，在以下配置中，区分服务代码点(DSCP)32的队列限制400和最小阈值460在平均队列大小为400个数据包时实施尾部丢弃，并有效防止WRED生效。

policy-map ppwe

class voip

priority 64

class bus

bandwidth 168

random-detect dscp-based

random-detect exponential-weighting-constant 10

random-detect dscp 8 11 66 1

random-detect dscp 32 460 550 1

queue-limit 400

注意：在调整默认阈值时，另请参阅《IP to ATM Class of Service Phase 1设计指南》中的“WRED优化注意事项”。

相关信息

- IP to ATM 业务类别第 1 阶段设计指南

- 了解和调节 Tx-ring-limit 值

- 更多ATM的信息

- 工具和实用程序 — 思科系统

- 技术支持 - Cisco Systems