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

QoS——质量服务是非常复杂又应用广泛的技术,这一章从基础及原理讲解,非常重要,只有基础和原理上弄懂,才能对QoS的配置有所理解。

QoS主要功能包括流量监管(对进入接口的,超出限制速率的报文进行丢弃)、流量整形(对接口发送的,超出限制速率的报文先进行缓存,等待流量不超出速率时发送)、拥塞避免(在出现网络拥塞时对符合条件的报文进行丢弃)、拥塞管理(在出现网络拥塞时采用队列调度的方法对符合条件的队列中的报文优先发送)、流策略(可根据不同的流分类实现诸如禁止/允许通过,重标记报文优先级、重标记报文VLAN标签、重定向流量、过滤报文、流量镜像、启用流量统计功能等行为)。

对于上面的术语是有很多疑惑的:流量监管、流量整形、拥塞避免、拥塞管理、流策略

流量监管、流量整形,一个是对进入接口的报文,一个是对接口发送的报文,很好理解,关键是限制速率是什么,是接口连接的物理速率(线路速率,如GE接口是千兆速率)吗?拥塞避免、拥塞管理,怎么判断拥塞了?对哪里的报文进行丢弃或调度?与流量监管、流量整形有什么区别?流策略则是另一个概念,是对流分类来进行不同的处理,那么流分类是怎么分类的,都有什么类型?与前面四个概念,流策略与它们的最大不同其他四个概念都与速率有关,流策略只与流分类相关吧。

 

QoS基础

QoS——Quality of Service,服务质量,是一种可以为不同类型业务流提供差分(即:不同)服务等级的技术。对带宽、时延、时延抖动、丢包率等敏感业务流提供更加优先的服务等级。

一、QoS概述

传统IP网络中,所有的报文都被无区别的同等对待。网络设备对所有的报文均采用FIFO(First In First Out,先进先出)的策略进行处理,尽最大的努力(Best-Effort)将报文送到目的地。这种方式下,对报文传送的可靠性、传递延迟、丢包率等性能不能提供任何保证。

随着IP新型应用出现,对IP网络的服务质量提出新要求,对实时性和连续性方面要求更加苛刻,要求网络能够区分出不同的业务类型,进而为之提供相应等级的服务。QoS正是这样一种可以为不同业务类型报文提供差分服务的技术,通过对网络流量进行调控,可避免并管理网络拥塞,减少报文丢包率。

QoS服务等级就是指对业务流所需的带宽、时延、时延抖动、丢包率等核心需求的评估

1、带宽

“带宽”又称为吞吐量,表示在一定时间内业务流的平均速率,单位通常是kbit/s。QoS可以为不同业务流分配不同的端口带宽,以实现高优先级,或者对带宽需求更高的业务流(如视频流等)分配到更大的端口带宽,实现更加快速的数据传输。——个人理解,就是对一个端口中某类业务流分配的带宽(或者说速率),端口速率可能是1千兆,分配的某业务流速率,即带宽是200M。那么,对于流量监管、流量整形来说超出速率就是这里的带宽

2、时延

“时延”表示业务流穿过网络时需要的平均时间。对于网络中的一个设备来说,一般将时延的需求理解为几种等级。通过优先队列(端口有几个优先级不同的数据发送队列)的调度方法使得高优先级的队列业务尽可能的获得传输服务,而低优先级的队列业务则需要等待没有高优先级业务时才能获得传输服务。——个人理解:从设备中发送出去的时间,设备端口有几个优先级不同的数据发送队列,优先级高的,发送的就频繁,在一段时间内发送的就多,或是说发送同样的信息,时间就短,时延就小。关键是是否考虑信息在线路中的传播时间?时延是两个设备之间的指标还是源和目的之间的指标?个人感觉应该是两个设备之间的指标,源和目的之间有可能有多个设备,时延是两两设备之间的指标,一个设备不能控制与它无关的设备的时延

3、时延抖动

