路由器包处理器芯片设计

发布时间:2003-11-26 作者:胡庆生 Hu Qingsheng 吴本寿 Wu Benshou 阅读量:

文章编号:1009-6868(2001)04-0030-03 文献标识码:A 中图分类号:TN915.05

  随着Internet带宽不断提高,规模不断扩大,网络结构越来越复杂,对组建大型复杂的计算机网络所依赖的关键技术--网络互联技术和路由器技术也提出了更高的要求。尤其在Internet中,路由器起着十分重要的作用,组网和应用服务在很大程度上都依赖于高性能的路由器。核心路由器更是由于其提供的大容量、高带宽和安全保密性强等卓越性能成为人们开发和研究的重点。

  从网络OSI的7层模型来看,路由器工作在模型中的第3层,即网络层。它利用网络层定义的“逻辑”上的网络地址即IP地址来区别不同的网络,实现网络的互联和隔离,保持各个网络的独立性。路由器的基本任务有3个方面:路由选择;包转发;协议转换。

  在基于软件的传统路由器中,CPU负责交换路由信息、路由表查找以及转发数据包。因此CPU的能力直接影响路由器的吞吐量(路由表查找时间)和路由计算能力(网络路由收敛时间)。

  从技术上说,基于软件的路由器通常属于中低端路由器,它已经无法满足骨干网络带宽的要求,取而代之的是基于硬件技术开发的核心路由器。由于芯片技术的发展,在核心路由器中,通常包转发和查表等功能可由一块ASIC芯片完成,并用高性能路由处理机计算和维护路由表。

  1 包处理器芯片的结构

  目前比较常见的一种核心路由器体系结构是共享并行处理器交换式体系结构,系统中有多个网络处理卡(Network Processor Card, NPC),每个NPC上都有一个转发引擎(Forwarding Engine,FE),同时每个NPC可以与多个线卡(Line Card,LC)接口。另外,每个NPC上都配有大容量SDRAM存储器,专门用来存储IP包。多个NPC均与交换网络相连,从而构成大容量高速路由交换体系。

  包处理器芯片的系统结构与其所服务的路由器的体系结构有关,一般可分成4部分,即输入包处理(Input Packet Processing,IPP)、队列调度管理(Queue Schedule Managing,QSM)、输出包处理(Output Packet Processing,OPP)和路由查找控制(Routing Searching Control,RSC)。它们分别完成IP包的接收、包头分析、路由查找、包的调度与转发等基本功能,这4个部分结合在一起构成了包处理器芯片的主体框架,再与高速的交换网络相配合,从而实现IP包的高速转发。图1所示为包处理器芯片的系统框图。


图1 包处理器芯片系统框图

  2 包处理器芯片的基本功能

  包处理器完成的基本功能有:

  • 从线卡接收IP包;
  • IP包头的提取与分析;
  • 路由查找控制;
  • 接收侧队列调度与管理;
  • 发送侧队列调度与管理;
  • 向线卡各接口发送包;
  • 与CPU接口。

  包处理器芯片的4个部分分别完成各自的任务。

  (1)输入包处理

  当输入包处理(IPP)从线卡上接收到了一个IP包后,它必须提取IP包头并进行分析和处理,这些分析和处理包括验证IP包头中的版本号,对包头作校验和检查,以及重置TTL域和重新计算包头校验和等。与此同时,IPP还需将提取的IP目的地址送到转发引擎(FE)中进行路由表的查找。在对IP包进行上述处理的同时,所接收的IP包被放在芯片内部的缓冲区中,等待路由查找的结果。

  一旦FE路由查找结束,若查找成功,即在路由表中查找到了该包的下一跳地址,则FE以一定的数据结构将查找结果返回给IPP;否则,FE通知IPP查找失败。对于查找成功的包,IPP将IP包连同查找结果一起送给QSM。对于查找失败的包,IPP将向CPU通告相关信息,最后由ICMP向对应的接口发出路由不可达的信息。

  IPP的功能框图如图2所示。从图中我们可以看到,它除了与线卡接口外,还与FE、QSM以及CPU接口。它的主要功能分别由以下几个模块完成:


