欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

学习QOS区分模型

最编程 2024-01-17 18:29:01
...

出处:http://blog.163.com/k_hunter/blog/static/295037242011313842354/

QOS定义:

从技术角度而言,Qos是网络中管理数据流的可用带宽延迟抖动以及分组丢弃的技术集合。

QOS区分模型学习 - 现实小子 - On Road

PHBPer-Hop Behavior)是DS节点作用于数据流的行为。网络管理员可以配置DSCPPHB的映射关系。

如果DS节点接收到一个报文,检查其DSCP,发现未定义到PHB的映射,则DS节点将选择采用缺省PHB(即Best-EffortDSCP=000000)进行转发处理。每个DS节点必须支持该缺省PHB

目前,IETF定义了四种标准的PHB

类选择码CSClass Selector

加速转发EFExpedited Forwarding

确保转发AFAssured Forwarding

尽力而为BEBest-Effort

其中,BE是缺省的PHB


(1)Default(BE)                  000 000
标记000000在RFC2474中被定义为尽力服务。这意味只能理解IP优先级的路由器应该是000,也就是在IP优先权环境中尽力服务的定义。
 

(2)Class Selector(CS)  
同样的,RFC2474预留了所有格式为xxx000的标记,以提供与IP优先权值的后向兼容。
如下表:
位优先权含义
001000 类选择1:无区别服务的节点读做001,按优先级1(priority)处理
010000 类选择2:无区别服务的节点读做010,按优先级2(immediate)处理
011000 类选择3:无区别服务的节点读做011,按优先级3(flash)处理
100000 类选择4:无区别服务的节点读做100,按优先级4(flash override)处理
101000 类选择5:无区别服务的节点读做101,按优先级5(critical)处理
110000 类选择6:无区别服务的节点读做110,按优先级6(internet)处理
111000 类选择7:无区别服务的节点读做111,按优先级7(network)处理

(3)保证转发(Assured Forwarding)
AF保证转发根据DSCP值来定义类别,它对于理解DSCP AF术语和DSCP值之间的对应关系至关重要。AF定义了4种AF类型:AF1x-AF4x,每个类之间都彼此完全独立,其中类别AF4比类别AF1更重要。在每种类别中,有3种丢弃概率。根据要求的吞吐量、延迟、抖动和丢包率,用户可以配置数据报的PHB,或者根据访问网络服务的优先权配置PHB,这取决于网络的策略。AF PHB定义了一种给通信流类别提供不同转发保证的方法。

DSCP中前3位用来指定AF PHB的类别,接下来2位指定丢弃概率,最后一位总是为0
表:

                               PHB 类别                     丢弃概率                 DSCP
AF 类别1   AF1x  AF11(丢弃概率低)           LOW                00 001010    10
                            AF12(丢弃概率中)           MEDIUM          00 001100    12
                            AF13(丢弃概率高)           HIGH               00 001110    14
AF 类别2AF2x  AF21(丢弃概率低)           LOW               00 010010    18
                            AF22(丢弃概率中)           MEDIUM          00 010100    20
                            AF23(丢弃概率高)           HIGH               00 010110    22
AF 类别3AF3x  AF31(丢弃概率低)           LOW               00 011010    26
                            AF32(丢弃概率中)           MEDIUM          00 011100    28
                            AF33(丢弃概率高)           HIGH               00 011110    30
AF 类别4AF4x  AF41(丢弃概率低)           LOW               00 100010    34
                            AF42(丢弃概率中)           MEDIUM          00 100100    36
                            AF43(丢弃概率高)           HIGH               00 100110    38

(4)EF(Expedited Forwarding,快速转发)
快速转发PHB(Expedited Forwarding PHB)可以用来实现的丢失率,低延迟,低抖动,确定带宽,端到端服务.EF PHB针对VoIP和视频会议这样的应用. 导致分组延迟和分组抖动的主要原因是如果一个接口接收到的待转发流量超过其负载能力时,会形成排队延迟, 排队延迟通常是在拥塞时,队列过长引起的,EF PHB确保通信不需要排队或队列足够短
路由器可以通过使用不同的EF功能实现方法, 为某个端口上特定的离开速率分配资源。 当EF通信可以在高度加权的队列上传送,例如CBWFQ,WRR,DRR等分组调度技术提供了这个功能。对于网络中的 EF通讯,推荐使用DSCP 101110(46)。RFC建议在多数cisco 设备中使用监控程序对EF数据报进行速率限定。特别地,如果配置要求为所有标记DSCP46的分组提供EF,而且如果为具有EF PHB权限的数据流配置128Kbit/s的出口速率,同时带有DSCP46标记的数据流达到129Kbit/s的速率,有1kbit/s带有DSCP46标记的数据流将被丢弃,以确保接收EF队列的速率不超过发送速率。但是如果没有发生拥塞,队列也不会被激活,监控机制也不会被激活。
EF PHB对应的DSCP为: 101110, 46
EF PHB可提供低丢包率、低时延、确保带宽的应用,其提供的QoS质量高于AF PHB.


