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)设备以其卓越的表现,获得了用户的高度好评,目前已经在全球数十个国家的众多网络中获得了大规模的应用。

转载于:https://blog.51cto.com/959637/425130

NP架构-汇聚层路由器完美选择相关推荐

  1. 接入层交换机和汇聚层交换机的选择及连接方案

    本篇文章,易天光通信(ETU-LINK)将为大家介绍下接入层交换机和汇聚层交换机的选择及连接方案.在三层架构中,接入层的作用主要是让终端用户连接到网络,接入层交换机即为交换层的设备,由于接入层交换机需 ...

  2. 层次化局域网模型 - 核心层、汇聚层、接入层

    在层次化局域网模型中, 核心层的主要功能是将分组从一个区域高速的转发到另一个区域. 核心层是因特网的高速骨干,由于其重要性,因此在设计中应采用冗余组件设计,使其具备高可靠性,能快速适应变化.在设计核心 ...

  3. 计算机网络汇聚层,31. 接入层 汇聚层 核心层 三层典型网络架构

    # 网络 网络.互联网络.企业级经典网络拓扑和家庭网络 # 互联网服务提供商 基于ISP和IXP的多层结构 # OSI 参考模型 程序员    :应用层.表示层.会话层.传输层 网络工程师:网络层和数 ...

  4. 简要分析网络三层架构(核心层、汇聚层、接入层)

    核心层可以提供最优的区间传输, 汇聚层可以提供基于策略的连接 ,而接入层可以为多业务应用和其他的网络应用提供用户到网络的接入. 1.核心层 核心层是网络主干部分,是整个网络性能的保障,其设备包括路由器 ...

  5. 园区网架构设计 / 升级--1--接入层和汇聚层配置

    项目名称:园区网架构设计 / 升级 项目需求: 1.不同的PC属于不同的 VLAN ,如图所示: 2.不同的 VLAN 的IP地址为:192.168.XX.0/24 , XX 是 vlan 号: 3. ...

  6. 三层架构,网关冗余(网关在汇聚层的情况下)

    我们创建 VLAN10 和 VLAN20 让生成树中VLAN10的主根在HX1(核心1)上,备根在HX2上.VLAN20 的主根在HX2上,备根在HX1上.用MSTP的多生成树特点充分利用线路. 并且 ...

  7. 系统架构师-基础到企业应用架构-表现层

    一.前言 最近也许是由于假期的原因,我发布的文章的速度变慢了,对大家说下抱歉,这个系列的确我很难写,感谢大家对我的支持和关注,的确我在发布后得到大家的支 持和认可,让我有了更多的动力,之前发布的有些内 ...

  8. HCIE笔记-汇聚层和接入层的基础知识

    园区网架构 园区网设计总体流程 需求调研 1.客户网络环境:明确是改造还是新建 2.客户网络业务:需要部署的业务以及特效 3.现网的痛点:对网络的期待 网络速度:是否拥塞 网络质量:是否中断或者不稳定 ...

  9. 分层化网络设计:核心层,汇聚层,接入层

    核心层,汇聚层,接入层 分层化网络设计模型可以帮助设计者按层次设计网络结构,并对不同层次赋予特定的功能,为不同层次选择正确的设备和系统.三层网络模型是最常见的分层化网络设计模型,通常划分为接入层.汇聚 ...

  10. 接入层交换机、汇聚层交换机和核心层交换机的区别

    本文主要介绍接入层交换机.汇聚层交换机以及核心层交换机的区别,在了解它们的区别之前,先来了解下这三种交换机的名称是不是交换机的分类以及接入层.汇聚层以及核心层,这样更方便于您了解这三种交换机之间的区别 ...

最新文章

  1. 为什么大家都做不好社交这件事?
  2. 57HSXXXXEIS一体化步进伺服驱动电机
  3. Qt Creator创建Qt Quick项目
  4. java实现多级菜单(java递归)方法一
  5. WebSocket了解一下
  6. apache做yum源_svn+apache的yum源安装方式
  7. Java图书管理系统总结
  8. 笑看 等什么君 简谱
  9. 极速office(Word)如何插入分数
  10. 清北学堂-D1-T1-alien
  11. 太可怕了! 五一外出还敢连WiFi?
  12. 【黑金原创教程】【Modelsim】【第五章】仿真就是人生
  13. 蓝天保卫战之产品测试服务
  14. [python][转载]pyltp的使用教程
  15. 简述dijkstra算法原理_理解最短路径——迪杰斯特拉(dijkstra)算法
  16. 科沃斯扫地机器人电路原理图_扫地机器人的工作原理详解
  17. js,javascript中判断一个数是否是素数
  18. samba服务器讲解
  19. 员工考勤管理系统html,一种员工考勤管理系统的制作方法
  20. 重修Java内功——书到用时方恨少

热门文章

  1. 全球及中国DIN筒夹行业运营前景与投资决策建议报告2022版
  2. 实现发送Http请求的两种方法
  3. 激光电视是否真护眼?中首清算为您剖析
  4. html是什么简答题,网页设计与制作简答题.doc
  5. C++报错illegal instruction
  6. python定义变量取值范围_python怎么限定函数自变量取值范围?
  7. 从0到1构建基于Springboot+SpringCloud的微信点餐系统
  8. 谁在崛起,谁在没落?新一线城市竞争力盘点,用Python绘制动态图带你看懂!
  9. zlib deflate gzip区别
  10. 【秋无痕作品】Windows7SP1(32位)+XPSP3集成安装版V201108