计算机网络最初是为传送数据信息而设计,传统IP网络认为所有的主机都是平等的,从而提供“尽力而为”(best-effort)服务和每一个分组独立选择路由的策略,这些对传送数据信息是合适的。由于IP业务将成为未来电信业务的主体,1999年ITU-T确定以IP为核心的电信网演进方向:下一代网络(NGN)将是一个以IP为核心,可以支持语音、数据和多媒体业务的融合的全业务网络。但是传统IP网络提供的best-effort服务,无法保证时延、时延抖动、分组丢失率等对于电信级业务来说至关重要的服务质量(QoS:quality of service)。20世纪90年代前期占主导地位的ATM虽然有一整套完整的QoS机制,但是它基于面向连接的控制技术,不能简单地移植到无连接的IP网络中。因此,多业务IP网络的QoS实现技术的研究是部署NGN的一项极其重要和具有挑战性的重要内容,成为整个信息业界的热点研究课题。
1、QoS概念
ITU-T在建议书E.800中给出QoS定义[1]:QoS是服务性能的总效果,该效果决定了一个用户对服务的满意程度。因此在最简单的意义上,有QoS的服务就是能够满足用户的应用需求的服务。从技术角度来看,QoS是指网络系统各种性能尺度的综合,主要包括可提供的带宽、丢包率、差错率、时延和抖动、接通率等方面。具体应用不同,对QoS各项指标的要求也不同。比如:长文件传输要求传输速率高且分组丢失低,但对时延和抖动不是太敏感;而视频会议不仅要求传输速率高,而且对时延和抖动也很敏感。
保证QoS,实质上就是要提高网络的传输条件。如高质量的语音通信,就是依赖于带宽、时延和抖动这3个要素。一般而言,网络提供QoS保证的途径有:过度配置、优先级、队列、避免拥塞和传输整形等。
1)过度配置:这是最简单的一种QoS途径,通常应用在局域网,是靠提供大量带宽来满足用户的业务需求。广域网中,由于带宽成本,过度建设这一方法目前还不可能占主导地位。
2)优先级:该方法是对每个IP分组的级别进行分类,不同级别的分组在网络进行带宽分配、通过顺序、时延抖动、丢包等方面的处理时,所受到的待遇是不同的,这样可以确保诸如语音、图像等对实时性要求比较高的分组享受高的级别,从而提高其传输的质量。
3)队列:队列和队列调度算法是在已经应用了优先级的前提下采用的一种QoS方案。队列实际上是路由器或交换机内部的一块缓冲区,用来存储带有优先级别的IP分组。队列调度算法则用来确定存储在队列中的分组的发送顺序,为优先级高的分组提供更好的服务。
4)避免拥塞:拥塞控制与避免机制是QoS的另一个重要方面。拥塞控制使在网络在负载达到某一限度时降低传输流速度。但拥塞控制本身并不能保证QoS。只有与拥塞避免功能同时存在时,拥塞控制才能发挥作用。随机早期检测(RED:random early detection)[2]技术是标准的拥塞避免方法。每当队列满时,RED就随机地丢弃一些分组,使队列不出现溢出。
5)传输整形:传输整形是一种处理和修改分组长度以保证QoS的技术,例如分组分段。ATM网络提供高QoS的原因之一就是它采用了固定长度的短信元。任何信元可以被延时的上限是传输一个信元所需的时间。
2、QoS业务模型
具有QoS保证的网络,其QoS系统应是将优先级、队列、消除拥塞等几种技术集成在一起的整体,形成一种基于策略的管理系统,称为业务模型。Internet工程任务组(IETF),已经提出了几种改善QoS的业务模型,其中包括综合业务(IntServ)[3],区分业务(DiffServ)[4]和多协议标签交换(MPLS:multiprotocol label switching)[5]。
2.1 综合业务
综合业务(IntServ)是根据每个IP流的QoS等级的精确描述,由具有资源预留协议(RSVP)[6]功能的路由器中的RSVP和流的准入控制支持IP的QoS分类。在IntServ流中,除保留了原有的尽力传送业务(BS:best-effort service)之外,新增了2类业务:保证业务(GS:guaranteed service)和受控业务(CLS:controlled load service)。对于GS,流的最大排队时延是受到控制的。CLS可以使应用得到比BS更加可靠的服务。
一旦特定的业务流被分配给某类通信,一个“PATH”消息将被向前发送直至目的地址,以便确定网络是否具有支持该特定业务所必需的足够资源(如带宽、缓冲空间等)。如果发现路径上所有设备都可以提供所需资源,接收端则生成一个“RESV”消息返回给发送端,通知发送端可以开始传输数据。这一过程,就是资源预留协议。
IntServ的主要优点是它较好地适应了不同应用的QoS要求。例如GS可满足关键任务应用,而适应性应用可使用CLS,其它弹性应用可使用BS。IntServ的主要缺陷为控制颗粒过细(针对单个会话流)导致控制开销很大,并且网内的每一节点都支持IntServ。因此IntServ的扩展性能差,没有在核心网络中得到实际应用。
2.2 区分业务
区分业务(DiffServ)实际上就是给业务分级,它在用户和业务网的接口处分级,业务的分级是基于每个数据分组的不同标签。同一级别的业务在该网络中会被聚合起来统一发送,保证相同的延迟、传输速率、抖动等服务质量参数。
DiffServ的一个重要概念是在转发分组时体现服务水平的每跳行为(PHB:per hop behaviors)。DiffServ重新定义了IPv4中的ToS和IPv6中的TC,称作DS字段,DS字段的取值称为DSCP(DiffServ code point)。不同的DSCP取值对应于不同的PHB。目前,IETF已定义了两种PHB:加速转发PHB(EF PHB:expedited forwarding PHB)和可确定的转发PHB组(AF PHB:assured forwarding PHB)。EF指明离开一个路由器的流量的数据率必须等于或大于某一数值,可以用来在Diffserv域中建立具有低丢失率、低时延、低时延抖动、确保带宽的端到端业务。AF比较灵活,可以自行定义特定的服务类别。
DiffServ的控制颗粒只是少数几类聚合业务流,无需专门的控制协议。业务流分类和汇聚工作在网络边缘由边缘路由器完成,核心路由器可根据业务流的标记将它们发送到目的端而不必检查每个分组头的细节因而工作快捷。基于其良好的可扩展性,DiffServ已成为IP网络QoS的主要技术。
2.3 MPLS
在传统的IP网络中,分组每到达一个路由器,都必须查找路由表,并按照“最长前缀匹配”的原则找到下一跳的IP地址。当网络很大时,查找含有大量项目的路由表需要很大的开销。MPLS使用很简单的转发算法对打上固定标记的分组用硬件进行转发,这样转发分组时不再上升到第三层,而是根据第二层的标记用硬件进行转发。MPLS可以使用多种链路层协议。
支持MPLS功能的路由器称为标记交换路由器(LSR:label switching router),MPLS域中的路由器都必须是LSR,LSR需要使用路由选择功能构造分组转发表,然后用标志交换功能对分组进行快速转发。MPLS域中的各LSR使用专门的标记分配协议(LDP:label distribution protocol)交换分组,并找出和特定标志相对应的标记交换路径(LSP:label switched path)。边缘入口LSR对分组打上标记,以后所有的LSR都按照标记进行转发,每经过一个核心LSR,要换一个新的标记。当分组离开MPLS域时,边缘出口LSR就将分组的标志去除。以后就按照一般分组转发的方法进行转发。上述的这种由边缘入口LSR来确定分组在MPLS域中的转发路径称为显示路由选择。
MPLS的主要特点是:支持面向连接的服务质量;支持流量工程,平衡网络负载;支持多种网络协议。MPLS技术利用显式路由功能大大增强了在IP网络中实施流量工程的能力,MPLS流量工程可以根据流的服务质量需求选择优化的路由,也能在MPLS域内进行负荷均衡,因而在宏观上提供了保障服务质量的基础。
由于MPLS关于业务流聚合、边缘路由器/核心路由器划分等概念和DiffServ极为相似,因此在MPLS网络中部署DiffServ将是核心IP网络的主流技术。
3、呼叫准入控制
由于IntServ存在可扩展性问题,一般应用于网络边缘的接入网部分;而DiffServ是基于业务类,可扩展性好,可以应用于核心网。IntServ和DiffServ网络的互通提供了从接入网到核心网的QoS保障。
在这种IntServ和DiffServ网络的互通方式中,位于接入网和核心网之间的互联设备ED(edge device)[7]起到很关键的作用。入口ED接受到来自源端RSVP的PATH消息,然后存储相关内容并向目的端发送。核心网中的DiffServ路由器忽略这些RSVP的消息并透明转发。当PATH消息到达出口ED时,出口ED将其发送到IntServ域并最终到达目的端,如果判断IntServ域的网络资源满足相应的QoS要求,目的端向源端回送RESV消息。同样返回的RESV消息进入出口ED并透明穿越DiffServ域进而到达入口ED,这时入口ED将要根据DiffServ域的网络资源使用情况进行呼叫准入控制(CAC:call admission control),如果准入,入口ED将把该RESV消息继续通过IntServ域发送至源端。
呼叫准入控制的基本目的是在确保准入业务QoS的前提下,通过动态资源共享,达到尽可能高的网络资源利用率。其基本思路是实时计算可用网络资源,判断新流加入后其QoS指标能否满足,而且先前入网业务流的QoS是否不受影响,据此作出准入决策。准入控制算法还要尽可能地提高网络资源的利用率。
呼叫准入控制一般有3种方式:基于申明参数的准入控制(DBAC:declaration based admission control)[8],基于测量的准入控制(MBAC:measurement based admission control)[9]和端点准入控制(EAC:endpoint admission control)[10]。对于DBAC,它在基于控制算法能获知精确的流量特性的基础上,如果实际流量与申明的流量参数不符合,则会大大降低控制算法的性能,从而破坏对业务的QoS保证。MBAC事实上将由用户完成的流量描述功能转交给了网络,网络的控制模块实时探测网络的负荷状况。这样,用户的流量描述可以更简单,也不会造成资源的过量分配。但是这会带来测量误差、系统动态性和测量开销等方面的问题。EAC是由端点主机或应用程序发送探测包来获知网络状况,并据此作出准入决策,这种方法是基于一种不精确的测量,不能提供严格的端到端的QoS保证。此外,大量的探测包还可能会导致网络崩溃,所以EAC不是一种有效的准入控制算法。
准入控制算法至少需要获知3个参数:请求的资源、可控制的网络资源和当前的网络可用资源总量。请求的资源可以用令牌桶参数、峰值速率和QoS性能参数来描述,可控制的资源总量由链路物理容量和网络配置算法确定。等效带宽是描述当前网络可用资源的有效方法[11],而等效带宽计算公式中的参数又和网络的实时负荷相关。
我们教研室提出一种新型的基于模糊逻辑的多业务呼叫准入控制算法[12]:该算法跟踪网络的实时负荷情况,动态地调整带宽计算公式的参数,能够相对精确地计算等效带宽,从而使准入更加准确;并且将基于参数模型和基于测量的两种技术结合起来,可以克服单纯依赖参数模型或测量数据进行呼叫准入控制的缺陷。仿真证实该算法在满足业务QoS的前提下,获得较高的网络资源利用率,并且能自适应地根据网络业务流量的动态变化调整控制决策。
4、带宽资源管理
DiffServ只能提供相对优先级的QoS。为了保证确定的QoS性能要求,DiffServ域必须增设网络带宽资源分配和网络流量控制功能,为此引入了网络资源管理器的概念。在IETF标准中,称之为带宽代理(BB:bandwidth broker),其功能是管理和控制DiffServ域的带宽资源,包括域内和域间的资源管理和流量控制。
但是,迄今为止IETF只考虑集中式BB结构,即每个域配置一个BB,负责该域的资源分配和管理。这种集中控制模式很难适应大规模网络的需求,其主要问题是:
1)网络边缘接受的所有资源请求都需转交集中设置的BB处理,由此将显著增加网络负荷;
2)全域资源请求由单一BB处理会形成处理瓶颈,难以满足会话型和交互型业务流的实时性要求。
为此,有关研究人员提出了不同形式的分布式BB控制模式,其基本思想是由集中设置的BB(cBB:central BB)维护全域的拓扑和资源信息,由位于边缘的众多的分布式BB(eBB:edge BB)维护与其相关的路径信息。对于边缘到达的资源请求,直接由eBB进行处理,只有当eBB资源不够时,才会向cBB请求追加资源,cBB负责对全域资源进行动态优化分配控制。
文献[13]给出了兼顾资源利用率和计算开销的量化分配资源的思路,即当eBB提出追加资源请求时,cBB并不是根据请求的数量精确地追加分配,而是分配规定大小的一块资源给eBB,以避免频繁的资源追加请求,资源使用完毕后立即释放。这样可有效地减少处理开销。但是存在2个问题:
1)cBB量化分配的资源块的大小没有考虑网络当前负荷状态,可能导致资源调配的不公平性;
2)追加分配的资源在使用后立即释放,而没有考虑后续到达请求的趋势,可能导致资源追加频度和处理开销的增加。
我们教研室针对上述2个问题已经提出了新型的基于模糊逻辑的动态资源分配算法,其特点是:根据网络实时负荷状态进行动态资源块分和是基于趋势概率分析的资源追加请求和滞后释放。仿真结果表明,所提出的算法解决了分布式BB结构尚未解决的技术问题,具有良好的性能。
5、结束语
在综合国内外专家学者和研究机构对IP QoS研究的基础上,我们对此进行的大量的研究工作,认为应在接入网部分,采用IntServ/RSVP的模式提供该部分的QoS;在核心网部分,采用DiffServ over MPLS的模式提供核心网络的QoS;对呼叫进行准入控制是保证业务流QoS的重要手段;两级BB结构是实现资源管理和流量控制的有效方式。