docurl=/cn/Products___Technology/Products/Router/Home/Technology_Doc/200906/663304_30003_0.htm

面向应用的智能动态QoS

【发布时间:2010-02-02】

应用为王!传统QoS技术在当前网络多业务承载的情况下面临着困境,多链路给QoS部署与保障也带来了问题。必须借助深度流量识别技术,实现面向应用的智能动态QoS,才能实现更精细化的应用QoS管理与控制,提升网络价值。

 

文/刘晖

伴随网络技术和多媒体技术的飞速发展,IP网在承载传统WWWFTPE-mail等服务的基础上,还要全面承载OA、监控、网上实时交易、VoIP以及交互式多媒体通信等等更为关键的业务,说当前Everything over IP已经毫不为过。但是,尽管网络出口带宽一扩再扩,还是无法应对客户爆炸式的流量增长:尤其是P2P应用的蓬勃兴起,更使原本就捉襟见肘的出口带宽无时无刻不处在过饱和的状态中;非关键业务肆虐,网上核心业务丢包,业务时延抖动不可控,业务质量无法得到保障,工作效率下降、客户流失……原本快捷高效的网络变成一团乱麻,网管人员也面临着来自高层巨大的压力。

网络QoS,就是在带宽受限的场合中,抑制低优先级应用,保证高优先级应用的带宽和时延,提升用户网络使用感受的一种技术。经过多年的发展,QoS技术理论以及实现架构已经发展得非常完善,并且在各种网络设备上得到了充分的使用和良好的应用效果。这其中比较典型的有:集成服务(IntServ/RSVP QoS模型、区分服务(DiffServQoS模型、多协议标签交换(MPLS)与流量工程(Traffic Engineering)等等。但值得注意的是,深层识别应用并提供服务质量保证、多出口链路的统一服务质量保证,都是传统QoS技术面临的新课题,并且传统QoS技术也确实因此陷入了不小的困境,需要进一步推陈出新,才有可能满足多业务融合的高速网络中对关键业务的服务质量保障需求。

传统QoS技术

1 CBWFQ队列工作原理

 

1是一种传统的QoS技术——CBWFQ队列的工作原理示意。从中可以看到:有一个LLQLow Latency Queuing,低时延队列),用来支撑EFExpedited Forwarding,快速转发)类业务,采用绝对优先发送,保证时延;另外有64BQBandwidth Queuing,带宽保证队列),用来支撑AFAssured Forwarding,确保转发)类业务,可以保证每一个队列的带宽及可控的时延;还有一个WFQ,对应BEBest Effort,尽力传送)业务,使用接口剩余带宽进行发送。以上这些队列的调度技术、带宽评估算法都是非常成熟的。但这种CBWFQ用在目前的网络里仍然有可能出现问题,陷入困境。原因在什么地方?

传统QoS技术的困境1:流量识别手段单一

从图1可以看到,所有的流量,IP报文或者MPLS报文都会先经过一个关键部件——分类器的处理,再进行后续的QoS评估调度处理。而分类器所完成的工作,就是根据事先通过命令行或者Web网管配置好的的各种分类规则对报文进行判断归类,置上相应的类型标记。传统的CBWFQ分类规则包括:报文的输入接口、ACLAccess Control List,访问控制列表)定义的报文IP五元组特征、IP PrecedenceDSCPMPLS EXP等等。可以看到,这些规则只能通过报文的23或者4层的特征定义一些无状态的应用。

举个例子:我们认为FTP应用都是基于TCP 20/21端口的,于是我们定义了一条ACL规则针对20/21端口来对网络流量中的FTP应用进行分类识别,系统能够成功识别出PORT(主动方式)的FTP应用并对其进行了QoS调度处理。然而,对于更为常见的PASV(被动模式)的FTP应用,由于其数据端口是协商确定的,每次协商,端口号都可能发生变化,而并非固定的20端口。所以我们预定义的FTP分类规则就失效了,连带着后面所有的QoS处理都是无用功,甚至是副作用(FTP流量被识别成最高优先级的应用,抢占了EF队列的带宽)。

再举一个例子:目前流行的P2P应用软件Web迅雷,采用的就是HTTP端口号80。如果我们定义HTTP80,那么就无法区分迅雷和正常的Web浏览。而迅雷流量无法限制,势必就会大大影响正常的Web浏览。

综上,传统QoS过于单一、固定的识别手段,在网络应用极大丰富的今天,已经越来越无法分辨流量的本来面目,由此带来QoS处理效果的南辕北辙,不仅让用户也让设备提供商逐渐丧失了对QoS技术的信心。

