CN112115312B - 数据名查找方法、系统及存储介质 - Google Patents
数据名查找方法、系统及存储介质 Download PDFInfo
- Publication number
- CN112115312B CN112115312B CN202010932881.6A CN202010932881A CN112115312B CN 112115312 B CN112115312 B CN 112115312B CN 202010932881 A CN202010932881 A CN 202010932881A CN 112115312 B CN112115312 B CN 112115312B
- Authority
- CN
- China
- Prior art keywords
- data name
- prefix
- characteristic
- prefixes
- searching
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据名查找方法、系统及存储介质,在现有数据名查找算法的基础上增加一个额外步骤,在依照组件数目将数据名前缀存入哈希表时,将数据名前缀中每个组件的前n位取出,作为该数据名前缀的特征前缀,将相同组件排序的特征前缀统计到一起,用布鲁姆过滤器存储。当需要查找目标数据名时,首先同样按照对应方法获得目标数据名的特征数据名,然后将特征数据名放入对应组件数目的特征前缀布鲁姆过滤器进行匹配,如果匹配失败,无需进入对应组件数目的哈希表中查找。本发明快速完成数据名查找,降低网络时延。
Description
技术领域
本发明涉及计算机网络传输领域,特别是一种数据名查找方法、系统及存储介质。
背景技术
与传统的IP网络以地址为中心不同,NDN作为一种新型网络架构将网络关注的焦点从数据位置转移到了数据内容。即传统IP网络中用户需要先找到所需内容的IP地址,找到内容所在的服务器位置,才能得到内容;而NDN只关注用户需求的内容,不关心它来自哪里,这样更符合用户的搜索习惯。因此,NDN 的传输与传统IP网络不尽相同,IP查找中只需对32位(IPv4)或128位(IPv6) 的IP地址“01”串进行查找,而NDN中的数据名组成的方式要复杂的多:首先每个数据名由若干个组件组成,组件的数目无法确定;其次,每个组件中的数据名内容不限,可以是数字、字母或者字符等;最后每个组件中的数据名长度也无法确定,理论上也是无限制的。基于以上三点,数据名查找比IP查找要复杂得多。表1中展示了数据名前缀的例子,“/”作为分隔符,即每一个“/”代表组件数目加1。
表1:一个NDN中的FIB表(部分)
现有的数据名查找算法通常分为两个步骤,首先将需要查找的数据名依照组件数目分割成n个子数据名,然后将这n个子数据名与对应组件数目的数据名前缀进行匹配查找,匹配结果同样遵守最长前缀匹配原则,最终确定匹配结果。
这里通过一个简单例子来说明传统的数据名查找算法,表1所示为一个NDN 中的路由转发表(部分),首先所有数据名前缀依照组件数目被存储在不同的哈希表或其他存储结构中,即1号数据名前缀存储在组件数目为1的哈希表HT1中,2号数据名存储在哈希表HT2中,3、4号数据名存储哈希表HT3中,5号存储在哈希表HT4中。此时用户想要查找“中国安徽省淮南市”的信息,数据名为 Asia/China/Anhui/Huainan,其组件数目为4,则首先在FIB中对应组件数目为4 的哈希表HT4中查找相关信息,如果查找失败后再到组件数目为3的哈希表HT3中查找Asia/China/Anhui信息,以此类推,如果查找成功则返回下一跳信息,否则一直到组件数目为1的哈希表HT1查找Asia/,仍然查找失败的话,查找过程结束,匹配失败。示例中共需要2次哈希查找匹配到4号数据名前缀,对应下一跳信息P4。
由上述例子可见,现有数据名查找算法根据组件数目来存储数据名前缀,然后按照最长前缀匹配方式进行数据名查找。但是这种方法没有利用到前缀本身的特征,而是仅仅根据组件数目的多少来存储数据名前缀,完全起不到过滤数据名前缀的作用,使得查询效率并不高。尤其在查找数据名匹配失败次数较多的场景下,该方法的查找效率较低,因为每次查找都会到组件数目为1的哈希表中查找失败,此时才认定查找失败,而且哈希查找次数很多,导致访存次数增加,带来较大的网络时延。
总而言之,现有方法在每次数据名查找过程中会产生大量的哈希查找过程,使得数据名查找过程中的访存次数较多,查找效率较低;现有数据名查找方法中有大量哈希查找过程,而哈希查找过程的占用时间在整个查找过程中所占比重极大,使得网络传输过程中的时延较高。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种数据名查找方法、系统及存储介质,快速完成数据名查找,降低网络时延。
为解决上述技术问题,本发明所采用的技术方案是:一种数据名查找方法,包括以下步骤:
S1、获取所有数据名前缀的特征前缀,将各数据名的特征前缀存入对应的布鲁姆过滤器;
S2、将目标数据名的特征前缀放入对应的布鲁姆过滤器中;
S3、判断所述目标数据名的特征前缀与该对应的布鲁姆过滤器中的特征前缀是否匹配,若匹配,则在用于存储数据名前缀的哈希表中查找目标数据名前缀,若查找成功,进入步骤S5,否则,进入步骤S4;若所述目标数据名的特征前缀与该对应的布鲁姆过滤器中的特征前缀不匹配,则进入步骤S4;否则,进入步骤S5;
S4、判断目标数据名特征前缀数量是否为1,若是,则匹配失败,进入步骤 S5;否则,返回步骤S3;
S5、结束。
步骤S1的具体实现过程包括:取出数据名前缀中每个组件的前n位,作为该数据名前缀的特征前缀,将相同组件排序(即将长度一样的特征前缀放到同一个布鲁姆过滤器中。例如n=2时,比如后面的表2里面,第三个和第四个数据名都是包含3个组件(也可以简单理解为长度为3,长度由“/”的数目决定),将 As/Ch/Be和As/Ch/An都放入存储组件长度为3的布鲁姆过滤器Bf3中。即每一个布鲁姆过滤器存储同一个组件数目(同一个长度的)特征前缀,表2所示的布鲁姆过滤器的下标就表示对应的组件数目(长度))的特征前缀统计到一起,并用布鲁姆过滤器存储相同组件排序的特征前缀。
在原本的数据名哈希查找步骤前先进行特征前缀的布鲁姆过滤器查找,布鲁姆查找失败则跳过哈希查找的步骤。布鲁姆查找时间短,加快了查找速度:即使是原本一次哈希查找成功的情景,改进的方法仅仅多一次布鲁姆查找的过程;其它情形改进的方法都不同程度的用布鲁姆查找取代哈希查找。
本发明中,将目标数据名的特征前缀放入对应的布鲁姆过滤器中,是指将目标数据名的特征前缀放入存储有与目标数据名的特征前缀长度相同的特征前缀布鲁姆过滤器中。
本发明中,为了加速查找过程,设置n=2。
n和组件数目无关,可以由用户自行定义。比如数据名aaaa/bbbb/cccc/dddd,令n=1,特征前缀就是a/b/c/d;令n=2,特征前缀就是aa/bb/cc/dd,以此类推。n 的值可以根据数据名本身的特征来决定,可以选取更有效的特征前缀来加速查找过程。
本发明还提供了一种数据名查找系统,包括计算机设备;所述计算机设备被配置或编程为用于执行本发明所述方法的步骤。
相应的,本发明还提供了一种计算机可读存储介质,其存储有程序;所述程序被配置为用于执行本发明方法的步骤。
与现有技术相比,本发明所具有的有益效果为:
1、本发明方法通过引入特征前缀的布鲁姆过滤器查找过程,减少了哈希查找次数,同时减少了查找过程中的访存次数,从而在整体上提高了网络查找传输速度;
2、本发明方法会过滤掉大量不匹配的待查找数据名,从而减少了哈希查找的次数,缩短了数据名查找的时间,降低了网络中的查找传输时延。
附图说明
图1为本发明实施例方法流程图。
具体实施方式
本发明在数据名查找中增加特征前缀的构建机制,在查找过程中增加特征前缀的布鲁姆过滤器查找,包括:在存储数据名前缀的时候,将每个数据名前缀的每个组件的前n位作为其特征前缀记录下来;将同一组件数目数据名前缀的特征前缀放入一个布鲁姆过滤器内存储;目标数据名信息请求查找匹配时,首先到对应组件数目的布鲁姆过滤器查找匹配;布鲁姆过滤器匹配成功,再进行哈希查找匹配,布鲁姆过滤器匹配失败,则选取当前组件数目减1的特征数据名到对应组件数目的布鲁姆过滤器匹配,直到组件数目为1都匹配完毕;只有哈希查找成功,最终匹配才成功,否则查找失败,哈希查找成功后可立即结束查找过程,无需再进行后续的布鲁姆哈希查找。
本发明方法在现有数据名查找算法的基础上增加一个额外步骤,在依照组件数目将数据名前缀存入哈希表时,将数据名前缀中每个组件的前n位取出,作为该数据名前缀的特征前缀,将相同组件排序的特征前缀统计到一起,用布鲁姆过滤器存储。当需要查找目标数据名时,首先同样按照对应方法获得目标数据名的特征数据名,然后将特征数据名放入对应组件数目的特征前缀布鲁姆过滤器进行匹配,如果匹配失败,无需进入对应组件数目的哈希表中查找;如果布鲁姆匹配成功,则与现有方法一样进行目标数据名的哈希查找和字符串匹配。因为布鲁姆过滤器的开销小,且布鲁姆过滤器查找速度很快,所以用布鲁姆过滤器查找来代替哈希查找无疑可以提高查找效率。当数据名查找最终成功时,在控制布鲁姆查找的假阳率的情形下,本发明方法仅比现有方法多1次布鲁姆查找的过程。而数据名查找处于最坏情形时,本发明方法需要n次布鲁姆查找,原有方法需要n 次哈希查找,n为目标数据名组件数目。因此本发明方法通过布鲁姆过滤器可以快速且大量的排除掉匹配失败的数据名信息,可以极大的提高数据名查找效率,加快网络的传输效率。
表2:基于特征前缀的数据名查找存储方式
本发明方法流程如图1所示,首先获得所有数据名前缀的特征前缀,依次为 Eu,As/Ja,As/Ch/Be,As/Ch/An,As/Ch/Hu/Ch,然后根据它们的组件数目将它们存入对应的布鲁姆过滤器BFn中,而数据名前缀本身仍然存储在哈希表HTn中(如表2)。此时查找的目标数据名是Asia/China/Anhui/Huainan,其特征信息为As/Ch/An/Hu,则依次在布鲁姆过滤器中进行匹配查找,顺序从BF4到BF1。在不考虑假阳性的情况下,则目标数据名的特征数据名布鲁姆过滤器BF3中与特征前缀“As/Ch/An”匹配成功,所以我们再取目标数据名的前三个组件构成的子前缀Asia/China/Anhui/到哈希表HT3中进行哈希查找,查找成功。总共需要2次布鲁姆过滤器查找和1次哈希查找。根据本例可以看出,原方法进行了2次哈希查找,而本发明方法则进行了2次布鲁姆过滤器查找和1次哈希查找。因为布鲁姆过滤器查找效率比哈希查找效率高,所以就查找效率而言,本方法要更加优秀。即原方法需要N次哈希查找,使用本方法只需要N次布鲁姆过滤器查找和1次哈希查找。除非所有目标命名都可以一次哈希查找成功,否则本方法的查找效率更加优秀,而这种特殊情况几乎很少出现。
由此可见,本方法通过给数据名前缀设置特征前缀的方法,尽可能的以布鲁姆过滤器查找取代哈希查找,可以大幅提高数据名查找的效率。
如图1,本发明具体实现步骤包括:
步骤1,C语言编写程序,准备数据名前缀文件,以哈希表存储数据名前缀,布鲁姆过滤器存储数据名前缀对应的特征前缀,模拟路由表。
步骤2,准备目标数据名数据文件,并获得对应的特征数据名。
步骤3,依次查找每个目标数据名,对其特征信息在对应的布鲁姆过滤器中进行查找匹配。
步骤4,如果布鲁姆过滤器查找成功,再进行哈希查找及字符串匹配,哈希查找及字符串匹配成功则查找成功,返回查找结果。
步骤5,如果布鲁姆过滤器查找组件数目为N的特征数据名失败,则去除特征数据名的最后一个组件,即继续布鲁姆过滤器查找组件数目为N-1的特征数据名,重复过程直至N=1,则查找失败。
步骤6,如果布鲁姆过滤器查找组件数目为N的特征数据名成功,哈希查找及字符串匹配失败,则继续布鲁姆过滤器查找组件数目为N-1的特征数据名。即只有布鲁姆过滤器查找成功才进行哈希查找及字符串匹配,而只有哈希查找及字符串匹配成功才算查找成功;否则一直查找到组件数目为1,返回查找失败的结果。
以表1所示的NDN路由表为例,对目标数据名Europe/France/Paris,使用现有的查找方法需要依次进行2次哈希查找,最终匹配到结果Europe/France,下一跳信息为P1(表1);而使用本发明方法总计进行2次布鲁姆过滤器查找和1 次哈希查找。而布鲁姆过滤器查找的开销远小于哈希查找和字符串匹配,因而通过本方法优化可以提高数据名查找的效率,且需要查找的次数越多,提高效果越显著。
本发明方法与现有哈希查找方法的初步比较如表3所示,示例中现有方法2 次哈希查找,本发明方法需要2次布鲁姆查找和1次哈希查找。理论分析来看,在最好情形下(即一次匹配成功的情形),现有方法需要1次哈希查找,而本发明方法需要1次布鲁姆过滤器查找和1次哈希查找;在最坏情形下(即最终匹配失败的情形),两种方法分别需要N次哈希查找和N次布鲁姆过滤器查找(N为目标数据名的组件数目)。而通常情形下,一个组件数目为N的目标数据名匹配到组件数目为M的数据名前缀时,现有方法需要N-M次哈希查找,而本发明方法需要N-M次布鲁姆查找和1次哈希查找。M越大,本发明方法效率越高。以上情形不考虑布鲁姆过滤器的假阳性,而在实际中可以通过参数调整将假阳性降到极低水准,不会对查找过程造成相关影响。
表3现有哈希查找方法和本发明方法的时间开销对比
根据以上分析可以看出,本方法虽然在全部匹配(最好情形下)有着额外的时间开销,但是网络正常使用中很难出现这种情形。而在通常情形下,本方法就有着更高的效率,而在全部不匹配(最坏情形下)更是可以大幅度提高查找效率,综合情形来看,本发明方法有着高效的查找效率。
Claims (4)
1.一种数据名查找方法,其特征在于,包括以下步骤:
S1、获取所有数据名前缀的特征前缀,将各数据名的特征前缀存入对应的布鲁姆过滤器;
S2、将目标数据名的特征前缀放入对应的布鲁姆过滤器中;
S3、判断所述目标数据名的特征前缀与该对应的布鲁姆过滤器中的特征前缀是否匹配,若匹配,则在用于存储数据名前缀的哈希表中查找目标数据名前缀,若查找成功,进入步骤S5,否则,进入步骤S4;若所述目标数据名的特征前缀与该对应的布鲁姆过滤器中的特征前缀不匹配,则进入步骤S4;否则,进入步骤S5;
S4、判断目标数据名特征前缀数量是否为1,若是,则匹配失败,进入步骤S5;否则,返回步骤S3;
S5、结束;
步骤S1的具体实现过程包括:取出数据名前缀中每个组件的前n位,作为该数据名前缀的特征前缀,将相同组件排序的特征前缀统计到一起,并用布鲁姆过滤器存储相同组件排序的特征前缀。
2.根据权利要求1所述的数据名查找方法,其特征在于,n=2。
3.一种数据名查找系统,其特征在于,包括计算机设备;所述计算机设备被配置或编程为用于执行权利要求1或2所述方法的步骤。
4.一种计算机可读存储介质,其特征在于,其存储有程序;所述程序被配置为用于执行权利要求1或2所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010932881.6A CN112115312B (zh) | 2020-09-08 | 2020-09-08 | 数据名查找方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010932881.6A CN112115312B (zh) | 2020-09-08 | 2020-09-08 | 数据名查找方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112115312A CN112115312A (zh) | 2020-12-22 |
CN112115312B true CN112115312B (zh) | 2022-07-08 |
Family
ID=73803444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010932881.6A Active CN112115312B (zh) | 2020-09-08 | 2020-09-08 | 数据名查找方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112115312B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333036A (zh) * | 2011-10-17 | 2012-01-25 | 中兴通讯股份有限公司 | 一种实现高速路由查找的方法和系统 |
CN103873371A (zh) * | 2014-02-21 | 2014-06-18 | 北京邮电大学 | 一种名字路由快速匹配查找方法与装置 |
CN104579974A (zh) * | 2014-12-22 | 2015-04-29 | 湖南大学 | 面向ndn中名字查找的哈希布鲁姆过滤器及数据转发方法 |
KR101587756B1 (ko) * | 2015-02-17 | 2016-01-21 | 이화여자대학교 산학협력단 | 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220223B (zh) * | 2013-04-26 | 2016-04-20 | 北京百度网讯科技有限公司 | 网络数据流分类方法和系统 |
US10516613B1 (en) * | 2015-10-14 | 2019-12-24 | Innovium, Inc. | Network device storage of incremental prefix trees |
-
2020
- 2020-09-08 CN CN202010932881.6A patent/CN112115312B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333036A (zh) * | 2011-10-17 | 2012-01-25 | 中兴通讯股份有限公司 | 一种实现高速路由查找的方法和系统 |
CN103873371A (zh) * | 2014-02-21 | 2014-06-18 | 北京邮电大学 | 一种名字路由快速匹配查找方法与装置 |
CN104579974A (zh) * | 2014-12-22 | 2015-04-29 | 湖南大学 | 面向ndn中名字查找的哈希布鲁姆过滤器及数据转发方法 |
KR101587756B1 (ko) * | 2015-02-17 | 2016-01-21 | 이화여자대학교 산학협력단 | 블룸 필터 선-검색을 이용한 스트링 정보 검색 장치 및 방법 |
Non-Patent Citations (2)
Title |
---|
"Name prefix matching using bloom filter pre-searching for content centric network";Jungwon Lee等;《Journal of Network and Computer Applications》;20160223;第36-47页 * |
"面向未来互联网的高性能路由查找技术研究";李彦彪;《万方数据库》;20170103;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112115312A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1168723B1 (en) | Method and apparatus for longest matching prefix determination in a communication network | |
US8325721B2 (en) | Method for selecting hash function, method for storing and searching routing table and devices thereof | |
US5946679A (en) | System and method for locating a route in a route table using hashing and compressed radix tree searching | |
US6594655B2 (en) | Wildcards in radix- search tree structures | |
EP2560327B1 (en) | Routing table establishment method and device | |
US6691124B2 (en) | Compact data structures for pipelined message forwarding lookups | |
US20030091043A1 (en) | Methods and systems for fast packet forwarding | |
KR100586461B1 (ko) | 파이프라인 이진 트리를 이용한 ip 어드레스 검색 방법,하드웨어 구조 및 기록매체 | |
US7873041B2 (en) | Method and apparatus for searching forwarding table | |
US6804230B1 (en) | Communication device with forwarding database having a trie search facility | |
EP2544414A1 (en) | Method and device for storing routing table entry | |
CN111984835B (zh) | 一种IPv4掩码五元组规则存储压缩方法及装置 | |
US7478109B1 (en) | Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes | |
US6917954B2 (en) | Load balancing in IP address lookup | |
CN112115312B (zh) | 数据名查找方法、系统及存储介质 | |
JP2003224581A (ja) | 最長一致検索回路および方法およびプログラムおよび記録媒体 | |
CN111459938B (zh) | 一种表项处理方法、查表方法及系统 | |
CN113824814B (zh) | 一种转发表的地址匹配方法、装置、网络设备及介质 | |
JP2000358064A (ja) | ルーティングテーブル検索装置および検索法 | |
CN113343034A (zh) | Ip查找方法、系统及存储介质 | |
Lee et al. | Binary search on trie levels with a bloom filter for longest prefix match | |
JP3660311B2 (ja) | テーブル検索装置および方法およびプログラムおよび記録媒体 | |
EP3319279B1 (en) | Ip routing lookup | |
JP2003500901A (ja) | 最長一致プレフィックス・ルックアップ | |
US20090210382A1 (en) | Method for priority search using a tcam |
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 |