MPLS交换路由器的设计与实现( 三 )


当LDP/CR-LDP组件接收到CR-LDP的Mapping消息后,在ILM表中记录标签和接口信息,并且在ERB中记录CR-LSP的信息(如LSPID),产生ServiceID 。然后,调用资源治理器修改此CR-LSP对应队列的参数,并且在ERB表中记录ServiceID 。最后,CR-LDP的Mapping消息被发送到上游节点 。
3. 队列治理和Crossbar调度算法
当前的高速交换机和路由器采用的主流排队方法和Crossbar调度方式有3种:输入排队、输出排队和输入/输出排队(CIOQ:Combined Input-output Queued) 。
输入排队实现简单,存储器读写速率也只需和接口线速相等,Fabric加速比只需为1 。但是,单队列的输入排队会造成队头阻塞(HOL),使吞吐率只有58.6%[6] 。由于输出排队受限于存储器的读写速率,并且要求Fabric的加速比为N(N为端口数),所以也不适于高速的交换 。本文中的设计选择了CIOQ排队结构,它是一种结合输入/输出排队的实现方法,在输入排队上采用VOQ方式,避免了HOL,大大提高了吞吐率,在输出排队上采用FIFO 。如图5所示 。研究证实CIOQ的平均分组时延、分组丢失率、分组阻塞率、最大吞吐率都优于其它的方法,并且当Fabric加速比为4时,可以达到99%的吞吐率[5,7] 。
 由于Internet上越来越多的业务具有不同的QoS要求,因此我们在输入排队处采用两级调度 。去往同一端口的分组进入VOQ之前首先进入CBQ进行排队,然后按照不同的优先级进行调度进入VOQ 。CBQ是优先级排队的一个变种[8,9],该算法可以通过为某些类型的流量设置优先级来提供公平的排队,并且不答应某个等级的流量独占系统资源和带宽 。算法通过改变CBQ的参数可以分别达到不同等级业务需要的性能[10],比如支持DiffServ 。该算法实现简单并能达到满足的效果[11] 。
4. 标签交换路由器的实现
在本项目中,MPLS交换路由器的实现分为2个部分:信令和协议软件;硬件处理芯片 。其中LDP/CR -LDP、路由协议、接纳控制和资源治理用软件完成,运行在CPU卡上 。目前软件的开发已基本完成,正在进行相应的测试工作 。
在硬件的设计中,物理层和MAC层芯片采用成熟的产品,接口处理、Frbric和Crossb调度算法分别用FPGA实现 。接口处理的功能包括MPLS分类器、业务分类器、地址分类器和队列治理 。接口的处理线速为1 Gbit/s,交换使用64 byte的定长分组 。据统计,Internet上平均分组的长度为250 byte,因此接口需要每2 000 ns做出一次转发决定,这个速率是很轻易用当前的FPGA来实现的 。我们在CBQ队列中采用4种优先级的队列,这样既满足的当前对不同QoS优先级的需求又减少了实现的复杂度 。系统设计的Fabric支持32个端口,加速比为4 。Crossbar采用成熟的SLIP调度算法[5] 。
系统的设计速率充分考虑了当前FPGA的规模和算法的复杂度,我们对此设计建立了数学模型,分析了分组的时延、分组丢失率和吞吐量等特性,得到了满足的结果 。目前正在进行FPGA后仿真和硬件调试 。
三、 结论
该项目的主要目的是设计自主知识产权的MPLS专用ASIC芯片组和信令软件包,并开发出MPLS交换路由器 。项目结合了MPLS最新的标准以及当前国际上对高速交换和路由的最新理论研究成果,系统建模分析结果也证实了该设计具有较优的性能 。目前项目已经进入调试阶段,一切进展顺利 。

推荐阅读