一种组播转发表输出端口的虚拟标识方法

文档序号:7960336阅读:435来源:国知局
专利名称:一种组播转发表输出端口的虚拟标识方法
技术领域
本发明涉及计算机通信领域中高性能路由器的组播实现技术,尤其是涉及一种面向多端口路由器的组播转发表输出端口的虚拟标识方法。
背景技术
近年来,高性能路由器普遍采用了集中式交换与路由处理、分布式转发的体系结构,如图1所示,该结构的基本思想是将路由引擎(Routing Engine)和转发引擎(Forwarding Engine)分开,将局部转发表从全局路由表中独立出来;各个分布式的线卡及转发引擎独立的用快速的硬件实现数据报文的报头处理、寻径和转发;用交换网络连接各网络接口单元(包含转发引擎和线卡两部分),实现高速分组交换。在实现中,该结构通常采用两级处理器,主处理器负责整个设备的管理和路由的收集、计算功能,并把计算形成的转发表下发到各个网络接口单元,转发表是根据路由表生成的,其表项和路由表的表项有直接对应关系,但转发表的格式和路由表的格式不同,它更适合实现快速查找。数据分组进入网络接口单元后,首先由线卡从物理帧中提取出IP包,然后交转发引擎,转发引擎根据下发的转发表进行转发查表,查找出该IP包的一跳输出端口,然后经由交换网络将IP包发送到输出端口。
互联网协议定义了三种IP数据包的传输单播(unicast)、广播(broadcast)和组播(multicast)。高性能路由器中组播包的转发主要由硬件实现,图1所示的路由器结构中,需要支持组播功能的硬件模块主要包括线卡(实现组播包的分类及复制)、转发引擎(实现组播报头处理和组播查表)和高速交换网络(完成组播包的复制)。其中,组播查表目前常见的硬件解决方案是采用三态地址关联存储器(TCAM,Ternary Content Addressable Memory)实现,具体的说就是采用TCAM存储组播转发表的表项前缀,这些前缀通常是以<S,G>或者<*,G>的形式出现,其中S代表数据包的源地址,G代表数据包的组地址;采用静态随机存取存储器(SRAM,Static Random Access Memory)存储组播转发表表项的结果部分,即输出端口列表部分,这样利用TCAM和SRAM可配合支持高速流水线转发表查找。
随着高性能路由器容量的不断增长,以至目前T(百万兆)比特级路由器的出现,传统的以“物理机架号&物理线卡号&物理端口号”来标识组播转发表输出端口的方法将越来越难以实现,主要原因如下1、路由器端口数目的不断增大使得组播转发表输出端口列表的长度急剧增加。
高性能路由器容量的飞速增长使得其端口数量快速增加,以2个分布式机架组成的1.28T路由器为例,即使路由器高密度地实现所有单线卡4个10G端口,路由器的总端口数目仍达128个。此外,与单播转发表相比,组播转发表的输出端口并不是唯一的,而是一系列的端口,最大时组播包的输出端口数目可达127个(其中一个端口由于是组播包的入端口而不会列入输出端口列表中)。这样,如果对组播的输出端口仍采用传统的方法来标识,以1bit来区分2个不同的机架,以4bit来区分单个机架内16个不同的线卡,以2bit来区分单个线卡内4个的不同端口,例如,可用“0000000”来标识第一个机架内第一个线卡的第一个端口,则组播转发表中输出端口列表的长度可达到127×7=889bit位。
2、组播转发表输出端口列表过长的情形下,现有硬件查表技术难以同时满足组播查表速度和硬件实现复杂度两方面的要求。
采用TCAM实现的硬件查表方案中,如果采用数据总线为36bit宽度的单片SRAM输出查表结果,则889bit长度的输出端口长度将需要至少25个SRAM工作时钟周期才能输出完毕,这样的时间长度无法满足组播包线速转发的查表速度要求,进而将无法支持组播包线速转发。如果采用多片SRAM并行输出查表结果的方法,虽然能够满足查表的速度要求,但是器件的增加一方面将增加路由器的成本,更为重要的是它将不可避免的增大转发引擎设计和硬件实现的复杂度。
3、组播转发表输出端口列表过长的情形下,将降低路由器内部的数据传输效率。
组播转发表的查找是在路由器的转发引擎完成的。当组播包到达转发引擎时,转发引擎需要对该包进行组播转发表的查找,如果查中将得出对应的输出端口列表,在组播包正常转发的情形下,转发引擎输出的报文上应当添加此输出端口列表,形成交换分组并传送给交换网络,交换网络根据交换分组所携带的组播输出端口列表决定将该组播包复制并交换到哪些端口上。由此可以发现,当输出端口列表过长时,该部分数据的传输将占用很大比例的内部传输带宽,从而大大降低路由器内部的数据传输效率,对短数据包而言,这种降低作用尤其严重。

