CN110874426B - 一种基于模式分类的异构位分割状态机多模匹配方法 - Google Patents

一种基于模式分类的异构位分割状态机多模匹配方法 Download PDF

Info

Publication number
CN110874426B
CN110874426B CN201911032388.2A CN201911032388A CN110874426B CN 110874426 B CN110874426 B CN 110874426B CN 201911032388 A CN201911032388 A CN 201911032388A CN 110874426 B CN110874426 B CN 110874426B
Authority
CN
China
Prior art keywords
state
mode
pattern
state machine
unique
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911032388.2A
Other languages
English (en)
Other versions
CN110874426A (zh
Inventor
唐亚哲
李勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201911032388.2A priority Critical patent/CN110874426B/zh
Publication of CN110874426A publication Critical patent/CN110874426A/zh
Application granted granted Critical
Publication of CN110874426B publication Critical patent/CN110874426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于模式分类的异构位分割状态机多模匹配方法,涉及模式匹配技术领域,尤其涉及网络流量识别,主要是对某些特定流量进行快速识别匹配。本发明在AC算法基础上,改变了传统AC算法输出状态集合的生成规则。并且首先结合模式的唯一性,将模式集合中的模式串分为两类,然后在每类中利用一种启发式的方案将每类中的模式串划分为指定数目的group,最后根据每个group中的内容,分别构建的bit‑split DFA,整个方法克服之前已有方法的内存浪费大,匹配效率低的问题。通过上述方案,本发明能够快速准确地、有效地进行模式识别,并且一定程度上节省内存空间。

Description

一种基于模式分类的异构位分割状态机多模匹配方法
技术领域
本发明属于计算机模式匹配识别领域,特别涉及一种基于模式分类的异构位分割状态机多模匹配方法。
背景技术
模式匹配问题是计算机科学技术中的一个经典问题,其研究内容在搜索引擎、计算机病毒特征码匹配、网络入侵检测等众多领域均有重要价值。
模式匹配在网络入侵检测中的应用很广泛,网络入侵检测系统从计算机网络系统中的若干关键点收集信息,并分析这些信息,看看网络中是否有违反安全策略的行为和遭到袭击的迹象。入侵检测在不影响网络性能的情况下能对网络进行检测,从而提供对内部攻击、外部攻击和误操作的实时保护。深度数据包检测(DPI),它采用模式匹配方法,将每个数据包内容与一组预定义的特征进行匹配,从而发现违背安全策略的行为。入侵检测系统的数据吞吐量和模式匹配方法的好坏有直接的影响。在当前高速发展的网络背景下,目标规则的数量会增加,而规则字符串的长度(这意味着其中的字符数量)可能会有很大的变化。为了克服不同模式长度的问题,提出了基于DFA的字符串匹配方法。尽管在FPGA器件和TCAM方面大家做了很多降低内存需求的工作,但是稀疏内存使用依旧是基于DFA的字符串匹配的主要问题之一。因此,如何提高内存使用效率已经成为目前学界研究的重点。
字符串匹配方案大致可分为三种类型:基于启发式的、基于过滤的和基于自动状态机的字符串匹配方案。
(1)基于启发式的字符串匹配方案可以跳过不匹配的字符,从而加快搜索速度。一个著名的基于启发式的字符串匹配方案是Boyer-Moore算法。通过对要搜索的模式和文本的不同对齐方式执行比较,从而可以快速搜索模式的出现情况。但是,针对大量的目标模式,基于启发式的方案是无效的。(2)基于过滤的字符串匹配方案采用哈希或bloomfilter,对位向量的处理具有较高的内存效率。基于过滤的字符串匹配方案可以快速排除不包含要匹配模式的输入数据。(3)在基于自动的字符串匹配方案中,使用状态和状态之间的状态转换映射多个模式。特别是,基于DFA的字符串匹配方案每次执行固定数量的状态转换。由于存储状态转换需要较大的内存,为了减少存储状态转换的内存需求,提出了基于位分割的DFA字符串匹配方法。
尽管已经开发了新的位分割字符串匹配方案,但是字符串匹配器需要存储匹配向量的大量内存块,这是新体系结构基于位分割字符串匹配方案的缺点。
发明内容
本发明的目的在于提供一种基于模式分类的位分割DFA精确多模匹配方法,以解决上述问题。
为实现上述目的,本发明采用以下技术方案:
一种基于模式分类的异构位分割状态机多模匹配方法,其特征在于,包括以下步骤:
步骤1:读取待匹配模式字符串集合;
步骤2:结合模式的唯一性,将模式集合中的模式串分为两类;
步骤3:在不同的类中,定义一种“距离”,根据这种“距离”将每类中的模式串划分为指定数目的group;
步骤4:根据每个group中的内容,分别构建的bit-split DFA;
步骤5:在线多路并行搜索匹配,构建匹配过程。
进一步的,步骤2的结合模式的唯一性是指将模式集合分为:unique唯一模式和non-unique非唯一模式模式。
进一步的,non-unique非唯一模式为:对于模式字符序列,非唯一模式是其他模式的后缀,或者其他模式是非唯一模式集合中非唯一模式的后缀;unique唯一模式为:对于模式字符序列,唯一模式不是任何其他模式的后缀,其他模式也不是唯一模式集中唯一模式的后缀。
进一步的,步骤3中,定义“距离”来度量每个模式字符串之间的关系,定义新的距离度量Distance_ij,用来评估第i个模式串和第j个模式串映射到相同组的好处,定义如下:
Figure GDA0002309665380000031
其中,stateNum()是一个函数,它计算在一个FSM中表示给定字符串所需的节点总数。
进一步的,步骤3中,利用定义的“距离”来进行模式串分组方法如下:以迭代的方式将剩余的字符串映射到对应的group上;选择一个未分组的模式字符串并将其分配给一个group;该方法定义并使用一个准则来识别和选择首先要处理的最合适的模式字符串,该准则是:与最近的组和与其他组的distance值差异最大的模式字符串优先处理;其中元素和group之间的距离定义如下:
Figure GDA0002309665380000032
其中,groupi表示分到第i个group的所有模式串的集合;stateNum(groupi)表示,所有groupi中的所有模式字符串所需的状态总数。
进一步的,步骤4中,对于某个位置i,采取下列步骤来构建二进制状态机Bi(0≤i≤7):
4)从D的起始状态0开始,看所有可能的后继状态;
5)把D的后继状态分割成两个集合,一个是输入比特位为1时到达的后继状态集合,另一个是输入比特位为0时的后继状态集合;这两个集合可能成为Bi中的两个新状态,称之为Bi状态;
6)过程2)重复进行,直到没有新的Bi状态产生且所有已经存在的Bi状态都处理完毕,到此二进制状态机Bi构建完成;Bi中的每个状态至少映射到D中的一个状态;构建完成之后,如果Bi中由D映射过来的状态集合中包含没有输出的状态,将其从该状态集合中剔除,只保留有输出的状态;
4)将对应的单字节位分割状态机Bi中相邻的K个边合并成一个边,即状态机每次处理K bits;在新建的状态机中,每个状态拥有K个状态集合,代表当前状态依次处理K个字节的情况;各个状态机彼此独立,每个状态机一次读取K位,八个状态机同时工作每次能处理K个字节;此外,新建的状态机bi中两个状态是否为同一状态的评判标准是:跳转到达的终极状态相同且状态转移过程中对应的状态集合一致相同。
进一步的,步骤5中,每路匹配的起始位置有一个字符的偏移,假设第一路从字符a开始搜索,那么第二路则从a的下一个字符b开始搜索,如此类推,最后取多路电路匹配的并集。
与现有技术相比,本发明有以下技术效果:
本发明结合模式的唯一性,将模式集合中的模式串分为两类,然后在每类中利用一种启发式的方案将每类中的模式串划分为指定数目的group,以此来减少状态节点数目,最后根据每个group中的内容,分别构建的bit-split DFA,也就说,本发明构建不同状态机时候是按需分配空间而不是使用固定大小空间,整个方法克服之前已有方法的内存浪费大,匹配效率低的问题。
附图说明
图1为具体实施方案的架构示意图;
图2匹配过程输入示意图;
图3二进制自动状态机举例示意图;
图4为本发明匹配过程举例示意图。
具体实施方式
以下结合附图,对本发明进一步说明:
提出的架构如图1所示,输出状态由部分匹配向量(PMV)得出。根据提出的框架结构我们可以得到第m个TILE上的第n个FSM所需内存消耗为:
Figure GDA0002309665380000051
其中b是FSM中每次处理的比特数。stateNumn和Wide_PMVm分别表示状态总数和PMV字节宽度。根据总体架构我们就能得出最终总共所需内存数量:
Figure GDA0002309665380000052
其中G是group的数量。为了求解此问题,我们提出一种启发式的方案来最小化内存使用空间。具体思路为:使用目标模式的唯一性将所有目标规则字符划分为两类。在此基础上,提出了一种独特模式类别字符串间距离的估计方法。然后使用这个距离为每个规则找到一个首选类,让尽可能多的模式串分到一个group中并且此group分解为bit-splitDFA时候状态数越少越好。最后,每个类将在不同大小的Finite-state machine(FSM)上处理。
请参阅图1至图4,基于模式分类的异构位分割状态机多模匹配方法,包括以下步骤:
步骤一:读取待匹配模式文件;
步骤二:结合模式的唯一性,将模式集合中的模式串分为两类。non-unique非唯一模式为对于模式字符序列,非唯一模式可以是其他模式的后缀,或者其他模式可以是非唯一模式集合中非唯一模式的后缀。unique唯一模式为对于模式字符序列,唯一模式不是任何其他模式的后缀,其他模式也不是唯一模式集中唯一模式的后缀。例如,假设集合中有四个非惟一模式{’abcd’,’cd’,’d’,‘fg’}。模式“cd”和“d”是模式“abcd”的后缀。在非唯一模式的集合中,不是所有的模式都是非唯一的。但是,对于具有非惟一模式的集合,可以同时匹配多个模式,因为模式及其后缀是同时匹配的。
步骤三:我们定义了一个新的“距离”来度量每个模式字符串之间的关系。如果需要两个以上的group,那么方法将考虑与已经分配给第一个组的模式字符串关联最小的模式字符串。然后将所选字符串分配给第二组。以类似的方式,为后续group选择与前面分配的所有模式字符串关联距离最小的字符串。这个过程一直持续到所有group的第一个成员被确定为止。具体的逻辑显示在伪代码Step1中。
Step 1
Figure GDA0002309665380000061
利用定义的“距离”来进行模式串分组方法如下:该步骤以迭代的方式将剩余的字符串映射到对应的group上。首先,选择一个未分组的模式字符串并将其分配给一个group。选择未分组的模式字符串的选择顺序对结果影响很大。该方法定义并使用一个准则来识别和选择首先要处理的最合适的模式字符串。该准则是:与最近的组和与其他组的distance值差异最大的模式字符串优先处理。该部分的逻辑如Step2所示。
Step 2
Figure GDA0002309665380000071
步骤四:根据每个group中的模式字符串,通过基于位分割思想构建二进制状态机。
输入:一个AC状态机base,位位置pos。输入字符对应的从左到右编号依次为0,1,2,3,4,5,6,7的比特位。Base.move[][]是转移函数,base.output[]是输出函数。
输出:二进制状态机b[pos],它的转移函数是move[][],n是在位置pos上接受一个比特位的状态总数。算法伪代码如下:
Bit-spilt DFA
Figure GDA0002309665380000072
Figure GDA0002309665380000081
步骤五:为了避免漏检,可以采用K路并行结构循环并行。
例如:
Figure GDA0002309665380000091
以四路并行结果为例说明,它们的结构都相同,只是每路匹配的起始位置有一个字符的偏移。假设第一路从字符a开始搜索,那么第二路则从a的下一个字符b开始搜索,如此类推,最后取4路电路匹配的并集,从而覆盖了所有的情形,不会漏掉任何的模式串。
参照附图1、2、3和4对本发明整体给出具体实施方式。
本发明总体实施方案架构如图1所示,整个架构分为上下两部分,上部分先将模式字符串进行unique和non-unique分类。下部分将分为两类的模式各自根据定义的距离再进行分组,最终将每组在状态机上实现。整个过程又分为线下模式自动状态机生成,线上进行匹配,匹配时候如图2所示,不同的状态机每次读取固定固定位置的输入。
整个流程之间的协作过程说明如下:
首先,读取待匹配模式字符串集合文本。
其次,结合模式的唯一性,将模式集合中的模式串分为两类。例如可以将模式集合{‘abcd’,’abfg’,’fg’,’cd’,’cfg’,’d’}分为两类:unique集合{‘abcd’,’abfg’,’cfg’};non-unique集合{’fg’,’cd’,’d’}。这一步的结果为下一步做好了准备。
再次,为了达到节约内存目的,从两方面进行优化。提出的一种启发式的group分配方案,目标就是尽可能减少最终状态机的状态节点数量。
接着,根据改进的状态机,通过基于位分割思想构建二进制状态机。虽然之前K步长状态机通过增加每次跳转的字符个数,改善了之前AC状态机多次访问外部存储器的问题,但同时也增大了状态机的存储量,因为K步长状态机中每个状态在接受K个字符时,会产生28K种选择,而实际应用中只用到了其中少许的字符组合,因而造成了更大的内存浪费。
举例说明如何构建二进制状态机,如表1所示。令经典的AC算法创建的状态机为D,根据D可以提取八位的ASCII码中的每一位来构建它自己的二进制状态机,每个状态机接收的输入只有0和1。分别以B0,B1,…,B7代表这八个状态机,每个状态机仅负责一个八位输入字符中的一位。假设待处理模式集合S={he,she,his,hers},首先很容易得到集合中所有字符的二进制表示:
以构建B3为例来说明一个来自AC状态机的二进制状态机的构建过程。图2所示,从D中的0状态,即D状态0开始,为B3构建一个0状态,并将其状态集合初始化为{0},我们可以称该0状态为带着状态集合{0}的B3状态0。在二进制状态机中,每个状态对应一个状态集合,集合中的每个数字代表D中的一个状态,只是在最后的处理中除去了不包含输出的状态。从D状态0出发,分别读取对应字符的第三个比特位0或者1作为输入。
表1模式串的二进制状态
he she his hers
B0 0 0 0 0 0 0 0 0 0 0 0 0
B1 1 1 1 1 1 1 1 1 1 1 1 1
B2 1 1 1 1 1 1 1 1 1 1 1 1
B3 0 0 1 0 0 0 0 1 0 0 1 1
B4 1 0 0 1 0 1 1 0 1 0 0 0
B5 0 1 0 0 1 0 0 0 0 1 0 0
B6 0 0 1 0 0 0 0 1 0 0 1 1
B7 0 1 1 0 1 0 1 1 0 1 0 1
最后,在搜索匹配阶段,我们利用八个新的状态机b0-b7进行举例来说明搜索匹配的过程如图3所示。先利用改进的K步长状态机进行搜索匹配,假设读入数据流“hxhe”,依次遍历了原状态机的0状态,0状态和1状态,在最后遍历到达的状态1,成功匹配出模式串“he”。由于每个新的二进制状态机一次负责两个输入字符对应的比特位,按照图4左边显示的输入文本的二进制编码表,可以通过在状态机b0-b7上不停地搜索跳转来完成匹配。比如在二进制状态机b3上进行搜索匹配时,我们只需要关注输入流的第三位,即“0100”。查询多字节位分割状态机b3,依次输入01,00,跳转过程中涉及的状态依次为b3状态2{}{},b3状态8{}{2,5}。类似地,可以得到遍历其他多字节位分割状态机的情况。在整个搜索匹配过程中,b0-b7并行独立工作,最终的匹配结果取b0-b7相应状态的状态集合的交集。必须要注意的是,在取交集时,集合一定要对应一致。第一个状态集合取交集,即{2,7,5}∩{2,7,5}∩{}∩{}∩{}∩{7}∩{2}∩{}={},从而可知在第一个输入字节时状态机没有发生模式串匹配,而由第二个取交集,即{2,7,5,9}∩{2,7,5,9}∩{2}∩{2,5}∩{2,7}∩{2,5}∩{2}∩{2}={2},且状态机D中有output(2)=“he”,可以得出结论:在输入第二个字节时,整个状态机成功匹配出模式串“he”,这个匹配结果和AC状态机及原K步长状态机的匹配结果相同。
所以,基于位分割的状态机每次可以循环读取K字节,由于它处理的元素单位不再是字符而是位,所以每个状态只有2K种后继状态,在保持K步长状态机匹配效率的同时降低了内存存储量。例如,一个每次能处理两个字节的位分割状态机,每次循环读取两位,每个状态只有22种后继状态,而原来的K步长状态机却有216种。大大提高了效率。另外经过对内存的优化,使得本方法可以节约更多的内存。
本方法不限于仅在网络流量识别方面使用,也可根据具体情况在各个领域多模匹配时候使用。
尽管为说明目的公开了本发明的具体实施方案和附图,其目的在于帮助理解本发明的内容并据以实施,但那是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书实施方案和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (3)

