【技术实现步骤摘要】
一种模式串的匹配方法及装置
[0001]本申请涉及通信
,尤其涉及一种模式串的匹配方法及装置。
技术介绍
[0002]多模式串匹配是一种在各种网络设备中广泛应用的匹配场景,对其性能要求也在不断增加。此外,在追求效率的同时,也需要根据实际场景设置合适的匹配方法,能够实现资源的最大化。
[0003]为了实现多模式串匹配,可以采用数据库的匹配方式,在匹配过程中,匹配所需的数据一般存储在flash中,但是由于从flash中提取数据以及数据库本身的限制,匹配效率不高。
[0004]此外,可以通过使用一些多模式串匹配算法,来提高匹配效率,如AC算法、WM算法等等,但是在运用这些算法时对运行内存的需求会比较大,导致对于内存较小的网络设备不能存储海量的模式串集合,而且一旦网络设备的内存不足或者模式串规模增大,该设备就无法使用多模式串匹配功能。此外,多模式串集合并不一定适用网络设备对应场景的实际需求,例如,一台网络设备的内存有限,却需要将整个模式串集合编译AC树并存储在该网络设备中,但是该AC树中其实大部分的模式串并不会被使用,从而造成了网络设备的内存资源的浪费。
[0005]因此,如何在内存受限的网络设备中执行多模式串匹配时,提升匹配效率,同时减少内存资源的消耗是值得考虑的技术问题之一。
技术实现思路
[0006]有鉴于此,本申请提供一种模式串的匹配方法及装置,用以在内存受限的网络设备中执行多模式串匹配时,提升匹配效率,同时减少内存资源的消耗。
[0007]具体地,本申请是通过如 ...
【技术保护点】
【技术特征摘要】
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树,所述当...
【专利技术属性】
技术研发人员:王星,
申请(专利权)人:新华三信息安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。