QoS基础及技术原理实战——2

QoS优先级映射

 

    优先级映射用来实现报文携带的QoS优先级与设备内部优先级又称为本地优先级,是设备为报文分配的具有本地意义的优先级之间的转换,从而使设备根据内部优先级为不同报文提供有差别的QoS服务质量。不同S系列交换机所支持的优先级信任模式和优先级映射模式都有所不同。——从这个描述,QoS是根据设备内部优先级进行的,也就是说,报文传输时的优先级(在线路上传输时)在进入设备后,还要进行一个内部的转换,报文的优先级与设备规定的优先级之间的转换或叫做映射

一、优先级映射

不同网络中的报文使用不同类型的QoS优先级字段,例如VLAN网络中的报文使用802.1p优先级,IP网络中的报文使用IP优先级或DSCP优先级。当报文经过不同网络时,为了保持报文的优先级,需要在连接不同网络的设备上配置这些优先级字段的映射关系。当设备连接不同网络时,所有进入设备的报文优先级(包括802.1pDSCP,统称为“外部优先级”)字段根据所配置优先级映射表都被转换为交换机端口的内部优先级;当设备发出报文时,又需要根据优先级映射表将报文中携带的内部优先级恢复为原来的对应外部优先级。——从这个描述,外部报文进入设备要根据优先级映射表映射为内部优先级,内部报文离开设备时要根据优先级映射表映射为外部优先级

这里涉及到设备信任报文的哪种优先级,也就是优先级信任模式,以及对应的内、外部优先级映射模式。

1、优先级信任模式

配置优先级信任模式可以确定设备根据哪种优先级进行映射。确定信任的外部优先级

(1)三种优先级信任模式

①信任报文的802.1p优先级:配置信任802.1p优先级时,设备根据报文的802.1p优先级对报文进行分类并进行后续的优先级映射,得到报文映射后的802.1p优先级,IP优先级,或DSCP优先级缺省情况下,端口信任报文的802.1p优先级

②信任报文的DSCP优先级:配置信任DSCP优先级时,设备根据报文的DSCP优先级对报文进行分类并进行后续的优先级映射,得到报文映射后的802.1p优先级,或DSCP优先级,或丢弃优先级(只有支持DSCP优先级的IP报文才可映射丢弃优先级,因为只有这类报文才有这样的数据位。)

③信任报文的IP优先级:配置交换机端口信任IP优先级,此时将按照报文中所携带的IP优先级查找对应的IP优先级映射表,得到报文映射后的802.1p优先级或IP优先级

报文进入设备端口之后,如果报文携带了VLAN标签,则可以选择信任802.1p优先级;如果报文没有携带VLAN标签,则报文或根据端口缺省的802.1p优先级进行转发,该端口优先级即报文转发时进入的端口队列号。在三层转发时,可以选择信任DSCP优先级。

——可以看出,映射后得到的还是802.1pIPDSCP或丢弃优先级

2、优先级映射模式

为了保证不同报文的服务质量,对于进入设备的报文,设备可以根据配置将报文携带的优先级映射为内部优先级,并根据内部优先级与队列之间的映射关系确定报文进入的队列,从而针对队列进行流量整形、拥塞避免、队列调度等处理;报文从设备发送出去时,设备可以根据配置修改报文发送出去时所携带的优先级,以便其他设备根据报文的优先级提供相应的QoS服务。配置优先级映射模式可以确定报文优先级与内部优先级的映射关系,以便设备在后续转发中根据内部优先级提供有差别的QoS服务。——按上描述,报文在进入设备前就有相应优先级(没有的,如连接主机,则采用端口的默认优先级,也算是一种映射),进入设备后,进行外部优先级——>内部优先级——>队列的映射,设备按照不同的队列进行相应的处理,达到不同QoS的目的。这个过程在设备内进行,可以理解为报文从设备的入端口到出端口间的转移(端口的存储器中),在出端口,报文发送出去时,执行相反的操作,从队列——>内部优先级——>外部优先级的映射,然后发送到网络

