一种IP地址段查找方法及装置制造方法及图纸

技术编号:22661540 阅读:18 留言:0更新日期:2019-11-28 04:36
本申请提供一种IP地址段查找方法及装置,所述方法包括:获取边界IP地址存储树以及目标IP地址;遍历所述边界IP地址存储树中根节点至任一叶子节点所形成的路径;获取所述路径上存储的IP子集,整合成边界IP地址;确定所述边界IP地址对应的IP地址段;判断所述目标IP地址是否处于所述IP地址段区间;若是,确定所述IP地址段为所需查找的IP地址段。

An IP address segment searching method and device

The application provides an IP address segment search method and device, the method includes: acquiring the boundary IP address storage tree and the target IP address; traversing the path formed by the root node to any leaf node in the boundary IP address storage tree; acquiring the IP subset stored on the path and integrating it into the boundary IP address; determining the IP address segment corresponding to the boundary IP address; judging the target IP address Mark whether the IP address is in the IP address segment; if yes, confirm that the IP address segment is the IP address segment to be searched.

【技术实现步骤摘要】
一种IP地址段查找方法及装置
本申请涉及通信
,尤其涉及一种IP地址段查找方法及装置。
技术介绍
FPGA(fieldprogrammablegatearray,现场可编程门阵列)芯片相对于传统PC、单片机的开发存在很大区别,通常以并行运算为主,其具有较高的时钟频率和丰富的硬件资源,能够快速有效的控制复杂的组合逻辑以及时序逻辑电路。一般而言,应用CPU可以实现的功能,通常应用FPGA同样可以实现。但是当面对极其复杂的算法时,应用FPGA来实现会比较困难,资源消耗也会较大,因此何种算法适合应用FPGA来实现,且能减少资源消耗便成为了当前FPGA开发中所关注的重点。相关技术中,当在FPGA上实现IP地址段(即IP地址范围)查找时,通常采用的算法为顺序查找、二分查找、哈希表查找等。顺序查找,节省存储空间,一个IP地址段存储在一个内存空间中,但是查找次数不确定,查找性能难做出评估;二分查找相对于顺序查找,查找次数有很大的改善,但是当IP地址段较多时查找次数依然很难接受;哈希表查找可以降低查找次数,但是需要把IP地址段进行展开消耗更多的地址空间,哈希冲突也是不能避免的,查找次数不确定。因此急需一种适合在FPGA芯片内部实现的高性能IP地址段查找方法。
技术实现思路
有鉴于此,本申请提供一种IP地址段查找方法及装置。具体地,本申请是通过如下技术方案实现的:一种IP地址段查找方法,应用于FPGA,所述方法包括:获取边界IP地址存储树以及目标IP地址;遍历所述边界IP地址存储树中根节点至任一叶子节点所形成的路径;获取所述路径上存储的IP子集,整合成边界IP地址;确定所述边界IP地址对应的IP地址段;判断所述目标IP地址是否处于所述IP地址段区间;若是,确定所述IP地址段为所需查找的IP地址段。一种IP地址段查找装置,应用于FPGA,所述装置包括:第一获取模块,用于获取边界IP地址存储树以及目标IP地址;遍历模块,用于遍历所述边界IP地址存储树中根节点至任一叶子节点所形成的路径;第二获取模块,用于获取所述路径上存储的IP子集,整合成边界IP地址;第一确定模块,用于确定所述边界IP地址对应的IP地址段;判断模块,用于判断所述目标IP地址是否处于所述IP地址段区间;第二确定模块,用于若是,确定所述IP地址段为所需查找的IP地址段。本申请实施例提供的技术方案,通过遍历边界IP地址存储树中根节点至任一叶子节点所形成的路径,获取该路径上存储的IP子集,整合成边界IP地址,判断目标IP地址是否处于边界IP地址对应的IP地址段区间,根据判断结果确定所需查找的IP地址段,其中,边界IP地址存储树对IP地址段中边界IP地址进行拆分存储,很好的平衡了存储资源与查找性能的关系,且确定所需查找的IP地址段相对简单、高效,消耗的FPGA资源有限,易于在FPGA上实现。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本申请一示例性实施例示出的一种IP地址段查找方法的实施流程示意图;图2是本申请一示例性实施例示出的一种右边界IP地址存储树的示意图;图3是本申请一示例性实施例示出的另一种右边界IP地址存储树的示意图;图4是本申请一示例性实施例示出的一种硬件结构图;图5是本申请一示例性实施例示出的一种IP地址段查找装置的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。如图1所示,为本申请实施例提供的一种IP地址段查找方法的实施流程示意图,该方法具体可以包括以下步骤:S101,获取边界IP地址存储树以及目标IP地址;在本申请实施例中,为了节省存储空间,生成边界IP地址存储树,对IP地址段中边界IP地址进行拆分存储,具体如下:获取若干IP地址段;在网络设备中配置限速、防护等策略时,通常先根据IP地址进行用户分组,再针对用户组配置限速、防护等策略,每个用户组存在与其对应的IP地址段,如下表1所示:用户组IP地址段A10.10.11.31——10.10.12.33B10.10.12.35——10.10.12.35表1在本申请实施例中,可以获取如表1所示的若干IP地址段:“10.10.11.31——10.10.12.33”、“10.10.12.35——10.10.12.35”。针对该若干IP地址段进行排序,其中,排序规则可以是从小到大,可以是从大到小,本申请实施例对此不作限定;针对上述获取的若干IP地址段进行排序,以从小到大进行排序为例,排序结果如下所示:“10.10.11.31——10.10.12.33”、“10.10.12.35——10.10.12.35”。分离经过排序的该若干IP地址段中的若干边界IP地址,其中,该边界IP地址包括左边界IP地址或者右边界IP地址;经过对上述若干IP地址段进行排序后,分离该若干IP地址段中的若干边界IP地址,以右边界为例,分离该若干IP地址段中的若干右边界IP地址,如下表2所示:IP地址段右边界IP地址10.10.11.31——10.10.12.3310.10.12.3310.10.12.35——10.10.12.3510.10.12.35表2如上述表1所示,分离IP地址段“10.10.11.31——10.10.1本文档来自技高网...

