分散数据包转发系统的转发表格信息的一致化方法

文档序号:7621427阅读:130来源:国知局
专利名称:分散数据包转发系统的转发表格信息的一致化方法
技术领域
本发明涉及一种分散数据包转发系统的转发表格信息的一致化方法,特别是涉及一种把转发表格信息划分为一定大小的数据块(block)并进行检查,然后对两者之间的信息交换等级进行定义,从而使其对系统服务的影响降低到最小化,并使转发表格信息保持一致的分散数据包转发系统的转发表格信息的一致化方法。
背景技术
分散转发系统的作用是把控制处理器的转发表格信息复制到各个线路卡。如果控制处理器不能够可靠地向各个线路卡传送IPC(Inter-ProcessorControl处理器间控制)消息,就会产生转发表格不一致的问题。转发表格的不一致将会给系统服务应用带来致命的影响。所以,分散转发系统为了避免这种不一致,必须对各个线路卡的转发表格进行全部的确认,这就带来了维护保修上的困难。因此,使控制处理器中的转发表格与各个线路卡中的转发表格保持一致,是分散转发系统的一个必不可少的功能。
图1是现有分散数据包转发系统下的路由器结构方框图。在现有大部分的路由器10中,控制处理器11直接检查从线路卡13~16接收到的所有的帧、直接执行指定输出线路卡的端口等等的所有路由工作,所以,路由器10的性能就取决于控制处理器11的处理速度。由于在控制处理器和线路卡之间的公用总线12会产生瓶颈现象,因此也就造成了数据包处理性能(转发性能)的低下。
为了解决这种中央处理方法的缺点,如图2所示,路由器20使用了分散方法,即,在线路卡23、24上设置独立的转发处理器23a、24a,控制处理器21把需要处理的路由表格复制到相关线路卡23、24,线路卡23、24再执行直接的路由工作。随着多协议标记交换(MPLSMulti-Protocol Label Switching)技术——把控制部分和转发部分相分离的技术和专门处理复杂数据包的网络处理器的出现,这种技术也普及的越来越快了。
但是,一般来说,由于网络骨干的路由器所包含的转发表格信息大约为6万个~30万个大小,所以,为了补正转发表格的信息一致性,就要在控制处理器和各个线路卡之间,周期性地交换转发表格的所有信息,因此,这种补正工作就给系统带来了不小的负荷。

发明内容
所以,本发明所要解决的技术问题在于,提供一种把各个线路卡中的转发表格信息划分为一定大小的数据块并进行检查,然后对两者之间的信息交换等级进行定义,从而使其对系统服务的影响降低到最小化,并使转发表格信息保持一致的分散数据包转发系统的转发表格信息的一致化方法。
为了实现上述目的,本发明分散数据包转发系统的转发表格信息的一致化方法,其特征在于,所述方法包括以下步骤把全部FIB(ForwardingInformation Base转发信息库)信息分离成FIB段的步骤;判断是仅仅支持单一下一跳(next hop)的FIB,还是支持多个下一跳(next hop)的FIB,然后决定相关的散列函数,并把FIB信息存储在散列桶(hash bucket)中的步骤;根据控制处理器和转发处理器之间所交换的信息量,将其划分为三个等级,并决定信息交换等级的步骤;根据上述决定的信息交换等级,在控制处理器和转发处理器之间对FIB信息的摘要信息和详细信息进行交换,并对FIB信息实施一致化的步骤。
采用本发明通过把转发表格信息划分为一定大小的数据块并进行检查,然后对控制处理器和转发处理器两者之间的信息交换等级进行定义,再对FIB信息进行部分交换,从而达到使FIB信息交换对系统服务的影响降低到最小化,使系统尽可能地保持最小负荷,并使控制处理器和转发处理器的转发表格信息保持一致的效果。