(1)优先级映射模式

①内部优先级和队列之间的映射

②DSCP优先级到802.1p、新的DSCP优先级、丢弃优先级的映射

③IP优先级到802.1p、新的IP优先级的映射

④802.1p优先级到PHB行为/颜色的映射

⑤PHB行为/颜色到802.1p优先级的映射

⑥DSCP优先级到PHB行为/颜色的映射

⑦PHB行为/颜色到DSCP优先级的映射

(2)华为S系列交换机对优先级信任模式的支持

①在S2700SI/2700EI/2700SI系列交换机中仅支持“内部优先级和队列之间的映射”模式。

②在S2700-52P-EI/2700-52P-PWR-EI/S3700SI/3700EI/5700SI/5700EI/5700LI/5700S-LI系列交换机中支持以下3种优先级映射模式。

- 内部优先级和队列之间的映射

- DSCP优先级到802.1p、新的DSCP优先级、丢弃优先级的映射

- IP优先级到802.1p、新的IP优先级的映射

③在S5700HI/5710EI/6700/7700/9300/9300E/9700系列交换机中,支持以下几种优先级映射模式。

- 在接口入方向,将802.1p优先级映射为PHB行为/颜色

- 在接口出方向,将PHB行为/颜色映射为802.1p优先级

- 在接口入方向,将DSCP优先级映射为PHB行为/颜色

- 在接口出方向,将PHB行为/颜色映射为DSCP优先级。

在S5700HI/5710EI/6700/7700/9300/9300E/9700系列交换机中,支持RFC2597和RFC3246标准中的PHB,用户可以根据DiffServ域中定义的报文优先级与PHB行为/颜色之间的映射关系对报文进行分类。对于来自上游设备的报文在设备的入接口上绑定DiffServ域,在DiffServ域中将报文携带的优先级信息映射到相应的PHB行为/颜色,然后根据内部优先级与队列之间的映射关系确定报文进入的队列;在设备的出接口上,根据报文的PHB行为进行拥塞管理,根据报文的颜色进行拥塞避免;然后对于流向下游设备的报文,在设备的出接口上绑定DiffServ域,在DiffServ域中将报文的PHB行为/颜色映射为相应的优先级,下游设备根据报文的优先级提供相应的QoS服务。——这里提到在端口上绑定DiffServ域后,入端口上进行外部优先级——>内部优先级——>队列的映射,在出接口上根据PHB行为进行拥塞管理(缓存报文,暂缓发送),根据报文颜色进行拥塞避免(丢弃报文),出接口上进行反向映射

二、内部优先级与802.1p和入队列索引的映射关系

“内部优先级”是指设备对报文进行处理的优先级,报文中携带的优先级只有在与内部优先级进行了映射后,才能体现报文在对应设备的最终优先级,设备对报文的处理优先级不是直接按照报文中所携带的各种优先级进行的,而是按照设备中配置的内部优先级进行的。不同PHB行为定义了8种“内部优先级”从低到高的顺序依次是:BEAF1AF2AF3AF4EFCS6CS7(不区分大小写)。

1、802.1p优先级与内部优先级的映射关系

缺省情况下,所有华为S系列交换机的802.1p优先级与内部优先级的映射关系是一样的,如下表。这些交换机中802.1p优先级与内部优先级的缺省映射关系是按等级一一对应的,即最低的802.1p优先级0对应最低的内部优先级BE,最高的802.1p优先级7对应最高的内部优先级CS7。

2、内部优先级与入队列索引的映射关系

在实际部署时有时需要调整服务等级与入端口队列的映射关系,或者将不同的服务等级放入同一入端口队列中进行调度,从而有效地节约设备缓存。设备按照内部优先级将报文送入不同的入端口队列,从而针对队列进行流量整形、拥塞避免、队列调度等处理。不同S系列交换机的内部优先级与入队列的索引关系也有所不同。

内部优先级与入队列的映射配置仅在S2700SI/3700/5700/6700系列交换机上支持,其他系列仅可采用缺省映射关系。