发明内容
有鉴于此,本发明的目的是提供一种高性能路由器组播转发表输出端口的虚拟标识方法,能够解决传统端口标识方法所带来的不断加剧的组播转发表输出端口列表长度过长问题,同时满足组播包线速转发对组播查表速度的要求,并且不增加路由器成本和硬件实现复杂度。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的,本发明提供一种高性能路由器的组播转发表输出端口的虚拟标识方法,包括步骤a建立组播转发表虚拟输出端口列表;b识别组播转发表虚拟输出端口列表。
优选地,所述步骤a的实现涉及路由器的控制平面。
优选地,所述步骤b的实现涉及路由器的数据平面。
优选地,所述步骤a具体包括a1主处理器分配给每个路由器端口一个虚拟端口号;a2将虚拟端口号与每个路由器端口的物理标识号码对应,生成映射表;a3利用传统组播转发表的输出端口列表与映射表对应生成新的组播转发表虚拟输出端口列表;a4主处理器得到新的组播转发表。
优选地,所述步骤a2中路由器端口的物理标识号码是以传统的物理机架号、物理线卡号和物理端口号来标识的。
优选地,所述步骤a2中映射表由主处理器维护。
优选地,所述步骤a2中映射表在路由器端口配置发生改变时,要重新生成。
优选地,所述步骤b具体包括b1主处理器将新组播转发表下发到转发引擎,同时将映射表下发到从处理器;b2转发引擎通过新组播转发表进行转发查表;b3将查表结果变成虚拟输出端口列表;b4线卡、转发引擎和交互网络根据映射表实现对虚拟输出端口列表的识别;b5在组播复制时,对虚拟端口输出列表进行识别;b6在转发引擎包处理时,对虚拟端口输出列表进行识别。
优选地,所述步骤b5中具体包括b51交换网络接收到转发引擎传送来的交换分组;b52根据交换分组携带的虚拟输出端口列表与主处理器下发的映射表识别该组播包对应的输出线卡号;b53将该组播包复制并交换到对应的线卡上;b54该线卡根据虚拟输出端口列表与主处理器下发的映射表识别组播包在该线卡上的具体输出端口;b55将该组播包复制并输送到对应的端口上。
优选地,所述步骤b6中具体包括b61组播包进入转发引擎;b62转发引擎完成线速组播查表,输出查表结果;b63转发引擎判断组播包入端口的物理标识是否存在于查表结果中的虚拟输出端口列表,如果是,则执行步骤b64;b64完成对组播包的判断,实现断言机制。
优选地,所述步骤b63支持松散模式组播协议PIM-SM;优选地,所述步骤b64实现断言机制满足PIM-SM要求。
优选地,所述步骤b64中断言机制通过随机存取存储器RAM实现。
以上技术方案可以看出,本发明在支持组播转发所有功能的前提下,利用一种虚拟的组播输出端口标识方法替代传统的物理标识方法,将组播输出端口列表的长度大大降低,由此带来了以下几点有益的效果1、在不改变原有路由器硬件结构的基础上,该方法仅通过对组播转发表的输出端口列表做简单修改即可支持高性能路由器端口数目和端口密度的扩充,可扩展性好,实施简便。
2、组播转发表输出端口列表长度的大规模降低,使得工程实现中仅利用单片SRAM即可在规定的周期内将此查表结果(虚拟输出端口列表)读出,从而能够在不增加硬件实现成本和复杂度的基础上实现组播包线速查表,支持组播包线速转发。
3、组播转发表输出端口列表长度的大规模降低,还能够使得转发引擎在形成交换分组的过程中采用数目较少的数据位即可标识各个组播输出端口的信息,与传统标识方法相比,可以大大提高路由器内部的数据传输效率。


