节点压缩方法及装置、以及多模匹配方法及装置制造方法及图纸

技术编号:3900323 阅读:202 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种节点压缩方法及装置、以及多模匹配方法及装置,用于减少AC自动机匹配算法需要的存储空间,并提高多模匹配查找的速度。本发明专利技术实施例方法包括:对预置的AC模式树进行深度优先遍历;根据深度优先遍历的结果在AC模式树的同一条边上查找第一节点,以及第二节点,所述第一节点只有一个子节点,所述第二节点有至少两个子节点,或者所述第二节点为叶子节点;对所述第一节点,所述第二节点,以及所述第一节点至所述第二节点之间的中间节点进行压缩得到一个压缩节点。本发明专利技术实施例还提供一种节点压缩装置,多模匹配方法及装置。本发明专利技术实施例能有效地减少AC自动机匹配算法需要的存储空间,并提高多模匹配查找的速度。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,尤其涉及一种节点压缩方法及装置、以及多 模匹配方法及装置。
技术介绍
在病毒扫描,协议识别,内容过滤,入侵检测等应用中,模式匹配技术 都是一项基本的支撑技术。模式匹配技术,通过快速的扫描数据包,在大规 模的规则库中找到对应的匹配规则,为其后的应用程序进行处理提供了依据。 模式匹配算法的好坏直接影响到这些应用的性能的高低。因此发展高效的模 式匹配算法,支持大规模的模式库和提供快速的查找速度,对上述应用都有 非常重要的意义。模式匹配技术的目的是在目标文本中找到所给模式出现的位置。根据待 查找模式数量的不同,分为单模匹配和多模匹配。多模匹配技术研究在目标 文本中找到模式库中的所有模式出现的位置。现有技术中一种多模匹配技术为艾豪-克拉斯克(AC, Aho-Corasick)自 动机匹配算法,它通过构造一个AC模式树实现快速的多模匹配。在该AC模式树中的某一节点A的内部数据结构包括当前节点(Cs), 匹配字符(Char),下一节点(Ns),失败节点(Fs),命中标记(Hit),其各 个字段的含义如下"当前节点"表示节点A的父节点B;"匹配字符"表示若要对节点A匹配成功所需要匹配的字符; "下一节点"表示节点A自身;"失败节点"表示节点A匹配失败后下一个所需匹配的节点; "命中标记"表示节点A内是否存在模式匹配,即该"命中标记"具体 可以为两种类型的数值,分别用于表示节点A内存在模式匹配,以及节点A 内不存在才莫式匹配。专利技术人在实现本专利技术的过程中,发现现有技术至少存在以下缺点 上述现有技术中,AC自动机匹配算法需要的存储空间主要由其模式树的节点数目决定,每两个节点之间的边代表一个字符,所以AC自动机匹配算法 需要的存储空间与模式库中的单个字符的数目成正比,对于大规^莫的模式库, AC自动机匹配算法需要的存储空间可达几十兆比特,既不适合中央处理器 (CPU, Central Processing Unit)的緩存,也不适合专用集成电路(ASIC, Application Specific Integrated Circuits)的实现。
技术实现思路
本专利技术实施例提供了一种节点压缩方法及装置、以及多模匹配方法及装 置,能够减少AC自动机匹配算法需要的存储空间。本专利技术实施例提供的节点压缩方法,包括对预置的AC模式树进行深度 优先遍历;根据深度优先遍历的结果在AC模式树的同一条边上查找第一节 点,以及第二节点,所述第一节点只有一个子节点,所述第二节点有至少两 个子节点,或者所述第二节点为叶子节点;对所述第一节点,所述第二节点, 以及所述第一节点至所述第二节点之间的中间节点进行压缩得到一个压缩节 点,所述压缩节点的节点信息中包含字符串参数,所述字符串参数由所述第 一节点的字符参数,所述中间节点的字符参数,以及所述第二节点的字符参 数组成。本专利技术实施例提供的多模匹配方法,包括对当前目标字符与压缩节点 的字符串参数中的首字符进行匹配,若匹配成功,则根据预置的匹配目标对 所述当前目标字符进行更新,并将更新后的当前目标字符与所述压缩节点的 字符串参数中的后续字符进行匹配;所述字符串参数中包含由至少两个字符 组成的字符串。本专利技术实施例提供的节点压缩装置,包括遍历单元,用于对预置的AC 模式树进行深度优先遍历,根据深度优先遍历的结果在AC模式树的同 一条边 上查找第一节点,以及第二节点,所述第一节点只有一个子节点,所述第二 节点有至少两个子节点,或者所述第二节点为叶子节点;节点压缩单元,对 所述第一节点,所述第二节点,以及所述第一节点至所述第二节点之间的中 间节点进行压缩得到一个压缩节点,所述压缩节点的节点信息中包含字符串 参数,所述字符串参数由所述第一节点的字符参数,所述中间节点的字符参 数,以及所述第二节点的字符参数组成。本专利技术实施例提供的多模匹配装置,包括匹配单元,用于对当前目标字符与压缩节点的字符串参数中的首字符进行匹配;更新单元,用于当当前目标字符与压缩节点的字符串参数中的首字符匹配成功时,根据预置的匹配 目标对所述当前目标字符进行更新,并指示所述匹配单元按照更新后的当前 目标字符继续对所述字符串参数中的后续字符进^f亍匹配。 从以上技术方案可以看出,本专利技术实施例具有以下优点 本专利技术实施例中,在确定了满足条件的第一节点,第二节点,以及中间 节点之后,可以对这些节点进行压缩得到一个压缩节点,该压缩节点的节点 信息中包含字符串参数,且该字符串参数由第一节点的字符参数,中间节点 的字符参数,以及第二节点的字符参数组成,所以本专利技术实施例中存储的压缩节点对应一个字符串,而并不是^f叉对应一个字符,因此能够有效地减少AC 模式树中节点的数目,从而能够减少AC自动机匹配算法需要的存储空间;进一步地,本专利技术另一实施例中,若当前目标字符与压缩节点的字符串 参数中的首字符匹配成功,则会对当前目标字符进行更新,并按照更新后的 当前目标字符继续对所述字符串参数中的后续字符进行匹配,而并不会在每 匹配一个字符之后都对另外一个节点进行匹配,所以无需频繁访问AC才莫式 树,从而提高了多模匹配查找的速度。 附图说明图1为本专利技术实施例中节点压缩方法一个实施例示意图; 图2为本专利技术实施例中节点压缩方法另一实施例示意图; 图3为本专利技术实施例中压缩前的AC模式树示意图; 图4为本专利技术实施例中压缩后的AC模式树示意图; 图5为本专利技术实施例中多模匹配方法一个实施例示意图; 图6为本专利技术实施例中多模匹配方法另一实施例示意图; 图7为本专利技术实施例中节点压缩装置一个实施例示意图; 图8为本专利技术实施例中节点压缩装置另一实施例示意图; 图9为本专利技术实施例中多模匹配装置一个实施例示意图; 图IO为本专利技术实施例中多模匹配装置另一实施例示意图。 具体实施例方式本专利技术实施例提供了 一种节点压缩方法及装置、以及多模匹配方法及装置,用于减少AC自动机匹配算法需要的存储空间。请参阅图1,本专利技术实施例中节点压缩方法一个实施例包括101、 对预置的AC模式树进行深度优先遍历;本实施例中,当AC模式树构建完成之后,则可以对该AC模式树进行深 度优先遍历,即按照该AC模式树的每一条边,按照从根节点到叶子节点的方 向进行遍历,具体的遍历方式可釆用现有技术,此处不作限定。102、 根据深度优先遍历的结果查找第 一节点以及第二节点; 本实施例中,深度优先遍历是针对AC模式树的每一条边,按照从根节点到叶子节点的方向进行遍历,分别查找第一节点和第二节点。例如在对某 一条边X上的节点进行遍历中,寻找该边X上的第一节点,该第一节点是只 有一个子节点的节点,若找到了第一节点,则在该边X上按照朝向叶子节点 的方向对各节点继续进行遍历,直至找到一个第二节点,该第二节点是具有 至少两个子节点,或者为叶子节点的节点,即一种第二节点没有子节点。需要说明的是,在执行深度优先遍历的过程中,并不一定AC模式树的所 有的边上都有满足上述条件的第一节点以及第二节点,例如某一条边上可能 只有根节点和叶子节点这两个节点,对于这种情况,本专利技术实施例中不作考 虑,本专利技术实施例中所针对的情况是AC模式树的某一条边X上,除根节点 外至少有两个节点,这两个节点为父子节点,且父节点(即第一节点) <又有 本文档来自技高网
...

【技术保护点】
一种节点压缩方法,其特征在于,包括: 对预置的AC模式树进行深度优先遍历; 根据深度优先遍历的结果在AC模式树的同一条边上查找第一节点,以及第二节点,所述第一节点只有一个子节点,所述第二节点有至少两个子节点,或者所述第二节点为叶子节点; 对所述第一节点,所述第二节点,以及所述第一节点至所述第二节点之间的中间节点进行压缩得到一个压缩节点,所述压缩节点的节点信息中包含字符串参数,所述字符串参数由所述第一节点的字符参数,所述中间节点的字符参数,以及所述第二节点的字符参数组成。

【技术特征摘要】

【专利技术属性】
技术研发人员:廖恬瑜李星李顺发
申请(专利权)人:成都市华为赛门铁克科技有限公司
类型:发明
国别省市:90[中国|成都]

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

1