解决之道:面向应用的QoS

要解决上述问题,实现用户应用流量的识别,并将其与传统QoS调度技术相结合,已经成为业界QoS技术发展的一个趋势。从某种程度上讲,设备对复杂应用的识别能力也直接反映了设备的QoS业务保障能力。面向应用的识别技术概括起来,目前主要有以下三种:

²        基于状态的动态端口应用识别

对于端口动态协商类型的应用,如前文提到的被动方式FTP,还有RTPH.323等应用,设备QoS处理流程里按照相关应用协议的规定,实现一套应用状态机。实际工作时,路由器设备处于交互双方的中间位置,由双向的应用报文触发设备的状态机运转,路由器设备监控应用协商的全过程,成功获取该应用最终对应的端口号,后续就可以用这个端口号标识应用,从而顺利进行相关的QoS控制处理。

²        基于深层特征的应用识别

目前很多网络应用都没有明确的端口特征,加上有时候报文经过NAT地址转换,端口号更是失去了标别的价值。但是经过研究,某些应用通过报文的深层解析,还是能够识别的。例如在网络设备中内置一种分类策略,当报文进入QoS分类器时,采用相应的规则对报文进行对应位置的字符串检索即可确定应用,进而实施后续的QoS处理策略。

由于字符串检索非常消耗处理器资源,并且有的应用还需要通过一定的算法才能获取其特征,所以网络设备厂商通常会对搜索算法进行优化,比如对特征码进行编译,甚至采用硬件FPGA辅助加速特征匹配速度。另外,基于字符串的应用特征描述相对简单,有可能出现一种情况:当应用版本更新后,上述特征不再成立,那么基于它的QoS处理也就失去了意义。所以,针对深层的应用识别,厂商一般会提供两种增强型的深层识别手段:正则表达式和特征码文件。所谓正则表达式,就是一个用来描述或者匹配符合某个句法规则的单个字符串,可以满足描述应用深层特征的要求。正则表达式相对专业,配置比较复杂,需要有较强技术能力的用户才可以DIY实施。特征码文件则具有较高的易用性,它好比是杀毒软件的病毒库,也就是一系列应用的特征描述集合,用户只需下载网络设备厂商提供的新版本特征码文件,并加载到设备中,即可使设备升级,具备新应用识别以及QoS控制能力。整个过程非常方便。

²        基于状态的深度特征应用识别

基于状态的深度特征应用识别,是前面提到的两种应用识别的综合。目前某些流行应用,仅靠单包无状态的四~七层深度特征,已经无法准确判断其类型。设备针对这些应用,首先要建立一个或者多个协议状态机,全程跟踪应用协商进程(例如部分P2P视频软件,不仅有自己的私有协议,还借用了RTP/RTCP开放协议来控制其媒体流);其次对每一个协商状态中出现的报文进行深度特征的识别;最后还需要获取动态的数据传输端口。与之相对应,厂商为这种复杂应用识别所提供的特征码,也都是带有状态信息的。可以看出,这些应用的识别过程非常复杂,整个识别过程,处理器的资源消耗也非常之大。

面向应用的QoS提升用户网络价值

面向应用的QoS一举摆脱了传统QoS识别手段单一的窘境:变无状态单包识别为有状态流识别,变四层以下固定特征识别为直达七层的深层动态特征识别。用户在部署面向应用的QoS以后,网络的QoS保障不再是晦涩、机械的针对固定端口号的单个报文进行控制,而是有着友好的用户界面,让用户真正感觉可以直接对网络中实实在在的上层应用数据流进行控制。并且,通过厂商提供的后续帮助,甚至用户也可通过自行钻研、升级识别规则或者应用特征文件的方式,将设备的应用识别能力进一步提升。不论应用如何变化,基于应用的QoS机制总能洞悉其内在本质,在纷繁的数据流中,锁定特定应用的相关流量,从而给予精确的带宽、时延、抖动等QoS关键指标控制,保证整网关键业务平稳、高效运转。

传统QoS技术的困境2:多出口业务QoS难以保障

2 网络多出口部署

由于单出口链路容易导致单点故障,一条链路故障往往带来整网瘫痪,或者Internet的资源位于某一运营商网络中,单条链路跨ISP访问无法规避访问迟缓问题,以上两方面原因使得园区多出口部署成为趋势。