1.一种基于模式分类的异构位分割状态机多模匹配方法,其特征在于,包括以下步骤:
步骤1:读取待匹配模式字符串集合;
步骤2:结合模式的唯一性,将模式集合中的模式串分为两类;
步骤3:在不同的类中,定义一种“距离”,根据这种“距离”将每类中的模式串划分为指定数目的group;
步骤4:根据每个group中的内容,分别构建bit-split DFA;
步骤5:在线多路并行搜索匹配,构建匹配过程;
步骤2的结合模式的唯一性是指将模式集合分为:unique唯一模式和non-unique非唯一模式;
non-unique非唯一模式为:对于模式字符序列,非唯一模式是其他模式的后缀,或者其他模式是非唯一模式集合中非唯一模式的后缀;unique唯一模式为:对于模式字符序列,唯一模式不是任何其他模式的后缀,其他模式也不是唯一模式集中唯一模式的后缀;
步骤3中,定义“距离”来度量每个模式字符串之间的关系,定义新的距离度量Distance_ij,用来评估第i个模式串和第j个模式串映射到相同组的好处,定义如下:
Figure FDA0003650505160000011
其中,stateNum()是一个函数,它计算在一个FSM中表示给定字符串所需的节点总数;
步骤3中,利用定义的“距离”来进行模式串分组方法如下:以迭代的方式将剩余的字符串映射到对应的group上;选择一个未分组的模式字符串并将其分配给一个group;该方法定义并使用一个准则来识别和选择首先要处理的最合适的模式字符串,该准则是:与最近的组和与其他组的distance值差异最大的模式字符串优先处理;其中元素和group之间的距离定义如下:
Figure FDA0003650505160000012
其中,groupi表示分到第i个group的所有模式串的集合;stateNum(groupi)表示,所有groupi中的所有模式字符串所需的状态总数。
2.根据权利要求1所述的一种基于模式分类的异构位分割状态机多模匹配方法,其特征在于,步骤4中,对于某个位置i,采取下列步骤来构建二进制状态机Bi(0≤i≤7):
1)从D的起始状态0开始,看所有可能的后继状态;
2)把D的后继状态分割成两个集合,一个是输入比特位为1时到达的后继状态集合,另一个是输入比特位为0时的后继状态集合;这两个集合可能成为Bi中的两个新状态,称之为Bi状态;
3)过程2)重复进行,直到没有新的Bi状态产生且所有已经存在的Bi状态都处理完毕,到此二进制状态机Bi构建完成;Bi中的每个状态至少映射到D中的一个状态;构建完成之后,如果Bi中由D映射过来的状态集合中包含没有输出的状态,将其从该状态集合中剔除,只保留有输出的状态;
4)将对应的单字节位分割状态机Bi中相邻的K个边合并成一个边,即状态机每次处理Kbits;在新建的状态机中,每个状态拥有K个状态集合,代表当前状态依次处理K个字节的情况;各个状态机彼此独立,每个状态机一次读取K位,八个状态机同时工作每次能处理K个字节;此外,新建的状态机bi中两个状态是否为同一状态的评判标准是:跳转到达的终极状态相同且状态转移过程中对应的状态集合一致相同。
3.根据权利要求1所述的一种基于模式分类的异构位分割状态机多模匹配方法,其特征在于,步骤5中,每路匹配的起始位置有一个字符的偏移,假设第一路从字符a开始搜索,那么第二路则从a的下一个字符b开始搜索,如此类推,最后取多路电路匹配的并集。
CN201911032388.2A 2019-10-28 2019-10-28 一种基于模式分类的异构位分割状态机多模匹配方法 Active CN110874426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911032388.2A CN110874426B (zh) 2019-10-28 2019-10-28 一种基于模式分类的异构位分割状态机多模匹配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911032388.2A CN110874426B (zh) 2019-10-28 2019-10-28 一种基于模式分类的异构位分割状态机多模匹配方法

