CN113328947B - 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 - Google Patents
基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 Download PDFInfo
- Publication number
- CN113328947B CN113328947B CN202110453094.8A CN202110453094A CN113328947B CN 113328947 B CN113328947 B CN 113328947B CN 202110453094 A CN202110453094 A CN 202110453094A CN 113328947 B CN113328947 B CN 113328947B
- Authority
- CN
- China
- Prior art keywords
- prefix
- bloom filter
- length
- interval
- variable
- 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
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置,包括将将路由表中所有可变长IP地址的前缀划分成K个连续的不相交的区间,并把每个区间中的前缀扩展到该区间的上限;每一个区间对应设置一个布隆过滤器,并将IP前缀信息存储到哈希表中;进行寻址操作时,将目的IP地址输入各布隆过滤器中,返回一匹配向量;根据哈希表与所述匹配向量进行寻址,得到所述目的地址的存储空间。本发明通过可控前缀扩展减少了布隆过滤器的使用,继而降低了路由查找时的平均查询次数Eavg和最大查找次数Emax,减少了Bloom filter假阳性概率的影响,提升了路由查找速度。
Description
技术领域
本发明属于计算机网络的路由算法领域,具体为一种基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置。
背景技术
自从因特网发明以来,路由查找一直是因特网的核心问题。随着Internet的迅速发展,当前的IP地址系统面临着越来越多的问题,一方面,网络正在向万物互联的方向快速延伸,除了传统主机外,未来网络需要连接更多的通信实体,如服务、内容、资源、网络地址、人等,而不同类型的通信主体存在很大的差异性,这就要求网络协议具有一定的弹性能力,能够根据运行环境进行自适应的调整。另一方面,越来越多新型的应用需求不断出现对网络提出了新的挑战,通信主体都应可以作为终端彼此通信。然而,IP地址是当前数据网络中唯一的寻址标识,所有通信主体都需要经过DNS等映射系统映射到IP地址,这不仅增大了通信时延,而且在可靠性、灵活性等方面也存在诸多问题。
上述问题的原因是常规IP地址的长度固定,缺乏可扩展性,而地址的需求在不同的情况下差异很大。可变长路由的出现很好的解决了这一问题,它具有长度可变的地址和理论上无限的地址数目,但这也使得目前的寻址方法并不适合可变长路由。传统的路由查找方法通常包括基于Trie的寻址方法和基于硬件的寻址方法。基于Trie的路由查找方法结构简单容易实现,但每次查找需要大量的内存访问,它的查询性能极大的受制于IP地址的长度。基于硬件的路由查找方法受限于高昂的成本和功耗,同样难以实现高效的弹性路由查找。可变长路由地址的长度可变特性的引入,势必引发关联的路由寻址算法和路由协议机制的更新。Multi-Entrance-Trie(METrie)是首次被专门提出用于可变长路由的寻址技术。METrie有多个入口节点,分别对应存储不同长度的路由表信息,入口节点并将MRTtie分为几部分,每部分采用典型的Trie结构设计。当路由器从包中获取目标路由条目或目标地址后,目标地址将通过左侧补0的方式扩展到选定的RIB的长度进入METrie,并使用传统的最长前缀匹配算法进行查找。METrie虽然通过扩展的多路由表实现了可变长路由的存储与寻址,但其本质Trie结构的寻址性能对地址长度很敏感,应用于复杂的可变长路由地址系统的表现并不理想。
现有的寻址技术应用于弹性路由查找时大都存在着查找速度和存储容量之间的矛盾,这就给布隆过滤器(Bloom filter)在路由寻址中的应用带来了机会。作为一种精简的信息表示技术,Bloom filter能够满足高速网络发展中高效资源交互和查找需求,已被广泛运用到各种网络场景中。Sarang.D等首次提出将Bloom filter应用到路由查找中,尽管该技术相较传统的路由查找技术取得了一定的进步,但由于filter数目和空间大小取决于IP地址的不同前缀长度的个数,这种方法并不适用于可变长路由的寻址。Haoyu.S提出了一种分布式的Bloom Filter寻址技术解决filter数目问题,该技术将Bloom Filter查分成k个大相同的子部分,每个部分哈希函数的数量对应不同长度的IP前缀。但是Haoyu.S的分布式技术结构复杂,并且很难找到大量性能优异且相互独立的哈希函数。还有一些其它的基于Bloom filter的寻址技术,例如H.Lim和Mun.JH提出将Bloom filter和Trie相结合,在较小的假阳性概率下提高寻址效率。目前基于Bloom filter的寻址技术的研究大多局限于IPv6的寻址,而可变长路由的灵活前缀数目必然大大增加寻址的存储空间和计算成本,如何构建新的寻址技术使其适用于可变长路由的高效寻址要求仍是一个值得深入研究的方向。
发明内容
基于Bloom Filter的路由查找方法提高其查找性能的主要目标是减少对哈希表的探测次数,而改进的主要方向则是减少Bloom Filter的数量。本发明针对这一点,公开了一种基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置,采用可控前缀扩展的方法对可变长IP地址的前缀进行扩展,以减少前缀长度分布,从而达到Bloom Filter使用上的减少。
为达到上述目的,本发明的技术方案包括:
一种基于应用可控前缀扩展布隆过滤器的可变长路由查找方法,其步骤包括:
1)将路由表中所有可变长IP地址的前缀划分成K个连续的不相交的区间,并把每个区间中的前缀扩展到该区间的上限;
2)每一个区间对应设置一个布隆过滤器,并将IP前缀信息存储到哈希表中;
3)进行寻址操作时,将目的IP地址输入各布隆过滤器中,返回一匹配向量;
4)根据哈希表与所述匹配向量进行寻址,得到所述目的地址的存储空间。
进一步地,把每个区间中的前缀扩展到该区间的上限的方法包括:可控前缀扩展方法。
进一步地,当一区间扩展集合中某一前缀与该区间中扩展前的原始前缀重复,则保留较长的原始前缀所包含的前缀信息。
进一步地,布隆过滤器的数据结构包括:计数式布隆过滤器。
进一步地,所述计数式布隆过滤器中的计数器由独立控制器控制,并将计数器放在路由器芯片外的存储器中。
进一步地,在步骤2)中通过以下步骤将新IP前缀信息添加到哈希表中:
1)根据新可变长IP地址的前缀长度对布隆过滤器相应的计数器进行元素添加操作;
2)若更新后计数器的值为1,则将布隆过滤器位向量中相应的比特位进行置位并将新IP前缀信息插入到哈希表中,否则不再做任何变化。
进一步地,在步骤2)中通过以下步骤从哈希表中删除IP前缀信息:
1)对布隆过滤器相应的计数器进行元素删除操作;
2)若更新后计数器的值为0,则将布隆过滤器位向量中相应的比特位进行置零并在哈希表中删除该前缀信息,否则不再做任何变化。
进一步地,所述匹配向量是长度为K bits的一维向量。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述所述的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机以执行上述所述的方法。
本发明的有益效果:
1)通过可控前缀扩展减少了Bloom Filter的使用,继而降低了路由查找时的平均查询次数Eavg和最大查找次数Emax
2)减少了Bloom filter假阳性概率的影响,提升了路由查找速度。
附图说明
图1可控前缀扩展示意图。
图2应用可控前缀扩展BloomFilter的可变长路由查找方法系统图。
图3更新流程图。
图4查找方法流程图。
图5实验结果对比图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
可变长IP地址的可控前缀扩展如图1所示,具体方法如下:
假设路由表中存在图中左侧的原始前缀信息,可以将其扩展为指定的长度2和5,例如对于P1,最接近的扩展长度为2,则将其扩展为两个长度为2的前缀,显然为00*和01*,扩展后的前缀集合均继承原始前缀的存储信息。应注意的是,如果扩展集合中某个前缀和现有前缀重复,则必须抛弃一个,例如扩展后的P3与原始P2,此时应选择较长的原始前缀信息,即保留P2。通过应用可控前缀扩展可以简单的把长度为L的前缀扩展为长度为W的前缀集合(L<W),显然,通过限制前缀长度可以加快搜索速度,并且有效的降低存储的复杂度,这对路由查找极为重要。
由于可变长地址系统的理论上可以拥有无限的地址空间,可变长IP地址的前缀长度便拥有了不确定性,那么意味着,IP地址前缀的扩展可不受限于具体的长度,这使得可控前缀扩展技术在Bloom Filter存储可变长IP地址的应用中有着良好的可扩展性。
本发明的路由查找方法的基本原理如图2所示:首先将路由表中所有的可变长IP地址的前缀划分成K个连续的不相交的区间,区间中最长的前缀长度与最短的前缀长度的差值称为区间宽度w。每个区间中的前缀都通过可控前缀扩展到该区间的上限,使得每一区间都只包含该区间最长前缀长度的前缀;将不同的前缀长度分组对应设置对应的BloomFilter和哈希表,用于存储和查询该长度下各IP地址的前缀信息,从而形成一个BloomFilter组;然后,将转发报文的目的IP地址并行输入到各Bloom Filter中进行查询,查询时应先计算该长度前缀在Bloom Filter的存储位置,查询结果被存储到一个匹配向量中;最后,根据长度优先的匹配向量各比特位的取值情况探测哈希表,得到下一跳地址。由于Bloom Filter结构存在一定的误判率,即将集合中不存在的元素误判属于集合,当哈希表中不存在该前缀时,只需要继续探测下一个前缀即可。
基于可控前缀扩展的Bloom Filter的可变长路由查找方法同样支持路由表的更新。由于标准的Filter不支持元素的删除操作,所以本方法采取计数式Bloom Filter的数据结构,其采用Counter计数器替代V向量的bit位,通过对元素对应的k个Counter计数器加、减运算,完成元素的插入和删除。由于计数器需要占用比较大的存储空间,且算法对计数器的访问操作并不频繁,所以方法中的计数式Bloom Filter中的计数器由独立控制器控制,并将计数器放在路由器芯片外的存储器中,这样能减少对嵌入式内存的需求。
如图3所示,当需要添加一个新的前缀信息时,首先根据其长度对Bloom Filter相应的计数器进行元素添加操作。若更新后计数器的值为1,则必须同时将Bloom Filter位向量中相应的比特位进行置位并将该前缀信息插入到哈希表中,否则不再做任何变化。
当需要删除一个前缀信息时,首先对Bloom Filter相应的计数器进行元素删除操作。若更新后计数器的值为0,则必须同时将Bloom Filter位向量中相应的比特位进行置零并在哈希表中删除该前缀信息,否则不再做任何变化。
基于可控前缀扩展Bloom Filter的可变长路由查找方法在路由查找计算上获得了更为高效的假设每个BloomFilter有相同的误判率f,假设路由表中可变长IP的不同长度的前缀个数为P,那么需要使用Bloom filter的数目同样为P个。显然,当多个Bloom filter显示假阳性时,检查哈希表的次数势必会增加。对于一个长度为l的前缀,所有存储的前缀的长度大于l的Bloom filter的假阳性都会对它的查询造成影响。因此,一次查找最多需要额外检查哈希表的数目Emax=Pf。一次成功查找的平均查询次数Eavg≤Emax+1=Pf+1,附加的一次查找表示成功探测。当所有BloomFilter发生假阳性误判时,最大查找次数Emax=P+1。
本方法通过可控前缀扩展减少了BloomFilter的使用,继而降低了路由查找时的平均查询次数Eavg和最大查找次数Emax。假设区间宽度为w,那么需要使用Bloom filter的数目为类似的,一次查找最多需要额外检查哈希表的数目一次成功查找的平均查询次数最大查找次数实际应用中的区间宽度为w的选取应根据路由表的前缀分布以及路由器内存的限制等因素确定,以达到最优的查询效果。
因此,基于次此系统的路由查找方法如图4所示,包括:对目的地址I,分别截取其K种不同的前缀,并送入到相应的Bloom Filter;Filter组的输出结果为一个匹配向量,该向量是长度为K bits的一维向量,标记在Filter组中匹配成功的前缀长度,从最长的前缀开始在对应的哈希表中查找下一跳地址,直到匹配成功。
实验数据
为验证本发明的进步性,随机生成了100000条长度在128位以内FlexIP地址作为仿真实验的数据库,仿真实验环境为一台标准商业电脑,配备了英特尔(R)酷睿i7-8750HCPU@2.20GHz,16GB内存,运行Windows10。在仿真实验中,本发明(一种基于应用可控前缀扩展布隆过滤器的可变长路由查找方法,CBF)将与另外两种现有路由查找进行了对比,分别是多入口字典树(METrie)和标准布隆过滤器(SBF),METrie是第一种被提出专门应用于可变长路由查找的方案,SBF是本发明的基础方案。仿真实验数据结果如图5所示。
仿真实验结果证明,本发明在多种数据集下均具有最优的路由查找速度,查找时间分别比SBF方案和METrie方案减少了65.18%和68.10%。,这是由于本发明采用的可控前缀扩展技术应用于可变长路由查找时可有效的减少不同的前缀长度数目,并因此减少了Bloom filter的假阳性概率的影响,从而达到优异的查找性能。
以上实施仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明范围,本发明的保护范围应以权利要求书所述为准。
Claims (8)
1.一种基于应用可控前缀扩展布隆过滤器的可变长路由查找方法,其步骤包括:
1)将路由表中所有可变长IP地址的前缀划分成K个连续的不相交的区间,并把每个区间中的前缀扩展到该区间的上限;
2)每一个区间对应设置一个布隆过滤器,并将IP前缀信息存储到哈希表中,其中,布隆过滤器的数据结构包括:计数式布隆过滤器,所述将IP前缀信息存储到哈希表中包括:
2.1)根据新可变长IP地址的前缀长度对布隆过滤器相应的计数器进行元素添加操作;
2.2)若更新后计数器的值为1,则将布隆过滤器位向量中相应的比特位进行置位并将新IP前缀信息插入到哈希表中,否则不再做任何变化;
3)进行寻址操作时,将目的IP地址输入各布隆过滤器中,返回一匹配向量;
4)根据哈希表与所述匹配向量进行寻址,得到所述目的IP地址的存储空间。
2.如权利要求1所述的方法,其特征在于,把每个区间中的前缀扩展到该区间的上限的方法包括:可控前缀扩展方法。
3.如权利要求2所述的方法,其特征在于,当一区间扩展集合中某一前缀与该区间中扩展前的原始前缀重复,则保留较长的原始前缀所包含的前缀信息。
4.如权利要求1所述的方法,其特征在于,所述计数式布隆过滤器中的计数器由独立控制器控制,并将计数器放在路由器芯片外的存储器中。
5.如权利要求1所述的方法,其特征在于,在步骤2)中通过以下步骤从哈希表中删除IP前缀信息:
1)对布隆过滤器相应的计数器进行元素删除操作;
2)若更新后计数器的值为0,则将布隆过滤器位向量中相应的比特位进行置零并在哈希表中删除该前缀信息,否则不再做任何变化。
6.如权利要求1所述的方法,其特征在于,所述匹配向量是长度为K bits的一维向量。
7.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-6中任一所述方法。
8.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1-6中任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110453094.8A CN113328947B (zh) | 2021-04-26 | 2021-04-26 | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110453094.8A CN113328947B (zh) | 2021-04-26 | 2021-04-26 | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113328947A CN113328947A (zh) | 2021-08-31 |
CN113328947B true CN113328947B (zh) | 2022-08-23 |
Family
ID=77413645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110453094.8A Active CN113328947B (zh) | 2021-04-26 | 2021-04-26 | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113328947B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2562978A1 (en) * | 2011-08-12 | 2013-02-27 | Alcatel Lucent | Content router of a content centric network |
CN103428093A (zh) * | 2013-07-03 | 2013-12-04 | 北京邮电大学 | 一种基于名字路由前缀存储、匹配及更新方法与装置 |
CN108460030A (zh) * | 2017-02-17 | 2018-08-28 | 北京大学 | 一种基于改进的布隆过滤器的集合元素判断方法 |
CN109145158A (zh) * | 2017-06-13 | 2019-01-04 | 华为技术有限公司 | 一种布隆过滤器中数据的处理方法以及布隆过滤器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11187546B2 (en) * | 2019-05-22 | 2021-11-30 | Here Global B.V. | Bloom filter route encoding |
-
2021
- 2021-04-26 CN CN202110453094.8A patent/CN113328947B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2562978A1 (en) * | 2011-08-12 | 2013-02-27 | Alcatel Lucent | Content router of a content centric network |
CN103428093A (zh) * | 2013-07-03 | 2013-12-04 | 北京邮电大学 | 一种基于名字路由前缀存储、匹配及更新方法与装置 |
CN108460030A (zh) * | 2017-02-17 | 2018-08-28 | 北京大学 | 一种基于改进的布隆过滤器的集合元素判断方法 |
CN109145158A (zh) * | 2017-06-13 | 2019-01-04 | 华为技术有限公司 | 一种布隆过滤器中数据的处理方法以及布隆过滤器 |
Also Published As
Publication number | Publication date |
---|---|
CN113328947A (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7418505B2 (en) | IP address lookup using either a hashing table or multiple hash functions | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
US7443841B2 (en) | Longest prefix matching (LPM) using a fixed comparison hash table | |
US20060083247A1 (en) | Prefix lookup using address-directed hash tables | |
US20030174717A1 (en) | System and method for longest prefix match for internet protocol lookup | |
CN113315705B (zh) | 基于单次哈希布隆过滤器的Flexible IP寻址方法及装置 | |
US10171419B2 (en) | IP route caching with two search stages on prefix length | |
JP2004517519A (ja) | 高速インターネットプロトコルルートルックアップ遂行及びルーティング/フォワーディングテーブル管理のための装置及び方法 | |
Pao et al. | Efficient hardware architecture for fast IP address lookup | |
JP3881663B2 (ja) | フィールドレベルツリーを用いたパケット分類装置及び方法 | |
US20050114393A1 (en) | Dynamic forwarding method using binary search | |
Yu et al. | Forwarding engine for fast routing lookups and updates | |
Hsieh et al. | A classified multisuffix trie for IP lookup and update | |
CN113328947B (zh) | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 | |
CN109754021B (zh) | 基于范围元组搜索的在线包分类方法 | |
Vijay et al. | Implementation of memory-efficient linear pipelined IPv6 lookup and its significance in smart cities | |
CN107204926B (zh) | 预处理cache的路由快速查找方法 | |
US7376657B1 (en) | Fast IPv6 address lookup using skip level processing on multi-bit tries | |
KR100493099B1 (ko) | 고속 인터넷프로토콜 라우터의 라우팅/포워딩 룩업 및라우팅 테이블 관리 | |
US9444731B2 (en) | Methods and systems for data packet routing | |
Lin et al. | Improved IP lookup technology for trie-based data structures | |
Luo et al. | Flexible IP: An adaptable IP address structure and its efficient addressing scheme | |
Ghosh et al. | Hybrid trie based approach for longest prefix matching in IP packet processing | |
KR100473118B1 (ko) | 백본 라우터를 위한 아이피 패킷 주소 룩업 방법 및 그장치 | |
Hanna et al. | Advanced hashing schemes for packet forwarding using set associative memory architectures |
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 |