因此企业往往会租用两个或多个运营商出口(如:电信、网通等),即使是一个运营商的也会租用两条出口链路。如图2所示,出口路由器设备一共使用了四条出口链路,服务商以及带宽也各不相同。链路资源具备后,网络设备如何合理运用多个运营商出口,既不造成资源浪费,又能保证很高的可靠性以及高优先级业务的QoS,是用户非常关注的需求。但遗憾的是,传统的出口网络设备在多出口QoS保障方面的表现实在差强人意。例如无法完成智能链路选择。A运营商的资源,却从B运营商的链路绕远访问,影响了访问速度;B运营商中应用的回应报文,某些时候会选择A运营商出口,被A运营商的源地址过滤功能过滤掉,导致业务时断时续。同时传统出口网络设备无法完成流量在多个出口之间的动态调整。流量在不同的接口分发不均匀,导致一些出口超负荷工作,同时另外一些出口带宽利用率却非常低,带宽资源分配极不合理,浪费严重。

解决之道:智能动态QoS

针对上述问题,智能QoS技术应运而生,它可以实现智能链路选择,动态带宽调整,以及其它规则下的智能控制。

²        智能链路选择

从网络就近性原则考虑:如果用户租用的是不同运营商的不同链路,用户经常访问的又是由运营商托管的服务器,那么就需要重点考虑就近原则。综合考虑内网到Internet资源的路由跳数(TTL)以及往返时间(RTT),选取值较小的一个出口完成业务即为最佳选择。从服务健康状态考虑:一个网络资源,可能在不同ISP中都有服务器,虽然基于网络就近性原则,A接口的TTL以及RTT较小,但有时并不代表从A口获得的服务速度就最快。此时,要借助于FTPHTTP等更上层的业务探测获得服务健康状态值(响应时间等指标),用以指导访问流量的出口。从检测报文的实时性和精确性上来看:所有的就近性原则以及业务健康性探测报文,对于出口网络设备都以最高QoS优先级发送和处理,并且辅以精确的毫秒级别计时,避免因探测值不准确而导致误选路由。

²        动态带宽调整

实时统计出口链路的流量和吞吐量,控制流量分配方式。首先根据定义的链路容量,设定限制出口流量带宽使用率的阈值。当链路容量接近阈值饱和时,后续流量将被无缝导向其它可用出口链路,充分保证出口带宽的高效利用。

²        其他规则

可以根据用户需求进行策略配置:特定的源或者目的报文走特定的链路。此规则优先级高于智能选路和带宽动态调整规则,这样可以保证关键应用的带宽。当同一会话的回应报文选路时,保证出接口与初始报文的入接口相同,可避免此类应用被运营商的地址过滤策略过滤。另外还可以对多个接口的应用流量进行深度识别,统一调度,实现多出口业务的精确QoS控制。

 

可以看到,上述QoS技术融合了链路质量精确评估、业务状态精确探测、带宽实时监控、业务深度识别、流量实时监管、多出口拥塞管理等多项复杂技术,最大程度的保障了多出口场景下的链路高带宽利用率以及用户关键业务的使用体验,是名副其实的智能动态QoS

智能动态QoS带来全新应用体验

用户原本认为简单增加出口链路即可完全满足网络扩容的需求。但是多出口网络模型中,简单粗暴的无状态选路方式,割裂的QoS调度策略,往往使得应用流量在多个出口上无法得到均衡。更为严重的是,错误的选路还可能导致应用断流等恶劣后果,从而使得多出口扩容方案大打折扣。而智能动态QoS技术部署以后,选路将转变为基于应用的有状态动态选路。流量总能够准确无误的从最近的一条链路出去,从而带来最佳的应用响应时间,提高用户网络应用体验;其次,多个出口由独立工作变为接受带宽统一评估后再进行流量选路发送,每条链路的带宽资源均可以被最大限度的利用,保护了用户的投资;另外,通过对多出口统一叠加基于应用的深层识别和QoS调度,多个出口共同承载的关键应用QoS指标,如带宽、抖动、时延,也能被控制得准确无误,从而使速度大幅提升,用户可以真正感受到多出口大带宽所带来的全新应用体验。

总结

QoS技术发展数十年,至今仍然方兴未艾。用户新需求也层出不穷,精细化、基于应用、动态自适应的QoS控制是目前QoS技术发展的总趋势。而网络设备的硬件技术发展,如多核处理器、可编程高速逻辑芯片的出现以及在网络设备上的使用,已经将曾经可望不可及的基于应用的智能动态QoS技术变为现实,并得到广泛应用。相信通过网络设备厂商的持续努力,用户通过上述QoS技术将可以在有限的链路带宽上,更加游刃有余的控制各种应用,从而实现网络的最大价值。