下一代网络设备核心单元——网络处理器应用研究
2008-09-28
作者:蔡一兵 石晶林
摘 要: 网络处理器" title="网络处理器">网络处理器的设计、应用被认为是推动下一代网络" title="下一代网络">下一代网络向高性能" title="高性能">高性能、灵活性方向发展的核心技术。本文从网络设备研制角度,对网络协议处理基本操作、网络处理器产生技术需求、基本功能、体系结构特点、产品现状、应用前景、未来发展进行研究。
关键词: 网络处理器 体系结构 网络设备 数据分组 网络协议
网络高速发展,对下一代网络设备提出以下要求:具有优异性能,支持高速分组处理;具有高度灵活性,支持不断变换高层网络服务。传统的基于GPP(General Purpose Processor)的网络设备只满足灵活性要求;基于ASIC(Application Specific Integrated Circuit)的网络设备只满足高性能要求;网络处理器能够通过灵活的软件体系提供硬件级的处理性能,基于NP(Network Processor)的网络设备具有高性能和灵活性。
1 网络处理器产生技术需求
以网络设备核心部件更新为标志,网络设备体系结构发展经历了三个阶段:
(1)以GPP为核心的网络设备体系结构
在网络发展早期,网络传输速率低,服务少,研究集中在服务框架构建和网络协议实现。设备以GPP为核心,在通用操作系统基础上,以软件方式实现各种网络服务。目前许多边缘设备:如防火墙、VPN设备、VOIP设备,还在采用这种通用处理器+通用操作系统+专用网络服务软件的体系结构。其优点是灵活性好,缺点是性能处理差。这种结构为支持各种复杂运算,采用通用体系结构和指令集,其通用性导致网络性能处理差。
(2)以ASIC/RISC为核心的网络设备体系结构
随着网络带宽的增长速度远大于通用计算机处理的增长速度,网络瓶颈变成基于GPP的节点设备。采用基于ASIC和RISC(reduced instruct set compute)为核心的体系结构成为主流,尤其是骨干设备的设计。为获取高性能,通常由RISC负责非实时管理,ASIC负责高速数据处理。这种结构缺点是开发周期长,缺乏灵活性。ASIC不具备可编程性,一旦将计算逻辑固化到硬件,很难修改。设计制造复杂ASIC需要花费18个月到两年时间,设备制造商必须准确预测未来的市场需求和技术趋势。
(3)以NP为核心的网络设备体系结构
在新信息技术、用户需求、市场竞争三驾马车牵引下,未来网络需求出现新特点,主要集中在以下三方面:(1)高性能压力依旧存在:按照摩尔定律,电处理器处理速度每18个月增加一倍;但随着DWDM等光纤技术在主干网络的广泛应用,每12个月光纤链路容量就增加一倍。因此以电处理器为核心的路由器仍然是网络发展瓶颈。在低廉光处理技术出现之前,需要充分挖掘现有电处理技术。(2)灵活性要求更为迫切:Internet的爆炸性增长,数据通信市场的瞬息万变,使得服务提供商和设备提供商面临流量增加、用户增多的严峻挑战,面临根据用户复杂多变要求,快速提供、部署不同服务的市场挑战。服务提供商希望设备提供商提供保护已有巨额投资的平滑升级解决方案。面对这些挑战,只有采用灵活性好,开发成本低,周期短,可持续性网络开发技术,才能在未来市场占据先机。(3)高层细化处理更为关键:网络应用" title="网络应用">网络应用范围不断扩大、新型业务不断涌现,导致新协议不断出现,对服务质量和安全性能的要求越来越高。核心问题在于:设备能够在网络2~7层上对高速数据流进行细化分组分类处理,而不仅是在网络2~3层上进行数据流的简单存储转发处理。数据分组处理涉及层次越多,系统资源负荷开销就越大。
在高速数据流高层细化处理背景下,NP技术为下一代网络的核心技术。其特点是:NP针对数据分组处理,采用优化体系结构、专用指令集、硬件单元,满足高速数据分组线速处理要求;具有软件编程能力,能够迅速实现新的标准、服务、应用,满足网络业务复杂多样化需求,灵活性好;设备具有软件升级能力,满足用户设备硬件投资保护需求。此外为缩短设备提供商的产品研制周期,NP厂商通常会提供配套硬件评估板和规范软件应用范例。
2 网络处理器概念
网络处理器是面向网络应用领域的应用特定指令处理器,是面向数据分组处理的、具有体系结构特征和/或特定电路的、软件可编程器件。通过灵活的软件体系提供硬件级的处理性能是NP的关键特性[1]。
在以GPP和ASIC/RSIC为核心的设备体系结构阶段,对2~3层数据处理采用“存储——转发”数据分组处理模式。随着网络发展,需要对2~7层的数据分组采用“存储——处理——转发”数据分组处理模式才能实现复杂的QOS、安全控制、负载均衡等功能模块。NP的出现,标志着设备对数据分组的处理能力从低层粗放式处理过渡到高层细化处理。
3 网络应用处理基本操作
在对ATM、VLAN、MPLS、IPv4、IPv6、IPSec、UDP、TCP、NAT、Web交换、QOS协议等多种协议和应用的分析基础上,参考文献[1]归纳对单个数据分组处理的六种基本操作:(1)模式匹配:对分组字段的比特进行匹配。输入为需要匹配值和分组字段值,输出为某个确定逻辑值。(2)检索:根据某个关键字查找数据。通常与模式匹配联合使用,用于查找表中的某个特定数据项。数据结构和算法取决于关键字的大小和需要搜索的类型(一对一或一对多)。(3)计算:对不同协议,数据分组的计算处理差异很大。如:IPSEC中需要对整个分组进行加密、解密、鉴别等计算;而多数协议都要求进行CRC效验计算。(4)数据处理:对分组报头的修改便视为数据处理。如:数据分组的分割、重组;IPV4中的TTL字段每跳减一修改。(5)队列管理:对进出的协议数据单元进行存储和出入管理。负责实现数据报文在分组分割/重组的存储操作,以及与QOS相关的流量整形和流量工程策略。(6)控制处理:通常涉及不需要线速执行的管理任务,如:异常处理、表更新、统计数据汇总等。
通过继承ASIC和RISC分层处理合理思想,NP将网络处理任务划分为控制面和数据面两个层次:控制面负责非实时性的管理和策略控制任务,数据面负责承载高速多变的数据分组处理。目前NP主要任务是进行数据分组的线速分析、处理及转发,通过上述六种基本操作组合,实现以下功能:协议识别/分类、数据包拆分/重组、排队/接入控制、流量整形/流量工程、数据包修正、差错检测。随着SOC技术发展,NP将集成更多设备级功能。
4 网络处理器体系结构简介
4.1 Intel公司IXP1200网络处理器介绍
IXP1200系列是Intel公司IXA架构的核心产品,组成如下:1个主频最高可达232MHz的处理核心StrongARM;6个RISC结构的可编程微引擎" title="微引擎">微引擎,每个微引擎又包含4个硬件线程;64位IX Bus;32位的SRAM接口单元,工作频率为核心频率的一半;64位的SDRAM接口单元,工作频率为核心频率的一半;32位PCI总线接口单元,最高66MHz。
主要特点为:
(1)并行处理:六个微引擎和一个StrongARM构成IXP1200的计算资源,共享相同资源,包括:SDRAM,SRAM,PCI,IX Bus等。微引擎和StrongARM均为RISC处理器,并行工作。StrongARM负责协议控制层面任务和微引擎管理。微引擎负责数据层面的高速数据分组处理,通过对六个微引擎/24个硬件线程分配不同功能的微码程序,可以实现网络负荷的动态/静态调配。微码程序的可重载性为系统软件升级提供了极大方便。
(2)分布式数据存储结构:每个微引擎独立使用256个32位寄存器。其中128个寄存器是传送寄存器集。每个微引擎将数据载入自己的传送寄存器集,对传送寄存器集进行操作,然后通过传送寄存器集写到数据目的地。数据载入传送寄存器集后,微引擎可在单指令周期完成访问。
(3)硬件多线程:每个微引擎有4个编程计算器,支持4个硬件线程。每个线程可以执行相同或不同的微码程序,采用内部线程通信机制实现线程同步,提高系统效率。微码指令采用5级流水线机制,执行周期为1个时钟周期。
(4)主动内存管理:SDRAM和SRAM支持多个读写队列进行优先级排队以优化带宽。允许StrongARM和6个微引擎/24个线程同时提交对内存单元的读写请求,内存单元根据特定优化指令对读写请求硬件优先级排队。用户可自定义内存管理优化策略。
(5)多层并发性:通过多个独立数据总线和控制总线,可以实现数据并发移动:SDRAM单元和微引擎或IX BUS单元之间的双向同时读写;SRAM单元和微引擎或IX BUS单元之间的双向同时读写;SDRAM单元和PCI单元之间读写;IX BUS单元和微引擎之间读写。
(6)块数据移动:每个微引擎分配很大的寄存器集,单个指令就可以实现功能单元之间64个字节的数据块移动,和功能单元与IX BUS之间128个字节的数据块移动。块数据移动在充分利用微引擎计算资源的同时,还可以减小微码程序规模。
(7)可扩展性:多个IXP1200处理器可以通过IX BUS总线互联,从而有效增加处理系统处理能力和数据带宽;ATM、E1/T1、Ethernet MAC等数据接口可以通过IX BUS总线接入IXP1200;微引擎的微码程序存储空间具有可扩展性。
4.2 IBM公司NP4GS3网络处理器介绍
NP4GS3网络处理器是IBM PowerNP网络处理器家族的高端产品,支持2.5Gbps的网络应用,由以下模块组成:(1)EPC:嵌入式处理器组是NP核心部件,包含16个协议处理器,可同时执行32个线程,具有并行处理32个数据分组的能力。为提高性能,采用硬件加速器实现树搜索、帧转发、帧过滤、CRC计算及其他功能。(2)Embedded PowerPC:负责NP非实时管理控制,包括特殊帧处理、配置、盒管理和高层协议处理。同时集成PCI接口,可以满足用户集成其他新器件的需求。(3)Ingress EDS:对来自物理层设备的数据分组进行入队、出队、调度,然后送到交换组织。(4)Egress EDS:对来自交换组织的数据分组进行入队、出队、调度,然后送到物理层设备。(5)Ingress SWI:将数据分组从Ingress EDS传送到交换组织或其他的NP4GS3。(6)Egress SWI:将数据分组从交换组织或其他的 NP4GS3传送到Ingress EDS。(7)Ingress PMM:接收来自物理层设备的数据分组。(8)Egress PMM:将数据分组发送到物理层设备。
NP4GS3网络处理器支持40个10/100Mb以太网端口和4个Gigabit以太网端口,可配置成4个OC-12 POS,16个OC-3 POS或链接聚合POS端口。处理器具有扩展能力,可由多达64个的NP4GS3组成交换组织,实现2层、3层甚至更高层数据分组的线速转发处理。
4.3 网络处理器体系结构特点
上述两种NP的体系结构具有以下共同特点:(1)多内核并行处理器:采用多内核并行处理器结构。片内处理器按任务分为核心处理器和数据分组协处理器。核心处理器通常负责非实时的管理任务;数据分组处理器进行实时、线速数据分组处理。(2)专用硬件加速处理单元:采用专用硬件对特定协议操作进行协处理:如CRC效验、哈希查找、树查找、字符匹配。针对安全产品,提供加/解密、大数运算等硬件单元。(3)优化指令集:通常采用RISC技术,结合多级流水线技术,大部分指令在一个时钟周期完成。并针对网络协议处理特点,设置专用硬件加速处理单元,提供专用指令如压缩指令、哈希查找、状态判断、数据读写指令。(4)优化内存管理和分级存储器组织:NP需要进行大量的数据分组的接收、存储、复制、转发,内存操作成为系统开销的一大瓶颈。为了解决这个问题,通常采用块数据运动技术和特殊的优化存储接口。同时对数据进行分类存储:SRAM用于存放需要快速查找的各种表结构;SDRAM用于存放数据分组数据。(5)硬件多线程:为了提高NP资源利用率,每个数据分组协处理器还支持多个硬件线程。每个线程都有一套专门的硬件来存放上下文(Context),可获得线程切换的零开销。(6)高速I/O接口:具有丰富的高速I/O接口,包括物理链路接口、交换接口、存储器接口、PCI总线接口。(7)可扩展性:多个NP之间还可以互连,构成网络处理器簇,以支持更为大型高速的网络处理。
5 网络处理器产品现状和应用前景
目前已有30个网络处理器厂商完成超过500个的NP设计,产品主要面向2.5Gbps网络应用和10Gbps网络应用,40G的NP正在走向市场。面向2.5Gbps网络应用的NP有:Vitesse公司的IQ2000和IQ2200,Motorola公司的C-5 DCP。面向10Gbps网络应用和全部7层协议的NP有:Xstream Logic公司的动态多线程(DMS)处理器核,Ezchip公司的NP-1,Lexra公司的NetVortex,Bay Microsystems公司的BRECIS MSP5000。
网络处理器厂家推出NP产品时,通常会推出配套硬件调试目标机评估板、NP开发软件工具、操作系统。目前NP主要采用嵌入式操作系统,如VxWorks、Linux等等,也有一些厂商提供专用操作系统,如Princeton公司的Vera采用Scout OS操作系统。大部分NP有集成开发环境支持,能够用C语言、汇编语言进行开发,如:Intel的WorkBench集成开发环境,支持C语言和微代码,具有图形化界面,能够进行硬件平台软件模拟调试,同时提供丰富的IP协议API、子程序、应用范例。
网络处理器主要用于网络接入、网络骨干设备,开发从第2层到第7层的各种网络服务和应用。在网络接入设备中,支持各种新业务、服务安全接入,进行质量控制,其中包括:提供VPN;入侵检测、网络监控、防火墙等安全控制;进行分组分类,识别关键业务流,保证QOS;执行协议转换,支持多种传输媒体接入;记费和负载均衡等。在网络骨干设备中,用于在OC-48 to OC-192甚至更高速率下实现聚合流的分类识别和转发,支持流量工程和QOS控制。并将传统的网络接入设备3层以上协议处理功能引入到核心网中,如对骨干网实施国家级的入侵检测。
根据不同需求,可以采用NP灵活构造不同规模的处理平台,如单个NP构成的小型单板设备;多个NP构成的中型单板设备;多个线卡通过交换组织构成多板大型设备。下面是已有的基于NP的应用范例:(1)高速路由交换设备:Cloudshield公司使用八个Intel的IXP1200构建的OC-48光速2~7层包服务器。ALCATEL使用IBM的POWERNP构建核心路由设备。Cisco公司基于Cisco PXF网络处理器的边缘路由器。(2)高速安全设备:清华紫光UF10000是基于两个Intel的IXP1200网络处理器阵列千兆防火墙。作为第三方软件开发商,Deceng公司推出基于Intel的IXP2400的Snort千兆网络入侵检测系统软件解决方案。IXP2850更是以面向10-Gbit/s的IPSEC VPN设备市场而引起安全设备生产厂商的高度注意。(3)骨干测试设备:骨干网络从2.5Gbps到10Gbps,甚至是40Gbps的高速发展,给网络性能测试同样带来挑战。基于NP的下一代协议分析仪和性能测试仪成为趋势。EMPIRIX公司使用MOTOROLA的C-5DCP,开发网络参数模拟设备。(4)家庭网络设备:下一代网络的概念将从国家电信网、企业网扩展到家庭网络、个人网络。其中家庭网关是家庭网络的核心设备,需要根据具体家庭用户,快速、综合实现各种服务:如安全访问控制、VPN、视频流QOS保障、网络存储、计费管理等。低端NP正好完全满足家庭网关个性化、多变性、高性能要求特点。
此外,NP的开发、应用直接推动网络处理器论坛(NPF)的成立。该论坛于2001年由公共交换接口协会CSIX和公共编程接口论坛CPIX两个组织共同创建,CSIX制定NP与交换组织之间的标准硬件接口,CPIX制定NP开发标准软件接口。NPF的成立,将进一步推动NP的发展,一方面将逐步结束目前各家NP硬件实现和软件开发工具各不相同的局面,另一方面将形成一支庞大的第三方队伍,分布在硬件组件、NP操作系统、开发工具、软件应用等方面。
网络处理器面向高速数据流的高层细化分组处理,通过对执行环境、内存、硬件加速器、总线结构、网络应用开发接口的综合优化,具有灵活软件体系提供硬件级处理性能的关键特性。以网络处理器为核心的下一代网络设备具备高性能和灵活性特点,较好满足了未来网络和市场对网络设备的技术需求,具有巨大发展空间。
参考文献
1 Niraj Shah. Understanding network processors.[MS.Thesis]. Berkeley: Department of Electrical Engineering and Computer Sciences,University of California, 2001
2 Intel Corp. Intel IXP1200 NetWork Processor Family Hardware Reference manual
3 IBM Corp. IBM PowerNP(tm) NP4GS3Network Processor Datesheet
4 D. Wetherall. Active network vision and reality: lessons from a capsule-based system. In Proceedings of the 17th ACM Symposium on Operating Systems Principles,December 1999
5 T. Wolf,J. S. Turner. Design issues for high performance active routers. IEEE Journal on Selected Areas of Communication, 19(3):404~409, Mar. 2001