1.汇聚层路由器的需要

按照经典IP网络结构划分,一个网络往往包括核心骨干层、边缘汇聚层和接入层,各个层面的设备 都有明显的不同技术要求。

 

图-1 网络拓扑

  • 核心层设备的要求是大容量、线速性能、高可靠性、安全性和具有实效的QOS技术;
  • 汇聚层设备需要高性能、多业务支持能力;
  • 接入层设备关键是提供丰富的接口类型和完善的协议转换机制以及用户区分技术;
  1. 对汇聚层来说,高性能应该是至少2个GE端口的线速转发能力(一个上行一个下行),而多业务支持指MPLS、NAT、QOS甚至是IPv6等各种协议的应用,尤其是能快速支持新的网络协议和应用。
  2. 汇聚层路由,从诞生到现在,经历了20年时间,经历了一下几个阶段:
  • 单CPU内核,集中式转发;
  • 分布式CPU ,分布式转发;
  • CPU+ASIC, 分布式转发;
  • NP+CPU+ASIC,分布式转发;

那么,路由器核心器件不断更新的动力室什么呢?

技术的发展最终动力来自于业务的需求,路由器的发展无疑也是符合这一原则的。

这里的业务不仅是狭义的数据、语音、视频应用,而是广义上的各种网络应用,如:QoS、×××、ACL、NAT、IPv6等等。每一种新的网络技术或者协议其实都代表这一种新的业务,而每一种新的硬件架构的出现其实代表着整个网络的业务在发生着巨大变化,协议的更新与业务的关系和硬件的架构更新与业务关系是异曲同工。

业务类型的丰富导致了分布式转发架构的出现,业务流量的急增开辟了ASCI的广泛市场,而高速业务的类型不断增多、多业务的融合最终促使NP 的应用。分布式CPU模式虽然分担了不同流向的数据包,但性能无法保障;ASIC芯片保障了性能,但是它2-3年的更新周期无法适应日新月异的业务变化,所以需要一种面向数据分处理的、具有体系结构特征或特定电路的、软件可编程器件,就是NP ——网络处理器。

在汇聚路由器发展的过程中,NP 的出现无疑是最吸引人的,也就是目前汇聚层路由器

硬件设计首选的核心芯片,它是三网融合、电信IP 、以太城域网灯网络发展方向上的一个关键硬件技术,因为它具有汇聚层路由器最需要的一些关键特性。

2.NP 的关键特性

 

图-2 NP 体系结构图

NP 模块要高效工作,是需要一个整体系统的支撑,这个系统一般包括通用处理模块、微引擎、外存接口、高速外存接口、片内缓存、数据总线接口和PCI 接口等不封。另外,一些NP 还有专门的总线接口用于多个NP 的扩展,这些通过专门总线扩展的多个NP系统具有比单个NP强大的处理能力。

图-3 微引擎内部结构

3.高性能

NP模块通过先进的系统架构和微引擎设计两个层面来保障高性能

系统架构方面主要有以下几个方面的的关键特性:

1.数据转发和控制管理相分离

以CPU为内核的路由设备,主CPU在控制数据转发的同时,往往还需要负责路由表的维护、整个系统的监控、对数据做深层处理等复杂操作,所以很容易超负荷直至死机。而NP架构下,数据转发由微引擎完成,其它功能则交给内置或外置的通用处理器(如图1中的Xscale处理器),实现数据转发和控制管理完全分离,有效保障了数据转发的线性。

2.两种软件架构--串行与并行

多个微引擎之间可采用串行和并行两种软件架构。串行架构是纵向的使用方式,同一时刻微引擎在执行不同的任务,形成处理流水线;并行架构师一种横向的使用方式,即将任务划分成几部分,所有的微引擎执行相同的一部分任务,该部分完成以后再完成另外一部分任务。

串行处理中,由于共享资源都在同一个微引擎上,可以采用本地缓存等比较快的同步机制,线程之间同步和数据共享效率高;缺点是循环数限制严重,需要充分发挥线程利用率,不宜有过多I/O和线程切换,适合处理逻辑比较固定、需要共享数据的处理,如接收/发送/QOS等。而对于并行架构,报文可以有长的执行路径,处理和内部资源丰富;但是,多个微引擎之间,同步/顺序保证需要比较复杂的机制,没有快速的共享数据方式,适合特性有较多扩展可能、各流程处理相关性不大/相对独立的应用,如数据转发。

实际路由器设计时,往往综合使用这两种架构。即将多个微引擎分成几个组,每个组负责一种功能,比如接收发送、QOS处理、转发控制;每个组中的各个微引擎则采用并行的工作模式,协同工作,提高处理速度。

这一点和传统的CPU、ASIC模式都很不一样,这种模式在保障高性能的同时,极大提高整个系统设计的灵活性。针对不同业务特点,可以有不同的微引擎处理组合,对快速适应不同业务特性是一个巨大贡献。

(3)I/O优化

微引擎I/O操作主要是对内外部存储器的访问。所以NP模块I/O优化包括优化的内存管理和硬件多线程技术两个方面。

在一般的多处理器系统中,内存操作往往是系统开销的一大瓶颈。而NP通常要对分组进行存储和复制等处理,需要执行大量的存储器操作。NP为了优化这一操作往往引入经过优化的存储器接口和一些DMA单元,以提高存储器的操作效率;另外对DRAM和SRAM的读写可以采用优先访问机制以提高效率。NP模块数据转发流程一般来说,接受模块的微引擎从RBUF取得报文,复制到DRAM,同时读取报文头获得报文处理所需要的关键数据,作为包头描述符(packet descriptor metadata)写入SRAM,通过一个简单的地址映射,使包头信息与DRAM中的包数据关联。在后续的包文处理中,可以尽量减少对DRAM中的访问。如,一个路由器的方案中,需要修改的包数据包括二层帧头、IP头的TTL/校验和等,如果每一次数据的修改都在DRAM中进行,无疑是非常低效的(因为DRAM读写时延要远远大于图一中所示的SRAM、Scratch和图二中所示的Local Memory)。通常的做法是维持一个全局的数据结构,存放在Local Memory、Scratch或者寄存器中,在发送之前一起写入DRAM包数据中。I/O带宽优化是一个综合的权衡。

为了进一步提高处理器的利用率, NP引入硬件多线程技术,并且线程间的切换开销为0;线程切换最常见的是当一个线程执行到读写缓存需要较大时延时,为了提高系统吞吐量而主动挂起当前线程。

NP模块在微引擎设计方面有以下的关键特性:

  • 指令操作
    微引擎提供微码编程,包括C语言子集和专用汇编指令两种编程语言。微码不需要OS的支撑,编译连接后的代码通过特定的指令写入各个微引擎的控制存储器,微引擎启动后直接运行控制存储器的代码。这种指令操作模式大大提高了效率,而且采用RISC 技术,结合多级流水线技术,大部分指令在一个时钟周期完成。
  • 本地存储器
    微引擎包含了本地存储器(图二中所示的Local Memory),可以被微引擎内部的全部硬件线程访问,在线程间共享数据。同时由于本地存储器访问延迟较小,使用本地存储器对访问数据可以明显提高系统性能。

这些技术的使用大大提高了NP的性能,从而带来整个设备的高性能。尤其是控制与转发分离、线速转发等特性,保证了在巨大突发数据流量、病毒泛滥、******等恶劣条件下,NP数据转发能永不崩溃的特性,哪怕主CPU已经停止工作,NP依然能坚强地转发2-7层数据报文!为运营商、企业网用户争取了宝贵的网络恢复时间。

多业务

NP中所有微引擎的任务由预先根据需求编写好的任务模块组成,并且可以在运行过程中动态加载新的任务模块,具有极大的灵活性,可以满足大部分应用业务;另外,支持DifferServ(区分服务),基于L2-L4进行流分类、流标记、流量×××、队列管理(Tail Drop、RED、WRED)以及多种队列调度算法(FIFO、PQ、WFQ等)。

以Intel的IXP系列NP模块为例,每个ME中有一个控制存储器(图二中的Control Store)用来存放微引擎上需要执行的代码,一个微引擎可以存放4096条40bit长度的指令(IXP2800为8192条)。实际业务根据功能复杂度和具体NP模块不同、指令编译算法不同,所需指令也有所区别。以Intel为例吧,一般实现某种特定功能模块的业务(如MPLS)大约需要200-500条指令。

由此可见,单个微引擎就可以实现多种业务。而如前文所说,微引擎之间可以串行工作,这样就可以实现更多的业务功能,另外,微引擎并行工作可以满足更复杂业务条件下数据的线速转发。

NP灵活的可编程特性以及专为IP业务定制的专用部件,使其可以实现比普通路由、交换更为复杂的业务处理。在城域网、骨干网优化升级的过程中需要支持MPLS,在向Ipv6过渡的过程中,需要Ipv6的IP转发设备以及高性能的V4/V6互通网关,NP很好的满足了这些要求。在不需要更换硬件设备的情况下通过代码的升级即可实现新的业务,极大的节省了网络升级费用;以NP构建的路由器具有比普通路由器的ACL功能强大得多的“硬件ACL功能”,其性能、端口密度又远远超过传统的CPU内核路由器;NP还可以根据应用层协议实现负载均衡,用作服务器群的前端流量均衡处理;除此之外,通过对NP的编程,可以实现网络安全监控、电信业务分析、内容过滤等业务,帮助运营商更好的监控、管理网络。

这些丰富的功能扩展一方面使汇聚层路由器更好的完成本职工作,同时极大扩展了汇聚层路由器的使用范围。更宽泛的说法是,NP灵活的多业务特性使其不再局限于某一类设备或产品,而更广泛地代表了一种网络设计的技术理念。

3 华为公司NE20E(20)汇聚层系列路由器

华为公司是业界最早推出NP路由器的厂商之一,其中典型代表就是NetEngine 20E(20)系列汇聚层路由器。它采用集中式NP+分布式CPU的体系架构,具有多业务、高稳定、性能卓越、高性价比的优势。

借助于NP模块和华为公司优秀的VRP软件平台,NE20E(20)系列路由器具备了完善了QOS、MPLS、IPv6功能,并且在同类产品中性能十分卓越,能实现至少3个GE端口的线速转发,这在汇聚层路由器中并不多见。

“今天的核心就是明天的边缘”,今天看来NP 是汇聚层设备的首选。因为汇聚层设备最重要的作用就是实现各种业务,比如流分类、QOS等等。另外,目前也有一些路由器在接口板上采用了NP模块,即“分布式NP架构”。虽然在接口板上采用NP模块有很多明显的优点,但是否采用NP接口板必须根据设备的定位来综合考虑。也就是说,性价比更具有参考意义,而并非一味追求更高更快更强。所以我们在NE20系列设备的接口板上都是采用传统CPU方式来实现控制转发,一方面满足各种中低速接口的线速转发,另一方面保持卓越的性价比。

定位在企业网汇聚和运营商边缘的NE20E(20)设备以其卓越的表现,获得了用户的高度好评,目前已经在全球数十个国家的众多网络中获得了大规模的应用。