图1是现有高性能路由器的典型结构示意图。
图2是本发明组播转发表输出端口虚拟标识的流程图。
图3为本发明转发引擎借助随机存取存储器实现断言机制流程图。
图4为随机存取存储器存储内容的结构示意图。
具体实施例方式
下面结合附图,对本发明优选实施例进行进一步描述。
如图1所示,典型的高性能路由器结构中,控制平面包括主处理器和从处理器,数据平面对应于路由器的线卡、转发引擎和交换网络。对本发明所述的方法而言,控制平面内主要完成的是组播转发表输出端口虚拟标识方法的建立,而数据平面则需要完成组播转发表输出端口虚拟标识方法的高速识别。下述内容将以上文所述的1.28T高性能路由器为例,详述该方法的实施。
请参阅图2,为本发明组播转发表输出端口虚拟标识的流程图,包括建立组播转发表虚拟输出端口列表和识别组播转发表虚拟输出端口列表两部分,其中步骤201~204为建立组播转发表虚拟输出端口列表,步骤205~210为识别组播转发表虚拟输出端口列表。
建立组播转发表虚拟输出端口列表具体包括步骤201主处理器根据各个机架、线卡、端口的分布情况为路由器每个端口新分配一个唯一的虚拟端口号;其中,如表1所示,当路由器端口总数为n时可将分配的虚拟端口号定义为0,1…m…n-1。这样,路由器中的每一个具体的端口都将同时拥有一个传统的端口物理标识号码和新分配的虚拟端口号,例如,物理标识为“0000000”的端口的虚拟端口号分配为0,而物理标识为“1111111”的端口的虚拟端口号为127。
表1 路由器端口的物理标识到虚拟端口号的映射表

202将虚拟端口号与每个路由器端口的物理标识号码一一对应,生成映射表,如上表1中包含了所有端口的物理标识到虚拟端口号的映射关系,该映射表由主处理器负责维护,每当路由器端口配置发生改变时,该表都需要重新生成并下发给数据平面的各个模块;
203利用传统组播转发表的输出端口列表与映射表对应生成新的组播转发表虚拟输出端口列表;其中,主处理器利用映射表(表1)将传统组播转发表(表2)的输出端口列表映射成新的组播转发表的虚拟输出端口列表(表3)表2 传统组播转发表的结构

表3中的虚拟输出端口列表是这样定义的根据路由器的总端口数目n,主处理器相应设置一个长度为n bit的列表,该列表的列号码定义为0,1…m…n-1,分别与上文所分配的路由器虚拟端口号一一对应,当列号码为m的列的值为‘1’时,表明虚拟端口号为m的端口有组播包输出,反之为‘0’时,表明该端口无组播包输出。需要指出的是,表2仅是传统组播转发表中的一条表项,该组播转发表的输出端口设定为最大,即除去入端口“0000000”之外其余127个端口都存在组播包输出。对照表2和表3可以发现,新组播转发表可将前面所述的1.28T路由器的输出端口列表长度降低为128bit位。
表3 新生成组播转发表的结构

204主处理器得到新的组播转发表;识别组播转发表虚拟输出端口列表具体包括步骤205主处理器下发新生成的组播转发表到转发引擎,同时将映射表下发给各个从处理器;206转发引擎通过新组播转发表进行转发查表;其中,新组播转发表的表项下发到转发引擎后,组播包源地址和组地址将作为表项的前缀部分存储于TCAM内,而虚拟输出端口列表将作为表项的结果部分存储与SRAM内,籍此实现高速组播查表。
207将查表结果变成虚拟输出端口列表;
表9

