CN113343034A - Ip查找方法、系统及存储介质 - Google Patents

Ip查找方法、系统及存储介质 Download PDF

Info

Publication number
CN113343034A
CN113343034A CN202110637655.XA CN202110637655A CN113343034A CN 113343034 A CN113343034 A CN 113343034A CN 202110637655 A CN202110637655 A CN 202110637655A CN 113343034 A CN113343034 A CN 113343034A
Authority
CN
China
Prior art keywords
address
prefix
storage space
target
chip
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.)
Pending
Application number
CN202110637655.XA
Other languages
English (en)
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.)
Hunan University
Original Assignee
Hunan 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 Hunan University filed Critical Hunan University
Priority to CN202110637655.XA priority Critical patent/CN113343034A/zh
Publication of CN113343034A publication Critical patent/CN113343034A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying

Abstract

本发明公开了一种IP查找方法、系统及存储介质,拆分路由表中的IP前缀,确定拆分的比特位M;将所述IP前缀的前M位作为索引存储在第一存储空间,后面部分存储在第二存储空间,并对第二存储空间内的数据进行排序;目标IP地址进入路由表中进行IP查找流程。本发明只需要在原有拆分哈希模型基础上对片外IP地址进行一次额外的排序操作,再使用二分法来替代原有线性查找方法即可,不影响原有系统的其它功能,无需对已有设备进行较大更改。

Description