不同S系列交换机中内部优先级与队列索引之间的映射关系有所不同。在S2700-52P-EI/2700-52P-PWR-EI/3700SI/3700EI/5700HI/5710EI系列交换机中,缺省情况下,8个内部优先级与8个入队列索引号之间是由低到高(指优先级和入队列索引号)一一对应的映射关系,如下表左。但在S2700SI系列,以及除S2700-52P-EI和S2700-52P-PWR-EI之外的其他S2700EI系列交换机中,仅支持4个入队列,所以每两个内部优先级映射同一个入队列(如BE和AF1这两个最低的内部优先级同时映射最小的0号队列,而CS6和CS7这两个最高的内部优先级同时映射最大的3号队列),但总体上也是由低到高一一对应的。

从上表可见,内部优先级和入队列的映射关系还要看报文是否是已知的单播报文,如果是已知单播报文,则与10-4表左部一样,只是针对非已知单播报文情况下的映射关系有所不同

——到这里,我们知道,一个外部报文,如果优先级是AF11DSCP10),那么对应的内部优先级(按照默认的映射关系)为AF1,入队列为1,报文进入队列1,这里有一个问题是外部优先级到内部优先级的映射,在报文上是不是没有什么体现,即不改变报文的优先级字段,即不改变DS字段,只根据映射关系表,直接进入相应队列,还是对DS字段进行变更了?假设外部优先级AF11进入设备映射为AF3内部优先级,报文的优先字段是否有变动?还有一点,队列是每个端口都有对应的八个(或四个)队列还是设备在全局有唯一的八个(或四个)队列?因为队列索引只是0~7,感觉全局有唯一的八个队列,所有端口的经过映射后的报文相应的进入统一的对应队列中。

 

                                                         流量监管和流量整形

流量监管(TP,Traffic Policing)和流量整形(TS,Traffic Shaping)就是可以通过监督进入网络的流量速率来限制流量及其资源的使用。进行流量监管和流量整形有一个前提条件,就是要判断流量是否超出了规格,然后才能根据评估结果实施调控策略。在流量监管和流量整形功能实现中,一般采用令牌桶(Token Bucket对流量的规格进行评估。

一、QoS令牌桶基本工作原理

“令牌桶”是指网络设备的内部存储池(也就是用于缓存数据的内存),而“令牌”(Token)则是指以给定速率填充令牌桶的虚拟信息包。“令牌桶”可以简单理解为一个水桶,而“令牌”则可以理解为通过一根水管流到水桶中的水。

交换机在入端口接收每个帧时都将一个令牌添加到令牌桶中,但这个令牌桶底部有一个孔,不断地按照你指定作为平均通信速率(单位为bit/s)的速度领出令牌(也就是从桶中删除令牌的意思),其实就是不断的从出端口发送数据的过程,相当于一个水桶的上边连接一根进水管,而下边又连接一根到用水的地方的出水管。在每次向令牌桶中添加新的令牌包时,交换机都会检查令牌桶中是否有足够容量(也就是在要向桶中加水前,先检查桶内是否已满了),如果没有足够的空间,包将被标记为不符规定的包,这时在包上将发生指定监管器中规定的行为(丢弃或标记)。就相当于如果当前水桶满了,但上边水管的水还是来了,这时要么让这些水白白流到桶外,要么把这些水用其他容器先装起来,等水桶中不再水满时再倒进去,供用户使用。——上述描述,可以如下理解,令牌桶就是交换机内存中的一部分,做成如队列的结构,其中队列头连接入端口,队列尾连接出端口,队列结构的特点就是从头入,从尾出,信息流就是令牌,如下图:

当入端口的数据流大于出端口的数据流,队列肯定有被装满的时候(即分配给的内存满了),这时候,再进入的信息流(令牌)可以根据调控策略进行相应的处理,可以直接丢弃,也可以再开辟一个内存区,专门用来缓存这些溢出的数据,待队列有空闲时,再从缓存区进入队列。

最初的令牌桶模型考虑的是单令牌桶结构,这个令牌桶称为CBSCommitted Burst Size,承若突发尺寸),简称C,而C桶中填充令牌的平均速率称之为CIRCommitted Information Rate,承若信息速率),如果用Tc表示当前令牌桶中的令牌数,则这个单令牌桶的基本工作原理可用下图表示。

