CN113315705B - 基于单次哈希布隆过滤器的Flexible IP寻址方法及装置 - Google Patents
基于单次哈希布隆过滤器的Flexible IP寻址方法及装置 Download PDFInfo
- Publication number
- CN113315705B CN113315705B CN202110454397.1A CN202110454397A CN113315705B CN 113315705 B CN113315705 B CN 113315705B CN 202110454397 A CN202110454397 A CN 202110454397A CN 113315705 B CN113315705 B CN 113315705B
- Authority
- CN
- China
- Prior art keywords
- bloom filter
- hash
- length
- addressing
- bit
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于单次哈希布隆过滤器的Flexible IP寻址方法及装置,包括将路由表中所有IP地址的前缀按长度分为N类,每一个前缀长度对应设置一个布隆过滤器,其中各布隆过滤器的位向量被划分为k个分区;将各前缀长度映射到相应布隆过滤器的各分区,并将IP前缀信息存储到哈希表中;进行寻址操作时,对目的地址截取W种前缀,并把截取前缀送入相应布隆过滤器中,返回一匹配向量;根据哈希表与所述匹配向量进行寻址,得到所述目的地址的存储空间。本发明使得Bloom Filter的计算量有效的降低到原有计算量的极大的降低了寻址的计算成本,并提高了海量通信主体的寻址效率,支持多语义下Flexible IP的可扩展性。
Description
技术领域
本发明属于计算机网络的路由算法领域,具体为一种基于单次哈希布隆过滤器的Flexible IP寻址方法及装置。
背景技术
自从因特网发明以来,IP寻址一直是因特网的核心问题。随着Internet的迅速发展,越来越多的新兴应用需求和场景不断出现,当前的IP地址系统面临着越来越多的问题。一方面,网络正在向万物互联的方向快速延伸,不同场景下对地址长度的需求可能会有很大的不同。由于物联网设备受到硬件和无线链路的限制,为了提高效率,较短的地址或设备ID比IPv6地址更可取。并且,未来网络需要连接除传统主机外的更多的通信实体,如服务、内容、资源、网络地址、人等,而不同类型的通信主体存在很大的差异性。这就要求网络协议具有一定的弹性能力,能够根据运行环境进行自适应的调整。另一方面,越来越多新型的应用需求不断出现对网络提出了新的挑战,通信主体都应可以作为终端彼此通信。然而,IP地址是当前数据网络中唯一的寻址标识,IPv6虽然理论上有足够的地址,但实际的地址分配效率远远低于此。目前,所有通信主体都需要经过DNS等映射系统映射到IP地址,这不仅增大了通信时延,而且在可靠性、灵活性等方面也存在诸多问题。
上述问题的根源在于IP地址,无论是IPv4还是IPv6,都是固定长度设计的,缺乏灵活性。这种设计极大地限制了地址空间的可演化性和兼容性。Flexible IP(FlexIP)的出现很好地解决了这一问题。FlexIP有可变长度的地址和理论上无限的地址数量,网络设备可以为不同长度的地址建立一个统一的路由转发表,不同的网络地址将共存于数据报文中。网络设备根据任意长度的地址进行路由表查找操作,从而决定数据报文的下一跳。在IPv4/6中,所有的地址都以相同的长度存储在路由信息库中,路由器可以实现高效的掩码匹配和寻址。但FlexIP地址的长度可以是任意大小,如果路由器仍以最长的地址长度来统一存储所有的路由条目,这将对存储空间和查找性能造成极大的挑战,使得当前的路由寻址方法不可接受。
布隆过滤器(Bloom Filter)数据结构由于其精简的查询已被广泛的应用在各类计算机系统中,对于IP地址下的路由查找,其同样适用。Bloom Filter作为一种高效的哈希查找方案,灵活性和成本效益是它最大的优点,但其部署使用中需要大量的哈希函数,并且需要执行相同数量的内存访问,为达到Bloom Filter的理论性能,所使用的哈希函数必须满足具有良好的随机性和均匀性并相互独立,这使得性能优异的哈希函数很难找到。并且Bloom Filter的哈希计算需要消耗大量的CPU时钟周期并导致过多的延迟从而成为系统性能的瓶颈。因此,在保持期望的哈希特性的同时降低计算的开销是一个关键且必要的系统需求。
发明内容
为解决标准Bloom Filter中在路由查找中存在的计算成本问题,本发明提出了一种基于单次哈希布隆过滤器的Flexible IP寻址方法及装置,并且适用于可变长IP地址查找。
为达到上述目的,本发明的技术方案包括:
一种基于单次哈希布隆过滤器的Flexible IP寻址方法,其步骤包括:
1)将路由表中所有IP地址的前缀按长度分为N类,每一个前缀长度对应设置一个布隆过滤器,其中各布隆过滤器的位向量被划分为k个分区;
2)将各前缀长度映射到相应布隆过滤器的各分区,并将IP前缀信息存储到哈希表中;
3)进行寻址操作时,对目的IP地址截取W种前缀,并把截取前缀送入相应布隆过滤器中,返回一匹配向量,其中W≤N;
4)根据哈希表与所述匹配向量进行寻址,得到所述目的地址的存储空间。
进一步地,布隆过滤器的位向量通过以下步骤被划分为k个分区:
1)构造素数表pTable,素数表大小需满足表中最大素数大于位向量的大小m;
2)以k为大小的滑动窗口按素数从大到小遍历pTable,每次查询k个连续素数并往下滑动一位,直到这k个素数和小于m停止遍历,从而得到和最接近并大于m的k个素数{pi,0≤i<k}
3)将位向量分为k个分区,每个分区的大小为pibits。
进一步地,通过以下步骤将各前缀长度映射到相应布隆过滤器的各分区:
1)各布隆过滤器分别计算相应前缀长度的哈希结果;
2)利用模运算,将各哈希结果映射到相应布隆过滤器的各分区。
进一步地,布隆过滤器的数据结构包括:计数式布隆过滤器。
进一步地,所述计数式布隆过滤器中的计数器由独立控制器控制,并将计数器放在路由器芯片外的存储器中。
进一步地,在步骤2)中,通过以下步骤通过以下步骤将新IP前缀信息添加到哈希表中:
1)获取新前缀信息的长度;
2)根据新前缀信息的长度对布隆过滤器相应的计数器进行元素添加操作;
3)若更新后计数器的值为1,则将布隆过滤器位向量中相应的比特位进行置位并添加到哈希表中,否则不再做任何变化。
进一步地,在步骤2)中,通过以下步骤从哈希表中删除IP前缀信息:
1)对布隆过滤器相应的计数器进行元素删除操作;
2)若更新后计数器的值为0,则将布隆过滤器位向量中相应的比特位进行置零并在哈希表中删除,否则不再做任何变化。
进一步地,通过以下步骤得到所述目的地址的存储空间:
1)依据所述匹配向量,在W种前缀中获取一或多种匹配成功前缀;
2)根据各匹配成功前缀的长度进行降序排序,并依次在哈希表中查找下一跳地址,直到匹配成功,得到所述目的地址的存储空间。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述所述的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机以执行上述所述的方法。
本发明的有益效果:
2)提高了海量通信主体的寻址效率,支持多语义下Flexible IP的可扩展性。
附图说明
图1标准Bloom Filter哈希计算示意图。
图2单次哈希Bloom Filter哈希计算示意图。
图3计数式Bloom Filter原理图。
图4单次哈希Bloom Filter的FlexIP寻址方法系统图。
图5查找方法流程图。
图6实验结果对比图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
单次哈希Bloom Filter的哈希过程仍然生成k个哈希值,与标准Bloom Filter的k个独立哈希函数类似,但不同的是所有的k个哈希值都来自于一个哈希函数和模运算。该方法可使得Bloom Filter的计算量有效的降低到原有计算量的
Bloom Filter的哈希计算实质上是将存储元素U向Filter空间V的映射,该过程通常由两部分组成。第一阶段:哈希阶段,也就是通过哈希函数h(x)将U映射到M位机器字长;第二阶段:模运算阶段,即h(x)modm,通过模Bloom Filter空间向量大小m将M映射到目标V。
如图1和图2所示,本方法的单次哈希Bloom Filter并没有将Filter内存视作一个位向量,而是将位向量划分为不均匀的k个部分,对应着标准Bloom Filter的k个哈希函数。图1和图2分别展示了标准Bloom Filter和单次哈希Bloom Filter的哈希计算过程,其中x、y分别表示Filter待查询或存储的元素(亦可视为IP地址),标准Bloom Filter使用了不同的独立哈希函数得到k个哈希值,然后对同一位向量长度m进行模运算,得到的结果可以寻址整个的位向量空间。本方法的单次哈希Bloom Filter只使用一个哈希函数来计算哈希值,然后对位向量的每个分区长度进行模运算,得到的结果可以在位向量的每个分区中进行寻址。
由于Bloom Filter结构存在着一定的误判率,即将不属于集合的元素误判为属于集合中。设单次哈希Bloom Filter存储数据量为规模为n,位向量的每个分区长度为mi,则误判率f可以由以下不等式估计:
为保证单次哈希Bloom Filter的误判率f接近理想值,则位向量分区方案需要满足以下条件:
1、位向量的分区长度必须满足(mi,mj)=1,1<i<j<k。其中(mi,mj)表示mi和mj的最大公约数,即所有分区长度必须互质,这样可以保证哈希计算的第二阶段模运算相互独立。
2、位向量的分区长度必须相互接近偏差较小,这对式子1的数值有直接的影响。
因此,位向量的分区策略可简化为从素数表中选取连续的k个素数,并使素数和小于并接近位向量的大小m,具体可描述为:首先,构造素数表pTable,素数表大小需满足表中最大素数大于位向量的大小m;其次,以k为大小的滑动窗口按素数从大到小遍历pTable,每次查询k个连续素数并往下滑动一位,直到这k个素数和小于m停止遍历,从而得到和最接近并大于m的k个素数{pi,0≤i<k};最后,将位向量分为k个分区,每个分区的大小为pibits。基于单次哈希Bloom Filter的路由查找方法不同于以往针对限制Filter个数的优化措施来提升查找性能,而是通过减少哈希函数降低了查找时的计算成本,使哈希计算量降为原有的
基于单次哈希Bloom Filter的FlexIP寻址方法同样支持更新操作。为满足路由的删除操作,本方法采用计数式Bloom Filter的数据结构,添加了单次哈希的优化措施。如图3所示,其采用Counter计数器替代V向量的bit位,通过对元素对应的k个不同分区的Counter计数器加、减运算,完成元素的插入和删除。由于计数器需要占用比较大的存储空间,且算法对计数器的访问操作并不频繁,所以方法中的计数式Bloom Filter中的计数器由独立控制器控制,并将计数器放在路由器芯片外的存储器中,这样能减少对嵌入式内存的需求。
当需要添加一个新的前缀信息时,首先根据其长度对Bloom Filter相应的计数器进行元素添加操作。若更新后计数器的值为1,则必须同时将Bloom Filter位向量中相应的比特位进行置位并添加到哈希表中,否则不再做任何变化。当需要删除一个前缀信息时,首先对Bloom Filter相应的计数器进行元素删除操作。若更新后计数器的值为0,则必须同时将Bloom Filter位向量中相应的比特位进行置零并在哈希表中删除,否则不再做任何变化。
基于单次哈希Bloom Filter的FlexIP寻址方法系统图如图4所示,基本原理:首先将路由表中所有IP地址的前缀按长度进行分类,每一个前缀长度对应设置一个BloomFilter,用于存储和查询该长度下各IP地址的前缀信息,从而形成一个Bloom Filter组,并将IP前缀信息存储到哈希表中;然后,将转发报文的目的IP地址并行输入到各BloomFilter中进行查询,查询结果被存储到一个匹配向量中;最后,根据匹配向量各比特位的取值情况按最长优先探测哈希表,得到下一跳地址。这样使得每个Bloom filter只需要一个哈希函数和k次模运算便可以完成一次查询或更新。其中,上述的Bloom filter都是相对独立的,位向量和哈希函数都可以不同,位向量的划分和大小、哈希函数的数目主要取决于每个Bloom filter中存储的IP地址数目。
因此,基于此系统的路由查找方法如图5所示,包括:对目的地址I,分别截取其W种不同的前缀,并送入到相应的Bloom Filter;滤波器组的输出结果为一个匹配向量,该向量是长度为Wbits的一维向量,标记在滤波器组中匹配成功的前缀长度,从最长的前缀开始在对应的哈希表中查找下一跳地址,直到匹配成功。
实验数据
为验证本发明的进步性,随机生成了100000条长度在128位以内FlexIP地址作为仿真实验的数据库,仿真实验环境为一台标准商业电脑,配备了英特尔(R)酷睿i7-8750HCPU@2.20GHz,16GB内存,运行Windows10。在仿真实验中,本发明(OHBF)将与另外两种现有路由查找进行了对比,分别是多入口字典树(METrie)和标准布隆过滤器(SBF),METrie是第一种被提出专门应用于可变长路由查找的方案,SBF是本发明的基础方案。仿真实验数据结果如图6所示。
仿真实验结果证明,本发明在多种数据集下均具有最优的路由查找速度,查找时间分别比SBF方案和METrie方案减少了34.85%和40.32%。,这是由于本发明采用的单次哈希技术可将寻址的计算成本降低为原有的1/k,缓解了FlexIP长地址在寻址中的计算负担,从而得到寻址性能的提升。
以上实施仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明范围,本发明的保护范围应以权利要求书所述为准。
Claims (9)
1.一种基于单次哈希布隆过滤器的Flexible IP寻址方法,其步骤包括:
1)将路由表中所有IP地址的前缀按长度分为N类,每一个前缀长度对应设置一个布隆过滤器,其中,布隆过滤器的位向量通过以下步骤被划分为k个分区:
1.1)构造素数表pTable,素数表大小需满足表中最大素数大于位向量的大小m;
1.2)以k为大小的滑动窗口按素数从大到小遍历pTable,每次查询k个连续素数并往下滑动一位,直到这k个素数和小于m停止遍历,从而得到和最接近并大于m的k个素数{pi,0≤i<k};
1.3)将位向量分为k个分区,每个分区的大小为pi bits;
2)将各前缀长度映射到相应布隆过滤器的各分区,并将IP前缀信息存储到哈希表中;
3)进行寻址操作时,对目的IP地址截取W种前缀,并把截取前缀送入相应布隆过滤器中,返回一匹配向量,其中W≤N;
4)根据哈希表与所述匹配向量进行寻址,得到所述目的IP地址的存储空间。
2.如权利要求1所述的方法,其特征在于,通过以下步骤将各前缀长度映射到相应布隆过滤器的各分区:
1)各布隆过滤器分别计算相应前缀长度的哈希结果;
2)利用模运算,将各哈希结果映射到相应布隆过滤器的各分区。
3.如权利要求1所述的方法,其特征在于,布隆过滤器的数据结构包括:计数式布隆过滤器。
4.如权利要求3所述的方法,其特征在于,所述计数式布隆过滤器中的计数器由独立控制器控制,并将计数器放在路由器芯片外的存储器中。
5.如权利要求3所述的方法,其特征在于,在步骤2)中,通过以下步骤将新IP前缀信息添加到哈希表中:
1)获取新前缀信息的长度;
2)根据新前缀信息的长度对布隆过滤器相应的计数器进行元素添加操作;
3)若更新后计数器的值为1,则将布隆过滤器位向量中相应的比特位进行置位并添加到哈希表中,否则不再做任何变化。
6.如权利要求3所述的方法,其特征在于,在步骤2)中,通过以下步骤从哈希表中删除IP前缀信息:
1)对布隆过滤器相应的计数器进行元素删除操作;
2)若更新后计数器的值为0,则将布隆过滤器位向量中相应的比特位进行置零并在哈希表中删除,否则不再做任何变化。
7.如权利要求1所述的方法,其特征在于,通过以下步骤得到所述目的IP地址的存储空间:
1)依据所述匹配向量,在W种前缀中获取一或多种匹配成功前缀;
2)根据各匹配成功前缀的长度进行降序排序,并依次在哈希表中查找下一跳地址,直到匹配成功,得到所述目的IP 地址的存储空间。
8.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-7中任一所述方法。
9.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行如权利要求1-7中任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110454397.1A CN113315705B (zh) | 2021-04-26 | 2021-04-26 | 基于单次哈希布隆过滤器的Flexible IP寻址方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110454397.1A CN113315705B (zh) | 2021-04-26 | 2021-04-26 | 基于单次哈希布隆过滤器的Flexible IP寻址方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113315705A CN113315705A (zh) | 2021-08-27 |
CN113315705B true CN113315705B (zh) | 2022-07-15 |
Family
ID=77371180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110454397.1A Active CN113315705B (zh) | 2021-04-26 | 2021-04-26 | 基于单次哈希布隆过滤器的Flexible IP寻址方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113315705B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DK3859552T3 (da) * | 2020-01-30 | 2021-12-20 | Ovh | Fremgangsmåde og system til håndtering af indhold af datapakke/rammer under anvendelse af et tilpasset bloom-filter |
CN113824814B (zh) * | 2021-09-23 | 2023-04-25 | 新华三信息安全技术有限公司 | 一种转发表的地址匹配方法、装置、网络设备及介质 |
CN115051940B (zh) * | 2022-05-26 | 2023-05-30 | 电子科技大学 | 一种基于bloom滤波器的IPv6网络流测量方法 |
CN115967675A (zh) * | 2022-12-02 | 2023-04-14 | 北京理工大学 | 一种基于布隆过滤器的ndn路由表建立查找方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077419A (zh) * | 2014-11-04 | 2017-08-18 | 华为技术有限公司 | 使用无冲突散列表层级的缓冲器的存储器寻址机构 |
CN108460030A (zh) * | 2017-02-17 | 2018-08-28 | 北京大学 | 一种基于改进的布隆过滤器的集合元素判断方法 |
CN109145158A (zh) * | 2017-06-13 | 2019-01-04 | 华为技术有限公司 | 一种布隆过滤器中数据的处理方法以及布隆过滤器 |
CN112162975A (zh) * | 2020-09-25 | 2021-01-01 | 华南理工大学 | 基于单哈希均分布隆过滤器的重复数据删除技术实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101028470B1 (ko) * | 2009-05-07 | 2011-04-14 | 이화여자대학교 산학협력단 | Ip주소 검색을 위한 장치 및 방법 |
-
2021
- 2021-04-26 CN CN202110454397.1A patent/CN113315705B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077419A (zh) * | 2014-11-04 | 2017-08-18 | 华为技术有限公司 | 使用无冲突散列表层级的缓冲器的存储器寻址机构 |
CN108460030A (zh) * | 2017-02-17 | 2018-08-28 | 北京大学 | 一种基于改进的布隆过滤器的集合元素判断方法 |
CN109145158A (zh) * | 2017-06-13 | 2019-01-04 | 华为技术有限公司 | 一种布隆过滤器中数据的处理方法以及布隆过滤器 |
CN112162975A (zh) * | 2020-09-25 | 2021-01-01 | 华南理工大学 | 基于单哈希均分布隆过滤器的重复数据删除技术实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113315705A (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113315705B (zh) | 基于单次哈希布隆过滤器的Flexible IP寻址方法及装置 | |
US6985483B2 (en) | Methods and systems for fast packet forwarding | |
US9871728B2 (en) | Exact match hash lookup databases in network switch devices | |
US7885268B2 (en) | Method and system for hash table based routing via table and prefix aggregation | |
US7418505B2 (en) | IP address lookup using either a hashing table or multiple hash functions | |
US7325059B2 (en) | Bounded index extensible hash-based IPv6 address lookup method | |
Liu | Efficient mapping of range classifier into ternary-CAM | |
JP4565793B2 (ja) | 最長一致アドレスルックアップのための方法および装置 | |
US6266706B1 (en) | Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams | |
US7443841B2 (en) | Longest prefix matching (LPM) using a fixed comparison hash table | |
US9704574B1 (en) | Method and apparatus for pattern matching | |
US6792423B1 (en) | Hybrid longest prefix match and fixed match searches | |
EP3258657B1 (en) | Ip route caching with two search stages on prefix length | |
US20060083247A1 (en) | Prefix lookup using address-directed hash tables | |
Warkhede et al. | Multiway range trees: scalable IP lookup with fast updates | |
US20190294549A1 (en) | Hash Table-Based Mask Length Computation for Longest Prefix Match Caching | |
Yu et al. | Forwarding engine for fast routing lookups and updates | |
US20050114393A1 (en) | Dynamic forwarding method using binary search | |
CN113328947B (zh) | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 | |
US7376657B1 (en) | Fast IPv6 address lookup using skip level processing on multi-bit tries | |
Sun et al. | A highly deterministic hashing scheme using bitmap filter for high speed networking | |
US9444731B2 (en) | Methods and systems for data packet routing | |
Ganegedara et al. | 100+ Gbps IPv6 packet forwarding on multi-core platforms | |
Chang et al. | Efficient IP routing table lookup scheme | |
KR20050043035A (ko) | 복수의 해슁 함수를 이용한 ip 어드레스 검색 방법 및하드웨어 구조 |
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 |