Publications (2)

Publication Number Publication Date
CN110874426A CN110874426A (zh) 2020-03-10
CN110874426B true CN110874426B (zh) 2022-08-09

Family

ID=69717964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911032388.2A Active CN110874426B (zh) 2019-10-28 2019-10-28 一种基于模式分类的异构位分割状态机多模匹配方法

Country Status (1)

Country Link
CN (1) CN110874426B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174261A (zh) * 2006-11-03 2008-05-07 北京航空航天大学 用于多正则表达式联合搜索的扩展有限状态机及搜索方法
CN101551803A (zh) * 2008-03-31 2009-10-07 华为技术有限公司 一种建立模式匹配状态机、模式识别的方法和装置
CN101645069A (zh) * 2008-08-04 2010-02-10 中国科学院计算机网络信息中心 一种多模式匹配中正则表达式存储压缩方法
US7702629B2 (en) * 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
CN102904951A (zh) * 2012-10-12 2013-01-30 哈尔滨工业大学深圳研究生院 基于云系统的数据包检测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702629B2 (en) * 2005-12-02 2010-04-20 Exegy Incorporated Method and device for high performance regular expression pattern matching
CN101174261A (zh) * 2006-11-03 2008-05-07 北京航空航天大学 用于多正则表达式联合搜索的扩展有限状态机及搜索方法
CN101551803A (zh) * 2008-03-31 2009-10-07 华为技术有限公司 一种建立模式匹配状态机、模式识别的方法和装置
CN101645069A (zh) * 2008-08-04 2010-02-10 中国科学院计算机网络信息中心 一种多模式匹配中正则表达式存储压缩方法
CN102904951A (zh) * 2012-10-12 2013-01-30 哈尔滨工业大学深圳研究生院 基于云系统的数据包检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种节约内存的中文多模式匹配算法;侯整风 等;《微型机与应用》;20130710;第32卷(第13期);第53-57页 *
采用集合切分编码的大容量模式匹配算法;陈围 等;《计算机应用研究》;20110615;第28卷(第6期);第2067-2069页 *