IP查找方法、系统及存储介质
技术领域
本发明涉及计算机网络传输领域,特别是一种IP查找方法、系统及存储介质。
背景技术
IP查找一直是计算机网络传输中的重要部分,一般通过最长前缀匹配的方式实现,其简单流程如下。表1为一个简单的路由前缀表示例,假设此时进行查找的IP地址前5位为:10011,那么对照表1我们发现序号为2、4、5的前缀都与此IP地址匹配,但因为5号前缀最长(即匹配的位数最多为4位),所以最终此IP地址匹配5号前缀,依照路由表转发信息,前往P5节点。
表1 IP路由前缀表
序号 IP地址前缀 下一跳信息
1 0* P1
2 1* P2
3 01* P3
4 100* P4
5 1001* P5
随着大数据时代的来临,IP地址的数目也是呈爆炸性的增长,想要将所有IP地址信息存储到路由器中需要较大的存储开销。因此,研究者们提出了多种优化存储的方案。哈希作为一种通用高效的数据结构在IP查找中有着广泛且深刻的应用,其中拆分哈希作为哈希方式的一种,通过将IP地址进行拆分,分别对两部分IP地址进行不同的处理。片上存储空间小但是查找速度快,适合存放少量索引前缀,因而将前半部分作为哈希索引部署到片上,后半部分剩余的IP地址存储在片外存储结构中。如表2所示为另一个路由前缀表示例,注意到11个前缀中的前三位只有2种情况,所以在IP地址前缀的第3位进行一次拆分。这样在查找时首先根据拆分位置将IP地址的前N位(示例中N=3)在片上进行查找,然后再在片外进行第二次查找。
现有研究方案主要集中在如何优化片上空间的存储,对于片外存储却没有考虑,都是采用单纯的线性哈希查找。但是随着网络的发展,IP地址的增多,尤其是IPv6地址的普及,片外空间也不是可以无限使用的,需要进行合理的优化,提高存储和查找效率。现有方法在处理片外IP地址时使用的线性哈希方法效率较低,尤其考虑到网络信息快速增长的场景后,包括IPv6地址的应用,使得片外IP查找效率降低,进而影响整个IP地址查找的效率,提高了网络传输的时延。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种IP查找方法、系统及存储介质,提高IP查找效率,从而降低网络时延。
为解决上述技术问题,本发明所采用的技术方案是:一种IP查找方法,包括以下步骤:
S1、拆分路由表中的IP前缀,确定拆分的比特位M;
S2、将所述IP前缀的前M位作为索引存储在第一存储空间,后面部分存储在第二存储空间,并对第二存储空间内的数据进行排序;
S3、目标IP地址进入路由表中进行IP查找流程。
本发明中,第一存储空间存储容量较小,但查找速度快,存储固定长度的IP前缀,适合统一处理,加快查找速度;第二存储空间存储容量较大,但查找速度慢,存储剩余长度不同的IP前缀,可通过本方法进行加速,提高查找速度。
所述第一存储空间为片上存储空间;第二存储空间为片外存储空间。片上存储空间可以是内存,片外存储空间可以是硬盘等存储设备。内存空间小,但处理快;硬盘处理慢,但空间大。本发明的方案充分利用了内存和硬盘的优势。
本发明的方法还包括:S4、根据查找结果进行信息传输,将目标IP地址请求发往至对应下一跳信息。
步骤S3中,目标IP地址进入路由表中进行IP查找流程的具体实现过程包括:
1)将所述目标IP地址分为前半段和后半段,其中前半段包括M比特位;将前M位作为索引在片上IP地址前缀中进行哈希匹配查找,匹配成功后,进入步骤2);
2)在所述第二存储空间内,利用二分法查找与所述后半段匹配的IP前缀,直至匹配成功,或者只有一个IP地址前缀仍然匹配失败,则停止。
本发明只需要在原有拆分哈希模型基础上对片外IP地址进行一次额外的排序操作,再使用二分法来替代原有线性查找方法即可,不影响原有系统的其它功能,无需对已有设备进行较大更改。
步骤2)的具体实现过程包括:设所述第二存储空间内有N个从小到大排列好的IP地址前缀,比较目标IP地址的后半段与N/2位置的IP地址前缀,如果目标IP地址小于该IP地址前缀,则选取N/4位置的IP前缀比较大小;如果目标IP地址大于该IP地址,则再选取3N/4位置的IP地址前缀比较大小;重复该步骤,直到匹配成功,或者区间内只有一个IP地址前缀仍然匹配失败,则停止。本发明还提供了一种IP查找系统,其包括计算机设备;所述计算机设备被配置或编程为用于执行上述方法的步骤。
作为一个发明构思,本发明还提供了一种计算机存储介质,其存储有程序;所述程序被配置为用于执行上述方法的步骤。
与现有技术相比,本发明所具有的有益效果为:
1、现有基于拆分哈希的IP查找方法在片外部分主要采用线性哈希查找,效率较低,在遇到IPv6等大规模查找场景下,本发明的方法可以显著提高查找速度;
2、现有方法最坏情形下需要N次哈希次数,N为对应的IP地址数目,而本发明采用二分法,可以将访存次数降至log(N);
3、本发明只需要在原有拆分哈希模型基础上对片外IP地址进行一次额外的排序操作,再使用二分法来替代原有线性查找方法即可,不影响原有系统的其它功能,无需对已有设备进行较大更改。
附图说明
图1为本发明IP查找流程图。
具体实施方式
为实现快速的IP查找,本发明实施例采用的技术方案是:在基于拆分哈希的IP查找过程中,将片外哈希地址进行排序,再使用二分法进行IP地址的查找,包括以下步骤:
1)对于路由表中的IP前缀进行拆分,确定拆分的比特位M;
2)根据拆分位M,将前M位作为索引存储在片上存储空间,后面部分存储在片外存储空间,并对片外存储空间进行排序;
3)目标IP地址进入路由表中进行IP查找流程;
4)根据查找结果进行信息传输,将目标IP地址请求发往对应下一跳信息。
主流程中步骤3)具体过程如下,流程图如图1所示:
1)收到目标IP地址,根据之前步骤确定的拆分位M,将目标IP地址拆分为两部分;
2)将前M位作为索引在片上IP地址前缀中进行哈希匹配查找,匹配成功后到索引块(即第二存储空间)的对应位置;
3)将后半部分到对应的片外IP地址前缀对应进行二分查找,假设其中有N个从小到大排列好的IP地址前缀。将目标IP地址的后半段与N/2位置的IP地址前缀比较大小,如果小于该地址,则再选取N/4位置的IP前缀比较大小;如果大于该地址,则再选取3N/4位置的IP地址前缀比较大小。即每次与当前区间中部的IP地址前缀比较,淘汰掉其中一半的区间,反复此操作,直到匹配成功或者区间内只有一个IP地址前缀仍然匹配失败的情况下停止;
4)根据获得的匹配结果,进行之后步骤的操作。
本发明针对拆分哈希的片外部分进行优化,采用时间复杂度为O(log(N))的二分查找法来取代时间复杂度为O(N)的线性查找法,提高片外IP地址查找效率,进而提高整个IP地址的查找效率,尤其适用于大规模IP查找情形以及IPv6的场景。
为了提高片外查找效率,本发明提出了二分法来加快查找效率。
表2 IP路由前缀表
Figure BDA0003105820160000041
Figure BDA0003105820160000051
如表3所示,我们将表2中的11个前缀从第三位进行拆分,变成两种情况。为了使用二分法处理片外情形,我们将两部分的剩余前缀进行大小排序。这样区别于传统的线性查找,采用二分法查找。例如:此时查找的IP地址前7位为0110111*,首先从第三比特位进行拆分,011和0111*;然后根据前三位“011”进入对应部分,最后用后面的前缀0111*进行二分查找。根据二分查找规律,第一次匹配011对应的最中间的片外IP地址前缀0111*,匹配成功,跳转信息为P9;而如果按照线性匹配,则需要3次才可以匹配成功。
表3拆分哈希IP地址前缀存储示例
Figure BDA0003105820160000052
由上述例子可见,现有方法在处理片外IP地址时使用的线性哈希方法效率较低,
尤其考虑到网络信息快速增长的场景后,包括IPv6地址的应用,使得片外IP查找效率降低,进而影响整个IP地址查找的效率,提高了网络传输的时延。
在片外IP前缀查找过程中,假设对应的索引前缀里总共有6个IP前缀地址,在最坏情形下(匹配失败),原有方法需要6次匹配过程才能确定匹配失败,即时间复杂度为O(N);而本发明方法使用二分法,只需要3次即可确定匹配失败,即时间复杂度为O(log(N))。随着IP地址的增多,本发明方法的优势将越加明显。
以表3为例,假设目标IP地址前7位为1000111。拆分后前3位是100在片上匹配成功,进入对应的片外IP地址前缀进行匹配。原有方法与里面的所有6个前缀地址均匹配失败后返回匹配失败的结果,访存次数为6。本方法现将0111与6个前缀地址中中间的前缀1010(或者1001,不影响结果)比较,0111小于1010,则舍弃所有大于1010的前缀。然后在剩余的0110,1000,1001三个前缀中于最中间的1000进行比较,0111小于1000,则舍弃所有大于1000的前缀。再和剩余的0110比较,0111大于0110,但是不存在大于0110小于1000的前缀,因而匹配失败。整个过程访存次数为3。
实施步骤如下:
步骤1:C语言编写模拟路由表记录的路由信息,并模拟IP地址存储、查找过程。
步骤2,准备IP地址前缀集合,模拟路由表信息,并准备IP地址集合,模拟IP传输请求。
步骤3,将IP地址前缀依照拆分哈希方式存入片上与片外哈希表中。
步骤4,输入IP地址,模拟IP传输过程。
步骤5,运用拆分哈希方法进行IP查找,首先将前半部分在片上进行索引查找。
步骤6,然后用后半部分在片外进行二分查找,并返回最终查找结果。
表4现有拆分哈希IP查找与本发明方法的时间开销对比
Figure BDA0003105820160000061
Figure BDA0003105820160000071