用文字描述如下(假设用B来表示新接收的数据包大小):

(1)系统按照CIR速率向令牌桶(相当于交换机缓存)中投放令牌(相当于从端口上接收到数据包)。

(2)当Tc CBS时再比较BTc的大小关系。如果B Tc,则表示新接收的数据包大小符合规定(Conform)可完整的被缓存到令牌桶中,此时数据包被标记为绿色(表示允许转发的),当前的Tc值要相应减少B

(3)如果B Tc,则表示新接收的数据包大小违规(Violate不能完整的被缓存到令牌桶中,此时整个数据包被标记为红色,并将被直接丢弃,Tc值不减少

令牌桶填满的时间长短是由令牌桶深度(也就是交换机的缓存大小,单位为bit,类似水桶的深度)、令牌漏出速率(类似通下边接的出水管的水流速)和超过平均速率的突发流量(类似于桶上边水管突发的急速水流)持续时间这3个方面共同决定。令牌桶的大小是通过“突发时长上限”乘以“点对点传输时的帧数限制”得出(也就类似突发水流持续的时间*突发水流的流速)。如果突发时间比较短,令牌桶不会溢出,在通信流上不会发生行为;但如果突发时间比较长,并且速率比较高,令牌桶将溢出,这时将对突发过程中的帧采取相应的流监管策略行为(也就是在水桶水满后对溢出的水的处理方法)。——通过这里的描述,发现前面的理解有错误,首先信息流不是令牌,令牌和信息流是分别进入队列的,而且,信息流是进入了令牌桶,也就是队列结构的内存中,而令牌只是修改一个令牌数量的变量值,就是Tc值,系统启动时,令牌以CIR的速率投放到令牌桶,实际上就是以CIR的速率增加Tc的值(同时减少队列的容量),来说明有多少可用的内存空间,也就是说,所谓的溢出,是令牌不够了,而不是缓存队列满了,假设缓存队列是100,令牌投放速度是每秒1,那么10秒钟后,桶中有令牌10,现在如果一下来了20的信息流,虽然小于缓存队列100,但是大于令牌10,这时也是溢出了。而信息流转发时,相应的增加队列容量,就是释放了内存,对令牌数无影响。当令牌的增加使得队列内存为零时,说明队列缓存满了,无法增加令牌了。这样的设计,可以很好的限制数据流的进入速率,对于突发性的流量,如果桶中有足够的令牌,也可以接收转发,如前90秒没有数据到来,桶中就累积了90个令牌,下一秒一下来了90个数据,远远超出CIR,但是因为桶中有足够令牌,也可以接收,只是转发时是按照转发的速率进行的,相当于对信息流整形了。这里出现了数据包被标记为绿色和红色,不理解的是这个标记在什么地方体现出来?也就是在数据包的什么位置以什么样的数值表示红绿色??

二、单速率三色标记算法

在令牌桶处理包的行为方面,主要包括两种令牌桶算法:RFC2697定义的单速率三色标记(srTCMsingle rate three color market)算法和RFC2698定义的双速率三色标记(trTCMtwo ratethree color market)算法,其评估结果都是为包打上红、黄、绿三色标记(所以称为“三色标记”)。QoS会根据包的颜色,设置包的丢弃优先级,其中单速率三色标记比较关心包尺寸的突发,而双速率三色标记则关注速率上的突发,两种算法都可工作于色盲模式和非色盲模式

srTCM(单速率三色标记)是一种“单速双桶”算法,它可对流量进行测评,根据评估结果为报文打颜色标记,即绿色、黄色和红色。“单速”是指算法中的两个令牌桶有同样的承若信息速率(CIR,也就是具有相同平均访问速率;这两个令牌桶分别是正常使用的令牌桶(也就是C)和超出令牌桶容量的突发令牌桶(也就是E),可以理解为两个水桶,一个是正常使用的水桶,另一个是当正常使用的水桶满后用于装多余水的水桶。

1、srTCM算法的3个参数

srTCM算法关注的是数据包的突发尺寸,数据包的色标记评估依据以下3个参数。

(1)承若信息速率(CIRCommittedInformation Rate:表示向C桶中填充令牌的平均速率,即C桶允许传输或转发报文的平均速率。

(2)承若突发尺寸(CBSCommittedBurst Size:表示C桶的容量,即指每次突发所允许的最大的流量尺寸,也相当于允许的最大取令牌的速率,等于桶的容量(最大时一个包就可以全部领取桶中的全部令牌)。

(3)超额突发尺寸(EBSExcess BurstSize:表示E桶的容量,即每次突发允许超出CBS的最大流量尺寸。

单速率三色机制采用双桶结构:C桶和E桶,且两个令牌桶的CIR一样。当C令牌桶满时,超出的令牌也会放在E令牌桶中

Tc和Te分别表示C令牌桶和E令牌桶中的令牌数,也就是桶中当前的容量(单位为bit),两桶的总容量分别为CBS和EBS,也就是对应的承若突发尺寸和超额突发尺寸,最初它们都是满的,即Tc和Te初始值分别等于CBS和EBS。正常情况下不会使用第二个令牌桶(也就是E桶),只有当C令牌桶满后,后面来的令牌才放到E令牌桶中,为出现的突发数据提供信用令牌(也就是经过允许的令牌)。——系统启动初始化时,两个桶中的令牌是满的

2、srTCM算法原理

在srTCM算法中,两个令牌桶中令牌的添加是按照相同的CIR速率进行的。即每隔1/CIR时间添加一个令牌添加的顺序是先添加C桶再添加E,当两个令牌桶中的令牌都满时,再产生的令牌就会被丢弃。系统按照CIR速率向桶中填充令牌。

(1)若Tc < CBS,则Tc增加。

(2)若Tc = CBS,Te < EBS,则Te增加。

(3)若Tc = CBS,Te = EBS,则都不增加。

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

(1)若B Tc,报文被标记为绿色,且Tc减少B

(2)若Tc  B Te,报文被标记为黄色,且Te减少B

(3)若Te B,报文被标记为红色,且TcTe都不减少

——单个报文不会同时被分配到两个桶中

3、srTCM算法中的报文着色处理

发送数据包时,令牌的使用IEEE又定义了3种颜色(分别为红色、黄色和绿色)以及两种模式:色盲(color-blind)模式和感色(color-aware)模式,缺省为色盲模式。3种颜色的功能与日常交通指示灯的3中颜色类似,红色表示违规数据,直接丢弃黄色表示数据包虽然违法,但不直接丢弃,而是延迟发送绿色为合法数据包,直接发送

色盲(color-blind)模式下假设包都是没有经过“着色”处理的(不辨别包中原来标记的颜色),是根据包长度来确定包被标记的颜色。现假设到达的包长度为B(单位为bit)。若包长度B小于C桶中的令牌数Tc(也就是C桶中的令牌数足够该包发送所需),则包被标记为绿色,表示包符合要求,包发送后C桶中的令牌数Tc减少B。如果Tc  < B < Te(也就是包长度大于C桶中的令牌数,而小于E桶中的令牌数),则标记为黄色,则从E桶中取出所需令牌,E桶中的令牌数Te减少B;若B > Te,标记为红色,表示违反规定的包,直接丢弃,两令牌桶中的总令牌数都不减少。

感色(color-aware)模式是假设包在此之前已经过“着色”处理(会辨别包中原来标记的颜色),则包被标记为绿色,或包长度B < Tc(注意只要满足其中一个条件即可,下同),则包被标记为绿色,C桶中的令牌数Tc值随之也相应减少B;如果包已被标记为黄色,或c  < B < Te,则包被标记为黄色,同时E桶中的令牌数Te也随之相应减少B;如果包已被标记为红色,或B> Te,则包被标记为红色,Tc和Te都不减少。——一直不明白这里的着色到底着在哪里,是在报文中的哪个位置进行标注的,百度了一下,好像是PHB中,分为PHB ClassPHB Selector,这里的Selector就是取非0的三个值,分别代表丢弃的三个优先级,应该是正对着绿、黄、红三色,各种优先级的报文进入设备后,都会进行外部优先级到内部优先级的映射再到队列的映射,这个过程中会在内部优先级的标志上标上颜色???看到以下一段描述:

流量监管中的红、黄、绿报文是通过srTCM/trTCM算法测评出来的;而拥塞管理中的红、黄、绿报文是由报文的DPDrop Priority)所决定(这里的DP应该就是PHB Selector吧?)。流量监管是通过命令traffic-limit在入端口配置的,也就是说流量监管的红、黄、绿报文发生在入端口;而拥塞管理是用命令drop-mode在出端口配置的,拥塞管理的红、黄、绿报文发生在出端口的队列。入端口的红、黄、绿报文和出端口队列的红、黄、绿报文没有直接的对应关系,但是有间接的联系。在入端口通过srTCM/trTCM算法得到报文的Conform Level后,可以根据不同的要求重置DP

三、双速率三色标记算法

trTCM(双速率三色标记)是一种双桶双速算法,也可对流量进行评测,根据评估结果为报文打颜色标记,即绿色、黄色和红色。这里的“双速率”是指该算法中两个令牌桶中的CIR速率不同,存在两个令牌填充速率。

与单速率三色标记算法不同,双速率三色标记算法中的两个令牌桶C桶和P(不是C桶和E桶)

它们的令牌填充速率是不同的,C桶填充速率为CIR,P桶为PIR;两桶的容量分别为CBS和PBS。用Tc和Tp表示两桶中的令牌数目,初始状态时两桶是满的,即Tc和Tp初始值分别等于CBS和PBS。

    1、trTCM算法的4个参数

trTCM算法关注的是速率的突发,但它不像单速率三色标记算法那样把第一个桶中未使用的令牌放到第二个桶中,而是使用两个独立的令牌桶。第一个令牌桶为PIR,大小为PBS,第二个令牌桶为CIR,大小为CBS。数据的测量是先比较PIR,再比较CIR。也就是在双速率三色标记中,首先判断的是数据发送速率是否符合规定的突发要求,而不是正常情况下的色标方法

trTCM算法主要是根据4种流量参数来评估:CIRCBS峰值信息速率(PIRPeakInformation Rate),峰值突发尺寸(PBSPeak Burst Size。CIR和CBS参数与单速率三色标记算法中的含义相同,PIR就是允许的最大突发信息传输速率,即P桶允许传输或转发报文的峰值速率,当然它的值肯定不会小于CIR的;PBS是允许的最大突发信息尺寸,表示P桶的容量,它的值也不会小于CBS

2、trTCM算法原理

在trTCM算法中,系统按照PIR速率向P桶中填充令牌,按照CIR速率向C桶中填充令牌。

(1)当Tp < PBS时,P桶中令牌数增加,否则不增加。

(2)当Tc < CBS时,C桶中令牌数增加,否则不增加。

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

(1)若Tp < B,则报文被标记为红色。

(2)若Tc < B ≤ Tp,报文被标记为黄色,且Tp减少B。

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

3、trTCM算法中的报文着色处理

在trTCM算法中也有色盲模式和色敏模式两种

在色盲模式下,当包速率大于PIR,此时未超过Tp + Tc部分的包会分别从P桶和C桶中获取令牌,而且P桶中获取令牌的部分包被标记为黄色,从C桶中获取令牌的部分包被标记为绿色,超过Tp + Tc部分无法得到令牌的包被标记为红色;当包速率小于PIR,而大于CIR包可以得到令牌,但超过Tc部分的包将从P桶中获取令牌,此时这部分包都被标记为黄色,而从C桶中获取令牌的包被标记为绿色;当包速率小于CIR时,包所需令牌数不会超过Tc,只需从C桶中获取令牌,包被标记为绿色。

在色敏模式下,如果包已被标记为红色,或者超过Tp + Tc部分无法得到令牌的包,被标记为红色;如果标记为黄色,或超过Tc但未超过Tp部分包标记为黄色;如果包被标记为绿色或者未超过Tc部分包,被标记为绿色。

四、流量监管

“流量监管”(TrafficPolicing)就是对流量进行控制,通过监督进入交换机端口的流量速率,对超出部分的流量进行“惩罚”(采用监管方式时是直接丢弃),使进入端口的流量被限制在一个合理的范围之内。

流量监管的基本工作机制如下图,由三部分组成

(1)Meter(度量器):通过令牌桶机制对网络流量进行度量,然后向Marker(标记器)输出度量结果。

(2)Marker(标记器):根据Meter的度量结果对报文进行染色,报文会被标识成green、yellow、red三种颜色。

(3)Action:根据Marker对报文的染色结果,对报文进行一些行为,行为如下:

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

②remark +pass:修改报文内部优先级后再转发。

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

缺省情况下,对green、yellow颜色的报文进行转发,对red报文进行丢弃。

当网络发生拥塞后,超出的流量将采取其他方式处理。如果处理方式为监管,那么数据包就会被丢弃。通常情况下,网络设备缺省丢弃后到的数据包而传输先到的数据包,这样的丢弃方式称为尾丢弃。也可以让网络设备在发生拥塞时,先丢弃低优先级的数据包而传输高优先级的数据包。

总体而言,经过流量监管后,如果某流量速率超过标准,设备可以选择降低报文优先级再进行转发或者直接丢弃。缺省情况下,此类报文被丢弃。如下图是一种经过流量监管后的流量变化示意图,超出CAR的流量均被“削”掉了。

五、流量整形

“流量整形”为控制最大输出通信速率提供可能,以确保通信符合配置的最大传输速率规定。符合某种配置的通信可能被整形,以使它符合下游设备的通信速率需求。流量整形通常使用缓存区和令牌桶来完成,当报文的发送速率过快时,首先在缓冲区进行缓存,在令牌桶的控制下再均匀地发送这些被缓冲的报文。

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

流量整形是一种可应用于接口、子接口或队列的流量控制技术,可以对从接口上经过的所有报文或某类报文进行速率限制。下面以接口或子接口下采用单速率单通技术的基于流的队列整形为例介绍流量整形的处理流程。

(1)当报文到达设备端口时,首先对报文进行简单分类,使报文进入不同的队列。

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

(3)按用户设定的队列整形速率向令牌桶中存放令牌。

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

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

(4)缓存队列中有报文的时候,系统按照一定的周期从缓存队列中取出报文进行转发,每次发送都会与令牌桶中的令牌数做比较,直到令牌桶中的令牌数减少到缓存队列中的报文不能再发送或缓存队列中的报文全部发送完毕为止。——通过上面描述,应该是每个端口都有自己的优先级队列和缓存队列,那么前面的示意图就是错误的,入端口的和出端口的队列不是直接相连的,而是入端口的队列数据要出队列再进入出端口的队列

流量整形和流量监管都是作用于网络边缘,对进入设备端口的流量进行的一种处理方式。它们的主要区别在于:流量监管直接丢弃不符合速率要求的报文,丢弃的报文比较多,可能引发重传;而流量整形是将不符合速率要求的报文先行缓存,当令牌桶有足够的令牌时再均匀地向外发送这些被缓存的报文,较少丢弃报文,但引入时延和抖动,需要较多的缓存资源缓存报文。所以这两种功能的应用领域也不尽相同,流量监管适用于对丢弃率不敏感,而对时延和抖动比较敏感的网络应用,如一些普通的话音和视频通信;流量整形适用于对时延和抖动不敏感的网络应用,如数据传输、WWW访问等。

 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值