“时延抖动”表示业务流穿过网络的时间的变化。不同的业务流对时延抖动的敏感度也不一样,像话音、视频类实时要求比较高的业务要求时延抖动更小,否则可能出现话音、视频流断断续续,不连续或失真现象。——个人理解:前面的时延是平均时间,假设一个业务流发送的时延是1ms,即1ms发送一个数据包,因为其他原因,1ms后应该发送某个数据包却在10ms后才发送,这就是时延抖动

4、丢包率

“丢包率”表示业务流在传送过程中的丢失比率。信息的丢失往往发生在网络出现拥塞时。不同业务流对丢包率的敏感度不一样,如话音、视频流对丢包率不是很敏感,而对于数据文件来说就非常敏感,可能导致数据最终无法使用。——个人理解:流量监管、拥塞避免中都提到了丢弃数据包,这个丢包率是指主动丢弃还是因为线路问题的被动丢弃?

在QoS的分类流程中最关键的是对各种不同业务流配置不同的优先级,对流入设备的业务流按其优先级进行分类,然后为不同类型业务流定义一个相应的流行为,设备就会为对应的业务流执行相应的QoS行为。——个人理解:这里提到对流入设备的业务流按其优先级进行分类,也就是说,在流入设备前就能区分各种业务流,也有了对应的优先级,进入设备后,在按照设备的标准进行分类

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

二、二层VLAN帧中的优先级

QoS基础及技术原理实战——1_第1张图片

二层帧中的优先级是专门针对VLAN帧的,因为普通二层帧中是不携带优先级字段的。VLAN帧中的优先级就是我们常说的802.1p优先级(由IEEE802.1p协议定义),位于VLAN帧中的“802.1Q Tag”字段的“PRI”子字段中。

IEEE802.1p是IEEE802.1Q(VLAN标签技术)标准的扩充协议。IEEE802.1p的出现,使得第二层交换机能够提供流量优先级和动态组播过滤服务,其中流量优先级规范工作在媒体访问控制(MAC)层,组播流量过滤功能可确保该流量不超出第二层交换网络范围。

IEEE802.1Q标准定义了为以太网MAC帧添加的标签,但并没有定义和使用优先级字段,而使用IEEE 802.1p修改后的以太网MAC帧的以太网协议头中则定义了该字段。802.1p优先级位于二层VLAN帧头部,适用于不需要分析三层报文头,而需要在二层环境下保证QoS的场合。4个字节的802.1Q标签头包含了2个字节的TPID(Tag Protocol Identifier,标签协议标识,取值为0x8100)和2个字节的TCI(Tag ControlInformation,标签控制信息)。

TCI部分中PRI子字段就是802.1p优先级,也称为CoS优先级。它由3位组成,取值范围为0~7,共可表示8个优先级。其中,最高优先级为7,应用于网络管理和关键性网络流量,如路由选择信息协议(RIP)和开放最短路径优先(OSPF)协议的路由表更新;优先级6和5主要用于延迟敏感(delay-sensitive)应用程序(低时延应用),分别对应交互式话音和视频;优先级4到1主要用于受控负载(controlled-load)应用程序、流式多媒体(streaming multimedia)、关键性业务流量(business-scritical traffic),如SAP数据和后台流量。优先级0是缺省值,并在没有设置其他优先级值的情况下自动启用。

    通过上面的描述,802.1p优先级只是对报文进行统一的区分优先级,没有区分报文业务,如是视频流还是数据流。所以VLAN帧优先级比较简单。值高优先级高

三、三层IP报文中的优先级

在三层IP报文中,优先级的描述要复杂许多,并且在不同时期出现了两种不同的优先级类型和不同的标识方法

    1、ToS字段标的IP优先级

在早期的RFC791标准中,IP数据包是依赖ToS(Type of Service,服务类型)字段来标识数据优先级值的。ToS是IP数据包中的IP报头中的一个字段(共1个字节),用来指定IP包的优先级,设备会优先转发ToS值高的数据包。值高优先级高

QoS基础及技术原理实战——1_第2张图片

QoS基础及技术原理实战——1_第3张图片

