Qos技术.docx

上传人:b****8 文档编号:9615796 上传时间:2023-02-05 格式:DOCX 页数:35 大小:299.52KB
下载 相关 举报
Qos技术.docx_第1页
第1页 / 共35页
Qos技术.docx_第2页
第2页 / 共35页
Qos技术.docx_第3页
第3页 / 共35页
Qos技术.docx_第4页
第4页 / 共35页
Qos技术.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

Qos技术.docx

《Qos技术.docx》由会员分享,可在线阅读,更多相关《Qos技术.docx(35页珍藏版)》请在冰豆网上搜索。

Qos技术.docx

Qos技术

7.1QoS技术描述

7.1.1优先级映射

优先级映射

不同的报文使用不同的QoS优先级,例如VLAN报文使用802.1p,IP报文使用DSCP,MPLS报文使用EXP。

当报文经过不同网络时,为了保持报文的优先级,需要在连接不同网络的网关处配置这些优先级字段的映射关系。

优先级映射实现从QoS优先级到内部优先级(或者本地优先级)或从内部优先级到QoS优先级的映射,并利用DS域来管理和记录QoS优先级和服务等级之间的映射关系。

对于进入设备的报文,设备将报文携带的优先级或者端口优先级映射为内部优先级,然后根据内部优先级与队列之间的映射关系确定报文进入的队列,从而针对队列进行流量整形、拥塞避免、队列调度等处理,并可以根据配置修改报文发送出去时所携带的优先级,以便其他设备根据报文的优先级提供相应的QoS服务。

QoS优先级字段

为了在Internet上针对不同的业务提供有差别的QoS服务质量,人们根据报文头中的某些字段记录QoS信息,从而让网络中的各设备根据此信息提供有差别的服务质量。

这些和QoS相关的报文字段包括:

∙Precedence字段

根据RFC791定义,IP报文头ToS(TypeofService)域由8个比特组成,其中3个比特的Precedence字段标识了IP报文的优先级,Precedence在报文中的位置如图1所示。

图1IPPredecence/DSCP字段

比特0~2表示Precedence字段,代表报文传输的8个优先级,按照优先级从高到低顺序取值为7、6、……、1和0。

最高优先级是7或6,经常是为路由选择或更新网络控制通信保留的,用户级应用仅能使用0级~5级。

除了Predecence字段外,ToS域中还包括D、T、R三个比特:

▪D比特表示延迟要求(Delay,0代表正常延迟,1代表低延迟)。

▪T比特表示吞吐量(Throughput,0代表正常吞吐量,1代表高吞吐量)。

▪R比特表示可靠性(Reliability,0代表正常可靠性,1代表高可靠性)。

ToS域中的比特6和7保留。

∙DSCP字段

RFC1349重新定义了IP报文中的ToS域,增加了C比特,表示传输开销(MonetaryCost)。

之后,IETFDiffServ工作组在RFC2474中将IPv4报文头ToS域中的比特0~5重新定义为DSCP,并将ToS域改名为DS(DifferentiatedService)字节。

DSCP在报文中的位置如图1所示。

DS字段的前6位(0位~5位)用作区分服务代码点DSCP(DSCodePoint),高2位(6位、7位)是保留位。

DS字段的低3位(0位~2位)是类选择代码点CSCP(ClassSelectorCodePoint),相同的CSCP值代表一类DSCP。

DS节点根据DSCP的值选择相应的PHB(Per-HopBehavior)。

∙VLAN帧头中的802.1p优先级

通常二层设备之间交互VLAN帧。

根据IEEE802.1Q定义,VLAN帧头中的PRI字段(即802.1p优先级),或称CoS(ClassofService)字段,标识了服务质量需求。

VLAN帧中的PRI字段位置如图2所示。

图2VLAN帧中的802.1p优先级

在802.1Q头部中包含3比特长的PRI字段。

PRI字段定义了8种业务优先级CoS,按照优先级从高到低顺序取值为7、6、……、1和0。

∙MPLSEXP字段

MPLS报文与普通的IP报文相比增加了标签信息。

标签的长度为4个字节,封装结构如图3所示。

图3MPLS标签的封装格式

标签共有4个域:

▪Label:

20比特,标签值字段,用于转发的指针。

▪Exp:

3比特,保留字段,用于扩展,现在通常用做CoS。

▪S:

1比特,栈底标识。

MPLS支持标签的分层结构,即多重标签,S值为1时表明为最底层标签。

▪TTL:

8比特,和IP分组中的TTL(TimeToLive)意义相同。

