姜明
4.区分服务
区分服务简介
DiffServ的最大特点就是简单有效、扩展性强。其实施特点是采用聚合的机制将具有相同特性的若干业务流聚合起来,为整个聚合流提供服务,而不再面向单个业务流。也就是说在DiffServ网络边界路由器上保持每流状态,核心路由器只负责数据包的转发而不保持状态信息。这种Core-Stateless结构有很强的扩展性。其基本实现方法是:
简化网络内部节点的服务机制。在网络内部的核心路由器中只保存简单的DSCP(DiffServ CodePoint)与PHB的对应机制,在数据流进入核心路由器时只根据数据包头部DS(Differ- entiated Services)域中的DSCP进行转发,而业务流状态信息的保存与流监控机制的实现等都在网络边界节点进行,内部节点是状态无关的。
聚合网络内部核心路由器的服务对象。采用流聚集的方式进行传输控制,具有相同DSCP的业务流组成一个宏流(macro-flow),核心路由器的服务对象即是宏流而不是单流(micro-flow),单流信息只在网络边界节点保存和处理。
DiffServ大大降低了信令的工作,而将重点放在流聚集以及适用于全网业务等级的一套"逐跳行为"上。我们可以根据预先确定的规则对数据流进行分类,从而将多种应用数据流聚集为有限的几种数据流等级。具体而言,边界节点根据用户的流规格(profile)和资源预留信息对业务流进行分类、整形、标记、聚合为不同的流聚集,流聚集信息包含在报文IP头部的DSCP标记域中。核心路由器在调度转发IP包时以流聚集为服务对象,根据IP包头不同的DSCP提供不同的转发服务质量,这种对不同类型的数据报进行转发的方式,称为"逐跳行为"(Per-Hop-Behavior,PHB),实际上是一种相对优先级机制。
实际上,按照DS域的标记,以相应方式提供不同质量的数据包转发服务,也正是区分服务名字的由来。美国正在开展的下一代互联网计划Internet2便是选择DiffServ作为其QoS策略。
区分服务的体系结构
虽然DiffServ仍在不断的发展,一些标准仍在制定、完善之中,但经过几年的发展,DiffServ的相关概念及模型已经比较成熟了,DiffServ体系结构也已经比较明确了。在此基础上,与服务提供有关的问题,如DSCP的定义、PHB服务的定义等等已逐步完善。区分服务体系结构如图3所示。
其中的DiffServ区域是由一些相连的DiffServ节点构成的集合,它们有统一的服务提供策略,且实现一致的PHB组,比如某个ISP的网络或者内部网。每个DS区域通过边界节点(boundary node)与非DS区域相连,根据不同的数据流传输方向,边界节点可以分为入口节点和出口节点。
为了保证用户能从ISP那里获得所需要的服务质量,用户必须和ISP之间签订有服务等级协定(Service Level Agreement, SLA),而ISP之间也必须建立业务流调节协定(Traffic Condition Agreement, TCA),SLA规范了ISP对客户端网络所支持的业务类别以及每种类别的业务流数量,TCA则规范了ISP之间的数据流应该满足的一些约定。
这样,当有数据流进入DS区域时,入口节点对其进行分类(classifier)、调节(condition),保存流(单流或聚流)的状态信息,根据事先和用户约定的流规格对流进行计量(metering)、标记(marking)、整形(sharping)、丢弃(dropping)等,以使输入流符合SLA,同时在包头标记DSCP值,并将其加入相应的行为聚集BA(Behavior Aggregate)。出口节点也可能需要对输出流进行调节,以保证其与下游DS区域的TCA相符。
DiffServ区(region)则是由连续的DS区域构成。一个DS区内的DS区域可以支持不同的PHB组,并且各自区域的DSCP到PHB的映射函数也可能不相同。在不同的DS区域之间,必须对SLA和TCA进行调节,以协调彼此之间的服务语义。这样,通过在上游DS区域和下游DS区域之间建立SLA或TCA,区分服务可以扩展到多个DS区域。
图3 区分服务体系结构示意图
在图3中,我们假设客户端网络已经和ISP建立了相应的SLA,ISP之间也建立了TCA。如果客户端网络中的主机A向另一客户端网络的主机B发送数据流,则数据包在客户端网络中路由到达与它直接相连的ISP的网络N1,边界路由器E1根据用户与ISP之间的SLA通过查看数据包的头部信息对它进行分类、监控、标记以及整形,以使它符合SLA。被标记了DSCP的数据包在N1中传输,直到到达N1的出口节点。在N1的出口节点,边界路由器根据N1与N2之间的TCA对业务流进行整形,使它符合N1与N2网络之间的TCA。业务流依次通过中间的每个ISP,最后到达接收端所在的客户端网络。
区分服务标记域与区分服务标记DSCP
IP包头部的区分服务标记域(DS Field)是DS区域边界节点和内部节点传输流聚集信息的媒介,是内部核心路由器转发报文的依据,是连接报文与转发服务(PHB)的桥梁,也是边界节点与其它DS区域根据TCA进行调节的依据。
DS标记域定义为IPv4头部的TOS(Type of Service)字节或IPv6头部的流类型(Traffic Class)字节。如图4所示。其中DSCP(6bit)即为区分服务标记,CU(2bit)在本体系中没有使用,IETF已将它定义为ECN(Explicit Congestion Notification,显式拥塞指示)使用。对于不支持CU域的路由器,当决定所收到的报文的PHB时,将忽略CU的值;对于不支持该域的主机,在发送数据包的时候,将该域的值置零。下行节点则通过识别这个字段,获取信息来处理到达输入端口的数据包,并将它们正确地转发给下一跳的路由器。
区分服务中的分类和调节机制
为了使用户数据流符合SLA和TCA,边界节点要对其进行分类和调节,因而从功能上可以分为两个模块:分类器(classifier)和调节器(conditioner),如图5所示。
分类器根据数据包头部的某些域(如DSCP或MF五元组)对数据包进行分类。目前定义了两种类型的分类器:
行为聚集(Behavior Aggregate,BA)分类器:根据包头的DSCP来对包进行分类。
多域(Multi-Field,MF)分类器:根据包头部中多个域内容的组合来进行分类,如源地址、目标地址、DS域、协议标识、源端口号以及目标端口号等。
从功能上,调节器可分为计量器(meter)、标记器(marker)、整形器(sharper)和丢包器(dropper)。
计量器根据TCA中所规范的业务流要求测量被分类器所选定的业务流的某些实时属性,并将所测量到的数据包的统计信息送往其它的调节功能模块。
标记器设置报文的DS域为一特定的DSCP,并将标记了的包添加到一特定的DS行为聚集中。标记器可以将所有送入到它那儿的包标记为同一个DSCP值,也可以配置成根据计量器的统计信息将其标记为同一PHB组内的PHB所对应的DSCP值。
整形器和丢包器则通过延迟或丢弃业务流中的包使得业务流符合TCA流规范。
随着对网络业务流特性研究的深入发展,调节器的实现技术也日渐成熟,通常的做法是用令牌桶(token bucket)和漏斗桶(leaky bucket)等算法进行适当的组合。近来又提出了一种新的算法:基于时间滑动窗口(Time Slide Windows,TSW)的算法,它是通过计算数据包的平均到来速度来对包进行分类和标记。
在客户端网络与ISP建立的SLA有两种形式:静态SLA和动态SLA。静态SLA根据具体的策略由网络操作员事先确定客户网络所需要的网络资源,并一直为客户端网络保留相应的资源,这样,客户端网络在发送数据流的时候,并不需要向ISP申请网络资源。显然,这种SLA实现简单,但缺乏灵活性,网络资源利用率不高。动态SLA则相反,它提供了较强的灵活性。当客户网络需要发送数据时,它首先向ISP申请网络资源,ISP根据客户请求分配资源,并在边界节点建立起相应的SLA。动态SLA可以使用带宽代理(Bandwidth Broker, BB)(如图6)或者RSVP来实现。
区分服务中的逐跳行为
逐跳行为PHB是一个DS节点调度转发特定流聚集行为的外特性描述,本质上,PHB描述的是单个节点为特定流聚集分配资源的方式。IETF目前已经定义的PHB有:
加速型转发(Expedited Forwarding,EF):可使时延和时延抖动最小并且可以提供最高级的综合QoS
确保型转发(Assured Forwarding,AF):超过流量规划值的数据流,不会按照未超过规划值时那么高的概率传送。这意味着它可以被降级,但是不会被丢弃。
允许丢包的加速型转发EFD:除了EFD允许丢包而EF几乎没有丢包外,EFD与EF的外特性几乎相同。EFD的应用主要是在无线移动网络中。
缺省型转发 BE:相当于传统的极力而为调度转发行为的PHB。
准缺省型转发 LBE:比BE优先级还要低的PHB行为,其作用是在拥塞时有比BE更高的丢包优先级,提高BE的性能。
区分服务的基本服务类型
与IntServ类似,Diff-Serv也定义了三种服务类型:
尽力而为的服务:类似于目前Internet上尽力而为的服务。
奖赏服务(Premium Services,PS):为用户提供低延迟、低抖动、低丢包率和保证带宽的端到端或者网络边界到边界的传输服务。PS是目前区分服务模型中定义的级别最高的服务种类。这种"三低一保证"的服务类似于传统运营商网络的专线业务,因此也称为"虚拟专线"服务。
确保服务(Assured Services,AS):确保服务是从统计上保证用户的带宽,其初衷是在网络拥塞的情况下,也能保证用户有一定量的预约带宽。AS的着眼点是带宽和丢包率,而不太注重延迟和抖动。AS最具吸引力的是其实现机制较为简单,只要采用简单的标记和丢弃机制就能实现IP QoS。在发生拥塞时,确保服务通过控制丢包优先级,提供了比"尽力而为"服务更好的服务。确保服务的基本思路是:
边界路由器对进入DS域的数据包进行标记,预约带宽内的包标为IN(in profile),否则标为OUT(out profile)。
发生拥塞时,核心路由器根据包头的标记决定丢包概率,Out包的丢弃概率大于In包。从而在统计意义上上保证用户的预约带宽。
目前,奖赏服务已经比较成熟、稳定,而确保服务仍然处于发展之中,其焦点主要集中在如何保证聚流之间的个公平性以及聚流内各单流之间的公平性,这主要是由于Internet上数据流的特性引起的。研究表明,现有的确保服务方案并不能真正确保用户得到的服务,因此,如何使得确保服务能够真正起到确保的作用,还有待进一步研究。
关于作者:姜明,计算机专业博士研究生。主要研究方向为网络体系结构、网络QoS。非常高兴能够与广大同行就IP QoS及IPv6协议方面的相关问题进行切磋,欢迎大家对本文多提宝贵意见,我的Email是:jiangmingcc@163.com。
摘自 赛迪网
|