210在转发引擎包处理时,对虚拟端口输出列表进行识别;其中,在支持PIM-SM协议的情况下,转发引擎还需要判断组播包的入端口(物理标识)是否存在于查表结果中的虚拟输出端口列表中,从而实现PIM_SM协议要求的Assert机制;请参阅图3,为本发明转发引擎借助随机存取存储器实现断言机制流程图,
图4为RAM的结构内容示意图,其中n代表端口物理标识的数据长度,每一行的内容对应于一个具体的路由器端口,若该行所对应的虚拟端口号为m,则该行中除第m列应当为‘1’之外,其余各列的值都应设定为‘0’。
以上对本发明所提供的一种高性能路由器的组播转发表输出端口的虚拟标识方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种组播转发表输出端口的虚拟标识方法,应用于高性能路由器,其特征在于,修改组播转发表的输出端口列表,包括步骤a建立组播转发表虚拟输出端口列表;b识别组播转发表虚拟输出端口列表。
2.根据权利要求1所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤a的实现涉及路由器的控制平面。
3.根据权利要求1所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤b的实现涉及路由器的数据平面。
4.根据权利要求1所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤a具体包括a1主处理器分配给每个路由器端口一个虚拟端口号;a2将虚拟端口号与每个路由器端口的物理标识号码对应,生成映射表;a3利用传统组播转发表的输出端口列表与映射表对应生成新的组播转发表虚拟输出端口列表;a4主处理器得到新的组播转发表。
5.根据权利要求4所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤a2中路由器端口的物理标识号码是以传统的物理机架号、物理线卡号和物理端口号来标识的。
6.根据权利要求4所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤a2中映射表由主处理器维护。
7.根据权利要求4所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤a2中映射表在路由器端口配置发生改变时,要重新生成。
8.根据权利要求1或4所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤b具体包括b1主处理器将新组播转发表下发到转发引擎,同时将映射表下发到从处理器;b2转发引擎通过新组播转发表进行转发查表;b3将查表结果变成虚拟输出端口列表;b4线卡、转发引擎和交互网络根据映射表实现对虚拟输出端口列表的识别;b5在组播复制时,对虚拟端口输出列表进行识别;b6在转发引擎包处理时,对虚拟端口输出列表进行识别。
9.根据权利要求8所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤b5中具体包括b51交换网络接收到转发引擎传送来的交换分组;b52根据交换分组携带的虚拟输出端口列表与主处理器下发的映射表识别该组播包对应的输出线卡号;b53将该组播包复制并交换到对应的线卡上;b54该线卡根据虚拟输出端口列表与主处理器下发的映射表识别组播包在该线卡上的具体输出端口;b55将该组播包复制并输送到对应的端口上。
10.根据权利要求8所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤b6中具体包括b61组播包进入转发引擎;b62转发引擎完成线速组播查表,输出查表结果;b63转发引擎判断组播包入端口的物理标识是否存在于查表结果中的虚拟输出端口列表,如果是,则执行步骤b64;b64完成对组播包的判断,实现断言Assert机制。
11.根据权利要求10所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤b63支持松散模式组播协议PIM-SM。
12.根据权利要求10所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤b64实现断言机制满足PIM-SM要求。
13.根据权利要求10所述组播转发表输出端口的虚拟标识方法,其特征在于,所述步骤b64中断言机制通过随机存取存储器RAM实现。
全文摘要
本发明提供了一种高性能路由器组播转发表输出端口的虚拟标识方法,该方法包括组播转发表输出端口虚拟标识方法的建立和组播转发表输出端口虚拟标识方法的高速识别,分别涉及路由器的控制平面和数据平面。在控制平面内,路由器主处理器为每个路由器端口新分配一个唯一的虚拟端口号,形成一张由传统的端口物理标识号码到虚拟端口号的映射表,依据此映射表,主处理器生成新的组播转发表,主处理器将新组播转发表连同映射表一并下发到各从处理器;数据平面内,交换网络及各线卡和转发引擎可依据下发的映射表采用硬件高速地对虚拟的输出端口列表进行识别,从而实现对组播包线速转发的支持。
文档编号H04L12/18GK1866845SQ20061007650
公开日2006年11月22日 申请日期2006年5月8日 优先权日2006年5月8日
发明者郭云飞, 李玉峰, 张进, 姜鲲鹏, 黄惠群 申请人:国家数字交换系统工程技术研究中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1