通信人家园
标题:
高服务质量路由器研究
[查看完整版帖子]
[打印本页]
时间:
2004-12-26 16:07
作者:
h68810115
标题:
高服务质量路由器研究
高服务质量路由器研究
1 引言
随着互联网的发展,以IP技术为基础的互联网将广泛应用于语音和视频承载等业务,但由于这些业务对传输时延和抖动的敏感性,促使IP网络必须改变以往“平等”的“尽力而为”的服务模式,而针对不同的业务提供有差别的服务。IP服务质量(QoS)功能旨在通过给予网络运营商对网络资源和使用的控制权来传送有保证的区分式Internet服务。服务质量是网络传输流时需要满足的一系列服务要求,它提供了端对端的服务保证以及基于策略的IP网络性能指标控制,如资源分配、交换、路由、分组调度及分组丢弃机制。
2 网络服务质量概述
IP网络采用何种服务质量技术因网络所承载的业务和网络的复杂度而异,当前主要的IP 服务质量技术有集成服务(IntServ)、区分服务(DiffServ)、服务质量路由和多协议标签交换(MPLS)。
2.1 集成服务
集成服务[1]的基本思想是在传送数据之前,根据业务的服务质量需求进行网络资源预留,从而为该数据流提供端到端的服务质量保证。资源预留协议(RSVP)[2]是集成服务的核心。集成服务能够在IP网上提供端到端的服务质量保证,但对路由器的要求很高。当网络需要进行资源预约的数据流超过10万条时,路由器的存储和处理能力会遇到很大的压力。因此,集成服务可扩展性不好,难以在Internet核心网络上广泛实施,主要被应用于网络边缘。
2.2 区分服务
区分服务的基本思想是将用户的数据流按照服务质量要求来划分等级,任何用户的数据流都可以自由进入网络。但是当网络出现拥塞时,级别高的数据流在排队和占用资源时比级别低的数据流有更高的优先权。区分服只承诺相对的服务质量,而不对任何用户承诺具体的服务质量指标。因特网工程任务组(IETF)定义了区分服务的体系结构[3—4]。
在区分服务机制下,用户和网络管理部门之间需要预先商定服务等级合约(SLA)。根据服务等级合约,不同用户的数据流被分别赋予不同的特定优先等级。当数据流通过网络时,路由器会根据SLA采用相应的方式,如每跳行为(PHB),来处理流内的分组。
区分服务只包含有限数量的业务级别,状态信息的数量少,因此实现简单,扩展性较好,是业界认同的IP骨干网的服务质量解决方案。
2.3 服务质量路由
现在的Internet路由协议(如OSPF、RIP等)都采用少数测度(如跳数、成本)来计算最短路由。服务质量路由根据多种不同的度量参数(如带宽、成本、每一跳开销、时延、可靠性等)来选择路由。但是服务质量路由的计算十分复杂,增加了网络的开销,因此目前实用的服务质量路由算法很少。
2.4 多协议标签交换
多协议标签交换虽然不是主要的服务质量机制,但其显式路由功能大大增强了IP网络实施流量工程的能力,对于骨干网业务提供者来说,是目前使用最普遍,可实现性最强的一种服务质量机制。
3 高性能路由器服务质量处理模型
为了提供对各种服务质量模型的有效支持,高性能路由器除了高速的处理能力外,还需要高灵活性以及强服务质量处理能力。为了提供这种能力,高性能路由器呈现出采用可编程的、专为IP网络设计的网络处理器(NP)作为核心处理部件的发展趋势。网络处理器兼顾专用集成电路芯片(ASIC)具有的硬件实现协处理器高性能和微码软件可编程的优点,并能够在保持线速处理IP报文的前提下,对IP核心业务的处理提供很强的扩展性支持,其中,也包括对服务质量技术的支持。
3.1 处理模型
图1 高性能路由器服务质量处理模型
一种面向区分服务的高性能路由器服务质量处理模型如图1所示。在图1中,报文进入系统后,行为聚合分类器对报文进行分类,将分类结果交给流量调节器,流量调节器完成策略、报文重标记以及流控功能。策略/度量功能确定流量是否与预约资源保持一致,如果不一致,那么就需要改变报文的处理优先级;报文重标记功能负责标记IP头的优先级或DSCP(DiffServ Code Point)域,以供后续路由器的服务质量处理。报文经过交换开关交给输出端处理。输出端流量调节器完成队列调度和流控处理。队列调度负责保证实现流队列的预约带宽,以及完成剩余带宽在各条流之间的加权平均分配;输入端和输出端的流控机制则是为了能够保证带宽的最大利用率,保护高优先级的报文,同时避免发生拥塞。
3.2 服务类型
高性能路由器服务质量处理模型提供的区分服务类型如表1所示,其中低延时持续带宽(LLSS)可以对应DiffServ的奖赏服务,正常延迟持续服务(NLSS)对应DiffServ的确保服务,另外两种服务则对应“尽力而为”服务。这些服务类型也用于作为流队列参数的定义,由网络处理器实现。表2给出了各种服务类型能保证的所有服务质量组合。
表1 流队列参数及系统支持的服务
支持的服务 说明
低延时持续带宽(LLSS) 提供低延迟的持续带宽服务。
正常延时持续服务(NLSS) 提供正常延迟的持续带宽服务。
峰值带宽服务(PBS) 在“尽力而为”服务的基础上提供额外的带宽。
加权队列服务(QWS) 调度器可以将剩余的(除LLSS和NLSS)带宽分配给使用“尽力而为”服务或峰值带宽服务的流队列。剩余带宽的分配通过给对应于同一个目标端口的流队列指定不同权值而完成。
表2 各种服务所能提供的服务质量
表2左边各行说明的是希望得到的服务,而列表头说明的是路由器所提供的服务。为了实现用户希望得到的服务,需要配置相应的参数。如为了请求指定的持续带宽服务、峰值速率,同时又希望部分采用“尽力而为”的服务方式,那么需要分别配置低延时持续带宽服务、正常延迟持续服务和峰值带宽服务。
4 系统实现
4.1 流分类
网络处理器在入口端实现了报文分类与聚合服务,分类规则中的行为数据则使用软件管理树管理,对软件管理树的查找通过具有高性能树搜索引擎的硬件协处理器来完成,以满足分类的线速处理。
流分类除支持常见的5元组,即源IP地址、目的IP地址、源端口号、目的端口号和协议类型外,还支持其他一些关键报文信息的匹配,如分段标志位、传输控制协议(TCP)连接建立标志位等,对这些位域的支持可有效地保证路由设备的安全性,避免分段丢弃(TEAR DROP)、同步连接泛洪(SYN FLOOD)等攻击,这2种攻击方式分别利用错误的分段报文和TCP连接报文实施攻击。
行为聚合(BA)表是另外一种管理策略的方式,实现了一维报文分类算法,以DSCP为键值,采用精确匹配(FM)树搜索算法进行报文分类和策略处理。
通常,在边缘路由器上采用报文分类,在核心路由器上采用行为聚合分类。
4.2 标记
标记动作也是流分类之后的动作之一。所谓标记就是前面所说的根据服务等级合约对业务流打上类别标记,在DiffServ体系中指DSCP,即IP报文头部TOS字段的前6位。目前,IETF RFC主要定义了EF(Express Forward)、AF(Assured Forward)、BF(Best Effort)这3种标准业务,并对AF进行了4个类别3种丢弃级别的定义。
高性能路由器服务质量处理模型不仅完全支持IETF RFC定义的标准DSCP DS CODE,还支持服务类型(CoS)。CoS是由Cisco公司提出的类似DiffServ 服务质量的模型,它以TOS的前3位作为业务区分点,分为8个业务等级,每个业务等级均有特定定义。标记主要由微码来完成。
4.3 策略
流量策略是流分类后的动作之一,也是运营商保护网络资源的主要手段之一,主要根据服务协定限制用户接入速率。对每个流可依据服务等级合约单独配置承诺速率、峰值速率、承诺突发尺寸、峰值突发尺寸等流量参数,将违约报文配置为Pass(通过)、Drop(丢弃)、Mark down(降级)等处理。此处所指的降级是指降低丢弃级别。降级报文在网络拥塞时被优先丢弃,从而保护流量约定范围内的报文正常转发。
高性能路由器服务质量处理模型可以支持1 024个限制流配置,并完全支持IETF RFC定义的色盲、色敏感、单速率和双速率4种承诺访问速率(CAR)算法[5—6]。这些功能采用硬件协处理器:策略管理器实现,故对流的计量并不影响其线速转发。
策略管理器有3个输入参数,分别为报文长度、报文原来的丢弃优先级(Color)以及策略控制块地址。策略管理器根据策略控制块中令牌的数目以及报文的长度确定一个新的丢弃优先级(Color)作为策略管理器的输出参数,然后,根据这个新的Color值,从SMT表项或缺省行为表项中取出对应的流控优先级和报文头DSCP域的优先级。
4.4 流控
人们为了实现网络内部的流量控制,提出了主动队列管理机制(AQM)。网络处理器的流控机制包括了主动队列管理机制,它能同时根据路由器系统资源的使用状况来进行流量控制。
高性能路由器服务质量处理模型对流控的支撑机制包括硬件机制和微码两方面,并在输入端和输出端都实现流控机制。硬件流控机制根据流队列或目标端口队列的拥塞状态、拥塞阀值、报文到达速率、数据存储区的当前状态、目标网络处理器的当前状态来确定某条流的报文丢弃概率。微码主要根据报文的优先级来读取传输概率表,确定报文的丢弃概率,并通过维护一个定时器,对触发传输概率表更新。
为了避免在严重拥塞时采用尾丢弃引起TCP全局同步问题,目前拥塞控制普遍采用加权随机丢弃(WRED)算法。高性能路由器服务质量处理模型的WRED算法支持多达8个优先级4种丢弃级别的流控类别,对每种优先级的WRED曲线均可单独配置。在算法精度上,网络处理器内部以微秒级定时器通过一阶加权迭代跟踪共享内存的占用程度,不仅能及时感知网络的拥塞状况,同时还可避免网络的振荡,由此对不同业务流和同一业务流内部的不同丢弃级别的报文进行不同的统计概率丢弃,及时有效地避免和控制网络拥塞。
4.5 流队列调度
高性能路由器服务质量处理模型的流队列调度负责保证实现流队列的预约带宽,并完成剩余带宽在各条流之间的加权平均分配。它采用两级调度模式,对于不同的队列参数配置,采用以下调度算法:
(1)按照配置的时间要求,采用时间片轮循的方式,对LLSS队列的报文进行服务,实现低延迟服务。
(2)按照配置的时间要求,采用时间片轮循的方式,对NLSS队列的报文进行服务,实现持续带宽服务。
(3)按照配置的时间要求,采用时间片轮循的方式,对LLSS队列的报文进行服务,实现低延迟服务。
(4)按照配置的时间要求,采用时间片轮循的方式,对PBS队列的报文进行服务,实现峰值带宽服务。
(5)按照配置的时间要求,采用时间片轮循的方式,对LLSS队列的报文进行服务,实现低延迟服务。
(6)对于剩余带宽,采用加权算法,基于Weight(加权)值对其他队列进行调度QWS服务。再转到(1)执行。
这些算法按从上到下的优先级排列,网络处理器的流队列调度功能支持2 048个可保证队列的同时调度。 由于(1)、(3)、(5)都是执行LLSS的调度,从而保证了LLSS队列的低延迟。而其他服务由于按照配置的时间要求进行调度,从而保证峰值带宽的实现。
对于队列配置,用户无须关心调度算法,只需关心队列承载业务的外在流量参数特征,如保证多少兆带宽,峰值最多多少兆带宽,需要占剩余带宽的比例权重等。调度算法会根据配置流量参数选用不同的调度算法来保证用户配置。
当调度器选择某条流后,流队列中的报文将根据其目标端口和发送优先级进入相应的目标端口队列。目标端口队列采用支持优先级的两级轮询调度算法,首先是按绝对优先级的顺序在4类目标端口队列中选择优先级最高的队列,然后在同一优先级内采用按轮询的方式选择目标端口队列。目标端口队列还对两个阀值参数——端口队列阀值和流队列阀值进行配置,以实现拥塞控制。
5 小结
本文论述的是一种提供服务质量的高性能路由器,各种服务质量技术在高性能路由器中可以结合使用。例如IntServ 和Diffserv结合,在核心网采用Diffserv,在接入网采用IntServ。又如MPLS和Diffserv结合,或MPLS和QoS路由结合。目前MPLS+DiffServ技术最有可能成为IP网络运营商首选的服务质量方案。但是由于区分服务的标准还不够详尽,不同运营商的DiffServ网络之间的互通仍存在困难,高性能路由器还有待进一步的发展和完善。
通信人家园 (https://www.txrjy.com/)
Powered by C114