qos各种队列以及qos的详解(Cisco)

 

在有区别地对待和处理网络通信流之前,首先需要对通信流和"标记"或"颜色"进行分类,以保证特殊的数据包能够得到与其它数据包不同(或更好)的对待和处理。今天,Cisco IOS工具可以根据一些不同的标准对数据包进行分类,然后使用IP数据报头中的3个IP优先级位信息对这些数据包进行标记。

图2 IP数据包头中的IP优先级字段

网络操作员最多可以定义6个服务等级(使用IP头中服务类型(ToS)字段的3个优先级位,其中的2个值保留作它用)。然后,可以使用QoS功能制定适当的通信流处理政策,包括针对每一通信流等级的拥塞管理、带宽分配以及延迟限制。

图3 边界处进行的通信流分类

以下是分类功能选项的示例:

  • 某一特定T1上接收到的所有数据包都被划分为高优先级(基于端口的分类)
  • 所有超文本传输协议(HTTP)通信流都被划分为中优先级(根据应用进行分类)
  • 来自某一特定IP地址的视频通信流被划分为中优先级
  • 前往某一特定目的地的数据包都被划分为高优先级(例如,国际通信流或以外部网中的某一特定客户为目的地的通信流)

队列和时序计划(拥塞管理)

Cisco 7200和7500路由器所使用的不同队列功能包括:

  • 优先级队列
  • 自定义队列
  • 基于流的加权公平队列(WFQ)
  • 基于等级的加权公平队列(CB-WFQ)
  • 分布式加权公平队列(DWFQ)

优先级队列

优先级输出队列允许一个网络管理员为给定的端口定义4种通信流优先级-高、标准、中和低。当通信流到达路由器时,将安排其进入4个输出队列中的一个。最高优先级队列中的数据包将首先被输出。当这一队列变为空时,下一个最高优先级中的通信流将被输出,依此类推。

这一机制可以确保在拥塞期间最高优先级数据不会因为低优先级通信流而被延迟。以下是如何使用优先级队列的例子:

  • 字节计数值少于200的DECnet将被安排进入中优先级队列
  • 来自某一特定TCP端口或以某一特定TCP端口(如用于远程登录通信流的端口23)为目的地的IP数据包将被安排进入中优先级队列
  • 来自用户数据报协议(UDP)端口53或以其为目的地的IP数据包将被安排进入中优先级队列
  • 所有IP数据包都将被安排进入高优先级队列

图4 优先级队列和严格优先级时序计划

当使用优先级队列时有可能出现一种不希望看到的副作用:低优先级队列可能被锁死。换句话说,如果在一个没有尽头的到达流中出现太多的高优先级通信流,低速链路上的低优先级通信流就有可能永远得不到处理。如果这些低优先级通信流确实不重要,那么这可能正是所要求的结果。

自定义队列

如果您的目标是确保所有通信流的服务级别,您可以使用自定义队列。例如,您可以指定系统网络体系结构(SNA)通信流应占有25%的可用带宽,而TCP通信流应占有10%的带宽,剩余65%的带宽留给其它应用程序。

图5 自定义队列

虽然自定义队列有优势,但缺点是一个等级内的服务(延迟)仍然是不可预期的。

加权公平队列

基于流的加权公平队列(WFQ)的目标是确保拥塞发生时剩余的流能够获得足够的带宽,并对延迟作出限制,使其能够满足最低要求。在使用标准WFQ时,数据包是按流来排队的。拥有相同源IP地址、目的地IP地址、源传输控制协议(TCP)或UDP端口、或者目的地TCP或UDP端口的数据包将属于同一个流。

图6 加权公平队列

基于流的WFQ中"公平"一词的含义是指公平分享可用带宽。这种机制可以防止因带宽不足而引起的资源处理能力得不到使用的问题。

图7 基于流的WFQ

图8 基于等级的WFQ

基于等级的加权公平队列允许用户创建通信流等级并为每一个这样的等级指定一个权重。例如,一个企业客户可以创建三个通信流等级,一个用于语音,一个用于关键任务ERP通信流,第三个用于Web通信流。基于等级的WFQ允许为分配给每个通信流等级的带宽提供确定性的或"硬"的担保。例如,30%用于语音,30%用于ERP,而余下的40%用于Web通信流。虽然CB-WFQ对于等级间公平共享的重视不及其它WFQ,但它对于高速链路或主干来说是一种功能强大的QoS工具,在这两种情况下,重点是带宽分配的硬性担保,而并非是象低速链路上那样重点在于稀疏带宽的公平共享。在低速链路上,通常是使用基于流的WFQ。

图9 到达的数据包被安排到一个等级队列

VIP分布式WFQ(DWFQ)

基于VIP的分布式WFQ通过将WFQ的排队和时序计划任务分散到通用接口处理器上,可以增加Cisco 7500的转发能力。由于从原则上讲每个VIP可以为一个单独的高速接口提供服务,所以每个数据包有望获得的转发性能要高于由多个端口共享的基于路由交换处理器(RSP)的处理性能。

它可以支持以下使用VIP2-40或更高接口处理器的路由器:

  • 使用RSP7000的Cisco 7000系列
  • Cisco 7500系列

当VIP上端口适配器的汇聚线速率高于DS3时,建议使用VIP2-50接口处理器。当速率达到OC-3时,需要使用一个VIP2-50卡。当基于RSP的WFQ的可扩展性(基于CPU利用率)是考虑解决的重点问题时,基于VIP的DWFQ是一个有吸引力的可选解决方案,特别是对于高速接口。

与传统的自时钟同步WFQ算法相比,DWFQ在进行WFQ排序时使用的是日历队列,这使DWFQ对CPU的压力较低。

拥塞回避

网络拥塞会导致性能的降低和LAN/WAN带宽得不到高效的使用。

因此,我们的目标是通过使用算法(如随机早期检测[RED]算法)避免在任何可能的地方出现拥塞,这些算法利用TCP通信流的适应性特性,通过丢弃数据包来降低TCP传输速率。不过,如果您拥有多个TCP源,那么在所有源中统一进行数据包的丢弃将会导致所有这些源的退回,并随后同时开始重新发送。这种情况将会导致波浪式的拥塞,也被称为"全局同步"。如图表中所示,这种情况将会导致吞吐量的急剧下降。

通过有选择地从特定的TCP流中丢弃数据包,RED解决了这一问题,只有很少的TCP发送方会出现退回和重发的现象。

图10 全局TCP同步

与等待路由器缓冲区满以后对后来数据包进行丢弃(到达的数据包因无缓冲区而被丢弃)的情况不同,路由器对缓冲区的长度进行监视并对选定的数据包(以及选定的连接)执行早期丢弃。

图11 使用RED执行丢弃

网络操作员设置输出缓冲区的最小和最大队列长度阈值,路由器随后在作出数据包转发决策的同时对这些阈值进行监视。数据包交换决策过程对平均队列长度进行检查。如果平均队列长度小于最小阈值,数据包将进入队列并与随后被交换。如果平均队列长度超过最小阈值而小于最大阈值,数据包将按照一定的概率被丢弃。如果平均队列长度超过了最大阈值,所有数据包都将被丢弃。

Cisco加权随机早期检测(WRED)协议将IP优先级和RED结合起来,为优先通信流(高优先级)提供与标准通信流(优先级较低)有差别的丢弃阈值。换句话说,WRED根据IP优先级对数据包进行丢弃。这种情况实际上是允许Internet服务供应商(ISP)在丢弃优先客户的数据包之前首先丢弃标准客户的数据包。

图12 使用WRED实现的差别丢弃阈值

因为WRED监视路由器中队列的平均长度,所以它可以根据队列长度决定何时开始丢弃数据包。当平均队列长度超过用户规定的"最小阈值"时,WRED开始根据一定的概率丢弃数据包(包括TCP和UDP)。如果平均队列长度超过用户规定的"最大阈值",则WRED转为"后来(数据包)丢弃",即所有后面到达的数据包都将被丢弃。WRED的意图就是使将队列长度维持在最小和最大阈值之间的某个水平。

WRED也可以运行在VIP分布式模式之下,以增加Cisco 7500的性能。不过,为实现这一点,所有接口都必须启用VIP分布式Cisco快速转发(DCEF)功能。

政策制订和通信流整形

政策制订/速率限制

Cisco承诺接入速率(CAR)工具是一种速率限制或政策制订工具(分类规则也可以通过Cisco IOS软件中的CAR工具进行设置)。企业客户可以使用速率限制工具来限制从Internet进入到企业网络的通信流(如点播通信流)的速率,服务供应商可以使用速率限制工具来加强服务级别协议(SLA)。速率限制工具对所有超过规定速率的通信流都执行数据包丢弃,其使用目标并非是对通信流进行整形或排队。

图13 使用CAR实现的速率限制

CAR速率限制可以在输入或输出接口以及子接口上实现,包括帧中继和ATM子接口。在这一功能实现并规定了一个或更多的速率以后,可以将政策制订的原则(或CAR对超过某一规定速率的通信流可以采取的措施)设置为以下之一:

  • 传输(如同一个松懈的交通警察)
  • 丢弃(丢弃数据包)
  • 设置优先级并传输(将IP数据包头中ToS字段的优先级位设置为一个优先级较低的值—或首次对其进行标记/染色并进行传输)。这种方式实际上是以较低的优先级传输超出规定的数据包,在当时仍有可用带宽的情况下使这些数据包仍有机会到达自己的目的地。

可以规定多个CAR速率限制。这种层叠式方式可以对数据包实行一系列的速率限制,也可用于规定更加细致的政策。例如,一个企业客户可以对TCP通信流进行速率限制,同时进一步为基于TCP的Web通信流规定第二个速率限制。

  • 继续(评估其是否符合一系列速率限制中的下一个速率限制)
  • 设置优先级并继续(将优先级设置为一个较低的规定的值,然后评估其是否符合一系列速率限制中的下一个速率限制)

以上的两个选项是CAR中层叠式多速率限制的例子。

整形

整形(即所谓的通信流整形[GTS])的原因有很多,例如,企业客户为确保SLA一致性而对输出通信流进行整形,以防止服务供应商丢弃超过限制的通信流。整形的目的(与速率限制/政策制订相对比)是永远不会发生丢弃数据包这样的事情。在通常意义上讲,如果一个上游路由器知道自己的下游路由器采用了政策制订的方法,那么该上游路由器就必须对通信流进行整形。

图14 进行通信流整形的必要

Cisco GTS提供了一种在某一特定接口上对通信流进行控制的机制。通过将特定通信流的速率限制为某一特定位速率,这一功能可以减少输出通信流以避免拥塞的发生(这也被称为令牌存储桶方法),同时对猝发性的特定通信流进行排队处理。因此,对符合某一特征的通信流进行整形以后可以使其能够满足下游的要求,消除了因数据传输速率不匹配而导致的拓扑结构上的瓶颈。GTS可以每一接口(或每一子接口)为应用对象,能够通过访问列表来选择将被整形的通信流,并能够使用多种Layer 2技术。换句话说,GTS可以不依赖于Layer 2接口或封装而对Layer 3通信流进行整形。

VIP分布式通信流整形

VIP分布式通信流整形(DTS)将GTS和帧中继通信流整形(FRTS)的优点结合在一个工具之中。在将分布式Cisco快速转发作为首选交换模式的网络之中,在VIP上进行DTS是合乎逻辑的通信流整形方法。

对于ATM/帧中继固定虚拟线路(PVC),DTS是在接口级、子接口级或逻辑接口级上对通信流整形进行配置。通信流整形可基于以下的标准:

  • 通过该物理接口或逻辑接口的所有通信流
  • 通过简单或扩展IP访问控制列表(ACL)(IP地址、TCP/UDP端口、IP优先级)进行分类的通信流
  • 根据QoS群组(上游路由器通过CAR或QPPB加盖的内部数据包标签)进行分类的通信流

DTS在每个VIP上最高可以支持200个整形队列,当数据包平均大小为250个字节或更高以及使用一个拥有8M SRAM的VIP2-50(或更高)时,支持的速率最高可以达到OC-3。与常规的通信流整形(GTS)不同,DTS不要求启用WFQ功能。相反,DTS在实现整形队列时使用的是公平队列或分布式先入先出(FIFO)机制。

信令

图15 RSVP是实现端对端QoS信令功能的一种选择

资源保留协议(RSVP)为应用程序(或一个代表应用程序的路由器)提供了一种向网络发出信令以要求所需QoS级别的方法。RSVP是一种Layer 3信令协议,允许一个应用程序以每个流为单位请求QoS服务。

RSVP依赖于在两个端点之间周期性地交换PATH/REVP消息;它被认为是一种"接收方发起"性质的协议,因为作为数据流的接收方,它为该特定流发起并维护资源保留处理过程。由于RSVP要求每个中间路由器维护每个RSVP流的状态信息,所以当被用于消息需要通过大量路由器的基础设施(如Internet)中时,可能会产生可扩展性和成本方面的问题。当必须实现清晰的QoS功能和粒度化时,RSVP是可以派上用场的,如一个低速WAN链路。

图16 RSVP使用示例(视频会议)

Cisco路由器支持RSVP,当终端用户应用本身没有发出RSVP信令的能力时,Cisco路由器经常被用于为这些终端用户应用代理发送RSVP信令。

除了路由器/应用程序以外,H.323语音网关也可以代表自己的客户机发出RSVP信令。这些客户机可以是Cisco(Selsius)电话,这些电话能够为语音通信流加上Layer 3信息标记(如IP优先级),从而使其能够被区分开来。

图17 Cisco电话(对通信流)加上IP优先级标记

Cisco IOS软件还包括了能够将RSVP映射到非RSVP子网(如仅使用IP优先级或DiffServ的网络、IEEE 802.1q/p网络或ATM交换主干)的工具。Cisco使用户能够部署多种不同的设备,而不必过分担心可以在这些设备上实现的QoS的粒度化。

链路效率机制

