IP路由查找方法及装置与流程

文档序号:12623458阅读:来源:国知局

技术特征:

1.一种IP路由查找方法,其特征在于,该方法包括:

分别针对每个虚拟专网VPN中的IP前缀的路由分布,构建一棵多位字典树Multibit Trie;

采用前缀扩展的方法将Multibit Trie的高1~m级IP前缀上的路由扩展到m+1级IP前缀上,m为大于1的整数;

将所述Multibit Trie的m+1级IP前缀的每一个分支作为一个分支树Branch_Tree,保存每个Branch_Tree的数据结构信息;

当对一VPN内的一IP地址进行路由查找时,根据该IP地址的高m+1位bit在该VPN对应的Multibit Trie中查找到对应的Branch_Tree,在该Branch_Tree中查找对应的路由。

2.根据权利要求1所述的方法,其特征在于,

在所述Multibit Trie中,0级前缀的默认路由存储在片外存储空间的预定区域;

所述保存每个Branch_Tree的数据结构信息为:将每个Branch_Tree的数据结构信息保存在片外存储空间的空闲区域中。

3.根据权利要求1或2所述的方法,其特征在于,所述保存每个Branch_Tree的数据结构信息进一步包括:

针对Branch_Tree维护虚拟专网入口位图VRB Table,该VRB Table包含压缩扩展路径位图CEPB和子节点指针CNP,其中,

所述CEPB共2m+1/2d bit,每2d个连续的Branch_Tree对应CEPB的一个bit,当2d个连续的Branch_Tree中存在分布路由的Branch_Tree时,则对应的CEPB位有效,d为正整数;

所述CNP表示第一个CEPB有效bit对应的2d个Branch_Tree的第一个Branch_Tree的指针;

所述根据该IP地址的高m+1bit查找到对应的Branch_Tree,在该 Branch_Tree中查找对应的路由包括:

读取该IP地址的高m+1bit,根据该IP地址的高m+1-d bit在该Multibit-Trie的VRB Table的CEPB中查找到对应的bit;

若查找到的bit有效,则根据该IP地址的高m+1bit中的低d bit确定对应的CNP,根据该CNP查找到对应的Branch_Tree的数据结构信息;

根据该Branch_Tree的数据结构信息查找该IP地址的路由。

4.根据权利要求1或2所述的方法,其特征在于,所述采用前缀扩展的方法将Multibit Trie的高1~m级IP前缀上的路由扩展到m+1级IP前缀上之前进一步包括:

按照路由分布较多的IP前缀段位于层Level底部的原则,将每棵Multibit Trie的0~8级IP前缀划分到Level 0,将最低7级IP前缀划分到最后一个Level,将中间的IP前缀以步长8划分为多个Level;

所述采用前缀扩展的方法将Multibit Trie的高1~m级IP前缀上的路由扩展到m+1级IP前缀上包括:

采用前缀扩展的方法将Multibit Trie的1~8级IP前缀上的路由扩展到9级IP前缀上。

5.根据权利要求4所述的方法,其特征在于,所述保存每个Branch_Tree的数据结构信息包括:

对于每个Branch_Tree中除Level 0外的每个Level中的每个子字典树Sub_Trie,采用前缀扩展的方式将该Sub_Trie的0、1、2级上的IP前缀的路由扩展到3级IP前缀上;

将每个Sub_Trie均匀划分成8个分段Sub_Trie,保存每个分段Sub_Trie的数据结构信息,其中,每个分段Sub_Trie以该子Sub_Trie的高3级IP前缀为索引;

所述在该Branch_Tree中查找对应的路由包括:

当查找到一Level时,根据该IP地址在本Level中对应的8bit或7bit的高3bit,在本Level的Sub_Trie中索引到对应的分段Sub_Trie,然后根据 该分段Sub_Trie的数据结构信息进行路由查找。

6.根据权利要求4所述的方法,其特征在于,所述保存每个Branch_Tree的数据结构信息包括:

对于最后一个Level内的每个Sub_Trie,该Sub_Trie的数据结构信息包括:

1)q个前缀密钥Prefix Key:每个Prefix key代表该Sub_Trie中的其中一个有路由分布的IP前缀的IP地址的最低7bit,其中,q为预设的该Sub_Trie中的有路由分布的IP前缀的最大数量;

2)结果数组指针Result Array ptr;

所述在该Branch_Tree中查找对应的路由时,当查找到最后一个Level时,将该IP地址的最低7bit与最后一个Level的各Sub_Trie的数据结构信息中的Prefix Key匹配,若匹配上,则根据对应的Result Array ptr直接确定路由。

7.根据权利要求2所述的方法,其特征在于,所述在该Branch_Tree中查找对应的路由进一步包括:

若未查找到,则从所述片外存储空间的预定区域中读取默认路由,将默认路由作为最终查找到的路由。

8.一种IP路由查找装置,其特征在于,该装置包括:

