[发明专利]一种快速单模式匹配算法的设计在审
申请号: | 201910379726.3 | 申请日: | 2019-05-03 |
公开(公告)号: | CN110191099A | 公开(公告)日: | 2019-08-30 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 长沙曙通信息科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F16/33 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 410205 湖南省长沙市长沙高新开*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 匹配算法 单模式 防火墙 最大并发连接数 关键性能指标 模式匹配算法 连接数 算法 吞吐量 改进 应用 | ||
本发明涉及一种快速单模式匹配算法的设计,本发明设计了一种快速的单模式匹配算法—BMH2CKMP算法,并应用于下一代防火墙。本发明设计的使用了改进后的模式匹配算法的下一代防火墙从吞吐量、最大并发连接数、每秒新建连接数等关键性能指标均优于改进前的防火墙。
技术领域
本发明涉及信息化领域,具体涉及一种快速单模式匹配算法的设计。
背景技术
针对KMP算法可保证字符适配后,模式串不回溯,但由于跳转距离较小,算法平均性能较BM算法要低;BMH2C算法具有较大的跳转距离,具有较好的平均性能,但由于不能保证字符适配后模式不回溯,在最坏和较坏的情况下,具有较差的性能,其复杂度为O(mn)。结合二者优点,本发明提出一种改进的快速单模式匹配算法—BMH2CKMP算法。通过将该算法应用于下一代防火墙,从而测试该算法的是否有效。
发明专利内容
本发明设计了一种快速的单模式匹配算法—BMH2CKMP算法,并应用于下一代防火墙。本发明设计的使用了改进后的模式匹配算法的下一代防火墙从吞吐量、最大并发连接数、每秒新建连接数等关键性能指标均优于改进前的防火墙。
附图说明
图1为算法流程图。
图2为系统物理架构图。
图3为系统程序架构图。
图4为系统逻辑流程图。
具体实施方式
为了使本发明专利的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明专利进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明专利,并不用于限定本发明专利。
本发明设计了一种快速的单模式匹配算法—BMH2CKMP算法,并应用于下一代防火墙。本发明设计的使用了改进后的模式匹配算法的下一代防火墙从吞吐量、最大并发连接数、每秒新建连接数等关键性能指标均优于改进前的防火墙。
进一步的,BMH2CKMP算法思想,KMP算法复杂度为O(n),可保证字符适配后,模式串不回溯,则在最坏情况(模式串位于文本串的末尾处)下,具有较高的性能。但由于跳转距离较小,算法平均性能较BM算法要低。BM算法及其改进算法具有较大的跳转距离,具有较好的平均性能,但由于不能保证字符适配后模式不回溯,在最坏和较坏的情况下,具有较差的性能,其复杂度为O(mn)。本发明结合KMP于BMH2C算法各自的优势提出一种新的单模式匹配算法BMH2CKMP算法。BMH2CKMP算法的设计思想是:
第一步:以BMH2C算法为基础,将其修改为正向匹配;
第二步:预处理对patten串求next数组;
第三步:模式匹配时,若字符失配,则判断跳跃值为正向还是负向。正向则选择跳跃,获取最大位移,负向则查找next数组,挪动j的位置,来强制i不回溯。
进一步的,算法描述,在KMP算法中,为了确保在字符失配后,下次匹配时j的位置,引入了next数组,next[j]的值表示P[0...j-1(不含j本身)]中最长的后缀等于前缀的长度。
进一步的,对于next数组的定义如下:next[]函数取值如表1所示。即next[j]=k>0时,表示P[0...k-1]=P[j-k,j-1]。因此KMP算法的思想就是:在匹配过程中,若发生不匹配的情况,如果next[j]>=0,则目标串的指针i不变,将模式串的指针j移动到next[j]的位置继续进行匹配;若next[j]=-1,则将i右移1位,并将j置0,继续进行比较,复杂度为O(n)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长沙曙通信息科技有限公司,未经长沙曙通信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910379726.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种传输数据的方法、第一网络设备及第二网络设备
- 下一篇:织布机安排调度系统