队列技术

FIFO(First In First Out,先入先出)

是一种最简单的队列机制。 分组的传输顺序与接收顺序相同
2.048M
以上接口默认队列方式,硬件队列(TxQ)也基于该队列规则处理数据包.
2.048m
以下默认队列方式为WFQ只有一个队列,tail-drop
想在小于E1的接口上也启用FIFO,可在接口上输入no fair-queue命令
设置FIF的队列缓存:R1(config-if)#hold-queue 200 out
 200为数据包的个数)

PQ(Priority Queuing,优先级队列)

提供4种队列,高优先级、中优先级、正常优先级和低优先级队列
每个队列为fifo调度.tail-drop.
只要高优先级队列中有数据包,一定先转发高优先级队列的数据包,传完高优先级队列的才传低优先级队列中的
建议在低带宽接口上使用优先级排队.前提是关键型任务或增值应用的流量提供绝对的优先级保证

access-list 101 permit ip any any

priority-list 1 protocol ip high list 101 //access-list 101定义的数据映射到高优先级队列
priority-list 1 interface fa0/0 medium
   //把来自fa0/0的流量映射到中等优先级队列
priority-list 1 default normal
   //所有其他流量映射到正常优先级队列
priority-list 1 queue-limit 20 30 40 50
   //定义队列深度,分别代表high,medium,normal,low

interface s1/1
priority-group 1 //
PQ应用在接口上

show queueing (看所以队列)

一般来说,高优先级的会优先传输,因此不需要很深的缓存队列。但是如果超出了队列深度,那么高优先级的也将会有丢弃。默认是20406080

CQ(Custom Queuing,定制队列)

116队列,0队列是PQ队列,为最优,系统队列,用于处理网络控制信息 ,17个队列
CQ
使用WRR(Round-Robin)机制
建立在PQ的基础上
轮循调度,第一个传完就传第二个
为了能够为每个队列分配一定的带宽,必须为每个队列定义一定字节数的数据包
CQ
PQ不能同时
Queuing 0
为系统队列,执行方式为PQ。可以改lowest-custom
queue-list list-number lowest-custom queue-number
比如命令queue-list 1 lowest-custom 3,设置012都是优先级队列,3以及3以上编号的队列都是定制队列。

interface serial 1/0
custom-queue-list 50
   //应用CQ到接口上

queue-list 50 protocol ip 1 list 101   //access-list 101定义的数据分配到队列1
queue-list 50 queue 1 limit 40
   //定义队列1允许通过的最大包数,默认是20,范围是0~32767
queue-list 50 interface fa0/0 2
   //把从E0/0进入的流量分配到队列2
queue-list 50 queue 2 byte-count 3000
   //定义队列2在一个轮循内转发的平均字节数
queue-list 50 protocol ip 3
   //把所有ip流量分配到队列3
queue-list 50 default 4
   //所有其他流量分配到队列4

access-list 101 permit ip any any precedence 5

WFQ(Weighted Fair Queuing,加权公平队列)

按流进行分类
WFQ
会根据数据包中的源ip,目标ipToS,协议号,TCP端口号等自动分类(通过一个Hash算法),相同应用的数据流会被分到同一个队列。WFQ给每个流指定一个权重,权重决定了队列中分组的传输顺序。首先会传输权重小的分组。并加入IP优先级,按流的IP优先级来分配每个流的带宽,优先级的数值越大,分配的带宽就越大,确保相同流中的每个数据报都获得公平的带宽,体现不同流的之间的权值。

注:WFQ在

Low-bandwidth traffic has effective

priority over high-bandwidth traffic, and high-bandwidth traffic shares the transmission service

proportionally according to assigned weights.

第一个是WFQ不支持隧道或采用了加密技术的接口,因为这些技术要修改数据包中WFQ 用于分类的信息。 

第二个WFQ提供的带宽控制的精确度不如CBWFQ和CQ等队列机制。

将对延迟不敏感的大包往后排,对延迟敏感的小包往前排。
每个队列使用基于流的FIFO队列。
默认256个队列(范围16~4096之间,要配置为2n次方的数目),最大还支持8个系统队列,和1000RSVP流队列
WFQ
给每个会话分配一个队列,队列优先级分7种。
速率不超过E12.048Mbps)的Serial默认使用WFQ。在使用X.25或压缩PPPSerialWFQ被禁用。E3/T3 (34M/45M)的WAN接口和Serial不支持WFQ

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

队列中的丢弃不再是Tail-Drop,而是WFQ DropIP优先级对WFQ的丢弃机制没有影响

HQ(holdqueue保持队列,即最大队列长度)
CDT(congestive
discardthreshold,拥塞丢弃阀值)相当于警戒线

大于HQ
入站的包属于最长的队列,则drop
不属于最长队列,则放入该队列,并drop掉最长队列的最后一个包

大于CDT
入站的包属于最长的队列,则drop
不属于最长队列,则放入该队列
interface so1/0
fair-queue 99 256 0
    //99为修改CDT,默认是64,范围16~4096之间,要配置2n次方的数目