图2 IPP的功能框图

  • 接收模块--负责与线卡的接口;
  • 缓存控制模块--将接收的IP包缓存在片内缓冲区中;
  • 包头分析模块--包头的提取和分析;
  • 查找控制模块--负责与RSC的接口;
  • 发送控制模块--向QSM发送数据。

  (2)队列调度管理

  队列调度管理(QSM)在路由器中占有重要的位置,这是因为对于核心路由器而言,采用先进的调度算法,高速、无阻塞地调度和管理IP包队列是提高路由器性能的关键。每个路由器所配置的大容量SDRAM存储器主要是存放那些被路由器接收并经输入处理了的、暂时还未送往交换网络的IP包,那些尚未参加交换的包将被放入SDRAM划分好的缓冲队列中,排队等待被发往交换网络。当来自不同方向的IP包同时需要发往同一地址时,就会出现这一现象。队列划分与管理的方法有很多,有基于输入的队列划分、基于输出的队列划分,还有一种两者相结合的划分方法。

  对于基于输出的队列划分方法,在划分时,首先按照交换端口数将SDRAM划分成几个大的缓冲区(VOQ 1、……、VOQ k),属于同一个VOQ的包都将发往相同的交换端口;再将每个VOQ划分成具有不同优先级的更小的缓冲区(PQ 1、……、PQ n),在每个小缓冲区存放的数据包(Packet 1、……、Packet m)都具有相同的优先级。这样,对每个VOQ就可以按照虚拟队列的管理模式进行队列的调度与管理,对每个PQ中的IP包则完全按照先进先出的原则进行。而对于同一虚拟队列中具有不同优先级的IP包则按照加权的优先级方式进行调度。即在通常情况下,在高优先级队列中的IP包比在低优先级队列中的包优先转发,但是当某个低优先级队列积累了一定量的数据后,它就具有较大的加权因子,因而有可能被优先转发。

  这种划分和调度策略不仅可以有效地防止去往同一方向的网络流量集中突发时容易出现的线头阻塞(Head-of-line blocking)现象的发生,实现无阻塞交换。同时,还可以保证一定的服务质量与服务等级。

  QSM的功能框图如图3所示。它由3部分组成:


图3 QSM功能框图

  • 调入管理模块
    当QSM接收了IPP送来的IP包时,根据附加在包头前面的查找结果,将其送往SDRAM对应队列的相应优先级中缓存。

  • 调出管理模块
    QSM根据交换网络的状态,不断地从SDRAM相应队列的高优先级中将IP包调出,送往交换网络进行交换。

  • SDRAM控制器
    所有对SDRAM的读、写、刷新等操作都由SDRAM控制器完成。
    SDRAM控制器主要是对SDRAM进行读、写、刷新和上电配置等常规操作。为了适应不同的系统需求,SDRAM的工作模式应设计为可在线配置模式,应用时能够根据具体情况作不同的配置。
    由SDRAM读出的数据将全部发往交换网络。通过交换网络,IP包将到达发送方向的网络处理卡上,并进一步由OPP发往线卡的物理接口。

  (3)输出包处理

  经过路由器转发的IP包通过交换网络发送到了相应的NPC上,由该NPC上的输出包处理器(OPP)负责接收,并通过线卡发送到指定的物理接口上。

  OPP的一个主要功能就是要实现向多个物理接口发送数据。由于线卡上可能接有多个物理接口,OPP在向线卡发送数据时,不仅要查看数据的准备情况,还要轮询各个物理接口的状态。若物理接口相同,可以采用简单的轮询法(Round-robin)调度。即当轮询到某个物理接口时,若该接口处于空闲状态,且相应的缓冲队列中存有发往该接口的包,则将该IP包从缓冲队列中调出,送往对应的接口发送出去,若某个物理口忙或缓冲队列中无准备好的数据,则接着轮询下一个物理接口。若物理接口类型不同,比如同时接了一个百兆以太网口和一个千兆以太网口,则可以采用加权轮询法调度。

  (4)路由查找控制

  路由器要实现IP包的转发,其中关键的一步就是要在路由表中查找包的下一跳地址(Next hop),然后才能根据此地址进行转发。路由查找控制(RSC)主要用来控制路由表的查找。它首先从IPP中接收待查找的数据(IP目的地址和源地址),将它送到专用查找芯片中,等到查找结束再将查找结果返回给IPP。同时它还要协助CPU完成路由表的维护工作,如路由表的设置、添加、删除、更新、移动等操作均是通过RSC完成的。

  3 总结

  本文介绍了一种基于硬件转发原理设计的包处理器芯片,该芯片已成功应用于核心路由器中,它的最大的特点就是实现了IP包的高速转发,其与核心路由器的其它设备相配合,有效地提高了包的转发率,满足核心路由器的性能要求。

  然而从另一方面看,上面介绍的这种基于硬件的ASIC芯片开发周期较长,灵活性相对较差,更新换代的费用也较高,近年来国际上已有多个网络设备商逐渐将重点放在基于RISC的网络处理器的设计与开发上。这种将软件与硬件相结合的网络处理器采用RISC技术,用一组精简的指令集完成各项功能。由于是可编程的,用户使用起来更加灵活,可以在不同的产品中应用,升级起来也较容易,当然,这种灵活性在一定程度上是以牺牲性能为代价的。

[摘要] 文章介绍了一种基于硬件的包处理器芯片的设计,结合路由器转发包的原理,详细描述了包处理器的设计原理和各模块的基本功能。

[关键词] 路由器 线卡 包处理器 IP包 网络处理器

[Abstract] This paper presents the design of hardware-based packet processing chip. Based on the mechanism of forwarding IP packets in an IP router, the designing principles of packet processor and basic functions of different modules are described in detail.

[Keywords] Router Line card Packet processor IP packet Network processor