Claims (7)

1.一种IP查找方法,其特征在于,包括以下步骤:
S1、拆分路由表中的IP前缀,确定拆分的比特位M;
S2、将所述IP前缀的前M位作为索引存储在第一存储空间,后面部分存储在第二存储空间,并对第二存储空间内的数据进行排序;
S3、目标IP地址进入路由表中进行IP查找流程。
2.根据权利要求1所述的IP查找方法,其特征在于,所述第一存储空间为片上存储空间;第二存储空间为片外存储空间。
3.根据权利要求1所述的IP查找方法,其特征在于,还包括:
S4、根据查找结果进行信息传输,将目标IP地址请求发往至对应下一跳信息。
4.根据权利要求2所述的IP查找方法,其特征在于,步骤S3中,目标IP地址进入路由表中进行IP查找流程的具体实现过程包括:
1)将所述目标IP地址分为前半段和后半段,其中前半段包括M比特位;将前M位作为索引在片上IP地址前缀中进行哈希匹配查找,匹配成功后,进入步骤2);
2)在所述第二存储空间内,利用二分法查找与所述后半段匹配的IP前缀,直至匹配成功,或者只有一个IP地址前缀仍然匹配失败,则停止。
5.根据权利要求3所述的IP查找方法,其特征在于,步骤2)的具体实现过程包括:设所述第二存储空间内有N个从小到大排列好的IP地址前缀,比较目标IP地址的后半段与N/2位置的IP地址前缀,如果目标IP地址小于该IP地址前缀,则选取N/4位置的IP前缀比较大小;如果目标IP地址大于该IP地址,则再选取3N/4位置的IP地址前缀比较大小;重复该步骤,直到匹配成功,或者区间内只有一个IP地址前缀仍然匹配失败,则停止。
6.一种IP查找系统,其特征在于,包括计算机设备;所述计算机设备被配置或编程为用于执行权利要求1~5之一所述方法的步骤。
7.一种计算机存储介质,其特征在于,其存储有程序;所述程序被配置为用于执行权利要求1~5之一所述方法的步骤。
CN202110637655.XA 2021-06-08 2021-06-08 Ip查找方法、系统及存储介质 Pending CN113343034A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110637655.XA CN113343034A (zh) 2021-06-08 2021-06-08 Ip查找方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110637655.XA CN113343034A (zh) 2021-06-08 2021-06-08 Ip查找方法、系统及存储介质

