IP QoS问题的争执由来已久,反对者认为资源管理和QoS保证机制过于复杂,在三层以上引入管理模块会导致IP网的性价比下降,而且光纤和其他硬件技术的发展为用户提供了用之不竭的网络资源,因此采用现有的尽力而为服务模式就可以满足未来的用户需求。IP QoS的支持者则认为,流量的增长比带宽增长的速度快,而且最大限度利用带宽是数据传输的本性,在一个网络节点上使用容量很大的缓存或者链路,无法从根本上解决网络阻塞的问题,只是转移了资源与需求之间的矛盾。在两种观点的争论中,用户,尤其是能够左右一项技术发展潜力的超级用户,往往倾向于后者。
IETF已经起草了很多有关保证QoS的建议并标准化了很多服务模型和机制。其中比较常见的有:综合服务(Integrated Services——IntServ)/资源预留模型,即IntServ/RSVP、区分服务模型(Differen-tiated Services——DiffServ)、MPLS流量工程和约束路由等。然而,无论单独采用这些机制中的哪一种,都不能提供IP QoS的全面解决方案,因此人们开始研究实现他们之间的优势互补的可行性和可靠性。其中IntServ/RSVP和DiffServ由于技术体系完整,结合后能够相互取长补短,实现WAN的分级服务等特点,逐渐受到研究人员的重视。
IntServ/RSVP模型及其工作原理
在当前,一谈到资源预留就有两种不同的声音,总的说来,“互联网是否是共享性网络”和“用户之间是否平等”是支持和反对资源预留理念的争论焦点。
反对资源预留的理由有:
* 在网络层之上建立任何一种IP QoS连接机制都是难以管理的;
* 光纤和WDM技术将会使网络带宽相当充裕和廉价,资源预留或其他扩展所带来的复杂性成本远远高于利用大带宽自动保证QoS的方式;
* 具有预留能力的网络只有在阻塞率较低的情况下才能提供令人满意的服务。而在同样的情况下,尽力而为的网络可以提供几乎与具备预留能力的网络一样好的服务。
支持资源预留提供不同分级服务的一方也有充足的理由:
* ISP可以为付费高的用户提供高质量的服务。用户和网络之间的服务合同明确了用户数据流的特点及相应的QoS承诺,有利于网络建设的良性循环。
* 高可靠性多媒体应用比现在的互联网所提供的尽力而为服务有更高的质量服务要求;尤其发生网络阻塞时,应有相对多的资源预留给级别高、实时性强的业务以保证服务质量。
从目前的情况来看,支持资源预留的观点和支持IP QoS的看法都受到业界和用户的欢迎,因此,IETF和其他研究机构在不断更新实现资源预留的机制和技术。RSVP是第一个标准QoS的信令协议,是基于IP协议的资源预留协议,用于在端到端之间传递QoS请求。它本身不完成QoS,而是通过其他队列管理等技术实现的。必须注意的是,RSVP不是一个路由协议,它只是完成按照报文流的路径为报文申请资源预留。
IntServ模型的基本思想是“所有的业务流相关状态信息是在端系统上”。它所使用的资源预留协议是一种信令协议。工作时,发送端给接收端发送一个PATH信息,以指定通信的特性。沿途的每个中间路由器把PATH信息转发给由路由协议决定的下一个节点。当收到一个PATH信息时,接收端做出的反应是用一个RESV信息为该业务流请求资源,包括带宽、时延等。沿途的每个中间路由器可以拒绝或接受RESV信息请求。如果请求不符合要求(合同),路由器将发送一个差错信息给接收端,并且中断信令的处理过程。如果请求被接受,就按照事先的约定,为该流分配链路带宽和缓冲区空间,并且把相关的业务流状态信息装入路由器中。网络在传送过程中为每一个流(flow,由两端的IP地址、端口号、协议号决定)维护状态。同时,基于这个状态执行报文的分类、流量监管、排队调度等。
用户通过IntServ/RSVP协议向网络请求满足特殊服务质量要求的缓存和带宽;中间节点利用RSVP信令在数据传输通路上建立起资源预留并维护该通路,以实现相应的服务质量。
根据RSVP的预留资源占所有资源的比例,IntServ模型定义了几种服务类型:
* 有保障的服务(Guaranteed Services)[RFC 2212]:对带宽、 时延、分组丢失率提供定量的要求和质量保证措施,如VoIP应用建议可以预留10M带宽和小于1s的时延。
* 可控负载服务(Controlled-load Services)[RFC2211]:在网络负荷较大的情况下所能够提供的近似于没有过载时的服务。
* 尽力而为的服务(Best-Effort)和当前互联网向多数用户提供的服务机制类似,没有任何可以控制的质量保证。
IntServ/RSVP模型的主要优点有:
* 能够提供有保证的QoS。因为RSVP运行在从源端到目的端的每个路由器上,因此用户可以预先购买需要的资源,由ISP负责监视每一个业务流的运行并随时在当前网络节点终止非法的资源占用。
* RSVP在源和目的地之间可以使用现有的路由协议决定流的通路。RSVP使用IP包承载,使用“软状态”的概念,通过周期性的重传PATH和RESV信息并分析,对网络拓扑的变化做出反应。即对原有路由协议没有影响。
* 支持一个源到一个目的地(unicast)和一个源到多个目的地(multicast)的QoS服务。
缺点:
* 对现有路由器的改造十分复杂。由于需要进行端到端的资源预留,必须要求从发送到接收之间所有路由器都支持RSVP和许可控制协议,同时每个路由器还要花费大量的资源来维护和更新数据库(如链路状态数据库)。
* IntServ只支持单个微流(micro-flow),但是,由于数目过多,对骨干网的处理能力是巨大的考验。
* 伸缩性差,在WAN中,各种各样的子网会不断增多,并且随着流数目的增加,状态信息的数量成比例上升,重传PATH和RESV信息会占用大量的路由器存储空间和处理开销。
* 该模型不适合于短生存期的流。在IntServ中,RSVP进行的资源预留是单向的,因此必须对其规定两个方向的资源预留,从而增加网络开销。在短生存期的流占大多数的网络中,采用IntServ就得不偿失了。
DiffServ及其工作原理
DiffServ是一个起源于IntServ,但相对简单、粗划分的控制系统。它取代了IP服务类型(TOS)字段改名为DS,并用它承载IP包服务所要求的信息,是严格意义上的三层技术,不涉及低层的传输技术。区分业务主要通过两个机制来完成不同QoS业务要求的分类: DS标记和一个包转发处理库的集合——PHB(Per-Hop-Behavior每跳行为)。通过对一个包DS字段的不同标记,以及基于DS字段的处理,就能够产生一些不同的服务级别。
IP包头中的区分服务标记字段是DS区域的边缘节点和核心节点之间传递流汇聚信息的媒介,是连接边界的传输分类和调节机制与内部PHB的桥梁。其中CU(Currently Unused)未定义。
DiffServ的工作流程如下:用户会事先与他的ISP签定一个服务等级协议(Service Level Agreement——SLA),明确所支持的业务级别以及在每个业务级别中所允许的业务量。它可以是静态的,也可以是动态的。静态SLA需要定期协商,动态SLA的客户用某种信令协议(如RSVP)请求所要求的服务(注意RSVP并非是DiffServ中的一部分,只是二者可以结合使用)。用户可以标记自己的DS编码标记(Differen-tiated Services CodePoint——DSCP)以指定QoS的服务,也可以让边缘路由器根据多字段MF(MultiField)分类来标记。
在ISP的入口,包被分类、计量、标记,也可能被整形。在边缘路由器,所有的分类和整形规则均依据SLA,并按照SLA分为不同的行为聚合BA(Behavior Aggregation),每个行为聚合都由DS编码点标记。这些操作所需要的缓冲空间也依据SLA确定。在DiffServ的核心路由器中经过粗颗粒化的数据流进行调度分配路由。当一个包从一个域进入另一个域时,它的DSCP可能会被重新标记,这由两个域之间的SLA确定。
Diffserv模型完全不同于Intserv模型,其优点是:
* 层次简单,伸缩性较好:DiffServ工作范围分为两个层次:DS域和DS区。DS标记只是规定了有限数量的业务级别,状态信息的数量正比于业务级别,而不是流的数量。
* 便于实现:只在网络的边界上才需要复杂的分类、标记、管制和整形操作。ISP核心路由器只需要实现行为聚集(BA)的分类,因此实现和部署区分、分级都比较容易。
* 不影响路由:DiffServ的节点提供服务的手段只限于队列调度和缓冲管理,并不涉及路由选择。
但是,DiffServ仍然还有许多问题亟待解决,比如,DiffServ体系中是否能够实现“微公平性”就是一个值得重点讨论的问题。所谓“微公平性”是指在DiffServ域中,属于同一个流聚集中的每一个分流是否能享受相同的待遇,这种微公平性不仅在资源充足时能够表现出来,更重要的是,能否在有额外资源或者资源总量不足时,各个微流是否能够按照事先约定的等级获得相应的按比例升级或者降级服务。
Diffserv和Intserv优势互补,提供IP QoS保证
Intserv模型中的RSVP可为数据流提供良好带宽保证,而DiffServ则不需要信令,在发送报文前,不需要通知路由器,网络也不必为每个流维护状态,它只根据报文中规定的QoS来提供特定的服务。并且,它不像IntServ那样对每个流都进行QoS控制,而是对流聚合后的每一类进行QoS控制,它只是对数据流简单加标记进行优先级分类。从对路由器的要求来说,RSVP比DiffServ更复杂,因此RSVP不适用于骨干网路由器。
Diffserv和Intserv相结合为WAN提供全局的分级服务方案。用户端主机使用RSVP的粗粒度请求(带宽、抖动门限等),在骨干网入口的带宽代理路由器可以将RSVP“预约”映射为用DS位指示的服务分类;在骨干网上采用DiffServ对包头中规定的QoS进行资源分配;在骨干网的输出端,RSVP再次被利用,直至终点。从而最终实现了在输入端以客户为基础进行流量调节,以确保服务水平。
在WAN中使用的是区分型业务模型,而LAN用的是IntServ和DiffServ模型的混合形式。在实现IntServ和DiffServ的互通中,需要解决RSVP在DiffServ域中如何处理,IntServ支持的业务与DiffServ支持的PHB之间的映射这两个主要问题。IETF建议了两种互通方式来保证端到端的QoS。一种方法是将综合服务覆盖在DiffServ网上,RSVP信令完全透明地通过;另外一种方法是简单的并行处理,即DiffServ域参与RSVP的协议处理:DiffServ网中的每个节点可能也是具有RSVP功能的,采取一些策略决定哪些包用RSVP,哪些用DiffServ处理。相比而言,前一种方法实现简单,保持了DiffServ的“原貌”,但是却造成DiffServ域中的资源浪费;后者实现起来过于复杂,比较适用于小型网络。
DiffServ支持的PHB有确保转发AF PHB和迅速转发EF PHB,EF PHB表示任何数据流超过由本地策略确定的流量规划值时,将被丢弃;AF PHB 表示超过流量规划值的数据流不会按照未超过规划值时那么高的概率传送,这意味着它可能降级,但是不会被丢弃。
IntServ和DiffServ能为用户提供统一服务。它们之间的转换关系是:IntServ中的确保服务在DiffServ中映射为EF PHB;IntServ中的可控服务在DiffServ中转换为AF PHB。
摘自《通讯世界》2002.4