【技术保护点】
1.一种IP地址段查找方法,应用于FPGA,其特征在于,所述方法包括:/n获取边界IP地址存储树以及目标IP地址;/n遍历所述边界IP地址存储树中根节点至任一叶子节点所形成的路径;/n获取所述路径上存储的IP子集,整合成边界IP地址;/n确定所述边界IP地址对应的IP地址段;/n判断所述目标IP地址是否处于所述IP地址段区间;/n若是,确定所述IP地址段为所需查找的IP地址段。/n

【技术特征摘要】
1.一种IP地址段查找方法,应用于FPGA,其特征在于,所述方法包括:
获取边界IP地址存储树以及目标IP地址;
遍历所述边界IP地址存储树中根节点至任一叶子节点所形成的路径;
获取所述路径上存储的IP子集,整合成边界IP地址;
确定所述边界IP地址对应的IP地址段;
判断所述目标IP地址是否处于所述IP地址段区间;
若是,确定所述IP地址段为所需查找的IP地址段。


2.根据权利要求1所述的方法,其特征在于,所述边界IP地址存储树为右边界IP地址存储树,所述边界IP地址为右边界IP地址,或者所述边界IP地址存储树为左边界IP地址存储树,所述边界IP地址为左边界IP地址。


3.根据权利要求1所述的方法,其特征在于,所述边界IP地址存储树通过以下方式得到:
获取若干IP地址段;
针对所述若干IP地址段进行排序;
分离经过排序的所述若干IP地址段中的若干边界IP地址,其中,所述边界IP地址包括左边界IP地址或者右边界IP地址;
针对所述若干边界IP地址,生成边界IP地址存储树。


4.根据权利要求3所述的方法,其特征在于,所述针对所述若干边界IP地址,生成边界IP地址存储树,包括:
针对任一边界IP地址,按照预设的转换规则,转换为目标边界IP地址;
根据预设的拆分规则,拆分所述目标边界IP地址,得到多个IP子集;
利用所述IP子集,以及所述若干边界IP地址中各个IP子集的前后衔接关系,生成边界IP地址存储树。


5.根据权利要求4所述的方法,其特征在于,所述利用所述IP子集,以及所述若干边界IP地址中各个IP子集的前后衔接关系,生成边界IP地址存储树,包括:
针对所述若干边界IP地址对应的IP子集,剔除重复IP子集,得到有效IP子集;
利用所述有效IP子集,以及所述若干边界IP地址中各个IP子集的前后衔接关系,生成边界IP地址存储树。


6.一种IP地址段查找装置,应用于FPGA,其特征在于,所...

【专利技术属性】
技术研发人员:刘彦静
申请(专利权)人:杭州迪普科技股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1