1 引言
QoS(Quality of Service)即服务质量是一个综合指标,用于衡量使用一个服务的满足程度。随着Internet规模的不断增长,ip网上出现了大量的实时业务。由于实时业务对网络的传输延时、延时抖动等特性较为敏感,因此这些实时业务的出现暴露了IP网络技术的两个重要缺陷:一个是传统IP路由技术的吞吐量不高,这可以随着ASIC技术的进步,通过设计专用硬件来解决;另一个就是传统IP没有服务质量QoS保证,这与计算机网络产生之初只是为传输简单的数据业务,因而采用面向无连接的服务有关。IP网络不能保证业务特定的QoS要求已经成为IP网络向宽带综合服务网络发展的巨大障碍。有人提出可以用增大带宽来解决QoS问题,然而由于应用的需求是无止境的,因此不管网络有多大的带宽都有可能耗尽,所以这种方法并不十分可行。因此如何解决IP网络的QoS要求,以使网络能够灵活地根据业务的具体特点提供给客户满足的服务,是IP业界亟待解决的问题。在这种情况下,各个研究团体纷纷开始组织大规模的QoS研究,一些大的通信厂商也联合成立了QoS论坛,协商各种QoS技术标准的实施方案。在当前的网络环境中,QoS的研究内容主要体现在确保实时业务的通信质量这一方面。
2 QoS技术的分类
Qos技术可分为保证型和尽力型两种。保证型的QoS在终端双方通信之前先要建立连接,确保通信过程中的网络带宽,如ATM业务类型、IP网络中的RSVP。一旦连接建立,通信中所需的带宽就能保证,与连接相关的应答时间、时延要求也能保证。假如网络不能提供所需的带宽,它就会拒绝建立连接。尽力型的QoS技术不能确保带宽,通常用在非连接型通信中,例如在IEEE802.1p/Q的标记帧或IP分组头中的TOS域有3位的优先级,供LAN交换机或路由器进行优先级控制,由于采用这种方法不能在通信中确保带宽只是按优先级顺序进行交换或转发,因此也称为COS(Class of Service)以区别能保证带宽的狭义的QoS技术。
3 IETF建议的QoS技术方案介绍
IETF建议的QoS技术方案主要有:综合服务/资源预留、差分服务、多协议标记交换、流量工程和基于约束的寻路。
综合服务模型(Int-serv:Integrated service)的主要特征就是资源预留,它使用RSVP作为信令协议来建立通道和进行资源预留。差分服务(Diff-Serv:Differentiated Services)通过给分组打上不同的标记,把分组分成不同的类别,对不同类别的分组PRotocolLabelSwitching)是一种转发方案,分组在进入MPLS域时被赋予一个标签,以后就根据这个标签对分组流进行分类、转发、服务。流量工程(TE:traffic engineering)的目标是让网络上的业务流量更加均衡。基于约束的寻路要解决的是根据带宽和延时要求等约束条件寻找一条合适的路径。
3.1 综合服务模型
综合服务模型在RFC(Request for Comments)1633中进行了定义。它的基本思想是将RSVP作为Int-Serv结构中的主要信令协议,“所有的流相关状态信息应该是在端系统上”,它基于每个流提供端到端的保证或是受控负载的服务。Int-Serv框架使IP网络能够提供具有QoS的传输,以用于对QoS要求较为严格的实时业务(声音/视频)。Int-Serv使用一种类似ATM的SVC的方法,它在发送方和接收方之间用RSVP作为每个流的信令。RSVP信息跨越整个网络,假定从接收方到发送方之间沿途的每个路由器都要为每一个要求QoS的数据流预留资源。路径沿途的各路由器包括核心路由器必须为RSVP数据流维护软状态。
为了实现上面的服务,Int-Serv定义了4个功能部件,网络中的每个路由器皆需要实现这4个部件。
(1)RSVP(RFC2205):资源预留协议(RSVP:Resource Reservation Protocol),它是Internet上的信令协议。通过RSVP,用户可以给每个业务流(或连接)申请资源预留,要预留的资源可能包括缓冲区及带宽的大小。这种预留需要在路径上的每一跳都要进行,这样才能提供端到端的QoS保证。RSVP是单向的预留,适用于点到点以及点到多点的通信环境。
图1示出了RSVP的工作机理。首先,发送方应该向接收方发送一个RSVP信息。RSVP信息同其他IP包一样通过各个路由器到达目的站点;接收端接收到发送端发送的路径信息之后,由接收端逆向发起资源预留的过程;资源预留信息沿着原来信息包相反的方向对沿途的路由器进行逐个资源预留。
如图1所示,假设一个应用需要预留2Mbps的带宽,则资源预留信息逐个询问沿途的路由器,其现有资源是否可以完全满足该应用数据流的要求。假如资源预留信息成功地回到发送方,则发送方就可以成功地在这条已经预留资源的路径上发送应用数据了;否则,应用将无法进行。
(2)访问控制(Admission Control):它基于用户和网络达成的服务协议,对用户的访问进行一定的监视和控制,有利于保证双方的共同利益。
(3)分类器(Classifier):根据预置的一些规则,它对进入路由器的每一个分组进行分类。分组经过分类以后被放到不同的队列中等待接收服务。这方面的技术还不很成熟,是一个有待研究的领域。
(4)队伍调度器(Scheduler):它主要是基于一定的调度算法对分类后的分组队列进行调度服务。这方面的技术目前已比较成熟,常见的调度算法有WFQ、WF2Q、SCFQ、VC、MD-SCFQ、WRR等。
Int-Serv定义了三种业务类型:
•有保证的业务(Guaranteed):保证带宽、限制延迟、无丢包。
•控制负载的业务(Controlled Load):在一个负载较轻的网络中实现类似尽力而为的业务。
•尽力而为的业务(Best Effort):类似于Internet在多种负载环境(由轻到重)提供的尽力而为的业务。
Int-Serv的优点是它具有很好的QoS保证,使用RSVP的软状态特性可以支持网络状态的动态改变与组播业务中组员的动态加入,同时利用RSVPPATH与RESV的刷新,还可以判定网络中相邻节点的产生与退出节点,并实现网络资源的有效分配。
Int-Serv存在的问题一是网络的扩展性不好。一方面由于Int-Serv下的预留状态住处是与业务流的个数成正比,这使得路由器的负担会随着网络的扩大、业务流的增加而加重。另一方面资源预留协议还要求沿途的每个路由器为每一个数据流都维持一个“软状态(Per-flowsoftstate)”。这无疑也限制了这种结构的可扩展性,因为每个路由器的内存有限,可以保存的软状态信息都是有限的。其二是Int-Serv需要进行端到端的资源预留,必须要求从发送者到接收者之间的所有路由器都支持所实施的信令协议,因此所有路由器必须实现RSVP、许可控制、MF(Multi-Field)分类和包调度,这对路由器的实现要求太高。其三是Int-Serv还有一个目前很难解决的问题,那就是资源预留和路由协议之间的矛盾。
此外,如何为资源预留申请授权并确定优先权也是Int-Serv结构本身很难克服的问题。
3.2 差分服务模型
差分服务模型的基本思想是可以根据预先确定的规则对数据流进行分类,以便将多种应用数据流综合为有限的几种数据流等级。差分服务是由综合服务发展而来的,它采用了IETF的基于RSVP的服务分类标准,抛弃了分组流沿路节点上的资源预留。差分服务将会有效地取代跨越大范围的RSVP的使用。差分服务区域的主要成员有:核心路由器、边缘路由器、资源控制器。在差分服务中,网络的边缘设备对每个分组进行分类、标记DS域,用DS域来携带IP分组对服务的需求信息。在网络的核心节点上,路由器根据分组头上的DS码点选择码点所对应的转发处理。资源控制器配置了治理规则,为客户分配资源,它可以通过服务级别协定SLA(Service LevelAgreement)与客户进行相互协调以分享规定的带宽。
IPQoS的业务区分结构使用IPv4报头中的业务类型(ToS)字段,并将8位ToS字段重新命名,作为DS字段,其中6位可供目前使用,其余2位以备将来使用。该字段可以按照预先确定好的规则加以定义,使下行节点通过识别这个字段,获取足够的信息来处理到达输入端口的数据包,并将它们正确地转发给下一跳的路由器。这里需要注重的是,在IPv4网中所定义的ToS字段与在Diff-Serv中的DS字段不同。ToS字段的定义如图2所示。
Diff-Serv将整个网络分成若干个域。一个Diff-Serv域由一系列支持Diff-Serv机制的节点构成。在Diff-Serv域中,节点大致分为以下两类:边缘路由器和内部路由器。其中边缘路由器根据数据流的方向分为入口边缘路由器和出口边缘路由器。在入口处设有机制一件是用户是否遵守业务等级协定(SLA),分类机制以标志输入的每个业务包,对每个IP包指定一个类型以标志DSCP(Diff-Serv代码点),并分别将其分别排入相应的队列。内部路由器负责查看DSCP值,将进入的数据包按级别排队,并按事先设定的带宽、缓冲处理进行下一跳转发(PHB)。Diff-Serv模型机制的工作示意图如图3。
与Int-Serv类似,Diff-Serv也定义了三种业务类型:
(1)尽力而为的业务(Best Effort):类似目前Internet中尽力而为的业务;
(2)最优的业务(Premium):类似于传统运营商网络的专线业务;
(3)分等级的业务(Tiered):这一类别的业务严格讲不仅仅是一种业务,而是一个大的类别,可以根据发展的需要制定不同的业务等级。
差分服务模型的优点一个是伸缩性较好DS字段只是规定了有限数量的业务级别,状态信息的数量正比于业务级别,而不是流的数量。另一个是便于实现只在网络的边界上才需要复杂的分类、标记、管制和整形操作。ISP核心路由器只需要实现行为聚集(BA)的分类,因此实现和部署区别型业务都比较轻易。差分服务模型的缺点是Diff-Serv为IPQoS奠定了宝贵的基础,但还是没有办法完全依靠自己来提供端到端的QoS结构。Diff-Serv需要大量网络单元的协同动作,才能向用户提供端到端的服务质量。鉴于这些组件高度分散的特点和对它们进行集中治理的需要,必须有一个全局的带宽治理对全局资源进行动态治理。解决这一问题的方法有两个:一是用功能强大的全局策略治理器来完成这一任务;另外一种就是利用MPLS将第三层的QoS转换为第二层的QoS,通过运营网中第二层的交换机来实现端到端的服务质量保证。
差分业务服务(Diff-Serv)定义了一个相对简单而力度较粗的框架系统,为流量提供有区别的业务级别,并对流量聚合后的每一类QoS进行控制。
3.3 流量工程
IP网上存在的服务质量问题是由于用户数量的增加造成网络资源的不足从而导致服务质量的下降,以及现有的网络性能无法满足各种新型实时业务的各种具体服务要求这两个方面的原因造成的。对应于这两个方面,对QoS问题的解决也将从两个方面来进行:一个就是流量工程(TrafficEngineering),另一个就是QoS的直接实现。
流量工程可以说是一种间接实现QoS的技术,它将通过对资源的合理配置,对路由过程的有效控制使得网络资源能够得到最优的利用。当网络资源得到了充分的利用时,自然而然地,网络的各项QoS指标也将随之大大改善。人们对流量工程所下的定义是:流量工程就是一种能将业务流映射到实际物理通路上,同时又可以自动优化网络资源,以实现特定应用程序服务性能要求的具有宏观调节和微观控制能力的网络工程技术。实际上,流量工程TE的提出是电信和计算机界要求网络不但要适应一般的数据传输服务,也能应用于实时数据流的传输,尤其是音频和视频传输。就当前流量工程的应用来说,它有两个要害点:负荷均衡与网络恢复。IP流量工程的应用目的就是要解决如何有效实现尽力而为的传统IP服务与QoS的统一。
从本质上说,流量工程是一种网络控制技术。现在的控制方法分为微层控制与宏层控制两种类型。微层控制网络设备的功能,是在数据流层的控制。宏层控制则是网络级的控制,用于解决微层控制没法解决的问题。流量工程是宏层控制技术,但它与电信流量理论的网络工程不同,流量工程不依靠特定的第二层技术。当考虑流量工程的性能目标时,可以将流量分成面向应用的性能对象与面向网络的性能对象两类。面向应用的性能对象是一种与每种特定应用服务流的流量特性相关的对象,它与QoS相关并试图从端到端的分组发送延迟、分组延迟抖动、服务响应时间几个方面来改善网络的性能。面向网络的性能对象是一个与网络资源相关的对象,它试图从网络资源利用率、网络吞吐量方面来改善网络的性能。流量工程对面向应用的性能对象与面向网络的性能对象都有影响。负荷均衡机制能改进每个流的QoS和网络资源的效率,但无法做到同时保证两个性能都会提高,因此面向应用和面向网络是一个需要折衷的问题。流量工程的目的是在它们之间寻找一个最优的平衡点。流量工程可以平衡QoS流量与尽力而为传输方式的流量。谁应具有更高的优先权由网络操作策略而定。
网络操作的性能优化基本上是一个控制问题。在流量工程处理模型中,流量工程部件在自适应反馈控制系统中将扮演着控制器的角色。理想化的控制行为应该含有流量治理参数的校正、与路由相关的参数的校正、与资源相关的属性和约束条件的校正三个方面。
3.4 基于约束的寻路
基于约束的寻路要解决的是根据带宽和延时要求等约束条件寻找一条合适的路径。它的基本原理是在每一个节点上,基于约束的路由处理模块根据与流量中继主干线相关的属性、与资源相关的属性和其它拓扑状态信息自动为从它发起的每个流量中继主干线计算显示路由。由于受很多实际情况的限制,基于约束的路由问题的解决比较困难。一般可考虑首先剪除哪些不能满足流量中继主干线属性要求的资源,在剩余的部分中运行最短路径优先算法来找到一条可行的通路。
3.5 流量治理的过程
IPQoS的流量治理从一个业务数据包进入网络到退出网络,可以分为几个过程,即业务的分类、业务的监管、业务的调节以及业务的过滤。
(1)业务的分类
对进入Diff-Serv域的业务进行分类,以便在网络中得到相应的适当处理。业务必须由客户预先标记或在运营商网络一端与客户最邻近的路由器上进行标记。数据包进入某一域时,可以有多种方法对它进行分类,但并不是所有方法对于每一种业务都是必需的。我们可以根据SLA规定的一些策略给每个数据包加上DS字段标记,从而对数据包进行分类。例如,客户网络到运营商的路由器之间的连接是以太网而不是广域网接口(ATM、FR等)时,客户可使用以太网的802.1p优先权方案在自己的局域网内部对业务进行分类;在进入运营商网络边缘时,再根据SLA中的规定将优先权映射到该数据包的DS字段中。
当然,运营商的边缘路由器还可以根据其他多种手段对客户业务进行分类,如IP数据包头的ToS(业务类型)字段ATM QoS。
(2)业务的监管
业务监管(Traffic policing)是为了监督用户是否根据SLA中所赋予的权利来使用运营商网络,一方面是保证运营商自己的利益不受伤害,另一方面也间接保护了其他用户在网络中的权利。
业务的监管可以采用一个较为简单的方法——令牌漏桶(Token BUCket)算法(如图4),当然也可以采用其他类似的机制来监控每一个级别的输入业务量。如图4所示,每一种业务都有相应数量的令牌(Token),令牌按照SLA所规定的速率发出。假如用户的业务到达的速度快于令牌发出的速度,则说明用户没有遵守SLA,因此就需要对用户超出SLA的这些业务数据有一个策略。例如,可以将它们加上标记,在网络不拥塞的情况下答应它们通过网络,而在网络拥塞时首先将它们丢弃。当然,也可以在一开始就将这部分数据包丢弃,完全取决于运营商和用户达成的协议和策略。
(3)业务调节
实际上,业务的分类和业务的监管都发生在运营网络的边缘。而业务的调节阶段则是完全的运营网络行为。它的好坏直接决定了IPQoS能否实现。
一般来说,业务调整主要有两种手段,一个是预防拥塞的排队和调节机制,一个是碰到拥塞就丢弃的机制。去往输出接口的业务都被分类并插入到相应的输出队列中,每个队列都具有可设置的调节程序,这些程序可以利用加权公平排队(WFQ)、循环方式(RR:Round Robin)及严格优先权等算法实现;同样,每个队列也有多种可选择的丢弃算法,如随机早期检测(RED)或尾部丢弃(Taildrop),均可通过业务级别进行配置。
(a)排队调节机制严格的优先级调节:某一级别的业务只有在当队列中没有更高优先权业务时才被发送。这一方法实施起来较为简单,缺点是永远只传输一个级别(最高优先权的)的业务。公平排队或循环方式:简单地从多个队列中进行循环,这有助于使不同队列公平地使用带宽,但缺点是大量的数据流不得不需要更多的带宽。加权公平排队:对公平排队的一种改进。在这种方案中,给每个队列分配权限,该权限确定队列中的哪些数据包优先使用链路带宽。基于级别的排队:可以分为几个队列,每个队列与不同的业务级别相对应,可以使用不同方法发送或调节队列。分级的基于级别的排队(CBQ):业务被分成不同级别,每种级别又可细分成若干子级(Sub-class)。这种分级形成一种树状结构,若一个子级使用的链路带宽超过它应得的份额,那么它将首先向姊妹子集(Sister sub-class)借用带。以此类推,在分级业务结构中这一树形结构可以用来区分各种业务类型。
(b)丢弃机制尾部丢弃:只有分配的缓冲器空间被全部占用时才丢弃到达的数据包。这种方法易于实施,但它会导致网络的崩溃,因为它可触发TCP全局同步。随机早期探测:防止TCP全局同步的有效方法。该方法主要是在队列占用率(Queueoccupancy)开始上升时(但又在真正发生拥塞之前)随机丢弃到达的数据包,从而始终保持一个较小的队列。但这只能在一定程度上通过降低TCP源拥塞的概率,缓解网络的拥塞。一旦当队列的平均尺寸增大时,那么到达的数据包被丢弃的概率仍会随着队列的增大而增高。加权RED(WRED):是RED的一种变体,它可以更加合理地选择将被丢弃的数据包。
(4)业务的过滤
业务过滤一般用于退出一个域的行为,一方面是出于安全性考虑而进行过滤,而另一方面也是防止低优先权业务阻塞接入链路而进行过滤。
过滤策略可从其他站点分出业务终接容量,使要害的高优先权业务可优先于低优先权业务被终接;同时,为防止非法业务进入专用域,也有必要使用安全过滤功能。过滤必须在接入链路的运营商一端进行,否则心怀恶意的用户有可能向网络上输送大量的业务,使合法用户的业务得不到传输。过滤在运营商一端的路由器上进行。
3.6 MPLS流量治理
MPLS是解决流量治理的最佳方案。它是一个可以在多种第二层媒质上进行标签交换的网络技术。这一技术综合了第二层的交换和第三层路由的特点,将第二层的基础设施和第三层的路由有机地结合起来,第三层的路由在网络的边缘实施,而在MPLS的网络核心采用第二层交换。通过MPLS,第三层的路由可以得到第二层技术的很好补充。充分发挥第二层良好的流量设计治理以及第三层"Hop-By-Hop"路由的灵活性,实现端到端的QoS保证。
MPLS是一种非凡的转发机制,它为进入网中的IP数据包分配标签,并通过对标签的交换来实现IP数据包的转发。标签作为IP包头在网络中的替代品而存在,在网络内部MPLS在数据包所经过的路径沿途通过交换标签(而不是看IP包头)来实现转发;当数据包要退出MPLS网络时,数据包被解开封装,继续按照IP包的路由方式到达目的地。MPLS的工作流程可以分为几个阶段,即网络的边缘、网络的中心以及单跳路由(Hop-by-Hop)或者显式路由三个阶段。从传统的IP路由来看,每一台沿途的路由器都要检查包的目的地址,并且选择一条合适的路径将数据包发送出去。而MPLS则不然,数据包虽然也沿着IP路由所选择的同一条路径进行传送,但是它的数据包头在整条路径上从始至终都没有被检查过。在每一个节点,MPLS生成的树是通过一级一级为下一跳分配标签而且与它们的对等层交换标签而生成的。交换是通过LDP的请求以及对应的消息完成的。
4 结束语
IP网络的QoS是目前较为活跃的一个研究领域,还存在着诸多有待解决的问题,为了寻求扩展性和简易性提出了一种将Inter-serv与Diff-serv结合的思路:即在用户网络仍使用RSVP协议、在运营商的Diff-serv网络边界将Inter-serv的业务类型映射为DiffServ的业务类型,这样解决了端到端的QoS,同时也具有很好的扩展性。但这种方法并没有解决Diff-serv的部署问题,同时也存在Inter-serv的信令复杂、治理等问题。这种方案显然需要继续完善。2002年,业界提出了一种MPLSDiff-serv-Aware的思想,Diff-serv提供了基于类的QoS,具有良好的可扩展性,但缺乏有效的端到端部署的机制;MPLSTE通过有效地治理带宽资源间接改善网络服务质量,但其带宽治理以及MPLSTE隧道都无法做到基于业务类别(时延),假如EF、AF、BE业务都承载在一个MPLSTE隧道中EF和AF业务将受到严重的影响。MPLSDiff-serv-AwareTE在原来MPLSTE的基础上,增加了基于类别的资源治理,例如可根据带宽及时延的不同将接口资源划分为EF、AF、BE三类,通过IGP协议对每个类别的资源使用情况进行收集、分别建立TED,通过信令协议携带类别建立LSP。MPLSDS-TE充分利用了Diff-Serv的可扩展性以及MPLS的显示路由能力,是解决骨干网QoS的有效技术,网络资源可根据用户的需求得到最优的利用;与DS-TE相关的RFC草案已提交IETF工作组进行审核,尚未形成最终标准。。
总之,尽管今天的IPQoS还有很多问题没有解决,但就像今天的IP业务一样,IPQoS将不可避免地成为运营商IP网络中一项要害的核心技术。
新闻热点
疑难解答