基于网络处理器的区分服务设计

2010-06-14 01:38赵增辉刘素桃李世武
无线电工程 2010年11期
关键词:区分引擎数据包

赵增辉,刘素桃,李世武

(1.中国电子科技集团公司第五十四研究所,河北石家庄050081;2.河北省科学院应用数学研究所,河北石家庄050081)

0 引言

作为一种专门针对网络协议处理和报文转发进行优化的特定处理器,网络处理器凭借其具有专用集成电路的高效分组转发特性以及通用处理器的灵活可编程性,成为推动下一代网络发展的核心技术。以NP3为例分析EZchip公司网络处理器基本架构及其功能模块,并在此平台上探索通信网服务质量(QoS)技术的设计实现。网络流量的不断膨胀及所承载业务的不断细化对QoS提出更高要求:一方面,要求网络设备能对各种业务提供性能上的保证;另一方面,要求对业务的分类更加细化,设计更加灵活,从而实现更细粒度的智能管控。NP3网络处理器以其线速性能及其基于流的处理能够很好地满足这些要求。

1 区分服务模型

区分服务中传输的每一组流聚集都具有相应的流传输服务标准,在各个域内根据不同的媒体传输要求提供不同的传输服务。在边界节点,区分服务根据IP数据包头的区分服务标记字段(DS)将进入网络的流进行分类、整形、聚合成不同的流聚集,而内部节点只进行简单的调度转发,从而简化了网络内部节点的服务机制。

区分服务的体系结构如图1所示。其中逐跳行为位于网络核心路由器上,主要功能是根据DS标记的服务质量等级完成业务的转发。包分类器和流量调节器位于网络的边缘,对进入网络的流进行分类和调节。

图1 区分服务边界节点功能

1.1 包分类器

分类器根据数据包头的某些域,对数据包进行分类。目前定义了2种类型的分类器:行为聚合分类器和多域分类器。前者根据包头的DS标记来对包进行分类;后者根据包头中多个域内容的组合来进行分类,如源地址、目的地址、DS标记、源端口和目的端口等。

1.2 流量调节器

流量调节器的结构细化为测量器、标记器和整形器。测量器根据传输调节协议中所规范的业务流要求,测量由分类器选定业务流的实时属性,并将得到的统计信息送往其他的功能调节模块。标记器用来根据测量器的信息设置分组的DS标记字段,并将标记的数据包添加到特定的DS行为聚集中。整形器对于每个流的数据,根据其预先定义的流量大小获得服务质量保证;对于超出流量限制的数据,应采取“管制”和“标记”的方法加以限制。

2 NP3网络处理器

NP3集成多个微处理器和流量管理器,采用独特的任务优化处理引擎模式,较大地提升了数据处理性能,具备双向线速30 Gbps吞吐量的数据处理能力。NP3数据处理流程如图2所示。

图2 NP3数据处理流程

在数据处理的过程中,NP3采用了4种任务优化处理引擎:解析引擎、查询引擎、决策引擎和修改引擎,每种引擎都集成了多个功能相对确定的微处理器,分别执行诸如包解析、查找、转发和修改功能。区别于Intel和AMCC等公司开发的网络处理器广泛采用多线程技术,NP3采用独特的单一影像编程技术,诸如任务优化处理引擎间的任务分配、消息传递和包重组等复杂的问题对开发人员都是无感知的,大大简化了微码软件编程的复杂度。NP3线路侧和交换侧分别集成了流量管理器,对来自线路侧和交换侧的数据可以赋予各种QoS策略。

数据包进入NP3的线路侧接口,根据微码指令,解析引擎提取数据包的关键信息传递到查询引擎;根据关键信息的内容,查询引擎在查询存储的表项中进行查表操作,查询结果传递到决策引擎;根据查询引擎查询的结果和解析引擎传送的消息,决策引擎决定数据包的输出端口和输出队列,将转发决策和数据包的修改策略传递到修改引擎;根据修改引擎转发决策和数据包的修改策略的内容,修改引擎对收到原始数据包进行修改;流量管理模块将接收的数据包存储到流量管理存储,并对数据包执行诸如带权重的随机早期丢弃(WRED)、整形(Shaping)和带权重的公平排队(WFQ)等流量管理策略;之后,将数据包调度到交换侧出口。NP3在反方向采用相似的数据处理流程,不再赘述。

3 基于NP3区分服务应用设计

基于NP3区分服务应用系统框架如图3所示,主要由线路接口单元、数据转发单元、交换预处理单元和中心处理器单元组成。其中,线路接口单元完成数据成帧功能;数据转发单元作为系统的核心,通过NP3实现诸如分类、测量、WRED、流量整形和WFQ等主要QoS功能;交换预处理单元主要完成数据包的定长分组和调度功能;中心处理器单元完成系统的初始化、微码的注入和路由表的更新功能。

区分服务应用框架分为入口方向和出口方向2个部分。入口方向,NP3从线路接口单元接收数据包,经过诸如分类、测量、WRED、流量整形和WFQ等一系列区分服务操作之后,将数据发送到交换预处理单元;在出口方向,NP3从交换预处理单元接收数据包,同样经过一系列区分服务操作之后,将数据发送到线路接口单元。下面以入口方向为例介绍QoS技术各功能模块的具体实现。