Publications (1)

Publication Number Publication Date
CN113343034A true CN113343034A (zh) 2021-09-03

Family

ID=77474896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110637655.XA Pending CN113343034A (zh) 2021-06-08 2021-06-08 Ip查找方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN113343034A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117221224A (zh) * 2023-11-09 2023-12-12 格创通信(浙江)有限公司 一种表项构建、查找方法、装置、网络设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6731643B1 (en) * 1998-12-30 2004-05-04 Alcatel Method and apparatus for routing information packets associated to addresses represented through numerical strings
CN1787477A (zh) * 2004-12-09 2006-06-14 北京三星通信技术研究有限公司 IPv6路由表的查找方法
CN1964311A (zh) * 2005-11-10 2007-05-16 中国科学院计算技术研究所 IPv6路由表快速查找和更新的方法
US20080056262A1 (en) * 2006-09-01 2008-03-06 Dheeraj Singh Approach for fast ip address lookups
CN101286935A (zh) * 2008-05-07 2008-10-15 中兴通讯股份有限公司 一种基于ip地址范围的路由查找方法
CN104679854A (zh) * 2015-02-15 2015-06-03 中国科学院计算技术研究所 路由表存储与查找方法
CN105827530A (zh) * 2016-03-11 2016-08-03 中国互联网络信息中心 一种兼容ipv4/ipv6的ip二分查找方法及装置
CN108134739A (zh) * 2016-12-01 2018-06-08 深圳市中兴微电子技术有限公司 一种基于索引特里树的路由查找方法及装置
CN112187743A (zh) * 2020-09-14 2021-01-05 北京云杉世纪网络科技有限公司 一种基于ip地址最长前缀的网络策略匹配方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6731643B1 (en) * 1998-12-30 2004-05-04 Alcatel Method and apparatus for routing information packets associated to addresses represented through numerical strings
CN1787477A (zh) * 2004-12-09 2006-06-14 北京三星通信技术研究有限公司 IPv6路由表的查找方法
CN1964311A (zh) * 2005-11-10 2007-05-16 中国科学院计算技术研究所 IPv6路由表快速查找和更新的方法
US20080056262A1 (en) * 2006-09-01 2008-03-06 Dheeraj Singh Approach for fast ip address lookups
CN101286935A (zh) * 2008-05-07 2008-10-15 中兴通讯股份有限公司 一种基于ip地址范围的路由查找方法
CN104679854A (zh) * 2015-02-15 2015-06-03 中国科学院计算技术研究所 路由表存储与查找方法
CN105827530A (zh) * 2016-03-11 2016-08-03 中国互联网络信息中心 一种兼容ipv4/ipv6的ip二分查找方法及装置
CN108134739A (zh) * 2016-12-01 2018-06-08 深圳市中兴微电子技术有限公司 一种基于索引特里树的路由查找方法及装置
CN112187743A (zh) * 2020-09-14 2021-01-05 北京云杉世纪网络科技有限公司 一种基于ip地址最长前缀的网络策略匹配方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李彦彪,张大方,何大成: "PMST:一种面向高性能IP查找的双向平衡流水线结构", 《中国科学:信息科学》, vol. 45, no. 7, 20 July 2015 (2015-07-20), pages 934 - 952 *
苏长龄,王立君: "《大学计算机基础》", 30 September 2008, 中国铁道出版社, pages: 264 - 265 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117221224A (zh) * 2023-11-09 2023-12-12 格创通信(浙江)有限公司 一种表项构建、查找方法、装置、网络设备及存储介质
CN117221224B (zh) * 2023-11-09 2024-02-06 格创通信(浙江)有限公司 一种表项构建、查找方法、装置、网络设备及存储介质