对于MPLS报文,通常将标签信息中的EXP域作为MPLS报文的CoS域,与IP网络的ToS域等效,用来区分数据流量的服务等级,以支持MPLS网络的DiffServ。

EXP字段表示8个传输优先级,按照优先级从高到低顺序取值为7、6、……、1和0。

▪在IP网络,由IP报文的IP优先级或DSCP标识服务等级。

但是对于MPLS网络,由于报文的IP头对LSR(LabelSwitchingRouter)设备是不可见的,所以需要在MPLS网络的边缘对MPLS报文的EXP域进行标记。

▪缺省的情况下,在MPLS网络的边缘,将IP报文的IP优先级直接拷贝到MPLS报文的EXP域;但是在某些情况下,如ISP不信任用户网络、或者ISP定义的差别服务类别不同于用户网络,则可以根据一定的分类策略,依据内部的服务等级重新设置MPLS报文的EXP域,而在MPLS网络转发的过程中保持IP报文的ToS域不变。

▪在MPLS网络的中间节点,根据MPLS报文的EXP域对报文进行分类,并实现拥塞管理,流量监管或者流量整形等PHB行为。

7.1.2流量监管和流量整形

如果不限制用户发送的业务流量,大量用户不断突发的业务数据会使网络更加拥挤。

为了使有限的网络资源能够更好地发挥效用,更好地为更多的用户服务,必须对用户的业务流量加以限制。

流量监管TP(TrafficPolicing)和流量整形TS(TrafficShaping)通过监督进入网络的流量速率来限制流量及其资源的使用。

进行流量监管和流量整形有一个前提条件,就是要判断流量是否超出了规格,然后才能根据评估结果实施调控策略。

一般采用令牌桶(TokenBucket)对流量的规格进行评估。

流量监管和流量整形区别

流量监管和流量整形的主要区别在于:

∙利用流量监管进行报文控制时,直接丢弃不符合速率要求的报文。

而流量整形则会将不符合速率要求的报文先行缓存,当令牌桶有足够的令牌时,再均匀的向外发送这些被缓存的报文。

∙流量整形可能会增加延迟,而流量监管几乎不引入额外的延迟。

表1流量监管和流量整形的比较

类型

优点

缺点

流量整形

较少丢弃报文。

引入时延和抖动,需要较多的缓冲资源缓存报文。

流量监管

支持重标记,不需使用额外的缓冲。

较多丢弃报文,可能引发重传。

图1说明了流量监管与流量整形的区别。

图1流量监管与流量整形的区别

∙令牌桶技术

∙流量监管

∙流量整形

7.1.3令牌桶技术

概述

令牌桶可以看作是一个存放一定数量令牌的容器。

系统按设定的速度向桶中放置令牌,当桶中令牌满时,多出的令牌溢出,桶中令牌不再增加。

在使用令牌桶对流量进行评估时,是以令牌桶中的令牌数量是否足够满足报文的转发为依据的。

如果桶中存在足够的令牌可以用来转发报文,称流量遵守或符合约定值,否则称为不符合或超标。

单速单桶

图1单速单桶示意图

如图1所示,为方便描述将此令牌桶称为C桶,用Tc表示桶中的令牌数量。

单速单桶有2个参数:

∙CIR(CommittedInformationRate):

承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;

∙CBS(CommittedBurstSize):

承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。

系统按照CIR速率向C桶中投放令牌,当Tc

对于到达的报文,用B表示报文的大小:

∙若B≤Tc,报文被标记为绿色,且Tc减少B;

∙若B>Tc,报文被标记为红色,Tc不减少。

单速双桶

