CN106953806B - 一种基于后缀索引匹配ip地址的方法及系统 - Google Patents

一种基于后缀索引匹配ip地址的方法及系统 Download PDF

Info

Publication number
CN106953806B
CN106953806B CN201710188598.5A CN201710188598A CN106953806B CN 106953806 B CN106953806 B CN 106953806B CN 201710188598 A CN201710188598 A CN 201710188598A CN 106953806 B CN106953806 B CN 106953806B
Authority
CN
China
Prior art keywords
matched
suffix index
index interval
suffix
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710188598.5A
Other languages
English (en)
Other versions
CN106953806A (zh
Inventor
张冉
农革
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SYSU CMU Shunde International Joint Research Institute
National Sun Yat Sen University
Original Assignee
SYSU CMU Shunde International Joint Research Institute
National Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SYSU CMU Shunde International Joint Research Institute, National Sun Yat Sen University filed Critical SYSU CMU Shunde International Joint Research Institute
Priority to CN201710188598.5A priority Critical patent/CN106953806B/zh
Publication of CN106953806A publication Critical patent/CN106953806A/zh
Application granted granted Critical
Publication of CN106953806B publication Critical patent/CN106953806B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Abstract

本发明涉及一种基于后缀索引匹配IP地址的方法,包括以下步骤:S1.对IP路由数据构建后缀索引;S2.将IPv6地址平均分为k段,然后分别为每段IPv6地址构建不同的哈希表,每张哈希表存放段内不同后缀在后缀索引中的区间值;S3.对于给定的目的IP地址,将其平均分为k段,然后将k段目的IP地址通过二分查找法在k张哈希表中查找匹配的后缀索引区间,并记录匹配的后缀索引区间所在的哈希表对应的段数;S4.根据记录的段数进行段内回溯查找,输出目的IP的路由信息。

Description

一种基于后缀索引匹配IP地址的方法及系统
技术领域
本发明涉及网络通信领域,更具体的,涉及一种基于后缀索引匹配IP地址的方法及系统。
背景技术
路由器作为Internet互连的核心设备,其主要功能是按照IP分组中的目的地址转发分组,查找路由表(指路由器或者其他互联网网络设备上存储的一张路由信息表,该表中存有到达特定网络终端的路径)决定将分组发往哪个端口。路由器的处理速度是网络通信的主要瓶颈之一,其性能直接影响着网络互联的质量。高效的路由表查找算法是影响路由器转发效率的重要因素。随着Internet网络规模的扩大,路由表的大小与日俱增,这个问题随着IPv6网络协议的逐步应用而更加突出。同IPv4的CIDR(无类域间路由,ClasslessInter-Domain Routing)概念类似,IPv6地址也被认为是无类别的,路由查找时必须要进行最长前缀匹配LPM(longestprefix matching)而不是精确匹配,不仅需要与地址前缀的比特值进行匹配查找,而且还要考虑地址前缀长度。这些都给路由表查找算法效率的提高带来了挑战。
发明内容
本发明为解决以上现有路由表查找算法查找效率不高的缺陷,提供了一种基于后缀索引匹配IP地址的方法。
为实现以上发明目的,采用的技术方案是:
一种基于后缀索引匹配IP地址的方法,包括以下步骤:
S1.对IP路由数据构建后缀索引;
S2.将IPv6地址平均分为k段,然后分别为每段IPv6地址构建不同的哈希表,每张哈希表存放段内不同后缀在后缀索引中的区间值;
S3.对于给定的目的IP地址,将其平均分为k段,然后将k段目的IP地址通过二分查找法在k张哈希表中查找匹配的后缀索引区间,并记录匹配的后缀索引区间所在的哈希表对应的段数;
S4.根据记录的段数进行段内回溯查找,输出目的IP的路由信息。
优选地,所述步骤S1构建后缀索引的具体过程如下:
IP路由数据中的各个IPv6地址对应的前缀构成集合S,集合S中的每个前缀视为一个字符串并在末尾添加#,#<0<1,即每个IPv6地址包括有129个后缀;将集合S中的所有前缀首尾相连组成一个字符串T,构建字符串T的构建后缀索引。
优选地,所述步骤S2构建哈希表的具体过程如下:
将IPv6地址平均分为16段,然后为各段IPv6地址分别构建一个哈希表,16个哈希表分别为H_Table1~H_Table16,其中H_Table1~H_Table15内分别记录有各自段内的所有以00000000~11111111开始的后缀在后缀索引中的区间值;H_Table16记录所有段内的所有以00000000#~11111111#开始的后缀在后缀索引中的区间值。
优选地,所述步骤S4通过二分查找法查找匹配的后缀索引区间的具体过程如下:
(1)首先对目的IP地址第8段在H_Table8内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(2),否则执行步骤(10);
(2)对目的IP地址第12段在H_Table12内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(3),否则执行步骤(7);
(3)对目的IP地址第14段在H_Table14内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(4),否则执行步骤(6);
(4)对目的IP地址第15段在H_Table15内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(5);
(5)对目的IP地址第16段在H_Table16内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(6)对目的IP地址第13段在H_Table13内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(7)对目的IP地址第10段在H_Table10内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(8),否则执行步骤(9);
(8)对目的IP地址第11段在H_Table11内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(9)对目的IP地址第9段在H_Table9内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(10)对目的IP地址第4段在H_Table4内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(11),否则执行步骤(14);
(11)对目的IP地址第6段在H_Table6内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(12),否则执行步骤(13);
(12)对目的IP地址第7段在H_Table7内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(13)对目的IP地址第5段在H_Table5内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(14)对目的IP地址第2段在H_Table2内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(15),否则执行步骤(16);
(15)对目的IP地址第3段在H_Table3内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(16)对目的IP地址第1段在H_Table1内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数。
优选地,定义F为字符串T的所有后缀按字典顺序排序后的首字符组成的数组;
定义BWT为字符串T的所有后缀按字典顺序排序后的最后一个字符组成的数组;
所述步骤S5进行段内回溯查找的具体步骤如下:
S101.根据记录的段数,将下一段内的目的IP地址倒置,其最后一个字符在F中的起始位置标记为First,结束位置标记为Last;
S102.查询First与Last之间的所有行对应的BWT中是否存在与倒置的IP地址的倒数第i个字符相同的字符,i的初始值为2;
S103.若是则将这些字符映射在F中,这些字符在F中的相应起始位置、结束位置标记为First、Last;
S104.令i=i+1然后利用步骤S3得到的First、Last重复执行步骤S103直至查询不到匹配项,此时得到最长匹配后缀。
S105.输出目的IP的路由信息。
同时,本发明还提供了一种应用以上方法的系统,其方案如下:
包括索引构造模块和索引查询模块,索引构造模块用于构建后缀索引和哈希表,所述索引查询模块用于哈希表的查找和段内回溯查找。
与现有技术相比,本发明的有益效果是:
1.查找一个IPv6地址最多需读路由表4次,与路由表的大小无关,因此能够保证查找效率。
2.将后缀索引应用到路由查找上,有效的加快了IP地址的匹配速度,同时具有良好的性能。
附图说明
图1为方法的流程示意图。
图2为本发明的路由表结构图。
图3为系统的示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
如图1所示,本发明提供的方法包括有以下步骤;
S1.对IP路由数据构建后缀索引;
S2.将IPv6地址平均分为k段,然后分别为每段IPv6地址构建不同的哈希表,每张哈希表存放段内不同后缀在后缀索引中的区间值;
S3.对于给定的目的IP地址,将其平均分为k段,然后将k段目的IP地址通过二分查找法在k张哈希表中查找匹配的后缀索引区间,并记录匹配的后缀索引区间所在的哈希表对应的段数;
S4.根据记录的段数进行段内回溯查找,输出目的IP的路由信息。
其中,如图2所示,图2为路由表结构图。
在具体的实施过程中,所述步骤S1构建后缀索引的具体过程如下:
IP路由数据中的各个IPv6地址对应的前缀构成集合S,集合S中的每个前缀视为一个字符串并在末尾添加#(#<0<1),即每个IPv6地址包括有129个后缀;将集合S中的所有前缀首尾相连组成一个字符串T,构建字符串T的构建后缀索引。
在具体的实施过程中,所述步骤S2构建哈希表的具体过程如下:
将IPv6地址平均分为16段,然后为各段IPv6地址分别构建一个哈希表,16个哈希表分别为H_Table1~H_Table16,其中H_Table1~H_Table15内分别记录有各自段内的所有以00000000~11111111开始的后缀在后缀索引中的区间值;H_Table16记录所有段内的所有以00000000#~11111111#开始的后缀在后缀索引中的区间值。
为了方便说明构建哈希表的过程,本实施例以IP地址长度为4为例,以2bit为单位进行分段查找。
给定一个集合S={S1,S2,…},集合中每一项Si是一条路由规则的匹配前缀。构造字符串T=S1#S2#...的后缀索引(这里,S1#是由前缀S1和#构成字符串,将所有这些字符串首尾相连得到T)。
例如:S={1100/4,110*/3},那么就有T=1100#110#。
则其后缀索引如下所示:
pos=0 1 2 3 4 5 6 7 8
x=1 1 0 0 # 1 1 0 #
sa=8 4 7 3 2 6 1 5 0
若以2bit分段构建两个hash表,则哈希表H_Tablel对应前2bit,用于记录所有以00,01,10,11开始的后缀在后缀索引中的区间;哈希表H_Table2对应后2bit,用于记录所有以00#,01#,10#,11#开始的后缀在后缀索引中的区间。如表1所示:
H_Table1中的[4,4]表示以00开始的后缀在后缀索引中的区间只有第4行;
H Table1中的Null表示以01开始的后缀在后缀索引中找不到相应的区间;
H_Table1中的[5,6]表示以10开始的后缀在后缀索引中的区间从第5行到第6行;
H_Table1中的[7,8]表示以11开始的后缀在后缀索引中的区间从第7行到第8行;
H_Table2中的[4,4]表示以00#开始的后缀在后缀索引中的区间只有第4行;
H Table2中的Null表示以01#开始的后缀在后缀索引中找不到相应的区间;
H_Table2中的[5,5]表示以10#开始的后缀在后缀索引中的区间只有第5行;
H Table2中的Null表示以11#开始的后缀在后缀索引中找不到相应的区间。
表1哈希表的键-值
Index H_Table1 H_Table2
00 [4,4] [4,4]
01 Null Null
10 [5,6] [5,5]
11 [7,8] Null
给定一个IP地址,与其匹配的IP前缀的中间字符不可能是#。所以,给定通配符x(x可以为1或者0),则IP地址11xx是有可能匹配110#和1100#110#的;而IP地址xx11不可能匹配110#和1100#110#的。这也就是为什么H_Table1中的11表项为[7,8],H_Table2中的11表项为空的原因。
从上述可知,IPv6的地址长度为128bit,因此以8bit为单位构建16个哈希表,分别为H_Table1~H_Table16。则H_Table1~15记录所有以00000000~11111111开始的后缀在后缀索引中的区间;H_Table16记录所有以00000000#~11111111#开始的后缀在后缀索引中的区间。
在具体的实施过程中,所述步骤S4通过二分查找法查找匹配的后缀索引区间的具体过程如下:
(1)首先对目的IP地址第8段在H_Table8内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(2),否则执行步骤(10);
(2)对目的IP地址第12段在H_Table12内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(3),否则执行步骤(7);
(3)对目的IP地址第14段在H_Table14内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(4),否则执行步骤(6);
(4)对目的IP地址第15段在H_Table15内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(5);
(5)对目的IP地址第16段在H_Table16内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(6)对目的IP地址第13段在H_Table13内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(7)对目的IP地址第10段在H_Table10内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(8),否则执行步骤(9);
(8)对目的IP地址第11段在H_Table11内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(9)对目的IP地址第9段在H_Table9内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(10)对目的IP地址第4段在H_Table4内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(11),否则执行步骤(14);
(11)对目的IP地址第6段在H_Table6内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(12),否则执行步骤(13);
(12)对目的IP地址第7段在H_Table7内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(13)对目的IP地址第5段在H_Table5内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(14)对目的IP地址第2段在H_Table2内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(15),否则执行步骤(16);
(15)对目的IP地址第3段在H_Table3内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(16)对目的IP地址第1段在H_Table1内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数。
本实施例中,定义F为字符串T的所有后缀按字典顺序排序后的首字符组成的数组;定义BWT为字符串T的所有后缀按字典顺序排序后的最后一个字符组成的数组;则所述步骤S5进行段内回溯查找的具体步骤如下:
S101.根据记录的段数,将下一段内的目的IP地址倒置,其最后一个字符在F中的起始位置标记为First,结束位置标记为Last;
S102.查询First与Last之间的所有行对应的BWT中是否存在与倒置的IP地址的倒数第i个字符相同的字符,i的初始值为2;
S103.若是则将这些字符映射在F中,这些字符在F中的相应起始位置、结束位置标记为First、Last;
S104.令i=i+1然后利用步骤S3得到的First、Last重复执行步骤S103直至查询不到匹配项,此时得到最长匹配后缀。
S105.输出目的IP的路由信息。
实施例2
本实施例提供了一种应用实施例1方法的系统,如图3所示,其具体的方案如下:
包括索引构造模块和索引查询模块,索引构造模块用于构建后缀索引和哈希表,所述索引查询模块用于哈希表的查找和段内回溯查找。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (3)

1.一种基于后缀索引匹配IP地址的方法,其特征在于:包括以下步骤:
S1.对IP路由数据构建后缀索引;
S2.将IPv6地址平均分为k段,然后分别为每段IPv6地址构建不同的哈希表,每张哈希表存放段内不同后缀在后缀索引中的区间值;
S3.对于给定的目的IP地址,将其平均分为k段,然后将k段目的IP地址通过二分查找法在k张哈希表中查找匹配的后缀索引区间,并记录匹配的后缀索引区间所在的哈希表对应的段数;
S4.根据记录的段数进行段内回溯查找,输出目的IP的路由信息;
其中,所述步骤S1构建后缀索引的具体过程如下:
IP路由数据中的各个IPv6地址对应的前缀构成集合S,集合S中的每个前缀视为一个字符串并在末尾添加#,#<0<1,即每个IPv6地址包括有129个后缀;将集合S中的所有前缀首尾相连组成一个字符串T,构建字符串T的后缀索引;
其中,所述步骤S2构建哈希表的具体过程如下:
将IPv6地址平均分为16段,然后为各段IPv6地址分别构建一个哈希表,16个哈希表分别为H_Table1~H_Table16,其中H_Table1~H_Table15内分别记录有各自段内的所有以00000000~11111111开始的后缀在后缀索引中的区间值;H_Table16记录所有段内的所有以00000000#~11111111#开始的后缀在后缀索引中的区间值;
其中,所述步骤S3通过二分查找法查找匹配的后缀索引区间的具体过程如下:
(1)首先对目的IP地址第8段在H_Table8内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(2),否则执行步骤(10);
(2)对目的IP地址第12段在H_Table12内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(3),否则执行步骤(7);
(3)对目的IP地址第14段在H_Table14内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(4),否则执行步骤(6);
(4)对目的IP地址第15段在H_Table15内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(5);
(5)对目的IP地址第16段在H_Table16内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(6)对目的IP地址第13段在H_Table13内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(7)对目的IP地址第10段在H_Table10内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(8),否则执行步骤(9);
(8)对目的IP地址第11段在H_Table11内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(9)对目的IP地址第9段在H_Table9内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(10)对目的IP地址第4段在H_Table4内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(11),否则执行步骤(14);
(11)对目的IP地址第6段在H_Table6内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(12),否则执行步骤(13);
(12)对目的IP地址第7段在H_Table7内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(13)对目的IP地址第5段在H_Table5内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(14)对目的IP地址第2段在H_Table2内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数,然后执行步骤(15),否则执行步骤(16);
(15)对目的IP地址第3段在H_Table3内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数;
(16)对目的IP地址第1段在H_Table1内查找匹配的后缀索引区间,若查找到匹配的后缀索引区间,则记录匹配的后缀索引区间所在的哈希表对应的段数。
2.根据权利要求1所述的基于后缀索引匹配IP地址的方法,其特征在于:
定义F为字符串T的所有后缀按字典顺序排序后的首字符组成的数组;
定义BWT为字符串T的所有后缀按字典顺序排序后的最后一个字符组成的数组;
所述步骤S4进行段内回溯查找的具体步骤如下:
S101.根据记录的段数,将下一段内的目的IP地址倒置,其最后一个字符在F中的起始位置标记为First,结束位置标记为Last;
S102.查询First与Last之间的所有行对应的BWT中是否存在与倒置的IP地址的倒数第i个字符相同的字符,i的初始值为2;
S103.若是则将这些字符映射在F中,这些字符在F中的相应起始位置、结束位置标记为First、Last;
S104.令i=i+1然后利用步骤S101得到的First、Last重复执行步骤S103直至查询不到匹配项,此时得到最长匹配后缀;
S105.输出目的IP的路由信息。
3.一种根据权利要求1或2方法的系统,其特征在于:包括索引构造模块和索引查询模块,索引构造模块用于构建后缀索引和哈希表,所述索引查询模块用于哈希表的查找和段内回溯查找。
CN201710188598.5A 2017-03-27 2017-03-27 一种基于后缀索引匹配ip地址的方法及系统 Active CN106953806B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710188598.5A CN106953806B (zh) 2017-03-27 2017-03-27 一种基于后缀索引匹配ip地址的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710188598.5A CN106953806B (zh) 2017-03-27 2017-03-27 一种基于后缀索引匹配ip地址的方法及系统

Publications (2)

Publication Number Publication Date
CN106953806A CN106953806A (zh) 2017-07-14
CN106953806B true CN106953806B (zh) 2020-10-23

Family

ID=59472400

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710188598.5A Active CN106953806B (zh) 2017-03-27 2017-03-27 一种基于后缀索引匹配ip地址的方法及系统

Country Status (1)

Country Link
CN (1) CN106953806B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597855B (zh) * 2019-08-14 2022-03-29 中山大学 一种数据查询方法、终端设备及计算机可读存储介质
CN110852046B (zh) * 2019-10-18 2021-11-05 中山大学 一种文本后缀索引的分块归纳排序方法及系统
CN113726919A (zh) * 2021-07-22 2021-11-30 中盈优创资讯科技有限公司 一种IPRAN网络IPv6海量地址寻址方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073740A (zh) * 2011-01-27 2011-05-25 农革 基于基数排序的字符串后缀数组构造方法
CN102081673A (zh) * 2011-01-27 2011-06-01 农革 后缀数组构造方法
CN103902599B (zh) * 2012-12-27 2017-04-05 北京新媒传信科技有限公司 模糊查找的方法和装置
US9940322B2 (en) * 2014-03-31 2018-04-10 International Business Machines Corporation Term consolidation for indices

Also Published As

Publication number Publication date
CN106953806A (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
US9672234B2 (en) Database and database processing methods
US6633548B2 (en) Method and apparatus for ternary content addressable memory (TCAM) table management
CN1655533B (zh) 基于最长前缀匹配算法的过滤器
US7852852B2 (en) Method for compressing route data in a router
CN106953806B (zh) 一种基于后缀索引匹配ip地址的方法及系统
CN103428093B (zh) 一种基于名字路由前缀存储、匹配及更新方法与装置
US20030174717A1 (en) System and method for longest prefix match for internet protocol lookup
US20060083247A1 (en) Prefix lookup using address-directed hash tables
US8798066B2 (en) Method for IPv6 longest prefix match
TW201501556A (zh) 用於唯一枚舉解析樹中的路徑的裝置和方法
US11327974B2 (en) Field variability based TCAM splitting
US20070106640A1 (en) Searching for strings in messages
JP2004266837A (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
US10616113B2 (en) Longest prefix match using a binary search tree with compressed hash tables
US20040044868A1 (en) Method and apparatus for high-speed longest prefix match of keys in a memory
US11502957B2 (en) Avoiding markers for longest prefix match based on binary search tree algorithm
Sahni et al. O (log n) dynamic packet routing
JP2015162024A (ja) 検索木生成・検索装置及び方法及びプログラム
Lim et al. Binary searches on multiple small trees for IP address lookup
KR100662254B1 (ko) 라우팅 시스템에서의 패킷 분류 장치 및 이를 위한 룰 구축 방법
US9444731B2 (en) Methods and systems for data packet routing
JP4726310B2 (ja) 情報検索装置、情報検索用マルチプロセッサおよびルータ
CN109194574A (zh) 一种IPv6路由查找方法
KR100572693B1 (ko) 인터넷 프로토콜 패킷 룩업 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant