路由器是互联网络中的节点设备,用来连接多种网络或网段,路由器工作于网络七层协议中的第三层,其主要任务是接收来自一个网络接口的数据包,根据其中所含的目的地址,决定转发到下一个目的地。
与计算机一样,路由器也包含有CPU。不同级别的路由器,其中的CPU也不尽相同。无论在中低端路由器还是在高端路由器中,CPU都是路由器的心脏。通常在中低端路由器当中,CPU负责交换路由信息、路由表查找以及转发数据包。在路由器中,CPU的能力直接影响路由器的吞吐量(路由表查找时间)和路由计算能力(影响网络路由收敛时间)。在高端路由器中,通常包转发和查表由ASIC处理器完成,CPU只实现路由协议、计算路由以及分发路由表。随着技术的发展,路由器中许多工作都可以由硬件实现(ASIC专用芯片)。
路由器处理器芯片的发展大致经历如下四个阶段:
(1) 通用处理器
(2) 嵌入式处理器
(3) ASIC处理器
(4) 网络处理器
通用处理器阶段
上个世纪60年代,人们曾经使用普通电脑充当路由器的角色,这就是第一代路由器的雏形。用一台计算机插接多块网卡来实现的,多个网卡共用一块处理器,通过内部总线互联,CPU负责了几乎全部的路由计算、数据转发指令,同时还要负责整台机器的设备管理工作,后来才逐渐专门发展出专门的总线、接口及操作系统的路由器。
作为通用处理器,由于考虑了各种应用的需要,具有一般化的通用体系结构和指令集,以求支持复杂的运算并容易添加新开发的功能,也就是说:不是面向网络通信需要特殊设计的。处理路由转发速度一般相对较慢,可扩展性差,很难满足网络的需求。
嵌入式处理器阶段
嵌入式微处理器与通用微处理器最大的不同就是嵌入式微处理器多数工作在设备制造商自己设计的系统中,是面向应用的处理器。目前大多是针对专门的应用领域进行专门设计来满足高性能、低成本和低功耗的要求。如:移动通信,PDA,游戏机,网络通信,其它电子产品行业。
目前,嵌入式处理器主要有Am186/88、386EX、SC-400、Power PC、Motorola 68000、MIPS、ARM系列等。在32位嵌入式处理器市场主要有Motorola,ARM,MIPS,TI,Hitachi等公司, 有些生产通用微处理器的公司,象Intel、Sun和IBM等,也生产嵌入式的微处理器,但不是专业生产,人们更熟悉如INTEL的Pentium 。
第一代的路由器是基于嵌入式微处理器的嵌入式系统,有专门的电路、接口及操作系统,是一台专门的设备,已经不再是基于通用微处理器、通用接口、通用操作系统的PC了。Cisco2501路由器就是第一代路由器的典型代表,其CPU是MOTOROLA 68030 20MHz处理器,这个处理芯片相当于INTEL早期的80386通用处理器。
目前,嵌入式微处理器大量应用在各网络设备供应商的中低端路由器产品中,不管是思科的通用路由器系列,还是小企业、家庭中用的宽带路由器产品,都可以见到它们的身影。
ASIC(专用集成电路)处理器阶段
当网络速度比较慢时,嵌入式处理器的路由及转发的处理速度完全赶得上数据流,后来,线路带宽宽了,数据速率快了,嵌入式处理器的处理就不够快了,设计者就转向ASIC。ASIC是被广泛应用于性能敏感平台的一种处理器技术。
在路由器发明、生产、应用,使网络有了高速发展,但在网络发展初期,网络传输的速率比较低,业务量比较少,这个时期的网络设备一般基于CPU(通用式或嵌入式),即通过在CPU上运行相关网络操作系统来实现各种网络功能。它具有很高的灵活性,可通过更新操作系统,就可以完善原有功能或加入新的功能和服务特性。但其缺点是处理速度慢、吞吐率低。但是这种性能在当时那种低速的网络环境下是可以接受的,因为路由器转发分组的速度完全可以跟上线路的传输速度。然而,随着光纤等传输技术的进步,网络带宽的增长速度逐渐超过了CPU处理能力的增长速度,这使得基于“CPU+操作系统”的路由器逐渐成了网络的瓶颈。因此,需要想办法提高网络设备的性能。在这种情况下,网络设备开始采用ASIC技术。它通过把指令集或计算逻辑固化到芯片中,它把转发过程的所有细节全部采用硬件方式来实现,因而可以获得很高的处理速度,这就能够很好地满足对性能的要求,适应了网络带宽不断增长的发展趋势。
在高端路由器中,通常包转发和查表由ASIC芯片完成,CPU也还存在,但只是实现路由协议、计算路由以及分发路由表。由于技术的发展,路由器中许多工作都可以由硬件实现了。
网络处理器阶段
ASIC的优点也是它的缺点,就是缺乏灵活性。一旦指令或计算逻辑固化到芯片硬件中,就很难修改升级,要增加新的功能或提高性能,就得重新设计芯片。另外,设计和制造复杂的ASIC一般需要花费周期长,研发费用较高。除此之外,当前网络的应用范围在不断扩大、新的业务不断涌现,网络的发展也不仅仅是带宽的不断提高,而更多地表现为对“智能化处理”的要求,如服务质量(QoS)、控制安全(Security)等服务都需要分类和深层数据处理(处理到第4层到第7层)。而这些服务功能既要求处理的高速度,又要求实现的灵活性,因此处理器需要能够高速地、灵活地满足各种服务和应用的不同需求,这一点却是ASIC技术也难以满足的,这催生了新的处理器的出现,也就是“网络处理器”。
网络处理器是为优化包处理而设计的,它将能把数据包以线速送到下一个节点,另外,如果需要新的功能或新的标准,设备制造商能通过给网络处理器编程来实现,以满足各种新的网络应用。
应该说,网络处理器较之ASIC最大的优势是灵活,开发周期相对较短。网络处理器的性能相对于其它处理器有很大的提升,但是在高速数据包处理方面与ASIC仍有差距。 在路由器领域,处于中型企业网络核心、电信网络边缘的路由器,采用NP已经蔚然成风。而在电信网络核心主干以及国内一些大型行业企业、机构网络中使用的核心路由器,究竟使用ASIC为主的体系结构还是NP为主的体系结构,尚有争论。ASIC的体系结构似乎更占上风,但一切都有变数,也许最好的方式还是ASIC与NP的结合,取两者之长来打造高速灵活的核心主干路由器。
总结:
路由器处理器芯片除了通用处理器之外,其它的嵌入式处理器、ASIC处理器、网络处理器都有它们发展和用武之地。嵌入式处理器将更多地出现在低端的路由器产品中,如家用、SOHO级宽带路由器、VPN防火墙网关;ASIC处理器与网络处理器将更多地出现在中端、高端的企业级、电信级的路由路及交换机中。