3.1 基于区分服务应用的初始化设计

通过流量管理工具对NP3的流量管理器进行区分服务应用的初始化,具体步骤如下:①根据使用要求,配置流量管理器的拓扑:将流量管理器分别置于入口方向和出口的后端,并且配置流量管理器的基本性能参数;②逐层配置QoS参数;③生成NP3的脚本文件,转化成二进制文件烧录到NP3。

通过中心处理器单元对NP3的硬件寄存器进行初始化,在微码程序对数据处理之前,对接收的数据进行预分类。主要包括:①确定数据的来源,入口方向、出口方向还是环回;②确定数据的2层协议类型,PPP帧还是以太网帧,本应用设置为PPP帧;③确定数据的3层协议类型,IPv4帧、IPv6帧、MPLS单播还是MPLS组播;④通过生存周期判断3层数据帧的合法性。

3.2 基于多域的深度包处理设计

根据数据包的DS域,为不同的网络业务提供了不同级别服务。定义IPv4头部的服务类型字段(ToS)为DS域,作为边界节点和内部节点传输流聚集信息的媒介。为获得基于流的细粒度管控,该设计采用深度包分类方法,提取源地址、目的地址、协议号、源端口和目的端口作为查找关键词,配合ToS域获得流标签。

为满足不同用户对服务需求的多样化,该设计引入2级查表机制来实现基于多域的包分类。2级查表机制基本思想如下:对每个进入的数据包,第1级查表组装源地址、目的地址、协议号、ToS、源端口和目的端口作为查找关键词查找路由表,根据用户配置策略返回该包的QoS类别,该策略查找表配置在支持通配符的3元内容片内存储器或者外部存储器中,以满足用户配置的灵活性。第2级查表利用目的地址查找路由表得到输出端口,获取该数据包的流标签。

3.3 基于层次化的流调度设计

NP3提供了L4、L3、L2、L1和 L0共5级具有弹性的调度器,分别对单个流、流类别、子端口、端口和群5种业务级别提供相应的业务调度。L4可以提供多达64 K的流队列,多个流队列可以影射到1个流类别;L3可以提供1~4 K的流类别;L2提供192个子端口,L1可以提供16/64个端口,将流类别影射为端口号;L0提供3个群,区分单播群、主机群和环回群。

基于NP3区分服务应用设计支持4个2.5 Gbps线路接口,每个接口支持4 K个流、6个优先级的服务。在L4将16 K个流通过WFQ策略影射成24(4×6)个流类别;在L 3,32个流类别根据协商的约定信息速率、峰值信息速率、约定突发长度和峰值突发长度等参数进行双漏桶整形,之后通过WFQ策略影射为4个端口;由于没有子端口,不使能L2调度器;在 L1,4个端口的队列根据协商的参数通过WFQ策略进行调度,影射成1个单播群。

4 性能测试及分析

采用斯博伦公司的网络测试仪在2个2.5 Gbps线路接口之间进行数据收发测试,通过区分数据的ToS字段获得6个不同优先级的数据,并且按平均分配带宽的方式进行不同业务量的测试。当发送负载从端口带宽的0~100%逐渐增大至产生丢包时,分别测试6种不同优先级的丢包率,结果如图4所示。

图4 多优先级业务区分处理

从图4可以看出,当负载较轻时,各种优先级的业务均不受影响;一旦平均负载大于端口带宽的16.5%时,所有优先级业务负载的总和为6×16.5%=99%,即将超出端口带宽,首先最低优先级(P5)的业务开始被丢弃;负载继续加大,最低优先级(P5)的业务完全被丢弃,次低优先级(P4)开始出现丢包现象;继续加大负载,P4、P3、P2和P1优先级业务依次被丢弃;继续加大各优先级业务的负载接近端口带宽的100%,只有最高优先级(P0)的业务不受影响,其他优先级业务完全被丢弃。测试结果能够较好地体现出系统对各种QoS类别业务的区分处理。

5 结束语

基于NP3网络处理器的区分服务设计采用了基于多域的深度包处理设计和基于层次化的流调度设计,充分发挥网络处理器灵活性与高效性有机结合的优势。性能测试表明,该设计很好地支持了基于流的细颗粒度接纳控制,有效地对各种业务实现了区分服务的QoS应用。

[1]周三友,赵增辉.基于网络处理器的以太网OAM设计[J].无线电通信技术,2010,36(2):7-9.

[2]ITU.T Y.1291 An Architectural Framework for Support of Quality of Service in Packet Networks[S],2004.

[3]IETF.R FC 2990 Next Steps for the IP QoS Architecture[S],2000.

猜你喜欢
区分引擎数据包
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
怎么区分天空中的“彩虹”
SmartSniff
教你区分功和功率
蓝谷: “涉蓝”新引擎
怎祥区分天空中的“彩虹”(一)
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
罪数区分的实践判定