出现拥塞的原因
1速率不匹配问题(speed mismatch problem)高速接口进来接了一个低速接口出去
2汇聚问题(aggregation problem)多个接口流量汇聚到一个没有足够容量的接口
3合流问题(confluence problem) 连接多个流量流导致接口出现拥塞
解决拥塞的办法
永久性的处理 增大容量
临时性解决  排队
尾部丢弃(trail drop)
每个接口上的排队机制都包括硬件组件和软件组件
硬件队列(发送队列TxQ):如果硬件队列没有拥塞,则基于FIFO,数据包被快速送往传输介质上;如果出现拥塞,,数据包就会被保持在软件队列中进行处理,并基于软件队列规则释放到硬件队列中。
软件队列规则:FIFO(first in first out先进先出)  PQ(priority queuing优先级排队)  CQ(custom queuing定制排队)  WRR (加权循环)
硬件队列大小:
查看命令 :show controllers serial

FIFO(first in first out先进先出) 默认排队机制
 PQ(priority queuing优先级排队)特点:分为4个等级,高.中.正常.低优先级队列
首先处理高优先级队列,处理完它之后,处理中优先级队列;当高优先级队列又有包时,还是优先处理高优先级队列。 缺点:可能使优先级较低的队列得不到处理机会
 WRR (加权循环)准许用户为每一个队列分配一个权值,根据权值,每个队列都能获得一定的带宽接口,但不均等。
缺点:
1使用WRR的时候,如果分配给队列的字节数(权值)远大于接口的MTU,那么将会增大延迟
2
WFQ(weighted fair queuing加权公平排队)
目标:
1为每个活动流提供公平的带宽分配机制
2为少量交互流提供更快的调度机制
3为高优先级流提供更多的带宽
WFQ:是一种基于流的排队算法,到达的数据包被分成多个流,每隔流都被分配给一个FIFO队列。
可以基于IP和TCP或UDP头中以下字段标识流:源IP地址 目的IP地址 协议号 TOS 源TCP/UDP端口号 目的TCP/UDP端口号
WFQ插入和丢弃策略
WFQ有一个保持队列(hold queue),保持队列=WFQ系统中数据包占用的所有内存之和,数据包到达时,保持队列已满,那就丢弃数据包(WFQ主动丢弃WFQ aggressive dropping)
例外:数据包分配到一个空队列,不会丢弃
WFQ的优缺点:
主要优点
WFQ配置简单,无需显示分类
不会让任何流得不到处理机会,能够保证所有流的吞吐量
从最主动的流中丢弃数据包,可以为非主动流提供更快的服务
是一种标准.简单的排队机制,大多数CISCO平台和IOS版本都支持
缺点
WFQ的分类和调度机制是不可配置和无法修改的
WFQ仅支持低速链路(2.048Mbit/s及以下的)
WFQ不能为流量流提供带宽和时延保证
WFQ系统重多个流量流可能会被分配到同一个对列中去
WFQ的配置和监控
默认情况下,所有低速(2.048Mbit/s及以下)串行接口都启用WFQ,
CBWFQ基于类别的加权公平排队
比WFQ更好,因为可以创建用户自定义的类别,并为所有类别分配专属队列,每个队列都有用户自定义的(最小)带宽,而且在有可用带宽队列可以使用更多带宽。
最多可以创建64个用户自定义类别,每个队列都是有保证带宽和最大包门限的FIFO队列,一旦达到最大,就会产生尾部丢弃。
分类,调度和带宽保证
带宽
带宽百分比
带宽剩余百分比
CBWFQ的优点
可以创建用户自定义的类别,利用MQC的分类映射可以很容易地定义这些流量类别
可以基于用户策略和用户意愿为每种流量类别分配/预留带宽
可以基于现有网络应用和用户策略定义最多64个固定类别,从而提供微调手段,而且扩展性更好
缺点:没有为实时性应用提供合适地队列(VOIP 和 视频)无法保证低时延
配置和监控CBWFQ

LLQ
包含了一个优先级队列,使其非常适合时延和抖动敏感型应用
优点:
LLQ具有CBWFQ的所有优点,包括自定义流量类别,为每种类别的流量提供带宽保证,并确可以在所有类别的队列上应用WRED。(严格优先级队列除外)
对于LLQ和CBWFQ来说,任何没有被显示分类的流量都被认为class-default流量,可以将class-default流量类别队列由FIFO改为WFQ,需要时也可以用WRED.
LLQ最大优势 可以为时延和抖动敏感型应用的流量提供一个或多个有带宽保证的严格优先级队列
LLQ并不局限于特定平台或传输介质
配置和监控LLQ