一种分段式ip路由线速率查表方法

文档序号:7940565阅读:253来源:国知局
专利名称:一种分段式ip路由线速率查表方法
技术领域
本发明涉及计算机通信领域,具体地说涉及计算机通信领域中骨干路由器的线速率查表方法。
IP(互连网协议)路由线速查表技术是核心骨干路由器关键技术之一。由于目前IP骨干路由器采用了无类域间路由(CIDR)技术,对IP路由的查表可能会匹配多个不同前缀长度的目的IP地址,查找结果应输出最长匹配(Longest Prefix Match)的表项。实际中,为了保证骨干路由器的性能,要求骨干路由器的查表速度足够快,例如,对于端口速率为2.5Gb/s的骨干路由器,最小线速查表时间只有150ns,如果线速查表时间小于150ns,则路由器将不能线速转发IP数据包,路由器的性能将大大下降。此外,由于路由转发表的不断更新,路由转发表的更新速度也要越快越好,否则,在转发表更新期间将不能正确转发IP数据包。在1998年4月的IEEE信息通信会刊第1241至1248页题为“一种存储器存取速度的硬件路由查表方法”(P.Gupta,S.Lin,N.McKeown“Routing Lookups in Hardware atMemory Access Speeds.”InfoCom’98,PP 1241-1248,April,1998)的文章给出的基于存储器硬件的查表RLMS(Routing Lookups atMemory Speed)方法是目前较好的、具有代表性的方法。RLMS方法将路由表项分为两段,前缀长度小于等于24的为一段,大于24的为另一段。然而,由于RLMS方法只将前缀分为两段,这使得低段的表项更新数大,而高段要等低段查出结果后才能查高段内容。因此,RLMS方法在线速率查表和表项更新方面存在以下不足(1)表项更新单元数多,在最坏情况下,即前缀长度等于8时,更新一个表项需要操作大于65536个存储器单元数;(2)当前缀长度大于24时,需要2个存储器读周期,使查表速度变慢,性能下降。上述这些缺陷限制了RLMS方法在骨干路由器上的实际应用。
针对上述现有技术的问题,本发明的目的是,提供一种查表速度快,且表项更新速度快的分段式IP路由线速率查表方法。
为达到上述目的,本发明采用的技术方案是一种分段式IP路由线速率查表方法,该方法包括下述步骤(1)将路由转发表项分别存放在多段存储器内,其中,高前缀表项存储的存储器为CAM存储器;(2)当目的IP地址到来时,多段存储器同时进行读操作,同时得到相应的多个读出结果;(3)对上述步骤(2)得到的多个读出结果进行判决,最后输出具有最长匹配的查表结果。
上面所述对多个读出结果进行判决,最后输出具有最长匹配的查表结果是按照下述方法进行的按照存放路由转发表项存储器段的高低,从高段到低段顺序进行判决,若高段读出的表项有效,则输出查表结果,判决输出结束,否则进入下一个存储器段的判决,以此类推,直至对最低段进行判决,若最低段读出的表项无效,最后输出查表无效的结果。
从上述本发明采用的技术方案可以看出,由于本发明采用了多段同时查表的方法,在对多段产生的查表结果进行判决输出时,按照存放路由转发表项存储器段的高低,从高段到低段顺序进行判决,若高段读出的表项有效,则输出查表结果,判决输出结束,无须进行低段的判决,因此减少了骨干路由器中的线速率查表时间,而且转发表的表项更新时间大大缩小,进而使加快了查表速度和表项更新速度,提高了路由器的性能。
下面结合附图和实施例对本发明作进详细说明。


