一种模式串的匹配方法及装置与流程

文档序号:31939641发布日期:2022-10-26 02:44阅读:41来源:国知局
一种模式串的匹配方法及装置与流程

1.本技术涉及通信技术领域,尤其涉及一种模式串的匹配方法及装置。


背景技术:

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


技术实现要素:

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

corasick算法,是由alfred v.aho和margaret j.corasick提出的字符串搜索算法,用于在输入的一串字符串中匹配有限组“字典”中的子串。它与普通字符串匹配的不同点在于同时与所有字典串进行匹配,算法均摊情况下具有近似于线性的时间复杂度。
32.下面对本技术提供的模式串的匹配方法进行详细地说明。
33.参见图1,图1是本技术提供的一种模式串的匹配方法的流程图,该方法可以应用于网络设备中,该网络设备可以但不限于为防火墙、网关、需要模式串匹配的服务器等网络安全设备。网络设备实施上述方法时,可包括如下所示步骤:
34.s101、接收模式串匹配请求。
35.本步骤中,当网络设备启动模式串匹配进行安全检测时,在每个匹配周期内就可以接收模式串匹配请求。
36.具体来说,该模式串匹配请求可以包括待匹配特征,然后基于该待匹配特征来执行模式串的匹配流程。需要说明的是,上述待匹配特征可以但不限于为特征字符串,即用于查询ac树的字符串,该特征字符串可以为模式串的特征字符串,或者该待匹配特征的特征字符串属于模式串的特征字符串一部分。
37.s102、根据所述模式串匹配请求,查询当前的ac树。
38.其中,上述当前的ac树包括基于当前的ac树的前一ac树统计的命中次数超过设定次数阈值的模式串。
39.本步骤中,网络设备可以从模式串匹配请求中解析出待匹配特征,然后利用该待匹配特征匹配当前的ac树,即,确认待匹配特征是否命中当前的ac树中的模式串。
40.具体地,当待匹配特征为模式串的特征字符串时,则可以将该特征字符串与当前的ac树包括的模式串的特征字符串进行匹配,以查询该特征字符串是否命中当前的ac树,当命中时,则表明该模式串匹配请求成功匹配当前的ac树;否则,表明该模式串匹配请求未匹配成功。
41.或者,还可以判断待匹配特征的特征字符串是否为当前的ac树的模式串的特征字符串的一部分,例如,当待匹配特征的特征字符串为当前的ac树中某个模式串的特征字符串的子集时,则确认该模式串匹配请求成功匹配当前的ac树,否则,表明该模式串匹配请求未匹配成功。
42.需要说明的是,当前的ac树为基于当前的ac树的前一ac树统计的命中次数不低于设定次数阈值的模式串构成的ac树,即当前的ac树并不包括所有的模式串,这样就可以节省内存资源,即避免不经常访问的模式串占用过多的内存资源而导致内存资源的浪费。
43.s103、若基于所述ac树匹配成功,则输出所述ac树中与所述模式串匹配请求相匹配的第一目标模式串。
44.本步骤中,在模式串匹配请求成功匹配当前的ac树时,则输出当前的ac树中与该模式串匹配请求相匹配的第一目标模式串,以基于第一目标模式串执行安全检测。
45.s104、若未匹配成功,则查询设定的数据库。
46.具体地,当未匹配成功时,则表明模式串匹配请求所对应的模式串为不经常访问的模式串,而网络设备外接的设定数据库中存储有所有的模式串,有鉴于此,网络设备在基于当前的ac树未匹配成功时,则可以查询设定的数据库,以确认模式串匹配请求是否命中该数据库。
47.需要说明的是,模式串匹配请求匹配数据库的过程可以参考匹配ac树的过程,此处不再一一详细说明。
48.s105、当基于所述数据库匹配成功时,则输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串。
49.本步骤中,当模式串匹配请求命中数据库中的模式串时,则输出数据库中与该模式串匹配请求相匹配的第二目标模式串,以基于第二目标模式串执行安全检测。
50.需要说明的是,当基于数据库未匹配成功时,则直接输出匹配失败的匹配结果,以便运维人员基于匹配结果方便定位。
51.通过实施本技术提供的模式串的匹配方法,在接收到模式串匹配请求后,先根据所述模式串匹配请求,查询当前的ac树;若基于所述ac树匹配成功,则输出所述ac树中与所述模式串匹配请求相匹配的第一目标模式串;若未匹配成功,则查询设定的数据库,当基于所述数据库匹配成功时,则输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串。采用上述方法,由于当前的ac树包括的模式串为基于当前的ac树的前一ac树统计的命中次数不低于设定次数阈值的模式串,而不是所有模式串,首先在一定程度上节省了内存资源,而且由于当前的ac树并不包括所有的模式串,从而节省了ac树的编译时间;此外,当基于ac树未匹配成功时,本技术采用了外部访问数据库的方式进行模式串匹配,这样一来,采用ac树和数据库的协同匹配方法,不仅实现了模式串的匹配,而且也保证了匹配效率;此外,在一定程度上减少了内存的消耗,提高了内存的有效使用率。
52.可选地,在执行步骤s103之后,本实施例提供的模式串的匹配方法,还可以包括下述过程:更新所述第一目标模式串在所述ac树中的第一命中次数;更新所述ac树的第一总命中次数;
53.具体地,在不同的时间、不同阶段、不同的场景下所要使用的模式串可能是有变化的,为了保证ac树中的模式串均为频繁请求的模式串,本实施例提出,网络设备在确认本次模式串匹配请求命中当前的ac树中的第一目标模式串后,可以更新第一目标模式串的命中次数,记为第一命中次数。也就是说,本实施例会记录当前匹配周期内命中的各个模式串的命中次数。同时,网络设备也会记录当前的ac树的总命中次数,即为上述第一总命中次数。
54.可选地,为了方便记录命中次数,可以为当前的ac树维护一个hash桶,在该hash桶中记录每个模式串的模式串标识及该模式串的第一命中次数,即,记录模式串标识与命中次数之间的对应关系,这样一来,当基于模式串匹配请求成功匹配到当前的ac树中的第一目标模式串后,可以在该hash桶中将第一目标模式串的模式串标识对应的命中次数执行+1处理,从而得到第一命中次数,以便后续重新构成ac树。
55.同理,当命中第一目标模式串后,则对当前的ac树的命中总次数进行+1处理,得到
上述第一命中总次数,以便后续重新构成ac树。
56.相应地,在执行步骤s105之后,本实施例提供的模式串的匹配方法,还可以包括下述过程:更新所述第二目标模式串在所述数据库中的第二命中次数;更新所述数据库的第二总命中次数。
57.本步骤中,在不同的时间、不同的场景、不同阶段下,每个模式串的活跃度(被请求的频率)可能是有所变化的,其中,某个模式串被请求的频率越高,该模式串的活跃度越高,同理,该模式串被请求的频率越低,则该模式串的活跃度越低。在此基础上,当前处于数据库中有可能存在活跃度比较高的模式串,而当前ac树中可能存在活跃度比较低的模式串,这样一来,为了保证每个场景下每个匹配周期的ac树中包括的模式串被访问的可能性都比较大,本技术会对数据库中的模式串进行统计,即统计命中数据库的模式串的命中次数,即统计第二目标模式串的命中次数,即为上述第二命中次数。同理,网络设备也会记录数据库的总命中次数,即为上述第二总命中次数。
58.在此基础之上,上述设定次数阈值可以但不限于包括ac树命中次数阈值和数据库命中次数阈值。具体来说,上述当前的ac树为基于上一匹配周期中的ac树(即当前的ac树的前一ac树)执行本实施例提出的模式串匹配流程之后确定出的,相应地,则上述当前的ac树包括的模式串的命中次数不低于基于上一匹配周期的ac树确定出的ac树(即当前ac树的前一ac树)命中次数阈值或基于上一匹配周期的ac树确定出的数据库命中次数阈值。值得注意的是,在基于上一匹配周期的ac树创建当前的ac树之前,暂未执行所涉及的命中次数的清零操作,待当前的ac树创建成功之后,再执行所涉及的命中次数的清零操作。
59.需要说明的是,上述当前ac树的构建过程可以参考下述新的ac树的构成过程;同理,上述基于前一ac树确定出的ac树命中次数阈值的确定方法可以参考下述基于当前的ac树确定出的ac树命中次数阈值的确定方法,同理,基于上述前一ac树确定出的数据库命中次数阈值的确定方法可以参考下述基于当前的ac树确定出的数据库命中次数阈值的确定方法。上述在此基础上,本实施例提供的模式串的匹配方法,还可以包括图2所示的流程:
60.s201、在基于当前的ac树执行匹配的匹配周期到达时,删除当前的ac树。
61.本步骤中,为了保证每次使用的ac树中的模式串大部分都能被模式串匹配请求所匹配到,本实施例提出,会对ac树进行更新,即基于当前的ac树构建新的ac树,然后将新的ac树作为当前的ac树,以供下一匹配周期中模式串的匹配流程所调用。
62.基于此,本实施例提出,当检测到利用当前的ac树执行模式串的匹配流程的匹配时间达到本次的匹配周期末时,则表明需要执行ac树的更新流程,有鉴于此,本实施例提出,先删除当前的ac树。
63.需要说明的是,上述匹配周期的具体周期值可以根据实际情况进行设定,本实施例对此不进行限定。
64.s202、确定所述当前的ac树中第一命中次数不低于ac树命中次数阈值的第一模式串。
65.本步骤中,实际应用中,当前的ac树中可能存在原来活跃度比较高,但是在当前匹配周期活跃度变低的情况,为了构建新的ac树,网络设备可以基于hash桶确认第一命中次数不低于ac树命中次数阈值的模式串标识,然后基于确定出的模式串标识从数据库中查找对应的模式串,而查找出的模式串即为上述第一模式串,表明筛选出的第一模式串为当前
匹配周期中当前的ac树所包括的活跃度比较高的模式串。
66.需要说明的是,一种实施例中,上述ac树命中次数阈值可以根据实际情况进行配置,例如运维人员可以根据经验进行配置。需要说明的是,上述模式串标识可以但不限于为模式串id。
67.s203、遍历所述数据库,确定所述数据库中第二命中次数不低于数据库命中次数阈值的第二模式串。
68.本步骤中,由于数据库中也可能存在活跃度比较高的模式串,在此基础上,网络设备可以遍历数据库,然后可以从该数据库中筛选出第二命中次数不低于数据库命中次数阈值的第二模式串,表明筛选出第二模式串为前述匹配周期中数据库所包括的活跃度比较高的模式串。
69.需要说明的是,一种实施例中,上述数据库命中次数阈值可以根据实际情况进行配置,例如运维人员可以根据经验进行配置。
70.s204、基于确定出的第一模式串和第二模式串,创建新的ac树。
71.本步骤中,在确定出第一模式串和第二模式串后,就可以构成新的ac树,从而得到命中次数不低于设定次数阈值的模式串构成的新的ac树。
72.s205、将所述新的ac树确定为所述当前的ac树。
73.本步骤中,为了能够让新的ac树得到应用,可以对新的ac树进行编译处理,然后将编译得到的ac树作为当前的ac树,供下一匹配周期执行模式串的匹配流程时所调用。这样得到的新的ac树为命中次数比较高的模式串,即被匹配到的可能性比较高的模式串,不再是将所有的模式串生成ac树,大大节省了内存的存储资源,同时采用ac树与数据库的协同匹配方法,提升了模式串的匹配效率,即本技术提供的模式串的匹配方法,不仅兼顾效率及内存优化,而且在一定程度上能解决内存较小的服务器对应性能的需求。
74.可选地,可以按照下述过程确定ac树命中次数阈值:基于所述第一总命中次数和所述第二总命中次数,确定所述当前的ac树的命中率;根据所述命中率、设定的ac树命中率基准值,确定ac树命中次数阈值。
75.具体地,可以将当前的ac树的命中率记为ac_accuracy,第一命中总次数记为ac_total_hitnum,第二命中总次数记为sql_total_hitnum,在此基础上,当前的ac树的命中率可以表示为:ac_accuracy=ac_total_hitnum/sql_total_hitnum。
76.进一步地,可以按照下述过程执行根据所述命中率、设定的ac树命中率基准值,确定ac树命中次数阈值的步骤:根据所述命中率、设定的ac树命中率基准值和ac树的阈值系数,确定第一浮动值;根据所述第一浮动值、设定的ac树阈值基准值,确定ac树命中次数阈值。
77.具体地,可以将上述设定的ac树命中率基准值记为ac_standard,上述ac树的阈值系数记为ac_ratio,则可以按照下述公式计算上述第一浮动值ac_float:
78.ac_float=ac_ratio*(ac_standard-ac_accuracy)
79.上述ac树的阈值系数的具体取值可以根据实际情况进行配置,本实施例对其取值不进行限定。
80.在此基础上,在确定出第一浮动值之后,可以按照下述公式计算ac树命中次数阈值ac_sql_threshold:
81.ac_sql_threshold=ac_sql_standard+ac_float
82.其中,上述ac_sql_standard为上述设定的ac树阈值基准值,该值的具体取值可以根据实际情况进行配置,本实施例对其具体取值不进行限定。可选地,在计算上述ac树命中次数阈值之前,可以先对第一浮动值ac_float进行取整处理,将得到的第一取整结果与设定的ac树阈值基准值的和值确定为ac树命中次数阈值。
83.同理,可以按照下述过程确定数据库命中次数阈值:基于所述第一总命中次数和所述第二总命中次数,确定所述当前的ac树的命中率;根据所述命中率、设定的ac树命中率基准值,确定数据库命中次数阈值。
84.需要说明的是,上述命中率的计算方法可以参考计算ac树命中次数阈值中命中率的计算方法,此处不再一一详细说明。
85.在此基础上,可以按照下述过程基于命中率、设定的ac树命中率基准值,确定数据库命中次数阈值:根据所述命中率、设定的ac树命中率基准值和数据库的阈值系数,确定第二浮动值;根据所述第二浮动值、设定的数据库阈值基准值,确定数据库命中次数阈值。
86.具体地,还将上述设定的ac树命中率基准值记为ac_standard,上述数据库的阈值系数记为sql_ratio,则可以按照下述公式计算上述第二浮动值sql_float:
87.sql_float=sql_ratio*(ac_standard-ac_accuracy)
88.值得注意的是,上述数据库的阈值系数的具体取值可以根据实际情况进行配置,本实施例对其取值不进行限定。
89.在此基础之上,可以按照下述公式计算数据库命中次数阈值sql_ac_threshold:
90.sql_ac_threshold=sql_ac_standard+sql_float
91.其中,上述sql_ac_standard为上述数据库阈值基准值,该值的具体取值可以根据实际情况进行配置,本实施例对其具体取值不进行限定。可选地,在计算上述数据库命中次数阈值之前,可以先对第二浮动值sql_float进行取整处理,将得到的第二取整结果与设定数据库阈值基准值的和值确定为数据库命中次数阈值。通过采用智能的方式确定ac树命中次数阈值和数据库命中次数阈值,大大提升了模式串的匹配效率。
92.在此基础上,本实施例提供的模式串的匹配方法,还可以包括下述过程:在创建新的ac树之后,对所述第一命中次数、第一总命中次数、第二命中次数和第二总命中次数进行清零处理。
93.具体地,在创建新的ac树之后,基于新的ac树执行模式串的匹配流程之前,可以对上一ac树执行模式串的匹配流程所产生的第一命中次数、第一总命中次数、第二命中次数和第二总命中次数进行清零处理,以便基于新的ac树执行模式串的匹配流程时执行命中次数统计。
94.可选地,由于不同时间段下网络设备可能面临的场景会有变化,相应地,计算ac树的命中次数阈值和数据库命中次数阈值过程中所涉及的参数的参数值也会发生变化,因此,还可以对ac树的命中次数阈值和数据库命中次数阈值过程中所涉及的参数进行清零处理,以便生成下下一ac树时重新赋值。
95.为了更好地理解本技术任一实施例所提供的模式串的匹配方法,以网络设备为内存资源有限的服务器为例进行说明,服务器在第一次启动时,第一个匹配周期中所使用的ac树可以为根据经验进行设定的,然后在本匹配周期内执行模式串的匹配流程,然后在执
行匹配流程过程中,对命中ac树的第一目标模式串的命中次数及ac树的总命中次数进行统计,同时对命中数据库的第二目标模式串的命中次数及数据库的总命中次数进行统计。在第一个匹配周期末,基于前述命中次数统计结果,基于hash桶确定出当前的ac树中第一命中次数不低于ac树命中次数阈值的模式串id,然后基于模式串id从数据库中查找出对应的模式串,即第一模式串,同时在数据库中筛选出第二命中次数不低于数据库命中次数阈值的第二模式串,然后基于筛选出的第一模式串和第二模式串构建新的ac树。然后对新的ac树执行编译处理后,将其作为当前的ac树以便下一匹配周期执行本技术上述任一实施例所提供的模式串的匹配流程。
96.基于同一发明构思,本技术还提供了与上述模式串的匹配方法对应的模式串的匹配装置。该模式串的匹配装置的实施具体可以参考上述对模式串的匹配方法的描述,此处不再一一论述。
97.参见图3,图3是本技术一示例性实施例提供的一种模式串的匹配装置,包括:
98.接收模块301,用于接收模式串匹配请求;
99.第一查询模块302,用于根据所述模式串匹配请求,查询当前的ac树,所述当前的ac树包括基于所述ac树的前一ac树统计的命中次数不低于设定次数阈值的模式串;
100.第一输出模块303,用于若所述第一查询模块302基于所述ac树匹配成功,则输出所述ac树中与所述模式串匹配请求相匹配的第一目标模式串;
101.第二查询模块304,用于若所述第一查询模块302未匹配成功,则查询设定的数据库;
102.第二输出模块305,用于当所述第二查询模块304基于所述数据库匹配成功时,则输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串。
103.可选地,基于上述实施例,本实施例提供的模式串的匹配装置,还包括:
104.第一更新模块(图中未示出),用于在所述第一输出模块输出所述ac树中与所述模式串匹配请求相匹配的第一目标模式串之后,更新所述第一目标模式串在所述ac树中的第一命中次数;更新所述ac树的第一总命中次数;
105.第二更新模块(图中未示出),用于在所述第二输出模块输出所述数据库中与所述模式串匹配请求相匹配的第二目标模式串之后,更新所述第二目标模式串在所述数据库中的第二命中次数;更新所述数据库的第二总命中次数。
106.可选地,基于上述实施例,本实施例中的设定次数阈值包括ac树命中次数阈值和数据库命中次数阈值,则所述当前的ac树包括的模式串的命中次数不低于ac树命中次数阈值或数据库命中次数阈值。在此基础之上,本实施例提供的模式串的匹配装置,还包括:
107.删除模块(图中未示出),用于在基于当前的ac树执行匹配的匹配周期到达时,删除当前的ac树;
108.第一确定模块(图中未示出),用于确定所述当前的ac树中第一命中次数不低于ac树命中次数阈值的第一模式串;
109.第二确定模块(图中未示出),用于遍历所述数据库,用于确定所述数据库中第二命中次数不低于数据库命中次数阈值的第二模式串;
110.创建模块(图中未示出),用于基于确定出的第一模式串和第二模式串,创建新的ac树;
111.第三确定模块(图中未示出),用于将所述新的ac树确定为所述当前的ac树。
112.可选地,本实施例提供的模式串的匹配装置,还包括:
113.第四确定模块(图中未示出),用于按照下述方法确定ac树命中次数阈值:基于所述第一总命中次数和所述第二总命中次数,确定所述当前的ac树的命中率;根据所述命中率、设定的ac树命中率基准值,确定ac树命中次数阈值。
114.可选地,上述第四确定模块(图中未示出),具体用于根据所述命中率、设定的ac树命中率基准值和ac树的阈值系数,确定第一浮动值;根据所述第一浮动值、设定的ac树阈值基准值,确定ac树命中次数阈值。
115.可选地,本实施例提供的模式串的匹配装置,还包括:
116.第五确定模块(图中未示出),用于按照下述方法确定数据库命中次数阈值:基于所述第一总命中次数和所述第二总命中次数,确定所述当前的ac树的命中率;根据所述命中率、设定的数据库命中率基准值,确定数据库命中次数阈值。
117.可选地,上述第五确定模块(图中未示出),具体用于根据所述命中率、设定的ac树命中率基准值和数据库的阈值系数,确定第二浮动值;根据所述第二浮动值、设定的数据库阈值基准值,确定数据库命中次数阈值。
118.可选地,本实施例提供的模式串的匹配装置,还包括:
119.清零模块(图中未示出),用于在创建新的ac树之后,对所述第一命中次数、第一总命中次数、第二命中次数和第二总命中次数进行清零处理。
120.基于同一发明构思,本技术实施例提供了一种电子设备,该电子设备可以为上述网络设备。如图4所示,该电子设备包括处理器401和机器可读存储介质402,机器可读存储介质402存储有能够被处理器401执行的计算机程序,处理器401被计算机程序促使执行本技术任一实施例所提供的模式串的匹配方法。此外,该电子设备还包括通信接口403和通信总线404,其中,处理器401,通信接口403,机器可读存储介质402通过通信总线404完成相互间的通信。
121.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
122.通信接口用于上述电子设备与其他设备之间的通信。
123.上述机器可读存储介质402可以为存储器,该存储器可以包括随机存取存储器(random access memory,ram)、ddr sram(double data rate synchronous dynamic random access memory,双倍速率同步动态随机存储器),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
124.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
125.对于电子设备以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
126.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
127.上述装置中各个单元/模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
128.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元/模块上。可以根据实际的需要选择其中的部分或者全部单元/模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
129.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1