Also Published As

Publication number Publication date
CN110874426A (zh) 2020-03-10

Similar Documents

Publication Publication Date Title
US10496680B2 (en) High-performance bloom filter array
US9984144B2 (en) Efficient lookup of TCAM-like rules in RAM
US7061874B2 (en) Method, system and computer program product for classifying packet flows with a bit mask
US5946679A (en) System and method for locating a route in a route table using hashing and compressed radix tree searching
Li et al. Tuple space assisted packet classification with high performance on both search and update
CN102333036B (zh) 一种实现高速路由查找的方法和系统
JP2003196295A (ja) ツリー型知識ベース検索のルックアップ・パフォーマンスを向上させる方法
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
CN111817978B (zh) 一种流分类方法及装置
Li et al. Hard: Bit-split string matching using a heuristic algorithm to reduce memory demand
Abbasi et al. MBitCuts: optimal bit-level cutting in geometric space packet classification
US20220374733A1 (en) Data packet classification method and system based on convolutional neural network
CN106209614B (zh) 一种网包分类方法和装置
CN101222434B (zh) 存储策略控制列表、策略搜索方法和三态寻址存储器
CN100472427C (zh) 一种数据包递归流分类方法
Zhang et al. Fast online packet classification with convolutional neural network
CN101500012A (zh) 一种报文分类方法和系统
Xin et al. FPGA-based updatable packet classification using TSS-combined bit-selecting tree
CN110874426B (zh) 一种基于模式分类的异构位分割状态机多模匹配方法
Nikolenko et al. How to represent IPv6 forwarding tables on IPv4 or MPLS dataplanes
US7860712B2 (en) Method of storing data in a memory circuit for AHO-corasick type character recognition automaton and corresponding storage circuit
JPH11102589A (ja) 連想メモリモジュール
Zhang et al. Pextcuts: A high-performance packet classification algorithm with pext cpu instruction
Alimohammadi et al. Clustering-based many-field packet classification in software-defined networking
Zhang et al. Using XorOffsetTrie for high-performance IPv6 lookup in the backbone network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant