一种模式串的匹配方法及装置制造方法及图纸

技术编号:35344029 阅读:15 留言:0更新日期:2022-10-26 12:08
本申请提供了一种模式串的匹配方法及装置,涉及通信技术领域。该方法包括:接收模式串匹配请求;根据所述模式串匹配请求,查询当前的AC树,所述当前的AC树包括基于所述AC树的前一AC树统计的命中次数不低于设定次数阈值的模式串;若基于所述AC树匹配成功,则输出所述AC树中与所述模式串匹配请求相匹配的第一目标模式串;若未匹配成功,则查询设定的数据库;当基于所述数据库匹配成功时,则输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串。采用上述方法,实现了在内存受限的网络设备中执行多模式串匹配,而且提升了匹配效率,同时减少内存资源的消耗。同时减少内存资源的消耗。同时减少内存资源的消耗。

【技术实现步骤摘要】
一种模式串的匹配方法及装置


[0001]本申请涉及通信
,尤其涉及一种模式串的匹配方法及装置。

技术介绍

[0002]多模式串匹配是一种在各种网络设备中广泛应用的匹配场景,对其性能要求也在不断增加。此外,在追求效率的同时,也需要根据实际场景设置合适的匹配方法,能够实现资源的最大化。
[0003]为了实现多模式串匹配,可以采用数据库的匹配方式,在匹配过程中,匹配所需的数据一般存储在flash中,但是由于从flash中提取数据以及数据库本身的限制,匹配效率不高。
[0004]此外,可以通过使用一些多模式串匹配算法,来提高匹配效率,如AC算法、WM算法等等,但是在运用这些算法时对运行内存的需求会比较大,导致对于内存较小的网络设备不能存储海量的模式串集合,而且一旦网络设备的内存不足或者模式串规模增大,该设备就无法使用多模式串匹配功能。此外,多模式串集合并不一定适用网络设备对应场景的实际需求,例如,一台网络设备的内存有限,却需要将整个模式串集合编译AC树并存储在该网络设备中,但是该AC树中其实大部分的模式串并不会被使用,从而造成了网络设备的内存资源的浪费。
[0005]因此,如何在内存受限的网络设备中执行多模式串匹配时,提升匹配效率,同时减少内存资源的消耗是值得考虑的技术问题之一。

技术实现思路

[0006]有鉴于此,本申请提供一种模式串的匹配方法及装置,用以在内存受限的网络设备中执行多模式串匹配时,提升匹配效率,同时减少内存资源的消耗。
[0007]具体地,本申请是通过如下技术方案实现的:
[0008]根据本申请的第一方面,提供一种模式串的匹配方法,包括:
[0009]接收模式串匹配请求;
[0010]根据所述模式串匹配请求,查询当前的AC树,所述当前的AC树包括基于所述AC树的前一AC树统计的命中次数不低于设定次数阈值的模式串;
[0011]若基于所述AC树匹配成功,则输出所述AC树中与所述模式串匹配请求相匹配的第一目标模式串;
[0012]若未匹配成功,则查询设定的数据库;
[0013]当基于所述数据库匹配成功时,则输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串。
[0014]根据本申请的第二方面,提供一种模式串的匹配装置,包括:
[0015]接收模块,用于接收模式串匹配请求;
[0016]第一查询模块,用于根据所述模式串匹配请求,查询当前的AC树,所述当前的AC树
包括基于所述AC树的前一AC树统计的命中次数不低于设定次数阈值的模式串;
[0017]第一输出模块,用于若所述第一查询模块基于所述AC树匹配成功,则输出所述AC树中与所述模式串匹配请求相匹配的第一目标模式串;
[0018]第二查询模块,用于若所述第一查询模块未匹配成功,则查询设定的数据库;
[0019]第二输出模块,用于当所述第二查询模块基于所述数据库匹配成功时,则输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串。
[0020]根据本申请的第三方面,提供一种电子设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的计算机程序,处理器被计算机程序促使执行本申请实施例第一方面所提供的方法。
[0021]根据本申请的第四方面,提供一种机器可读存储介质,机器可读存储介质存储有计算机程序,在被处理器调用和执行时,计算机程序促使处理器执行本申请实施例第一方面所提供的方法。
[0022]本申请实施例的有益效果:
[0023]本申请实施例提供的模式串的匹配方法及装置中,在接收到模式串匹配请求后,先根据所述模式串匹配请求,查询当前的AC树;若基于所述AC树匹配成功,则输出所述AC树中与所述模式串匹配请求相匹配的第一目标模式串;若未匹配成功,则查询设定的数据库,当基于所述数据库匹配成功时,则输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串。采用上述方法,由于当前的AC树包括的模式串为基于所述AC树的前一AC树统计的命中次数超过设定次数阈值的模式串,而不是所有模式串,首先在一定程度上节省了内存资源,而且由于当前的AC树并不包括所有的模式串,从而节省了AC树的编译时间;此外,当基于AC树未匹配成功时,本申请采用了外部访问数据库的方式进行模式串匹配,这样一来,采用AC树和数据库的协同匹配方法,不仅实现了模式串的匹配,而且也保证了匹配效率;此外,在一定程度上减少了内存的消耗,提高了内存的有效使用率。
附图说明
[0024]图1是本申请实施例提供的一种模式串的匹配方法的流程示意图;
[0025]图2是本申请实施例提供的另一种模式串的匹配方法的流程示意图;
[0026]图3是本申请实施例提供的一种模式串的匹配装置的结构示意图;
[0027]图4是本申请实施例提供的一种实施模式串的匹配方法的电子设备的硬件结构示意图。
具体实施方式
[0028]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如本申请的一些方面相一致的装置和方法的例子。
[0029]在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对
应的列出项目的任何或所有可能组合。
[0030]应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0031]在计算机科学中,AC算法,也称Aho

Corasick算法,是由Alfred V.Aho和Margaret J.Corasick提出的字符串搜索算法,用于在输入的一串字符串中匹配有限组“字典”中的子串。它与普通字符串匹配的不同点在于同时与所有字典串进行匹配,算法均摊情况下具有近似于线性的时间复杂度。
[0032]下面对本申请提供的模式串的匹配方法进行详细地说明。
[0033]参见图1,图1是本申请提供的一种模式串的匹配方法的流程图,该方法可以应用于网络设备中,该网络设备可以但不限于为防火墙、网关、需要模式串匹配的服务器等网络安全设备。网络设备实施上述方法时,可包括如下所示步骤:
[0034]S101、接收模式串匹配请求。
[0035]本步骤中,当网络设备启动模式串匹配进本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模式串的匹配方法,其特征在于,包括:接收模式串匹配请求;根据所述模式串匹配请求,查询当前的AC树,所述当前的AC树包括基于所述AC树的前一AC树统计的命中次数不低于设定次数阈值的模式串;若基于所述AC树匹配成功,则输出所述AC树中与所述模式串匹配请求相匹配的第一目标模式串;若未匹配成功,则查询设定的数据库;当基于所述数据库匹配成功时,则输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串。2.根据权利要求1所述的方法,其特征在于,在输出所述AC树中与所述模式串匹配请求相匹配的第一目标模式串之后,还包括:更新所述第一目标模式串在所述AC树中的第一命中次数;更新所述AC树的第一总命中次数;在输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串之后,还包括:更新所述第二目标模式串在所述数据库中的第二命中次数;更新所述数据库的第二总命中次数。3.根据权利要求2所述的方法,其特征在于,所述设定次数阈值包括AC树命中次数阈值和数据库命中次数阈值,则所述当前的AC树包括的模式串的命中次数不低于AC树命中次数阈值或数据库命中次数阈值;所述方法,还包括:在基于当前的AC树执行匹配的匹配周期到达时,删除当前的AC树;确定所述当前的AC树中第一命中次数不低于AC树命中次数阈值的第一模式串;遍历所述数据库,确定所述数据库中第二命中次数不低于数据库命中次数阈值的第二模式串;基于确定出的第一模式串和第二模式串,创建新的AC树;将所述新的AC树确定为所述当前的AC树。4.根据权利要求3所述的方法,其特征在于,按照下述方法确定AC树命中次数阈值:基于所述第一总命中次数和所述第二总命中次数,确定所述当前的AC树的命中率;根据所述命中率、设定的AC树命中率基准值,确定AC树命中次数阈值。5.根据权利要求3所述的方法,其特征在于,按照下述方法确定数据库命中次数阈值:基于所述第一总命中次数和所述第二总命中次数,确定所述当前的AC树的命中率;根据所述命中率、设定的数据库命中率基准值,确定数据库命中次数阈值。6.根据权利要求4所述的方法,其特征在于,根据所述命中率、设定的AC树命中率基准值,确定AC树命中次数阈值,包括:根据所述命中率、设定的AC树命中率基准值和AC树的阈值系数,确定第一浮动值;根据所述第一浮动值、设定的AC树阈值基准值,确定AC树命中次数阈值。7.根据权利要求5所述的方法,其特征在于,根据所述命中率、设定的数据库命中率基准值,确定数据库命中次数阈值,包括:根据所述命中率、设定的AC树命中率基准值和数据库的阈值系数,确定第二浮动值;根据所述第二浮动值、设定的数据库阈值基准值,确定数据库命中次数阈值。
8.根据权利要求3所述的方法,其特征在于,还包括:在创建新的AC树之后,对所述第一命中次数、第一总命中次数、第二命中次数和第二总命中次数进行清零处理。9.一种模式串的匹配装置,其特征在于,包括:接收模块,用于接收模式串匹配请求;第一查询模块,用于根据所述模式串匹配请求,查询当前的AC树,所述当...

【专利技术属性】
技术研发人员:王星
申请(专利权)人:新华三信息安全技术有限公司
类型:发明
国别省市:

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

1