图1是现有分散数据包转发系统下的路由器结构方框图。
图2是包含了搭载现有网络处理器的线路卡的分散数据包转发系统的结构方框图。
图3是本发明分散数据包转发系统的转发表格信息的一致化方法的实施例中,把FIB信息分离成FIB段并进行存储的工作方法流程图。
图4是图3中的把FIB信息分离成FIB段的示例图。
图5是本发明分散数据包转发系统的转发表格信息的一致化方法的实施例中,对FIB信息是否一致进行检验和补正的工作方法流程图。
其中,附图标记10路由器11控制处理器 12公用总线13~16线路卡20路由器21控制处理器 22公用总线23线路卡 23a转发处理器23b线路接口23c线路接口24线路卡 24a转发处理器24b线路接口24c线路接口具体实施方式
以下,参照附图对本发明的实施例进行详细说明。
控制处理器和转发处理器为了应当共同存在的转发信息库(FIB)信息的一致执行信息交换周期,它们复杂信息交换,交换信息的大小,信息交换等级,拒绝信息交换的各种方法。
信息交换周期可以在不对系统服务功能产生影响的条件下进行调整,拒绝信息交换是在执行信息交换的检查、补正等功能判断其能够对服务产生影响、或者控制处理器和转发处理器处于故障修复等等过程的情况下,对于信息交换请求予以拒绝的功能。
信息交换周期,拒绝信息交换都是依赖于分散数据包转发系统的功能,本发明实施例中的路由器能够改善调整交换信息大小和信息交换等级的工作。
路由器能够对所有转发表格信息——即,并非一次性交换FIB信息,而是路由器的控制处理器和转发处理器把全部的FIB信息分离成FIB段,并进行部分的检查。
控制处理器和转发处理器之间的信息交换能够对IPC及系统性能产生影响,对于需要检查的内容信息的交换,根据其交换的信息量,具有三个等级。等级1是交换FIB全部的摘要信息;等级2是在交换FIB全部的摘要信息时,如果产生了信息不一致的情况,就交换FIB段的摘要信息;等级3是在交换FIB段的摘要信息时,如果产生了信息不一致的情况,就交换FIB段的详细信息。
图3是本发明分散数据包转发系统的转发表格信息的一致化方法的实施例中,把FIB信息分离成FIB段并进行存储的工作方法流程图。如图所示,所述工作方法的特征在于,所述方法包括以下步骤把全部FIB信息分离成FIB段的步骤;判断是仅仅支持单一下一跳(next hop)的FIB,还是支持多个下一跳(next hop)的FIB,然后决定相关的散列函数;如果该FIB信息是仅仅支持单一下一跳(next hop)的FIB,就通过网络前缀,掩码长度,散列表格大小的变数计算散列键,然后把FIB信息存储到该散列键所对应的散列桶(hash bucket)中的步骤;如果该FIB信息是支持多个下一跳(next hop)的FIB,就通过网络前缀,掩码长度,散列表格大小的变数计算散列键,然后把FIB信息存储到该散列键所对应的散列桶(hash bucket)中的步骤。
控制处理器和转发处理器为了避免一次性交换所有的FIB信息,要把全部的FIB信息分离成FIB段进行管理。路由器使用散列方法把FIB信息制作成FIB段。
散列方法是一种把一个字符串/数值,转换为比代表原来字符串/数值具有更短长度的数值或键的方法。在路由器中,使用短小的散列键来查找项目,其花费的时间比使用原有值查找的时间要更短。散列函数是一种从输入值中提取散列键的函数,利用散列函数,具有相同散列键的多个值可以在散列桶(hashbucket)内以插槽的形式得到管理。
路由器把全部的FIB信息分离成FIB段,为了不使特定的FIB段中存储过多的FIB信息,需要使用散列方法进行信息交换。
散列方法的最重要之处就是,能够使所有输入值平均分布到各个散列桶(hash bucket)之内而计算出适当散列键的散列函数。
路由器把网络前缀(Network Prefix)与掩码长度(Mask Length)的和进行乘方,然后除以散列表格大小,再把得到的值作为散列键从而构成散列表格。散列表格大小使用小数值。仅仅支持单一下一跳(next hop)的FIB的散列键,根据Single_NextHop_Hash_Key=((NetworkPrefix+Mask_Length)2)%Hash_Table_Size进行计算。
如果是支持多个下一跳(next hop)的FIB,其下一跳(next hop)信息使用十进制表示方式的网关IP地址和输出接口索引值。支持多个下一跳(next hop)的FIB的散列键,根据Multi_NextHop_Hash_Key=((NetworkPrefix+Mask_Length+Next_Hop)2)%Hash_Table_Size进行计算。
通过上述定义的散列函数,全部的FIB信息分离成FIB段。图4是图3中的把FIB信息分离成FIB段的示例图。FIB信息分离成FIB段,通过散列函数存储在相关散列桶(hash bucket)之中。
路由器的控制处理器周期性地对转发处理器的FIB信息进行检查,对FIB信息的一致性进行查验和补正。对于转发处理器的FIB信息一致性的检查补正工作有三个等级。
图5是本发明分散数据包转发系统的转发表格信息的一致化方法的实施例中,对FIB信息是否一致进行检验和补正的工作方法流程图。如图所示,其工作方法的步骤包括根据控制处理器和转发处理器之间所交换的信息量,划分三个等级,并决定其信息交换等级的步骤;在信息交换等级1中,对FIB全部的摘要信息进行交换的步骤;在信息交换等级2中,在交换FIB全部的摘要信息时,如果判断产生了信息不一致的情况,就交换FIB段的摘要信息的步骤;在信息交换等级3中,在交换FIB段的摘要信息时,如果判断产生了信息不一致的情况,就交换FIB段的详细信息的步骤。
控制处理器根据与转发处理器所交换的信息量,决定信息交换等级,然后根据相关等级,对FIB信息的摘要信息,详细信息进行交换,以使FIB信息保持一致化。信息交换等级由等级1,2,3构成。
等级1是对总FIB路由条目个数(所有散列桶内插槽个数的和)与所有FIB路由条目(网络前缀,掩码长度)的标准IP检验数值总和(所有散列桶内插槽的(网络前缀,掩码长度)检验值总和)的信息进行交换。
在等级1的信息交换中,如果总FIB路由条目个数或检验数值不同时执行等级2,对各个散列桶(hash bucket)内部的插槽个数以及各个插槽的网络前缀、各个插槽的掩码长度的标准IP检验数值的总和信息进行交换。
在等级2的信息交换中,仅仅针对插槽个数或检验数值不同的散列桶(hash bucket)执行等级3,对相关散列桶内部插槽的具体信息,即实际网络前缀信息、实际掩码长度信息进行交换。
如上详细说明所述,本发明通过把转发表格信息划分为一定大小的数据块并进行检查,然后对控制处理器和转发处理器两者之间的信息交换等级进行定义,再对FIB信息进行部分交换,从而达到使FIB信息交换对系统服务的影响降低到最小化,使系统尽可能地保持最小负荷,并使控制处理器和转发处理器的转发表格信息保持一致的效果。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种分散数据包转发系统的转发表格信息的一致化方法,其特征在于,所述方法包括以下步骤把全部转发信息库信息分离成转发信息库段的步骤;判断是仅仅支持单一下一跳的转发信息库信息,还是支持多个下一跳的转发信息库信息,然后决定相关的散列函数,并把转发信息库信息存储在散列桶中的步骤;根据控制处理器和转发处理器之间所交换的信息量,将其划分为三个等级,并决定信息交换等级的步骤;根据上述决定的信息交换等级,在控制处理器和转发处理器之间对转发信息库信息的摘要信息和详细信息进行交换,并对转发信息库信息实施一致化的步骤。
2.根据权利要求1所述的分散数据包转发系统的转发表格信息的一致化方法,其特征在于,所述转发信息库信息的存储步骤包括如果转发信息库信息是仅仅支持单一下一跳的转发信息库信息,就通过网络前缀,掩码长度,散列表格大小的变数计算散列键,然后把转发信息库信息存储到该散列键所对应的散列桶中的步骤;如果该转发信息库信息是支持多个下一跳的转发信息库信息,就通过网络前缀,掩码长度,散列表格大小的变数计算散列键,然后把转发信息库信息存储到该散列键所对应的散列桶中的步骤。
3.根据权利要求2所述的分散数据包转发系统的转发表格信息的一致化方法,其特征在于对于所述散列键的计算,如果是仅仅支持单一下一跳的转发信息库,把网络前缀与掩码长度的和进行乘方,然后除以散列表格大小,再把得到的值作为散列键;如果是支持多个下一跳的转发信息库,把网络前缀,掩码长度,下一跳的和进行乘方,然后除以散列表格大小,再把得到的值作为散列键。
4.根据权利要求1所述的分散数据包转发系统的转发表格信息的一致化方法,其特征在于,所述对转发信息库信息实施一致化的步骤包括在信息交换等级1中,对转发信息库全部的摘要信息进行交换的步骤;在信息交换等级2中,在交换转发信息库全部的摘要信息时,如果判断产生了信息不一致的情况,就交换转发信息库段的摘要信息的步骤;在信息交换等级3中,在交换转发信息库段的摘要信息时,如果判断产生了信息不一致的情况,就交换转发信息库段的详细信息的步骤。
5.根据权利要求4所述的分散数据包转发系统的转发表格信息的一致化方法,其特征在于所述转发信息库全部的摘要信息是,所有散列桶内部插槽个数的和以及网络前缀、掩码长度的标准IP检验数值的总和,所述转发信息库段摘要信息是,各个散列桶内的插槽个数以及各个插槽的网络前缀、各个插槽的掩码长度的标准IP检验数值的总和信息,所述转发信息库段详细信息是,相关散列桶内插槽的实际网络前缀信息,实际掩码长度信息。
全文摘要
本发明公开了一种分散数据包转发系统的转发表格信息的一致化方法,其包括以下步骤把全部FIB信息分离成FIB段的步骤;判断是仅仅支持单一下一跳(next hop)的FIB,还是支持多个下一跳(next hop)的FIB,决定相关的散列函数,并把FIB信息存储在散列桶(hash bucket)中的步骤;根据控制处理器和转发处理器之间所交换的信息量,将其划分为三个等级,并决定信息交换等级的步骤;根据上述决定的信息交换等级,在控制处理器和转发处理器之间对FIB信息的摘要信息和详细信息进行交换,并对FIB信息实施一致化的步骤。采用本发明能够把由于FIB信息交换对系统服务产生的影响予以最小化,使系统尽可能处于最低负荷状态,使控制处理器和转发处理器之间的转发表格信息保持一致。
文档编号H04L12/56GK1758631SQ20051008775
公开日2006年4月12日 申请日期2005年8月8日 优先权日2004年10月8日
发明者张宰荣 申请人:乐金电子(中国)研究开发中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1