图1是本发明实施例采用的3段存储器组成示意图;图2是本发明实施例采用的3段存储器依前缀长度的查表时间曲线图;图3是本发明实施例采用的3段存储器依前缀长度的更新表项数曲线图;图4是本发明实施例采用的3段存储器低段存储器内部数据存放结构示意图;图5是本发明实施例采用的3段存储器中段存储器内部数据存放结构示意图;图6是本发明实施例采用的3段存储器高段CAM内部数据存放结构示意图7是本发明实施例采用的3段存储器低段、中段、高段存储器查表和判断流程图;图8是本发明实施例采用的4段存储器最低段、低段、中段、高段存储器查表和判断流程图;图9是本发明实施例采用的3段存储器查表结果判决输出流程图;图10是本发明实施例采用的4段存储器查表结果判决输出流程图。
RLMS方法是只将前缀分为两段,这使得低段的表项更新数大,而高段要等低段查出结果后才能查高段内容。本发明采用的方法是(1)将路由转发表项分别存放在多段存储器内,其中,高前缀表项存储的存储器为CAM存储器;(2)当目的IP地址到来时,多段存储器同时进行读操作,同时得到相应的多个读出结果;(3)对上述步骤(2)得到的多个读出结果进行判决,最后输出具有最长匹配的查表结果。
本发明按前缀长度可将存储器分成3段、4段或N段,即多段,对N段来说需要N-1个RAM(随机存储器)和1个CAM,将高前缀表项,例如前缀大于24的表项,基于CAM(内容存取存储器)压缩,低前缀,例如小于等于24的表项分为多段基于RAM穷尽的分段前缀扩展式直接存储,其中N-1个RAM存储器的容量为2的X次幂,这里X为对应的前缀长度。以3段为例,前缀为8~16的表项为低段(SegLow),其存储器容量为64K;前缀为17~24的表项为中段(SegMid),其存储器容量为16M;前缀为25~32的表项为高段(SegUp),其CAM容量为8K。表项在低段和中段存储器中采用前缀扩展直接存储方式,高段则采用CAM优先级存储方式。高段在CAM中按前缀长度由大到小的存储在CAM中由低到高的存储器内。低段和中段的前缀扩展存储按如下规则进行低段进行216-P扩展,即前缀为8到16时进行2的16减P次幂扩展;中段进行224-P扩展,即前缀为17到24时进行2的24减P次幂扩展。
其中,P为对应段内的前缀。在每段存储器内长前缀覆盖短前缀,从而实现了最长匹配功能。若分为4段,则选前缀为8的为最低段,需内存容量为256;前缀为16的为低段,需内存容量为64K,中段和高段同3段方式,其存储规则也同3段一样。其中,最低段无须扩展存储,而只将256个前缀为8的表项存放在其256个存储单元内即可。
下面以本发明采用3段存储器为例,进一步阐述本发明。
参考图1,DA为目的IP地址,将路由转发表项分别存放在3段存储器内。当DA到来时,3段存储器,即低段64KRAM101,中段16M的RAM102,高段8K的CAM103同时产生读操作,读出的结果在控制逻辑104内判决并通过选择器105输出查表结果。如果采用存取时间为30ns的RAM和读时间为60ns的CAM时,本发明的查表时间参考附图2,其中,横坐标Prefix为前缀长度,从图中可以看到前缀为8到24的查表时间仅为30ns而前缀大于24的也只需60ns。本方法的表项更新也很快,最多只需操作256个存储器单元,参考附图3,当更新前缀为8时,需要更新的表项数为256,而前缀为16和24时,需要更新的表项数仅为单个表项。
3段存储器的内部存储格式参考附图4、5、6。其中,附图4为低段64KRAM的数据存放格式,F0为标志位,当F0为0时,对应的RAM单元为有效表项,当F0为1时,对应的RAM单元为无效表项;P为16减前缀长度的二进制编码,NextHop为下一跳的地址。附图5为中段16M RAM的数据存放格式,S0为标志位,当S0为0时,对应的RAM单元为有效表项,当S0为1时,对应的RAM单元为无效表项;P为24减前缀长度的二进制编码,NextHop为下一跳的地址。附图6为高段8K的CAM数据存放格式,T0为标志位,当T0为0时,对应的CAM存储单元为有效表项,当T0为1时,对应的CAM存储单元为无效表项;P为32减前缀长度的二进制编码,NextHop为下一跳的地址。
本发明查表的过程参考附图7。当目的IP地址到达时,在步骤701,32位的目的IP地址到达地址总线,然后用目的地址的低16位和低24位以及目的地址的32位同时对低段,中段存储器和高段CAM同时进行读操作,步骤702、703、704同时进行,即在步骤702,读低段64K的RAM,在步骤703读中段16M的RAM和在步骤704读中段8K的CAM,并根据F0,S0和T0由705判断和输出查表结果。
附图8为4段存储器存储路由转发表项的方式,其原理同3段方式,只是多706读最低段,当然,步骤702、703、704、706同时进行,如果采用多段存储器存储路由转发表项的方式,其原理和操作与采用3段、4段方式类似。
查表结果判决输出流程参考附图9,首先在步骤901判断高段读出的表项是否有效,若为有效表项则在步骤902输出查表结果,若为无效表项则进入中段判决;以此类推,在步骤903判断中段读出的表项是否有效,若为有效表项则在步骤904输出查表结果,若为无效表项则进入低段判决;在步骤905判断低段读出的表项是否有效,若为有效表项则在步骤906输出查表结果,最后,若为无效表项则在步骤907输出查表无效的结果。附图10为4段方式的判决,原理同图9,只是加上最低段的判决908和最低段的输出909。
各表项的前缀字段,参考附图4、5、6,也采用压缩存储,方法为低段前缀按16减P存储,这样每个表项存放低段前缀只需4比特空间;中段前缀按24减P存储,每个表项存放中段前缀只需3比特空间;
表项删除或更新时,根据每个表项中存放的前缀长度可以判定是保留还是删除或更新。
对于高段表项,利用CAM的删除和更新指令操作相应表项。
权利要求
1.一种分段式IP路由线速率查表方法,其特征在于,该方法包括下述步骤(1)将路由转发表项分别存放在多段存储器内,其中,高前缀表项存储的存储器为CAM存储器;(2)当目的IP地址到来时,多段存储器同时进行读操作,同时得到相应的多个读出结果;(3)对上述步骤(2)得到的多个读出结果进行判决,最后输出具有最长匹配的查表结果。
2.根据权利要求1所述的分段式IP路由线速率查表方法,其特征在于所述路由转发表项分别存放在多段存储器内是将路由转发表项分别存放在3段存储器内,具体为前缀为8~16的表项存储在低段存储器内,前缀为17~24的表项存储在中段存储器内,前缀为25~32的表项存储在高段存储器内。
3.根据权利要求1所述的分段式IP路由线速率查表方法,其特征在于所述路由转发表项分别存放在多段存储器内是将路由转发表项分别存放在4段存储器内,具体为前缀为8的表项存储在最低段存储器内,前缀为16的表项存储在低段存储器内,前缀为17~24的表项存储在中段存储器内,前缀为25~32的表项存储在高段存储器内。
4.根据权利要求2或3所述的分段式IP路由线速率查表方法,其特征在于,所述低段和中段存储器中采用前缀扩展直接存储方式,高段则采用CAM优先级存储方式,其中,高段在CAM中按前缀长度由大到小的存储在CAM中地址由低到高的存储器内,低段和中段的前缀扩展存储按如下规则进行低段进行216-P扩展,即前缀为8到16时进行2的16减P次幂扩展,中段进行224-P扩展,即前缀为17到24时进行2的24减P次幂扩展,上述P为对应段内的前缀,在每段存储器内长前缀覆盖短前缀。
5.根据权利要求1所述的分段式IP路由线速率查表方法,其特征在于所述对多个读出结果进行判决最后输出具有最长匹配的查表结果是按照下述方法进行的按照存放路由转发表项存储器段的高低,从高段到低段顺序进行判决,若高段读出的表项有效,则输出查表结果,判决输出结束,否则进入下一个存储器段的判决,以此类推,直至对最低段进行判决,若最低段读出的表项无效,最后输出查表无效的结果。
全文摘要
本发明公开了一种分段式IP路由线速率查表方法,本发明采用了将路由转发表项分别存放在多段存储器内,其中,高前缀表项存储的存储器为CAM存储器,多段同时查表的方法,在对多段产生的查表结果进行判决输出时,按照存放路由转发表项存储器段的高低,从高段到低段顺序进行判决,若高段读出的表项有效,则输出查表结果,判决输出结束,无须进行低段的判决,减少了骨干路由器中的线速率查表时间,提高了路由器的性能。
文档编号H04Q3/00GK1286576SQ0012954
公开日2001年3月7日 申请日期2000年9月28日 优先权日2000年9月28日
发明者李欧, 兰巨龙, 邬江兴 申请人:国家数字交换系统工程技术研究中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1