网络处理器网络处理器(NetworkProcessor,简称NP),根据国际网络处理器会议(NetworkProcessorsConference)的定义:网络处理器是一种可编程器件,它特定的应用于通信领域的各种任务,比如包处理、协议分析、路由查找、声音/数据的汇聚、防火墙、QoS等。NP技术网络处理器器件内部通常由若干个微码处理器和若干硬件协处理器组成,多个微码处理器在网络处理器内部并行处理,通过预先编制的微码来控制处理流程。而对于一些复杂的标准操作(如内存操作、路由表查找算法、QoS的拥塞控制算法、流量调度算法等)则采用硬件协处理器来进一步提高处理性能,从而实现了业务灵活性和高性能的有机结合。相对于X86的优点基于X86架构的防火墙,由于CPU处理能力和PCI总线速度的制约,在实际应用中,尤其在小包情况下,这种结构的千兆防火墙远远达不到千兆的转发速度(64字节包长时,双向转发速率一般为百分之二十以下),难以满足千兆骨干网络的应用要求。采用NP架构的防火墙,各种算法可以通过硬件实现,在实现复杂的拥塞管理、队列调度、流分类和QoS功能的前提下,还可以达到极高的查找、转发性能,实现“硬转发”。面对ASIC的优点纯硬件的ASIC防火墙缺乏可编程性,这使得它缺乏灵活性从而跟不上防火墙功能的快速发展。虽然现代的ASIC技术提高了可编程性,但从开发难度、开发成本和开发周期方面看,仍然困难重重。NP完全支持编程,编程模式简单,一旦有新的技术或者需求出现,可以很方便地通过微码编程进行实现。提供了更快的技术、功能跟进和更加灵活的扩展能力,特别是在新规格、新标准的支持上。网络处理器(NP)是专门为处理数据包而设计的可编程处理器,能够直接完成网络数据处理的一般性任务。硬件体系结构大多采用高速的接口技术和总线规范,具有较高的I/O能力,包处理能力得到了很大提升。网络处理器一般具有以下特点:特点●并行处理器:采用多内核并行处理器结构。片内处理器按任务大致分为核心处理器和转发引擎。●专用硬件协处理器:对要求高速处理的通用功能模块采用专用硬件实现以提高系统性能。●专用指令集:转发引擎通常采用专用的精简指令集,并针对网络协议处理特点优化。●分级存储器组织:NP存储器一般包含多种不同性能的存储结构,对数据进行分类存储以适应不同的应用目的。●高速I/O接口:NP具有丰富的高速I/O接口,包括物理链路接口、交换接口、存储器接口、PCI总线接口等。通过内部高速总线连接在一起,提供很强的硬件并行处理能力。●可扩展性:多个NP之间还可以互连,构成网络处理器簇,以支持更为大型高速的网络处理。从网络处理器以上特点可以看出,与通用处理器相比,网络处理器在网络分组数据处理上具有明显的优势。主要分类目前,NP芯片都是由国外厂商设计制造的,从体系结构上主要分为两大类:Intel的IXP系列产品一类是以Intel的IXP系列产品为代表,分为控制和处理(或称数据)两个平面。如Intel公司的IXP1200,控制平面是一个ARMCORE,负责维护系统信息和协调处理部分工作,处理平面由多个微引擎(MicroEngine)和其他专用硬件组成,负责利用控制平面下发的微代码和命令,直接处理网络数据。这类产品在对数据包进行简单过滤时性能较好,但是由于体系结构限制,尤其是微代码的开发相对复杂,导致灵活性较差,难以满足复杂多变的市场需求,一般适合3层(IP层)及以下网络数据的处理。SiByte的Mercurian系列产品另一类产品以SiByte的Mercurian系列产品为代表,它基于MIPSCPU设计,如SB1250。它一方面保持了基于通用CPU设计的灵活性,另一方面通过SOC(SystemOnChip)的方式消除了传统CPU、总线、设备之间带宽的瓶颈问题。这类产品灵活性较强,易于开发、升级和维护,适于构建速度可与专用ASIC相媲美的、完全可编程的网络处理平台。芯片厂家目前提供NP芯片的厂家有很多,基本上都符合NPF指定的规范。国内使用比较广泛的则是Intel公司的IXPxxx系列,主要包括IXP4xx、IXP12xx、IXP24xx、IXP28xx等。IXP系列NP处理器从体系结构上看基本上都一样,都是由一个RISC处理器加一个微引擎构成的。其中,RISC处理器主要用于控制微引擎的运行,所以又称为控制层面;微引擎完成对网络数据包的处理,以实现高性能,所以又称为数据层面。不同IXP系列处理器的RISC型号和主频不同,微引擎的个数也有所不同,在性能上也有很大差别。IXP4xx的市场定位主要在中低端市场,因此基于IXP4xx芯片做出的防火墙也主要定位在中低端市场中。这里需要特别提一下IXP425,它内嵌了一个加密引擎,支持一些公开的密码算法,如3DES、AES、MD5、SHA1,因此,许多安全厂商会使用它生产低端的VPN或防火墙。不过,4xx系列芯片产品并不能进行微码编程,而Intel预置的微码又没有完成FW/VPN的处理,使得该芯片所对应的产品对IP报文的处理要通过533MHz的Xscale来处理的,因而在性能上并没有什么优势。这可能也是一些国内厂商采取变产品不变价格的策略的原因。IXP12xx从12xx系列开始已经可以让软件开发人员根据不同的应用定制微引擎上的微码,以实现不同的功能。不过由于IXP12xx其微引擎只有6个,每个微引擎上可以存储条2k×32位的指令,所以该系列NP芯片只能用来做简单的包转发处理和QoS处理,如果用作较为复杂的防火墙处理则会显得力不从心了。因此,基于该系列NP芯片的防火墙要么性能不高,要么功能简单。IXP24xx从2003年开始,Intel公司推出了IXP24xx系列的网络处理器,它在性能上有了质的变化,开发起来也要复杂得多。使用它们做出的防火墙可能在单纯包转发上到达线速.IXP28xxIXP28xx的NP处理器从性能上比IXP24XX的性能又增加了很大,单从芯片的性能指标上看,IXP28xx比IXP24xx更有可能做出千兆线速的网络安全设备。不过,由于IXP2800板卡的设计要比IXP2400板卡设计要更加复杂,目前市场上还没有能够支持它得工板。国内有不少厂商推出了低端基于INTELIXP425芯片的NP防火墙,面向百兆级用户.但NP最大的优点在于在高端,425芯片百兆上的处理能力没有同级别X86防火墙性能高.具体可以参考INTEL官方网站的425芯片的技术白皮书规格.而基于2400芯片的高端NP产品代表了业界的最高性能.国内最先推出的神州数码DCFW-1800E-NP产品在千兆环境下的小包双向吞吐率可以达到93%以上.真正的实现了骨干网络的高速安全.