引言
我们所熟悉的通信网的基本结构是由传统的电路交换系统和基于分组的交换系统构成,整个网络都是由一系列小的网络、传输和终端设备组成, 网络之间互通性差、可管理性不强,网络业务不灵活。随着电子商务、多媒体业务和VoIP等业务的出现对带宽的要求越来越高,同时,对网络业务流量的控制能力和网络安全也提出了更高的要求。
为适应这些网络需求,当今网络正在向NGN(Next Generation Network)的方向发展,下一代网络是可以提供包括话音,数据和多媒体等各种业务的综合开放性网络构架,采用开放的网络构架体系、业务驱动的网络、基于统一协议的基于分组的网络。这就要求各设备、芯片制造商开发生产出适应性更强、功能更强大的相关设备以满足网络发展的需求。而具有可编程性、强大处理能力的网络处理器NP(Network Processor)正是适合成为这些设备的核心功能单元。
网络处理器的发展
网络设备如路由器和交换机的体系结构的发展基本上经历了基于通用处理器的体系结构和基于ASIC、RISC的体系结构两个阶段。
基于网络处理器的体系结构是在以上两种体系结构的基础上,综合了双方优点推出的一种新型的体系结构。网络处理器是一种可编程ASIC,不但可为系统提供类似ASIC的处理速度,而且可以提供类似通用处理器的灵活性。网络处理器主要被用于处理线速(wire-speed)数据,进行协议分析和数据分类,位于物理接口处理器和交换架构之间。
网络处理器的功能特性
网络处理器具备完全的可编程能力,可以实现OSI网络协议栈2~7层的处理,对诸如信元、分组数据流等多种协议数据类型的支持满足了边缘设备的需要;同时简单高效的编程开发特征为网络处理器走向市场奠定了基础;强大的处理能力可以实现高带宽的线速处理;开放的高度集成的体系结构使得基于网络处理器的网络设备易于系统扩展。网络处理器的主要任务是数据包的分析、处理及转发,因而其主要的功能包括以下几部分:
协议识别和分类:根据数据包的协议类型、端口号、目的地址、以及其它特定于协议的信息对数据包进行识别。
拆装和重组:数据包的拆分,处理,以及为转发而重组。
排队和接入控制: 识别出数据包之后,将这些数据包送往相应的队列中以进行下一步处理,如优先处理,流量整形等。同时,可根据某些安全接入策略进行数据包过滤,确定是继续转发,还是丢弃。
流量整形和流量工程: 某些协议或应用要求对流量进行整形以使之在进入输出线或输出光纤时满足时延和时延抖动的要求。
QoS(Quality of Service)和CoS(Class of Service):除了对数据包进行流量整形外,数据包还可以被打上标签送往下一网络节点进行更加有效的处理。
修正数据包 :编辑数据包并添加额外的信息。
差错检测 :正确检测来自数据链路层的有差错的数据包并能采取有效的处理措施。
网络处理器的体系结构
随着Intel 和IBM等公司大举进入网络处理器市场,采用基于处理器体系结构的网络处理器得到迅速发展,下面以Intel和IBM公司推出的网络处理器家族中主流产品作一简单介绍。
IXP1200网络处理器是Intel 公司推出的互联网交换架构的网络处理器之一,它由一个StrongARM处理器、六个微引擎(Microenginer)、存储器接口和高速总线接口组成。IXP1200的主要功能模块和体系结构的主要特征:
并行处理器结构: StrongARM核和6个微引擎均为RISC处理器,并行工作,StrongARM核主要负责协议控制平面和上层应用程序的处理,6个微引擎是32位的可编程RISC,有各自独立的控制存储器和局部寄存器,访问外部资源(SRAM、SDRAM和IXBUS等)的机会均等,提供大于2倍外部带宽的内部总线带宽。Intel 推出的微码(Microcode)运行在微引擎上,微码的可重载性为系统升级提供了极大的方便。
硬件多线程 : 微码指令的运行采用5级流水线机制,同时考虑访存延迟,为提高微引擎的利用效率,采用硬件多线程,即每个微引擎同时运行4个线程,采用内部线程通信机制实现线程同步,提高了系统效率。
分布式数据存储和内存组织优化:IXP1200提供了多个存储单元接口,利用专用的读写寄存器实现对SRAM和SDRAM的访问,简化了编程模型,提高了存储效率。同时SDRAM和SRAM均支持多个读写队列进行优先级排队以优化带宽。
可扩充的体系结构:IXP1200的IXBUS总线接口可以实现多个IXP1200的系统扩充。
Ixp1200网络处理器提供了适应下一代网络设备的开放的体系机构,IX BUS总线不仅作为数据通道外接Ethernet MAC 、ATM、E1 等器件,还可实现多个IXP1200的系统扩展。