计算机网络最初是为传送数据信息而设计,传统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网络的主流技术。