多位字典树Multibit Trie建立模块:分别针对每个虚拟专网VPN中的IP前缀的路由分布,构建一棵Multibit Trie;采用前缀扩展的方法将Multibit Trie的高1~m级IP前缀上的路由扩展到m+1级IP前缀上,m为大于1的整数;将所述Multibit Trie的m+1级IP前缀的每一个分支作为一个分支树Branch_Tree,保存每个Branch_Tree的数据结构信息;

路由查找模块:当对一VPN内的一IP地址进行路由查找时,根据该IP地址的高m+1位bit在该VPN对应的Multibit Trie中查找到对应的Branch_Tree,在该Branch_Tree中查找对应的路由。

9.根据权利要求8所述的装置,其特征在于,

所述Multibit Trie建立模块进一步用于,在所述Multibit Trie中,0级前缀的默认路由存储在片外存储空间的预定区域;

所述Multibit Trie建立模块保存每个Branch_Tree的数据结构信息为:将每个Branch_Tree的数据结构信息保存在片外存储空间的空闲区域中。

10.根据权利要求8或9所述的装置,其特征在于,所述Multibit Trie建立模块保存每个Branch_Tree的数据结构信息进一步用于,

针对Branch_Tree维护虚拟专网入口位图VRB Table,该VRB Table包含压缩扩展路径位图CEPB和子节点指针CNP,其中,所述CEPB共2m+1/2dbit,每2d个连续的Branch_Tree对应CEPB的一个bit,当2d个连续的Branch_Tree中存在分布路由的Branch_Tree时,则对应的CEPB位有效,d为正整数;所述CNP表示第一个CEPB有效bit对应的2d个Branch_Tree的第一个Branch_Tree的指针;

所述路由查找模块根据该IP地址的高m+1bit查找到对应的Branch_Tree,在该Branch_Tree中查找对应的路由包括:

读取该IP地址的高m+1bit,根据该IP地址的高m+1-d bit在该Multibit-Trie的VRB Table的CEPB中查找到对应的bit;若查找到的bit有效,则根据该IP地址的高m+1bit中的低d bit确定对应的CNP,根据该CNP查找到对应的Branch_Tree的数据结构信息;根据该Branch_Tree的数据结构信息查找该IP地址的路由。

11.根据权利要求8或9所述的装置,其特征在于,所述Multibit Trie建立模块采用前缀扩展的方法将Multibit Trie的高1~m级IP前缀上的路由扩展到m+1级IP前缀上之前进一步用于,

按照路由分布较多的IP前缀段位于层Level底部的原则,将每棵Multibit Trie的0~8级IP前缀划分到Level 0,将最低7级IP前缀划分到最后一个Level,将中间的IP前缀以步长8划分为多个Level;

所述Multibit Trie建立模块采用前缀扩展的方法将Multibit Trie的高1~m级IP前缀上的路由扩展到m+1级IP前缀上包括:

采用前缀扩展的方法将Multibit Trie的1~8级IP前缀上的路由扩展到9级IP前缀上。

12.根据权利要求11所述的装置,其特征在于,所述Multibit Trie建立模块保存每个Branch_Tree的数据结构信息包括:

对于每个Branch_Tree中除Level 0外的每个Level中的每个子字典树Sub_Trie,采用前缀扩展的方式将该Sub_Trie的0、1、2级上的IP前缀的路由扩展到3级IP前缀上;将每个Sub_Trie均匀划分成8个分段Sub_Trie,保存每个分段Sub_Trie的数据结构信息,其中,每个分段Sub_Trie以该子Sub_Trie的高3级IP前缀为索引;

所述路由查找模块在该Branch_Tree中查找对应的路由包括:

当查找到一Level时,根据该IP地址在本Level中对应的8bit或7bit的高3bit,在本Level的Sub_Trie中索引到对应的分段Sub_Trie,然后根据该分段Sub_Trie的数据结构信息进行路由查找。

13.根据权利要求11所述的装置,其特征在于,所述Multibit Trie建立模块保存每个Branch_Tree的数据结构信息包括:

对于最后一个Level内的每个Sub_Trie,该Sub_Trie的数据结构信息包括:

1)q个前缀密钥Prefix Key:每个Prefix key代表该Sub_Trie中的其中一个有路由分布的IP前缀的IP地址的最低7bit,其中,q为预设的该Sub_Trie中的有路由分布的IP前缀的最大数量;

2)结果数组指针Result Array ptr;

所述路由查找模块在该Branch_Tree中查找对应的路由时,当查找到最后一个Level时,将该IP地址的最低7bit与最后一个Level的各Sub_Trie的数据结构信息中的Prefix Key匹配,若匹配上,则根据对应的Result Array ptr直接确定路由。

14.根据权利要求9所述的装置,其特征在于,所述路由查找模块在该Branch_Tree中查找对应的路由进一步用于,

若未查找到,则从所述片外存储空间的预定区域中读取默认路由,将默认路由作为最终查找到的路由。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1