H.323建议使用实时传输协议(RTP)来传输IP语音通信流。不过,当您在封装一个语音数据包时在IP头内部使用了RTP和UDP时,将会产生一个40字节的数据包头(12个字节的RTP头加上8字节的UDP以及20个字节的IP头)。考虑到一个音频应用可以将一个RTP数据包的的有效载荷部分压缩到20到160个字节,这么大的一个数据包头确实是太大。一个40个字节的数据包头配上20字节的有效载荷,这样的效率太低了。

象压缩RTP(CRTP)这样的头压缩技术可以将40个字节的RTP头压缩到2到5个字节。对于低速链路(如64kb的帧中继链路)来说这是非常有用的,在这种情况下,语音通信流会与数据通信流争夺稀缺的带宽。

图18 压缩RTP(CRTP)头压缩功能

另一种链路效率工具是链路分段和交叉(LFI),它的实质是对较大的数据包进行分解,而较小的数据包被插入到这些较大的数据包之间,以减少语音通信流的延迟。

图19 速度较慢的链路上的LFI

通过Layer 2 WAN主干(帧中继和ATM)实现Cisco 7200和7500的互联

当IP网络的边界与由ATM或帧中继交换机组成的Layer 2互联主干相连时,必须确保边界QoS的定义不会被该主干忽略。考虑到这一事实,Layer 2中包括了以下不同的IP QoS工具:

帧中继内核和通信流整形(FRTS)

在一个帧中继子接口上,通过集成后向显式拥塞通告(BECN)信号,可以安装能够动态适应可用带宽的GTS,或安装能够根据预设速率进行整形的GTS。FRTS可被应用于每一数据链路连接识别器(DLCI),但不是被应用于整个物理接口。

图20 帧中继通信流整形

IP QoS到ATM CoS的映射

虽然在IP网络中可以使用IP QoS来表示数据包的优先级并基于这一优先级来表示通信流的等级(如使用IP优先级),但为确保端对端的服务,能够将这种优先级映射为ATM内核中QoS功能的工具是非常重要的。

使用ATM端口适配器(PA)-A3的Cisco 7200和7500能够将IP等级(每种等级拥有自己的WRED丢弃阈值)集体映射到前往不同地点的ATM虚拟线路(VC),或以个别方式映射到前往同一目的地的不同ATM VC。

在第一种情况下,将只对前往已经拥塞的VC/目的地对的流执行WRED丢弃,而不是对所有的流执行WRED丢弃。如果没有这一功能,WRED算法将会不必要地对流经一个VC前往未拥塞目的地的通信流执行丢弃操作,WRED以前只有在整个ATM接口出现拥塞时才对此进行检测,而不是在VC级出现拥塞时进行检测。

图21 智能数据包丢弃

在后一种情况下,个体WRED阈值被映射到相同地点之间的多个ATM VC,使管理员能够为运载IP优先级各个等级通信流的VC定义ATM服务(如可变位速率[VBR]和未定位速率[UBR]或在多协议标签交换中定义的等级)。

在Cisco QoS映射到ATM解决方案的下一个阶段,将为每VC提供WFQ,这将使WFQ算法能够对每VC进行带宽管理。新兴起的ATM通信流等级,如帧速率担保(GFR)以及加权UBR(UBRw),将作为管理选项被加入。此外,通过使用ATM的可用位速率(ABR)机制,可以将一组完整的WRED阈值映射到一个VC,以提供拥塞反馈功能,最终将可以提供一个近于无损的内核和VC数减少的选项。

今天,您还可以使用ATM PA-A3将Cisco 7200和7500中的特殊RSVP通信流指定给ATM SVC。特别地,对于跨ATM网络的通信流,RSVP保留可以被映射到动态创建的VBR ATM交换虚拟线路(SVC)。

图22 IP优先级到ATM PVC的一对一映射

使用以上的映射功能, 可以确保IP路由器上定义和实现的QoS政策不会被忽略。

总而言之,Cisco Systems提供了一个全面的QoS工具箱。通过这些工具可以对通信流进行分类/标记/染色或排队/时序计划,从而提供了对拥塞进行管理的能力。如果以拥塞先占为目标,则可以通过一些工具来避免适应流/非适应流的拥塞。如果要解决的问题是SLA一致性,则企业客户/ISP客户可以通过一些工具对通信流进行政策制订/整形,以使其符合已达成协议的SLA。如果要解决的问题是信令/进入控制,Cisco IOS软件提供的工具能够将QoS以信号的方式通知网络。最终,可以通过一些工具管理实时通信流(如语音)的链路效率。

无论是需要在园区网中实现QoS还是需要在WAN中实现QoS,无论Layer 2介质是ATM还是帧中继-用户都无须担心,Cisco IOS软件可以使所有这些内容透明化,而且用户能够将自己的计划限制到Layer 3 QoS为止,无论下面的Layer 2机制如何,都可以实现端对端的透明运行。

你可能感兴趣的:(cisco,路由器,工具,网络,layer,tcp)