第12章QOS技术课程目标:初级了解QoS的基本概念了解QoS的流分类和标记了解QoS的队列管理技术中级掌握QoS的流分类和标记掌握QoS的队列管理技术熟悉QoS的流量监管和流量整形掌握QoS的拥塞避免机制高级熟悉MPLS网络对QoS的处理12.1QOS技术概述12.1.1QOS技术的产生服务质量QoS(QualityofService)是各种存在服务供需关系的场合中普遍存在的概念,它被用来评估服务方满足客户服务需求的能力。评估通常不是精确的评分,而是注重分析在什么条件下服务是好的,在什么情况下服务还存在着不足,以便有针对性地作出改进。在因特网中,QoS所评估的就是网络投递分组的能力。由于网络提供的服务是多样的,因此对QoS的评估可以基于不同方面。通常所说的QoS,是对分组投递过程中对延迟、延迟抖动、丢包率等核心需求提供支持的服务能力的评估。1.传统的分组投递业务传统的IP网络无区别地对待所有的报文,路由器处理报文采用的策略是先入先出FIFO(FirstInFirstOut),它依照报文到达时间的先后顺序分配转发所需要的资源。所有报文共享网络和路由器的带宽等资源,至于得到资源的多少完全取决于报文到达的时机。这种服务策略称作Best-Effort(尽力而为),它尽最大的努力将报文送到目的地,但对分组投递过程中的延迟、延迟抖动、丢包率和可靠性等需求不提供任何承诺和保证。传统的Best-Effort服务策略只适用于对带宽、延迟性能不敏感的、文件传输、E-Mail等业务。2.新业务引发的新需求随着计算机网络的高速发展,越来越多的网络接入因特网。Internet无论从规模、覆盖范围和用户数量上都拓展得非常快。越来越多的用户使用Internet作为数据传输的平台,开展各种应用。同样地,服务提供商也希望通过新业务的开展来增加收益。除了传统的、E-Mail、FTP应用外,用户还尝试在Internet上拓展新业务,比如远程教学、远程医疗、可视电话、电视会议、视频点播等。企业用户也希望通过VPN技术,将分布在各地的分支机构连接起来,开展一些事务性应用:比如访问公司的数据库或通过Telnet管理远程设备。这些新业务有一个共同特点,即对带宽、延迟、延迟抖动等传输性能有着特殊的需求。比如电视会议、视频点播需要高带宽、低延迟和低延迟抖动。事务处理、Telnet等关键任务虽然不一定要求高带宽,但非常注重低延迟,在拥塞发生时要求优先获得处理。新业务的不断涌现对IP网络的服务能力提出了更高的要求,用户已不再满足于能够简单地将报文送达目的地,而是还希望在投递过程中得到更好的服务,诸如支持为用户提供专用带宽、减少报文的丢失率、管理和避免网络拥塞、调控网络的流量、设置报文的优先级。所有这些,都要求网络应当具备更为完善的服务能力。3.拥塞的产生、影响和对策传统网络所面临的服务质量问题,主要是由网络拥塞引起的。所谓拥塞,是指由于网络资源的相对不足而造成服务速率下降(引入了额外的延迟)的一种现象。拥塞的产生在因特网分组交换的复杂环境下,拥塞极为常见。以图中的两种情况为例:分组流从高速链路进入路由器,然后由低速链路转发出去。10010M100M100M100M100M不同速率接口流量的拥塞相同速率接口流量的拥塞M分组流从相同速率的多个接口同时进入路由器,然后由一个相同速率的接口转发出去。如果流量以线速到达,那么就会因为资源的瓶颈而导致拥塞。不仅仅是链路带宽的瓶颈会导致拥塞,任何用以正常转发处理的资源的不足,如可分配的处理器时间、缓冲区、内存资源的不足,都会造成拥塞。此外,在某个时间内对所到达的流量控制不力,使之超出了可分配的网络资源,也是引发网络拥塞的一个因素。4.拥塞的影响拥塞有可能会引发一系列的负面影响:拥塞增加了报文传输的延迟和延迟抖动。过高的延迟会引起报文重传。拥塞使网络的有效吞吐率降低,造成网络资源的浪费。拥塞加剧会耗费大量的网络资源(特别是存储资源),不合理的资源分配甚至可能导致系统陷入资源死锁而崩溃。可见,拥塞使需要传送的分组不能及时获得资源,这是造成网络服务性能下降的源头,然而在分组交换以及多用户业务并存的复杂环境下,拥塞又是常见的,因此必须慎重加以对待。增加网络带宽是解决资源不足的一个直接途径,但是它并不能解决所有导致网络拥塞的解决网络拥塞问题的一个更有效的办法是增加网络层在流量控制和资源分配上的功能,为有不同需求的业务提供有区别的服务,以正确地分配和使用资源。在进行资源分配和流量控制的过程中,尽可能地控制好那些可能引发网络拥塞的直接或间接因素,降低拥塞发生的概率。并且,在拥塞发生时,依据业务的性质及其需求权衡资源的分配,将拥塞的影响减到最小。5.几种主要的流量管理技术流分类、流量监管、流量整形、队列管理和拥塞避免是构造有区别地实施服务的基石,它们主要完成如下功能:流分类:依据一定的匹配规则识别出对象。流分类是有区别地实施服务的前提。流量监管:对进入路由器的特定流量的规格进行监管。当流量超出规格时,可以采取限制或惩罚措施,以保护运营商的商业利益和网络资源不受损害。流量整形:一种主动调整流的输出速率的流控措施,通常是为了使流量适配下游路由器可供给的网络资源,避免不必要的报文丢弃和拥塞。队列管理:网络拥塞时必须采取的解决资源竞争的措施。通常是将报文放入队列中缓存,并采取某种调度算法安排报文的转发次序。拥塞避免:过度的拥塞会对网络资源造成损害。拥塞避免监督网络资源的使用情况,当发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量来解除网络的过载。在这些流量管理技术中,流分类是基础,它依据一定的匹配规则识别出报文,是有区别地实施服务的前提;而流量监管、流量整形、队列管理和拥塞避免从不同方面对网络流量及其分配的资源实施控制,是有区别地提供服务思想的具体体现。一般情况下,QoS执行以下功能:流分类和标记队列管理流量监管和流量整形拥塞避免12.1.2IPQoS的体系结构IPQoS的概念应该分为两个部分,这两部分的IPQoS定义和侧重点均有所不同。局域网中的IPQoS主要是对第二层的以太网帧头加入了优先级字段,以区分不同的优先级。严格地讲,在局域网中只能简单地区分业务的优先级,并不能像ATMQoS那样有精确的定义和详细的参数指标来衡量。这种解决方案是根据对IEEE802.1p/q协议字段的处理来区分不同优先级业务的。IEEE802.1p/q同属于一个子集,它在传统的以太网帧头中加入了4个字节,其中802.1p占3位。802.1p延伸了802.1d的协议,利用3位优先级位可以最多提供8个优先等级。而802.1q利用VI(VLANIdentifier,虚拟网标识)位识别传送的帧究竟属于哪一个虚网。在广域网上,IETF(InternetEngineeringTaskForce)定义了两种IPQoS结构——综合业务结构(Int-Serv)和业务区分结构(Diff-Serv)。两种结构各有其特点和优势,目前还无法互通。IntServ由IETF的IntServ工作组于1994年提出。IntServ最鲜明的特点就是:基于连接、资源预留。也就是说,IntServ需要穿过IP网络为每个需要质量保证的数据流建立一条具有资源保证的通道。这就要求每台路由器设备都要维护大量的连接和资源预留信息。这将为路由设备造成极大的系统负担。通常来说,要求路由器同时处理如此多的连接信息并做到线速的转发性能,实现的困难非常大。所以,IntServ实现QoS的成本过高。但是,采用RSVP作为信令的MPLS流量工程将为IP网络的QoS问题提供非常大的帮助。IETF又提出了DiffServ体系结构,定义了一种实施IPQoS更容易、更具扩展性的方式。DiffServ最突出的特点就是:状态无关、逐跳转发。利用了IPv4分组头的ToS字段进行IP包优先级的定义。传统ToS字段只利用了其中的三个bit,用以标示8个优先级,而DiffServ中对另外3个bit也进行了定义,从而获得更多的定义空间(剩余2bit作为将来的备用)。在DiffServ里,定义了DiffServ域的概念。所谓DiffServ域,就是指一个完全支持DiffServ优先级区分的IP子网。在NGN里,用于承载NGN业务的IP骨干网就应该是一个完整的DiffServ域。一个DiffServ域中的每台路由器都必须能够支持DiffServ标签的识别和按照相应的优先级进行转发,并且对DiffServ标签有着同样的理解。如果某台路由器不能支持DiffServ,那么它就成为这个网络中的“瓶颈”,整个链路的质量都将下降。DiffServ的实现过程是:首先,根据源地址、目的地址、协议类型和二层接入网络优先级等信息对IP包进行优先级区分并打上相应的DiffServ标签。这个过程应该由上述DiffServ域的边缘路由器完成。具体来说,边缘路由器还应该完成的工作包括对业务流的分类、整形、标记、调度。然后根据已经打好的DiffServ标签采取相应的转发策略。具体说,核心路由器须要具有的功能包括分类和调度。之所以成为被看好的QoS解决方式,DiffServ有着如下特点:首先,路由器无须维护每个连接的信息,对系统资源要求低;其次,对网络上的多种业务进行优先级归类并合并成有限的几个优先级类别,对于IP网络设备来讲,处理更简单;再次,采用IP包中的ToS字段进行优先级标示,没有附加的标签,这种做法兼容性好,易于实现。另外,随着网络的扩展,优先级类别无须扩展。但是,对于面向连接的优先级保证例如IntServ来讲,网络规模的扩大将直接带来优先级处理的压力。通过IP核心网络中的每个路由结点对DiffServ的支持,使得信令、语音、视频、普通数据等按照不同的DiffServ标签进行不同优先级的转发。也就是说,在网络带宽资源够用的情况下,采用DiffServ的网络可以尽可能保证高优先级的数据包不被丢弃,并以最小的时延穿越网络。当然,上述结论是有一定的前提的,具体包括所有的路由器必须具有线速转发能力和提供良好的路由规划。所谓线速转发能力,就是指在达到端口最大速率的时候,例如,在一个千兆接口上的数据流量达到千兆时,路由器没有丢包。显而易见,如果路由器不具备上述的线速转发能力,那么高优先级的IP包刚刚进入接口的Buffer,还没有来得及被路由器进行策略处理,就有可能被丢掉。所以,线速转发能力是保证DiffServ的重要前提。路由规划决定了IP包在穿过IP核心网络的时候所选择的路径。如果路由规划不合理,那么过多的跳数就会造成过多的时延,这样,即便每台路由器都可以按照DiffServ的优先级进行转发,但是过多的跳数使得端到端的时延仍然不能达到NGN的要求。但是,如何避免网络带宽不足和网络拥塞的情况呢?这就需要结合MPLS与RSVP来实现。RSVP是一个信令协议,它提供了一种在信息传输之前,提前在IP网络中建立一个有带宽资源保障的通道的方法。RSVP的工作原理是:RSVP从发送端发送一个资源请求到目的地址,每一个支持RSVP的路由器沿着下行路由建立一个“路径状态表”;为了获得资源预留,接收端发送一个上行的RESV消息,表明所要求的综合服务类型,还通知为分组预留的资源,如传输协议和端口号;当每个支持RSVP的路由器沿着上行路径接收RESV的消息时,它采用输入控制过程证实请求,并且配置所需的资源。如果这个请求得不到满足,路由器向接收端返回一个错误消息,而如果这个消息被接受,路由器就发送上行RESV到下一个路由器;当最后一个路由器接收RESV,同时接受请求的时候,它再发送一个证实消息给接收端。结合MPLS,上述过程实际上建立了一个从发送端到接收端的MPLS路径,而这条路径上的路由器都为将要到来的信息传送预留了资源。通过MPLS中采用扩展的RSVP信令,还可以对本次通信的路径进行指定,进行流量工程,以对运营商的网络进行更高效的利用,防止某些路由被空闲,而另外一些路由却发生拥塞。如果没有RSVP,在网络节点发生拥塞时,即便是高优先级的包,也有