ToS字段共一个字节(8位),包括3个部分:0~2共3位用来定义数据包的IP优先级(IP Precedence)、ToS(4位)和最后一个固定为0的位。

(1)IP Precedence部分

IP优先级部分共3位,取值范围为0~7(值越大,优先级越高)。用名称表示时,这8个取值分别为routine(普通,值为000)、priority(优先,值为001)、immediate(快速,值为010)、flash(闪速,值为011)、flash-override(急速,值为100)、critical(关键,值为101)、internetwork control(网间控制,值为110)和network control(网络控制,值为111),分别对应于数字0~7。

以上IP优先级中,6和7一般保留给网络控制数据使用,比如路由;5推荐给话音数据使用;4推荐由视频会议和视频流使用;3推荐给话音控制数据使用;1和2推荐给数据业务使用;0为缺省标记值。在IP优先级配置时,既可以使用0~7这样的数值,也可使用上述对应的优先级名称。从这个描述上看,IP Precedence与二层VLAN帧的优先级类似。

(2)ToS

在IP报头的ToS字段中紧接着IP优先级字段后面的四位是ToS部分,代表需要为对应报文提供的服务类型(标识报文所注重的特性要求)。一开始,RFC791中只用到了第3~5位,分别代表IP包在Delay(延时),Throughput(吞吐量),Reliability(可靠性)这三方面的特性要求(每个报文在这三位中只有一位可能置1,此时表示IP包在对应方面有特别要求)。后来在RFC1349标准中又宽展到第6位,表示IP包在路径开销(cost)方面的特性要求。

要注意的是,虽然ToS部分共有4位,但每个IP包中这4位中只能有一位为1,所以实际上只有5个取值(包括全为0的值)。这5个值所对应的名称和数值分别为normal(一般服务,取值为0000)、min-monetary-cost(最小开销,取值为0001,确保路径开销最小)、max-reliability(最高可靠性,取值为0010,确保可靠性最高)、max-throughput(最大吞吐量,取值为0100,确保传输速率最高)、min-delay(最小时延,取值为1000,确保传输时延最小)。从这个描述上看,三层IP包除了有优先级外,还有传输质量方面的区分,相当于对数据流进行了业务上的分类,提供了另一个维度的分类

2、DS字段的DSCP优先级和PHB

在新的RFC2474标准中,重新定义了原来IP包头部的ToS字段,并改称为DS(DifferentiatedServices,差分服务)字段,也是共一个字节(8位)——注意这里是对整个ToS字段共8位进行了重新的定义,而不是上面说的ToS部分。总的来说,第0~5位(共6位)用来表示DSCP(Differentiated Services Code Point,差分服务代码点)优先级,取值范围为0~63,共能标识出64个优先级值值越大,优先级越高),最后两位保留,用于显示拥塞通知(Explicit Congestion Notification,ECN),如下图:

QoS基础及技术原理实战——1_第4张图片

后来在IETF RFC2597标准中定义了PHB(Per-Hop Behavior,逐跳行为),通过PHB值可以确定在网关处IP包的转发行为。这个PHB值是通过DSCP优先级部分的第0~4位来标识的,其中第0~2位用来标识PHB类别(PHB Class)值,共8个值,对应表示为CS0~CS7,对应在RFC791定义的8个IP优先级,而第3~4位用来标识PHB类别选择(PHB Class Selector)值,见上图。PHB类别值和PHB类别选择值共同组成PHB值。DSCP值是由PHB的5位再加上第5位(固定为0),但在PHB类别中的3位不能全为0。——从上述描述,PHBDSCP的缩小,因为只取了DSCP的前5位,同时又将其分为三位PHB Class和两位PHB Class SelectorClass三位与VLAN二层优先级及三层IP包的IP Precedence对应,有了连贯性还要注意其应用场景主要是在网关处