单速双桶采用RFC2697的单速三色标记器srTCM(ASingleRateThreeColorMarker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。

图2单速双桶示意图

如图2所示,为方便描述将两个令牌桶称为C桶和E桶,用Tc和Te表示桶中的令牌数量。

单速双桶有3个参数:

∙CIR:

承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;

∙CBS:

承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量;

∙EBS(ExcessBurstSize):

超额突发尺寸,表示E桶的容量,即E桶瞬间能够通过的超出突发流量。

系统按照CIR速率向桶中投放令牌:

∙若Tc

∙若Tc=CBS,Te

∙若Tc=CBS,Te=EBS,则都不增加。

对于到达的报文,用B表示报文的大小:

∙若B≤Tc,报文被标记为绿色,且Tc减少B;

∙若Tc

∙若Te

双速双桶

双速双桶采用RFC2698的双速三色标记器trTCM(ATwoRateThreeColorMarker)算法对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。

图3双速双桶示意图

如图3所示,为方便描述将两个令牌桶称为P桶和C桶,用Tp和Tc表示桶中的令牌数量。

双速双桶有4个参数:

∙PIR(Peakinformationrate):

峰值信息速率,表示向P桶中投放令牌的速率,即P桶允许传输或转发报文的峰值速率,PIR大于CIR;

∙CIR:

承诺信息速率,表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;

∙PBS(PeakBurstSize):

峰值突发尺寸,表示P桶的容量,即P桶瞬间能够通过的峰值突发流量,PBS大于CBS;

∙CBS:

承诺突发尺寸,表示C桶的容量,即C桶瞬间能够通过的承诺突发流量。

系统按照PIR速率向P桶中投放令牌,按照CIR速率向C桶中投放令牌:

∙当Tp

∙当Tc

对于到达的报文,用B表示报文的大小:

∙若Tp

∙若Tc

∙若B≤Tc,报文被标记为绿色,且Tp和Tc都减少B。

7.1.4流量监管

流量监管就是对流量进行控制,通过监督进入网络的流量速率,对超出部分的流量进行“惩罚”,使进入的流量被限制在一个合理的范围之内,从而保护网络资源和企业网用户的利益。

流量监管的原理

图1流量监管组件

如图1所示,流量监管由三部分组成:

∙Meter:

通过令牌桶机制对网络流量进行度量,向Marker输出度量结果。

∙Marker:

根据Meter的度量结果对报文进行染色,报文会被染成green、yellow、red三种颜色。

∙Action:

根据Marker对报文的染色结果,对报文进行一些动作,动作包括:

▪pass:

对测量结果为“符合”的报文继续转发。

▪remark+pass:

修改报文内部优先级后再转发。

▪discard:

对测量结果为“不符合”的报文进行丢弃。

默认情况下,green、yellow进行转发,red报文丢弃。

经过流量监管,如果某流量速率超过标准,设备可以选择降低报文优先级再进行转发或者直接丢弃。

默认情况下,此类报文被丢弃。

7.1.5流量整形

流量整形是一种主动调整流量输出速率的措施,其作用是限制流量与突发,使这类报文以比较均匀的速率向外发送。

流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀地发送这些被缓冲的报文。

当下游设备的接口速率小于上游设备的接口速率或发生突发流量,在下游设备接口处可能出现流量拥塞的情况,此时用户可以通过在上游设备的接口出方向配置流量整形,将上游不规整的流量进行削峰填谷,输出一条比较平整的流量,从而解决下游设备的拥塞问题。

处理流程

流量整形是一种应用于接口、子接口或队列的流量控制技术,可以对从接口上经过的所有报文或某类报文进行速率限制。

下面以接口或子接口下采用单速单桶技术的基于流的队列整形为例介绍流量整形的处理流程,其处理流程如图1所示。

图1流量整形处理流程图

具体处理流程如下:

1.当报文到来的时候,首先对报文进行分类,使报文进入不同的队列。

2.若报文进入的队列没有配置队列整形功能,则直接发送该队列的报文;否则,进入下一步处理。

3.按用户设定的队列整形速率向令牌桶中放置令牌:

∙如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被发送,在报文被发送的同时,令牌做相应的减少。

∙如果令牌桶中没有足够的令牌,则将报文放入缓存队列,如果报文放入缓存队列时,缓存队列已满,则丢弃报文。

4.缓存队列中有报文的时候,系统按一定的周期从缓存队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到缓存队列中的报文不能再发送或缓存队列中的报文全部发送完毕为止。

队列整形后,如果该接口或子接口同时配置了端口整形,则系统还要逐级按照子接口整形速率、接口整形速率对报文流进行速率控制。

其处理流程与队列整形相似,但不需要步骤1和步骤2。

自适应流量整形

流量整形主要是为了解决下游设备的接口速率小于上游设备的接口速率,从而导致下游设备接口入方向丢包的问题。

但有些场景下,下游设备的接口速率是不确定的,上游设备无法确定应该把整形参数设置为多少。

此时可以配置自适应模板来实现自适应流量整形,通过在上游设备和下游设备间开启NQA检测,根据NQA检测到的下游设备丢包率动态调整整形参数。

自适应模板规定了:

∙NQA测试例:

通过此测试例检测下游设备接口入方向丢包率,根据检测结果调整整形参数。

∙整形速率范围:

上游设备接口出方向的整形速率上下限,整形速率在此范围内动态调整。

∙整形速率调整步长:

动态调整整形速率时,每次调整的速率大小。

∙丢包率范围:

下游设备接口入方向允许的丢包率范围。

当丢包率在此范围之内时,不调整整形速率;当丢包率过大,减小上游设备整形速率;当丢包率过小,且上游设备发生拥塞,增大上游设备整形速率。

∙整形速率增大的时间间隔:

当丢包率在阈值附近频繁变化时,就需要频繁调整整形速率,用户可以通过设置此参数,限制增大整形速率的时间间隔,避免频繁更新。

说明:

当NQA检测到丢包率过大,为避免业务数据进一步丢失,立即减小整形速率,不需要满足时间间隔的要求。

系统根据NQA检测结果中的丢包率等调整整形速率:

触发条件(必须同时满足所有条件)

动作

连续3次检测到丢包率大于自适应模板配置的丢包率上限

减小整形速率

∙连续3次检测到丢包率小于自适应模板配置的丢包率下限

∙上游发送端接口拥塞

∙距离上次增大整形速率的时间间隔超过自适应模板配置的速率增大时间间隔

增大整形速率

∙NQA连续3次检测到丢包率小于自适应模板配置的丢包率下限

∙上游发送端接口不拥塞

保持当前整形速率

丢包率在自适应模板配置的丢包率范围内

检测失败

说明:

若自适应模板未绑定NQA测试例,则整形速率取自适应模板配置的整形速率上限。

7.1.6拥塞管理

当网络间歇性的出现拥塞,且时延敏感业务要求得到比非时延敏感业务更高质量的QoS服务时,需要进行拥塞管理;如果配置拥塞管理后仍然出现拥塞,则需要增加带宽。

拥塞管理一般采用队列技术,使用不同的调度算法来发送队列中的报文流。

根据排队和调度策略的不同,设备LAN接口上的拥塞管理技术分为PQ、DRR、PQ+DRR、WRR、PQ+WRR,WAN接口上的拥塞管理技术分为PQ、WFQ和PQ+WFQ。

设备上,每个接口出方向都拥有4个或8个队列,以队列索引号进行标识,队列索引号分别为0、1、2、3或0、1、……、6、7。

设备根据本地优先级和队列之间的映射关系,自动将分类后的报文流送入各队列,然后按照各种队列调度机制进行调度。

∙PQ调度

PQ调度,针对于关键业务类型应用设计,PQ调度算法维护一个优先级递减的队列系列并且只有当更高优先级的所有队列为空时才服务低优先级的队列。

这样,将关键业务的分组放入较高优先级的队列,将非关键业务(如E-Mail)的分组放入较低优先级的队列,可以保证关键业务的分组被优先传送,非关键业务的分组在处理关键业务数据的空闲间隙被传送。

如图1所示,Queue7比Queue6具有更高的优先权,Queue6比Queue5具有更高的优先权,依次类推。

只要链路能够传输分组,Queue7尽可能快地被服务。

只有当Queue7为空,调度器才考虑Queue6。

当Queue6有分组等待传输且Queue7为空时,Queue6以链路速率接受类似地服务。

当Queue7和Queue6为空时,Queue5以链路速率接收服务,以此类推。

PQ调度算法对低时延业务非常有用。

假定数据流X在每一个节点都被映射到最高优先级队列,那么当数据流X的分组到达时,则分组将得到优先服务。

然而PQ调度机制会使低优先级队列中的报文由于得不到服务而“饿死”。

例如,如果映射到Queue7的数据流在一段时间内以100%的输出链路速率到达,调度器将从不为Queue6及以下的队列服务。

避免队列饥饿需要上游设备精心规定数据流的业务特性以确保映射到Queue7的业务流不超出输出链路容量的一定比例,这样可以使Queue7常常为空,允许调度器为低优先级队列服务。

图1PQ调度示意图

∙WRR调度

加权循环调度WRR(WeightRoundRobin)在循环调度RR(RoundRobin)的基础上演变而来,在队列之间进行轮流调度,根据每个队列的权重来调度各队列中的报文流。

实际上,RR调度相当于权值为1的WRR调度。

WRR队列示意图如图2所示。

图2WRR调度示意图

在进行WRR调度时,设备根据每个队列的权值进行轮循调度。

调度一轮权值减一,权值减到零的队列不参加调度,当所有队列的权限减到0时,开始下一轮的调度。

例如,用户根据需要为接口上8个队列指定的权值分别为4、2、5、3、6、4、2和1,按照WRR方式进行调度的结果请参见表1所示。

表1WRR调度的结果

队列索引

Q7

Q6

Q5

Q4

Q3

Q2

Q1

Q0

队列权值

4

2

5

3

6

4

2

1

参加第1轮调度的队列

Q7

Q6

Q5

Q4

Q3

Q2

Q1

Q0

参加第2轮调度的队列

Q7

Q6

Q5

Q4

Q3

Q2

Q1

-

参加第3轮调度的队列

Q7

-

Q5

Q4

Q3

Q2

-

-

参加第4轮调度的队列

Q7

-

Q5

-

Q3

Q2

-

-

参加第5轮调度的队列

-

-

Q5

-

Q3

-

-

-

参加第6轮调度的队列

-

-

-

-

Q3

-

-

-

参加第7轮调度的队列

Q7

Q6

Q5

Q4

Q3

Q2

Q1

Q0

参加第8轮调度的队列

Q7

Q6

Q5

Q4

Q3

Q2

Q1

-

参加第9轮调度的队列

Q7

-

Q5

Q4

Q3

Q2

-

-

参加第10轮调度的队列

Q7

-

-

Q4

Q3

Q2

-

-

参加第11轮调度的队列

-

-

Q5

-

Q3

-

-

-

参加第12轮调度的队列

-

-

-

-

Q3

-

-

-

从统计上看,各队列中的报文流被调度的次数与该队列的权值成正比,权值越大被调度的次数相对越多。

由于WRR调度的以报文为单位,因此每个队列没有固定的带宽,同等调度机会下大尺寸报文获得的实际带宽要大于小尺寸报文获得的带宽。

WRR调度避免了采用PQ调度时低优先级队列中的报文可能长时间得不到服务的缺点。

WRR队列还有一个优点是,虽然多个队列的调度是轮询进行的,但对每个队列不是固定地分配服务时间片——如果某个队列为空,那么马上换到下一个队列调度,这样带宽资源可以得到充分的利用。

但WRR调度无法使低延时需求业务得到及时调度。

∙DRR调度

DRR(DeficitRoundRobin)调度同样也是RR的扩展,相对于WRR来言,解决了WRR只关心报文,同等调度机会下大尺寸报文获得的实际带宽要大于小尺寸报文获得的带宽的问题,通过调度过程中考虑了包长的因素,从而达到调度的速率公平性。

DRR调度中,Deficit表示队列的带宽赤字,初始值为0。

每次调度前,系统按权重为各队列分配带宽,计算Deficit值,如果队列的Deficit值大于0,则参与此轮调度,发送一个报文,并根据所发送报文的长度计算调度后Deficit值,作为下一轮调度的依据;如果队列的Deficit值小于0,则不参与此轮调度,当前Deficit值作为下一轮调度的依据。

图3队列权重示意图

如图3所示,假设用户配置各队列权重为40、30、20、10、40、30、20、10(依次对应Q7、Q6、Q5、Q4、Q3、Q2、Q1、Q0),调度时,队列Q7、Q6、Q5、Q4、Q3、Q2、Q1、Q0依次能够获取20%、15%、10%、5%、20%、15%、10%、5%的带宽。

下面以Q7、Q6为例,简要描述DRR队列调度的实现过程(假设Q7队列获取400bytes/s的带宽,Q6队列获取300bytes/s的带宽)。

▪第1轮调度

Deficit[7][1]=0+400=400,Deficit[6][1]=0+300=300,从Q7队列取出一个900bytes的报文发送,从Q6队列取出一个400bytes的报文发送;发送后,Deficit[7][1]=400–900=–500,Deficit[6][1]=300–400=–100。

▪第2轮调度

Deficit[7][2]=-500+400=-100,Deficit[6][2]=-100+300=200,Q7队列Deficit值小于0,此轮不参与调度,从Q6队列取出一个300bytes的报文发送;发送后,Deficit[6][2]=200–300=–100。

▪第3轮调度

Deficit[7][3]=-100+400=300,Deficit[6][3]=-100+300=200,从Q7队列取出一个600bytes的报文发送,从Q6队列取出一个400bytes的报文发送;发送后,Deficit[7][3]=300–600=–300,Deficit[6][3]=200–500=–300。

如此循环调度,最终Q7、Q6队列获取的带宽将分别占总带宽的20%、15%,因此,用户能够通过设置权重获取想要的带宽。

但DRR调度仍然没有解决WRR调度中低延时需求业务得不到及时调度的问题。

∙WFQ调度

公平队列FQ(FairQueuing)的目的是尽可能公平地分享网络资源,使所有流的延迟和抖动达到最优:

▪不同的队列获得公平的调度机会,从总体上均衡各个流的延迟。

▪短报文和长报文获得公平的调度:

如果不同队列间同时存在多个长报文和短报文等待发送,让短报文优先获得调度,从而在总体上减少各个流的报文间的抖动。

与FQ相比,WFQ(WeightedFairQueue)在计算报文调度次序时增加了优先权方面的考虑。

从统计上,WFQ使高优先权的报文获得优先调度的机会多于低优先权的报文。

WFQ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1