[发明专利]一种匹配IP网段的方法及装置有效
申请号: | 201910462104.7 | 申请日: | 2019-05-30 |
公开(公告)号: | CN110351397B | 公开(公告)日: | 2022-06-14 |
发明(设计)人: | 陈志华 | 申请(专利权)人: | 湖北微源卓越科技有限公司 |
主分类号: | H04L61/2503 | 分类号: | H04L61/2503;H04L61/2557;H04L101/668;H04L101/695 |
代理公司: | 武汉河山金堂专利事务所(普通合伙) 42212 | 代理人: | 胡清堂;陈懿 |
地址: | 430073 湖北省武汉市东*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 匹配 ip 网段 方法 装置 | ||
本发明提出一种匹配IP网段的方法及装置,所述方法包括:对基于IP网段的策略组进行子网段划分,提取子网段中的子网掩码,生成掩码库,并初始化IP网段的Hash链表;将待匹配的IP依次与所述掩码库中的掩码进行逻辑与运算,得到待匹配的IP网段;计算所述待匹配IP网段的Hash值,将所述Hash值与一个最大质数H1进行取模运算;根据所述取模运算的结果匹配所述Hash链表,返回匹配结果。本发明通过快速匹配网段的方法,可以大大提匹配的效率,延迟小,即使匹配的策略非常多,也可保证匹配的速度。
技术领域
本发明属于网络技术领域,具体涉及一种匹配IP网段的方法及装置。
背景技术
在一些网络业务场景中,常常需要根据IP网段来设置一组策略,当每一个数据包到达时,都会与这些策略组做匹配。现行的匹配方式主要通过循环查找的方式实现,请参见图1、图2,由图2可知,当需要匹配的策略的总网段数为N时,其匹配的时间复杂度为o(N)。也就是说当需要匹配的网段数越多,其匹配效率越低。所以,该方式虽然实现简单,但是匹配过程的时间复杂度会随着策略的增加而增加,当匹配策略较多时,匹配的时间长,延迟高,效率低。
因此,当策略较多的应用场景中,需要一种匹配IP网段的方法,其匹配的效率不会因为策略数量的增加而大幅降低。
发明内容
本发明提出一种匹配IP网段的方法及装置,用于解决在策略较多的应用场景中,现行策略匹配方法延迟高,效率低的问题。
本发明第一方面,提出一种匹配IP网段的方法,所述方法包括:
S1、对基于IP网段的策略组进行子网段划分,提取子网段中的子网掩码,生成掩码库,并初始化IP网段的Hash链表;
S2、将待匹配的IP依次与所述掩码库中的掩码进行逻辑与运算,得到待匹配的IP网段;
S3、计算所述待匹配IP网段的Hash值,将所述Hash值与最大质数进行取模运算;
S4、根据所述取模运算的结果匹配所述Hash链表,返回匹配结果。
可选的,所述步骤S1中,初始化IP网段的Hash链表的具体过程为:
分别计算各个子网段的Hash值,将所述子网段的Hash与一个最大质数H1进行取模运算,分别得到一个INDEX,将所述INDEX作为Hash链表中数组的下标;如果有多个网段的INDEX相同,将所有的INDEX相同的网段依次存到一个链表中。
可选的,所述步骤S2中,所述将待匹配的IP依次与掩码库中的掩码进行逻辑与运算时,采用先匹配大掩码,后匹配小掩码的规则。
可选的,所述步骤S4中,所述匹配Hash链表的过程中,如果匹配到的INDEX处是一个链表,依次遍历所述链表,将所述待匹配的IP与所述链表上网段的子网掩码进行逻辑与运算,匹配字符串是否一致,如果一致即返回,匹配成功;如果不一致,继续遍历,直至访问到链表尾部,匹配结束。
本发明第二方面,提供一种匹配IP网段的装置,所述装置包括:
初始化模块:用于对基于IP网段的策略组进行子网段划分,提取子网段中的子网掩码,生成掩码库,并初始化IP网段Hash链表;
运算模块:用于将待匹配的IP依次与所述掩码库中的掩码进行逻辑与运算,得到待匹配的IP网段;计算所述待匹配IP网段的Hash值,将所述Hash值与最大质数H1进行取模运算;
匹配模块:用于根据所述取模运算的结果匹配Hash链表,返回匹配结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖北微源卓越科技有限公司,未经湖北微源卓越科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910462104.7/2.html,转载请声明来源钻瓜专利网。