一、引言
近年来,随着互联网(Internet)的迅速发展,Internet已由单一的数据传输网向多业务承载网演进。以前那种以e-mail、文件传输等为主的单纯的数据传输业务已远远不能满足用户的需求,一些实时应用如视频点播(Video On Demand,VOD)、IP电话(Voice Over IP,VOIP)、远程教学不断涌现。这些实时业务的最大特点就是对时延和抖动非常敏感。对于这样的服务质量(QoS)需求,Internet如何才能提供此类业务的QoS保证?
二、增加带宽
伴随着新业务的不断涌现,勿庸置疑,增加带宽将是最为简单和有效的方式。尤其是近年来随着密集波分复用(Dense Wavelength Division Multiplexing,DWDM)技术的出现,带宽的成本大幅度降低,核心网提供10Gbps的速率已不在话下。但是依据闻名的Moore定律,应用对带宽的需求正以指数级速度增长。更为重要的是,从历史的角度来看,带宽的有效性(availability)和带宽的需求之间始终存在着一种滞后一步(lock_step)的关系。也就是说,当有效带宽能满足某一应用的需求时,更大带宽需求的业务又将出现。
由此看来,额外的带宽并不是对实时业务QoS的完整解决方案。有效的带宽治理即带宽的高效利用也是不容忽视的一面。
三、IntServ/RSVP机制和DiffServ机制
在Internet上承载实时业务对IP技术来说是一大挑战。这是因为,Internet是基于IP技术的,而IP网络承载实时应用有两大缺陷。首先,IP技术本身是面向无连接的技术,IP网络提供的业务仅是“尽力而为”的业务,网络本身是不保证传输可靠性的。其次,TCP/IP协议体系中的TCP或UDP协议虽然对于Internet的传统应用可以提供一定的容错和纠错功能,但对于实时业务来说,TCP的重传机制显得苍白无力。抛开TCP建链和确认的时延不说,重传引入的时延对于这些对时延极其敏感的实时业务来说是不能忍受的。而UDP本身就是不可靠的。因此,必须找到一个能够在Internet上提供良好的QoS保证的方法。
多方组织和团体都提出了自己的解决方案,其中最为闻名的是由因特网工程任务组(Internet Engineering Task Force ,IETF)的IntServ 小组和DiffServ小组提出的IntServ/RSVP机制和DiffServ机制。
1. IntServ/RSVP机制
IntServ/RSVP综合服务体系结构模型是IETF IntServ小组于1994年提出的。其基本思想是一个应用要想获得某种服务质量,必须在向网络传送流量之前请求网络为其预留所需资源。这就要求会话开始之前,源端和目的端之间首先要建立一条链路。因此从某种意义上来说,IntServ/RSVP实际上是提供了一种类似于电路级(circuit level)的服务质量,理论上是可以实现完全的端到端QoS。
该模型中定义了三种服务类型:确保业务(Garanteed Service,GS,对带宽、时延、丢包率提供定量的质量保证)、受控负载业务(Controlled_load Service,CS,提供一种网络在欠载情况下的服务)和尽力而为业务(Best Effort,BE,基本没有质量保证)。对于容许型实时业务属于GS,非容许型实时业务属于CS。为了实现上面的服务,IntServ定义了4个功能部件,网络中的每个路由器都要实现这4个功能部件。
数据包分类器(Packet Classifier):根据预制的一些规则,对进入路由器中的分组进行分类。
接入控制器(Admission Control):基于用户和网络达成的网络协议,对用户的访问进行一定的监视和控制,以利于保证双方的共同利益。
分组调度器(Packet Scheduler):基于一些调度算法,对分类的分组队列进行调度。
RSVP Process:资源预留协议,通过信令完成对资源的申请、预定和解除。
RSVP协议采用信令方式完成资源的预留。发送主机首先向接收主机发送PATH路径信息,该消息中包含了描述发送数据流的通信量规约Tspec。路由器接到PATH消息后直接转发给有路由协议决定的下一跳。当接收主机收到PATH消息后以RESV预留消息作为回应。分组所需的服务质量类型及中间节点转发分组所需的优先级参数都包含在RESV消息中。网络的中间节点路由器就以该RESV为依据,为该分组分配链路带宽和缓冲空间,同时维护该分组的状态信息。为了适应网络拓扑路由及QoS要求的变化,RSVP请求及路由器维护的状态信息要做周期性的刷新。至此,预留通路就建立起来了。具有RSVP的结点收到分组,将分组分类,按照RSVP控制通路建立资源预留时的分组分类标准将该分组送到相应的输出队列中,并由转发机制按一定的优先级算法转发出去。
IntServ/RSVP模型是对提高Internet的QoS性能做出的最初尝试。随着基于Web的业务的出现,IntServ/RSVP逐渐暴露出弊端。第一,IntServ模型最初是为了保证视频会议此类长生存期(long_lasting)的实时应用。对于一些随机的突发性实时业务流来说,假如对每一个短暂的会话都启动资源预留就有些得不偿失了。第二,InterServ是典型的per_flow的模型,要求网络中的每个节点维护与每个流相关的状态信息,因而不利于网络的扩容,可扩展性差。但是,对于接近主机处的网络边缘,流量相对较低,IntServ机制将会发挥其特长。
2. DiffServ机制
DiffServ区分服务模型很好地解决了IntServ扩展性问题但机理和IntServ截然不同。DiffServ采用边缘监管、分配和业务优先级的结合,为不同QoS要求的应用分配不同的服务优先级,从而满足不同业务的QoS要求。其基本思想是在网络入口处,根据用户和服务商(Internet Service Provider,ISP)签订的服务等级协定(Service Level Agreement,SLA),为应用的分组分配一个区分服务码点(DiffServ Code Point,DSCP)。该机制重新命名了IPv4报头的TOS域和IPv6包头的TC域,统一定义为DS域。DS被分割为一个六比特的DSCP字段和一个两比特的未用字段(Current Unused,CU)字段。每个DSCP值就对应了一种特定的服务等级。在网络的核心处,路由器就根据该DSCP值来决定分组的逐跳行为(Per Hop Behavior,PHB)。具有相同DSCP值的数据包将接收相同的处理,这些处理构成行为聚合(Behavior Aggragate ,BA)。
DiffServ中提出了DiffServ域的概念。一个DiffServ域由许多路由器组成。处于域边缘的路由器称之为边缘路由器(Edge Router,ER),处于域核心的路由器称之为核心路由器(Core Router,CR)。DiffServ将针对单一流的复杂处理推向网络的边缘,由ER来完成数据包的分类和流量调节;CR不再维护节点的状态信息,仅完成相应的PHB操作。因此,对于这种core-stateless方式的模型来说,具有很好的扩展性和伸缩性。
DiffServ中也定义了三种业务类型:快速转发(EXPedited Forwarding,EF,提供类似专线和租用线的业务,DSCP推荐值为101110);保证转发(Assured Forwarding,AF,提供比besteffort尽量好的业务,分四类,每类又定义了三种不同的丢弃优先级,共有12种推荐的码点);尽力而为业务(Best Effort,BE,DSCP推荐值为000000)。显然,对于实时业务应采用EF类型。
DiffServ良好的伸缩性和易于实现的特点使其成为网络核心处的首选机制。但是,由于IETF 仅仅提出了DiffServ在一个子网域内实现QoS的框架,对于大多数的交互式实时业务来说将无法保证绝对的端到端的QoS。
3. IntServ over DiffServ
为了最大限度地利用两种机制的互补特性,IETF 提出了IntServ over DiffServ机制,试图解决DiffServ的端到端QoS支持。该模型在网络的边缘处采用IntServ/RSVP机制,而在网络的核心处采用DiffServ机制。
对于这种集成模型,要害在于域交界处的处理。这又将包括两个方面:第一是控制面的资源预留,第二是数据面的服务类型映射即如何把一个IntServ服务类型的数据包分类映射为一个DiffServ的PHB。
首先来看资源预留的过程。有两种模式,一种是静态的资源供给,一种是动态的资源供给。在静态模式下,DiffServ域对PATH消息和回传的RESV消息做透明传输。只是RESV消息到达ER1时,将触发接纳控制,以决定DS域能否接收指定的flowspec。在动态模式下,Diffserv域中的每个节点都是标准的IntServ/RSVP节点,这样DiffServ网络是一个能感知RSVP的网络。同时采取一些策略来决定哪些数据包由RSVP处理,哪些数据包由DiffServ处理。但到目前为止,动态的资源供给还没有一个完善的解决方案。
对于服务类型的映射,IntServ中的GS业务可以完全映射为DiffServ中的EF PHB。对于CLS业务可映射为AF PHB。但是由于在DiffServ中AF又分为四类每类又有三种不同的丢包率。所以,需要在BR1处进行分类。可以根据RESV中的flowspec提供的参数漏桶深b和数据流的令牌速率r相比b/r分为四类,每一类和AF类相对应。
四、多业务标签交换MPLS
多协议标签交换(MPLS)最初并不是作为一个QoS的解决方案提出的,而是以一个新的转发机制的角色出现的,来源于思科提出的Tag Switching 结构。其主要思想是将二层交换和三层路由有机结合,将二层的快速转发引入第三层,大大提高了路由器的转发性能。
假如说IntServ和DiffServ是从资源分配角度来保证QoS,那么MPLS更多地则是从优化整体网络性能角度提供了实现QoS的支持,包括面向连接的QoS支持和流量工程两个方面。
1. 面向连接的QoS支持
传统的路由器网络是基于逐跳路由的。也就是说,路由器需要对每一个到达的分组进行分组头分析,然后才决定分组的下一跳;而在MPLS网络中,对分组头的分析检查仅由网络入口处的入口标签边缘路由器(Ingress LER,I-LER)处理。具体来说,分组进入MPLS网络之前,控制层面的路由协议如开放最短路径优先(Open Shortesr Path First,OSPF)建立网络路由表,标记分发协议(Label Division Protocol,LDP)建立到目的网络的标签映射,将网络层的路由信息直接映射到数据链路层的交换路径上,进而建立起网络层上的标记交换路径(Label Switch Parh,LSP,该LSP可以终止于特定相邻节点之间的特定链路上即基于逐跳的,也可以终止于网络出口节点即显示路由)。数据平面上I-LER确定分组所属的转发等价类(Forwarding Equivalent Class,FEC),完成标签的映射和添加。核心处,标记交换路由器(LSR)只需根据标签表切换标签,用出标签替换入标签将分组逐级转发给LSP上的下一跳路由器;网络的出口处由出口标签边缘路由器额(Egress LER,E-LER)移除标签。
由此看来,分组在转发之前就已经有了一条源端到目的端的路径LSP。该LSP类似于ATM中的虚电路,实际它就是发送主机到接收主机的中间节点序列。因此,MPLS实质上是一种面向连接的技术。
2. 流量工程
MPLS提供了一个面向连接的环境,非常有利于流量工程(Traffic Engineering,TE)的实现。所谓的流量工程是指对Internet业务量的测量、建模、描述、对上述信息的利用以及为达到特定的性能指标所使用的各种技术。MPLS 的流量工程侧重于测量和控制。它通过对资源的合理配置,对路由过程的有效控制使得网络资源可以得到最优的利用,在网络的运行中使得LSP能够自动地绕开网络故障、网络拥塞与网络瓶颈。从而有利地缓解了由于某些资源过度使用而有些资源未被充分使用造成的延时,利于实现实时业务对延时和抖动的QoS要求。
在MPLS流量工程中一个重要技术就是约束路由也叫“QoS路由”。它是一种命令驱动并具有资源预留能力的路由算法,能够和现有的Internet中的拓扑驱动的、逐跳的内部网关协议(Internal Gate Protocol,IGP)共存。它可以根据多个约束条件(可以是QoS约束条件也可以是其他策略性的约束条件)计算出所有的可能路径并根据一定的优选策略选出一条最优的路径,实现网络性能的优化。
目前实现MPLS流量工程的控制协议有基于约束路由的标记分发协议CR-LDP和RSVP扩展。CR-LDP主要侧重于对带宽的控制;而RSVP扩展对标准的RSVP做了扩展:采用基于各种约束条件的显示路由,其信令过程也不再面向各个主机之间,而是面向I-LER和E-LER之间,状态信息的维护不再对单个的主机到主机的数据流而是对具有相同业务级别的一组数据流流量中继(Trffic Trunk,TT)。RSVP扩展侧重于对时延和抖动变化的控制,适用于实时业务。
3. DiffServ over MPLS
MPLS将面向连接引入到无连接的IP网络层上,而且MPLS和DiffServ的相似性,决定了用MPLS网来承载DiffServ的可行性。用MPLS来承载DiffServ,改变了DiffServ无连接的PHB分组转发方式,为实现端到端的QoS提供了基础平台。
DiffServ over MPLS中的I-LER不仅完成普通MPLS边界路由器的功能,同时融合了DiffServ中的ER职能,完成标签的封装和流的类聚形成BA,并将BA映射到LSP上,完成对聚合流的监管和调度;LSR完成标签转发的同时,还需要对分组进行调度、丢弃和整形。由此看来,DiffServ over MPLS的要害是如何实现标记到PHB的映射。
对于标记到PHB的映射,RFC3270中提供了两种映射方法,分别为L-LSP(Label-Infered-PSC LSP)和E-LSP(EXP-Infered-PSC LSP)。所谓的PSC(PHB Ssheduling Class)是指一类具有相同队列处理要求的PHB。对于L-LSP,使用标记来标志各种PSC,而使用标记分组头中的其他部分如EXP来标志分组的丢弃优先级;对于E-LSP,标记仅执行标准的MPLS功能,有标记封装中的其他部分来标志各种PSC和丢弃优先级。例如使用EXP字段的三个比特来标记各种PSC和丢弃优先级的组合。但是由于EXP只有3位,从而限制了可以支持的PHB类型。在扩展的E-LSP中,使用EXP字段来标志某一分组为DiffServ分组,同时对标记范围进行分配,每一PHB都将获得一定数量的标记。最后使用标记值字段的最后三个比特与EXP字段结合相结合,从而和标准的6位DSCP编码相对应。
五、结束语
Internet中蕴藏的商业利用价值和ISP的利益驱动使得IP QoS的解决成为或者将成为Internet与IP网络发展的历史转折点。在众多的解决机制中,MPLS是目前业界普遍看好的解决未来IP骨干网络中QoS问题的基本技术。但是IP QoS的实现本身需要多层次和多平面的结合,各种机制的结合成为现今IP QoS实现和研究的重点。