Similar Documents

Publication Publication Date Title
EP1808987B1 (en) Longest prefix matching using tree bitmap data structures
US8780926B2 (en) Updating prefix-compressed tries for IP route lookup
EP1623347B1 (en) Comparison tree data structures and lookup operations
US7415472B2 (en) Comparison tree data structures of particular use in performing lookup operations
US6985483B2 (en) Methods and systems for fast packet forwarding
Le et al. Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
CN108134739B (zh) 一种基于索引特里树的路由查找方法及装置
CN102045412B (zh) IPv6地址前缀压缩存储方法及设备
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
US10515015B2 (en) Hash table-based mask length computation for longest prefix match caching
CN101277252A (zh) 多分支Trie树的遍历方法
CN113343034A (zh) Ip查找方法、系统及存储介质
US20060198379A1 (en) Prefix optimizations for a network search engine
CN109039911B (zh) 一种基于hash查找方式共享ram的方法及系统
CN115086221B (zh) 一种报文处理方法、装置、转发设备和存储介质
JP3660311B2 (ja) テーブル検索装置および方法およびプログラムおよび記録媒体
CN107222401B (zh) 一种基于tcam的路由查找系统及其方法
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup
US20050117588A1 (en) System and method for network address port translation
CN117914784A (zh) 并行查表装置、方法、设备及计算机可读存储介质
CN107204927B (zh) 一种icn网络中基于名字拆分的信息查找方法
Srinivasan et al. An efficient parallel ip lookup technique using CREW based multiprocessor organization
Broderick A Parallel IP Lookup Approach for IPv4 Routing Tables
Bando High-performance packet processing for IP route lookup and deep packet inspection

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210903

RJ01 Rejection of invention patent application after publication