在RFC2597中定义了4种确保转发(AssureForwardingAFPHB组(称为AF PHB。它使用了DS字段中的第0~2位定义PHB类别,而使用DS字段中的第34位代表报文的“丢弃优先级”,用AFxy)表示,其中x表示流分类,y表示对应的丢弃优先级

所谓“确保转发”就是允许管理员在没有超过线路允许速率的情况下提供尽可能的传输质量保证,但如果超出用户线路速率则可能在出现拥塞时丢弃数据包。

在确保转发PHB中,定义了4PHB类别(也即“流分类”),它们的值分别为001010011、和100(对应CS1~CS4,它们本身代表了流的不同优先级值越大转发优先级越高),然后通过第3和4位的丢弃优先级值(取非0的3个值,分别为011011,值越大丢弃优先级越高进一步区分同一类流不同IP包的丢弃优先级。它们共同针对4种PHB分类组成了4组AF等级,它们所对应的AF值和对应的DSCP值如下表所示(此时第5位的值固定为0)。

QoS基础及技术原理实战——1_第5张图片

从上图可以看出,AF PHB12个等级,且从上面的描述中看出,PHB Class代表了流分类,且只有4种,即CS1~CS4,明确出现了流分类。可以看出PHB分类法比DSCP的标注少了很多

再后来在RFC3246标准中,又定义一个加速转发(Expedited ForwardingEFPHB,对应CS5,即DS字段中的第0~2位取值为101,第3~4位取值固定为11,第5位固定为0,这样一来对应的DSCP值就为46(101110)。EF PHB具有低延时、低开销和低抖动特性,适用于话音、视频和其他实时服务,一般具有比其他通信类型更加优先的队列。

除了AF和EF外,还有一个缺省的PHB,那就是尽力服务类型,它所对应的DSCP值为000000,即十进制的0。另外还定义了CS6CS7CS6用于网间控制,对应的DSCP110000,即十进制的48CS7用于网内控制,对应的DSCP值为111000,即十进制的56

在配置DSCP优先级时,既可以使用对应的DSCP名称,如CS6、CS7、AF11、AF12(在CS1~CS4中每个包含了一组DSCP值,所以要指定具体的DSCP名称),又可以使用对应的DSCP十进制值,如48、56等。

3、IP优先级与DSCP优先级的对应关系

DSCP优先级是向后兼容IP优先级的,当支持DSCP的设备收到仅支持ToS中的IP优先级的报文时,缺省情况下它们之间是有一种映射关系的,具体如下表。当然,如果设备仅支持ToS的IP优先级,缺省情况下是不能识别报文中的DSCP优先级值的,这时需要事先在接收设备配置好DSCP优先级与IP优先级的映射关系。

QoS基础及技术原理实战——1_第6张图片

现在有一个疑问,对于三层IP包中的优先级,在报文中如何确定或标识是使用IP优先级还是使用DSCPPHB,在哪里进行标识??

四、三种QoS服务模型

“服务模型”就是设备为不同业务流提供服务的一种模式。总体来说,包括Best Effort、IntServ和DiffServ三种服务模型。

1、Best Effort模型

Best Effort(尽力而为)模型是一种所有业务流提供相同服务等级的服务模型,也是最简单的服务模型。在Best Effort模型中,应用程序可以在任何时候发出任意数量的报文,而且不需要事先获得批准,也不需要通知网络,网络尽最大的可能性发送每一个数据报文,但对时延、可靠性等性能不提供任何保证。

Best Effort模型是Internet的缺省服务模型,它适用于绝大多数网络,如FTP、Email等,通过先进先出(FIFO)调度方式来实现。

2、IntServ模型

IntServIntegratedService,综合服务)模型的主要特点是在发送报文前要先向网络提出申请。这个请求是通过协议信令来完成的,如RSVP(Resource Reservation Protocol,资源预留协议)。应用程序首先通过RSVP信令通知网络它的QoS需求(如时延、带宽、丢包率等指标),在收到资源预留请求后,传送路径上的网络节点实施许可控制(Admission control,验证用户的合法性并检查资源的可用性,决定是否为应用程序预留资源。一旦认可并为应用程序的报文分配了资源,则只要应用程序的报文控制在流量参数描述的范围内,网络节点将承若满足应用程序的QoS需求。传输路径上的网路节点可以通过执行报文的分类、流量监管、低延迟的排队调度等行为,来满足对应程序的承诺。

IntServ模型常与组播应用结合,使用于需要保证带宽、低延迟的实时多媒体应用,如电视会议、视频点播等。当前,采用RSVP协议的IntServ模型定义了两种业务类型:

(1)保证型服务(GuaranteedService):提供保证的带宽和时延限制来满足应用程序的要求。如VoIP应用可预留10MB带宽和要求不超过1s的时延。

(2)负载控制型服务(Controlled-LoadService:保证即使在网络过载(overload)的情况下,仍能对报文提供类似Best Effort模型在未过载时的服务质量,保证某些应用程序报文的低时延和低丢包率需求。

IntServ模型的最大优点是可以提供端到端的QoS传输服务,最大缺点是可扩展性不好:网络节点需要为每个资源预留维护一些必要的软状态(Soft State)信息;在与组播应用相结合时,还要定期地向网络发资源请求和路径刷新信息,以支持组播成员的动态加入和退出。而这些操作要耗费网络节点较多的处理时间和内存资源。在网络规模扩大时,维护的开销幅度增加,对网络节点特别是核心节点线速处理报文的性能造成严重影响。因此IntServ模型不适宜于在流量汇集的骨干网上大量应用。

3、DiffServ模型

为了在Internet上针对不同的业务提供有差别的服务,IETF定义了DiffServDifferentiated Service,差分服务)模型

DiffServ模型是一种多服务模型,可以满足不同用户业务流的QoS需求。它与IntServ模型不同的是应用程序在发出报文前通过设置报文头部的优先级字段,向网络中各设备通告自己的QoS需求,而不需要通知途径的网络设备为其预留资源,网络不需要为每个流维护状态,仅根据每个报文携带的优先级就可确定所需为对应流提供的服务等级。

DiffServ模型一般用来为一些重要的应用提供端到端的QoS。通常在配置DiffServ模型后,边界设备通过报文的源地址和目的地址等信息对报文进行分类,对不同的报文设置不同的优先级,并标记在报文头部,而其他设备只需要根据设置的优先级来进行报文的调度。

在DiffServ模型中,流分类、流量监管、流量整形、拥塞管理和拥塞避免是对不同类型报文提供有区别服务的基石,它们主要完成如下功能:

(1)流分类:依据一定的匹配规则识别出不同类型的报文,是有区别地实施服务的前提

(2)流量监管:对进入交换机的特定流量的规格进行监管。当流量超出规格时,可以采取限制或惩罚措施,以保护运营商的商业利益和网络资源不受损害。

(3)流量整形:一种主动调整流的输出速率的措施,使流量适配下游交换机可供给的网络资源,避免不必要的报文丢弃和拥塞。

(4)拥塞管理:在发生网络拥塞时必须采取解决资源竞争的措施。通常是将报文放入队列缓存,并采取某种调度算法安排报文的转发次序。

(5)拥塞避免过渡的拥塞会对网络资源造成损害。拥塞避免功能可以监督网络资源的使用情况,在发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量措施来解除网络的过载。

在这些功能组件中:流分类是基础,它依据一定的匹配规则识别出报文,是有区别地实施服务的前提;流量监管、流量整形、拥塞管理和拥塞避免从不同方面对网络流量及其分配的资源实施控制,有区别的提供服务具体体现

通过上述的描述,QoS三种模型中,Best Effort尽力而为模型就是没有优先级的模型,网络对所有业务流一视同仁,都尽力转发;IntServ综合服务模型则需要提前与网络(设备)进行交互,申请资源,先申请再使用,比较麻烦,且浪费部分网络资源;DiffServ差分服务模型在在边界设备先将报文分类,对不同报文进行优先级标注,网络各设备根据此优先级进行处理,不需提前申请

五、DiffServ模型体系结构

DiffServ体系结构定义了实现差分服务的系统模型和基本功能组件,如下图

QoS基础及技术原理实战——1_第7张图片

在一个网络节点上,实现差分服务的基本功能组件包括“逐跳行为”(PHB)、业务流分类和流量调整(包括流量监管与流量整形、拥塞避免与拥塞管理)等功能。差分服务建立在DS(差分服务)域模型之上,并规定了一个DS域的边界节点和内部节点。在DS域边界节点上,对进入网络的业务流进行分类、流量调整和优先级标记,并按照DS域所支持的PHB组中的一个PHB进行转发。在内部节点上,将根据边界节点标记的DSCP802.1p优先级所定义的PHB来选择该业务流的转发行为,为业务流分配带宽资源。

    1、DS域

DiffServ模型的现实基于DSDS域由一组采用相同的服务提供策略和实现了相同PHB组集合的相连DS节点组成。一个DS域由DS边界节点和DS内部节点组成,边界节点构成了DS域的边界,内部节点构成了DS域的核心。

2、DS节点

DS节点指实现DiffServ功能的网络节点。DS节点可分为DS边界节点和DS内部节点。

(1)DS边界节点

DS边界节点负责连接另一个DS域或者连接一个没有DS功能的域的节点。DS边界节点负责将进入此DS域的业务流进行分类和可能的流量调整,以保证穿过此DS域的业务流被适当标记,并按照DS域所支持的PHB组中的一个PHB进行转发。

对于不同方向的业务流,DS边界节点既可以是DS域的输入(Ingress)节点,又可以是DS域的输出(Egress)节点。业务流Ingress节点处进入DS域,在Egress节点处离开DSIngress节点负责保证进入DS域的业务流符合本域和此节点直连的另一个域之间的SLAService Level Agreement,服务等级协议)或TCATrafficConditioning Agreement,流量控制协议)。Egress节点依据两个域之间的TCA细节,对转发到其直连的对等域的业务流执行流量调整功能。——对于边界节点,是根据数据流来判断Ingress节点和Egress节点的,在输入方向,是Ingress节点,对流进行分类,重标记优先级,进行流量监管,对于流出节点的数据流,是Egress节点,对流进行流量整形,对优先级进行恢复,恢复成外部需要的形式

(2)DS内部节点

DS内部节点负责连接同一DS域中的其他DS内部节点或DS边界节点。DS内部节点负责根据IP报头中的DS字段或VLAN报文的802.1p字段所定义的PHB来为该业务流选择转发行为无论是DS边界节点还是DS内部节点都必须根据业务流的DSCP802.1p选择相应的PHB进行转发操作。——DS域模型的转发全部依靠PHB进行,其他的优先级要进行相应的转换,转换成对应的PHB,这一点很重要

3、SLA

SLA(服务等级协定)指用户(个人、企业、有业务往来的相邻ISP等)和服务提供商签署的关于业务流在网络中传递时所应当获得的待遇。SLA包括很多方面,例如付费协议,其中的技术说明部分被称为SLSService Level Specification,服务等级规范)

4、TCA

TCA(流量控制协定)指用户与服务提供商签署的关于业务分类准则、业务模型及相应处理的协定。去掉了商业条款的TCA称为TCSTraffic Conditioning Specification,流量控制规范),一个SLA中可以包含TCA。对于业务的处理而言,SLA或SLS指明的是比较一般的内容,例如采用什么样的机制,而TCA或TCS则比较具体,例如具体的带宽要求。

5、DS区

一个或多个邻接的DS域统称为DS。DS区可以支持贯穿区内多个DS域的分类业务。DS区中的DS域可能支持不同的PHB,和QoS优先级到PHB的映射规则。不同DS域可有不同的PHB,以实现不同的服务提供策略。它们之间通过SLATCA协调提供跨区域服务SLA/TCA指明了如何在DS域边界节点调整从一个DS域传向另一个DS域的业务流

——个人理解,在DS区中不同DS域,其提供的服务种类可能不同,对同一个PHB,就有不同的转发处理行为,为了保持处理的一致,A域的PHB在发送到B域时,要按照B域的规定进行优先级设置,根据双方SLA/TCA的交互,确定相应的转换规则

 

你可能感兴趣的:(HCSE——构建企业级交换网络)