CN102184197B - 基于智能有限自动机的正则表达式匹配方法 - Google Patents

基于智能有限自动机的正则表达式匹配方法 Download PDF

Info

Publication number
CN102184197B
CN102184197B CN201110101411A CN201110101411A CN102184197B CN 102184197 B CN102184197 B CN 102184197B CN 201110101411 A CN201110101411 A CN 201110101411A CN 201110101411 A CN201110101411 A CN 201110101411A CN 102184197 B CN102184197 B CN 102184197B
Authority
CN
China
Prior art keywords
state
regular expression
sfa
xfa
finte
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.)
Expired - Fee Related
Application number
CN201110101411A
Other languages
English (en)
Other versions
CN102184197A (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.)
HUNAN YIGU TECHNOLOGY DEVELOPMENT CO., LTD.
Original Assignee
HUNAN YIGU INFORMATION TECHNOLOGY DEVELOPMENT Co Ltd
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 HUNAN YIGU INFORMATION TECHNOLOGY DEVELOPMENT Co Ltd filed Critical HUNAN YIGU INFORMATION TECHNOLOGY DEVELOPMENT Co Ltd
Priority to CN201110101411A priority Critical patent/CN102184197B/zh
Publication of CN102184197A publication Critical patent/CN102184197A/zh
Application granted granted Critical
Publication of CN102184197B publication Critical patent/CN102184197B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于智能有限自动机(Smart Finite Automaton,SFA)的正则表达式匹配方法:选取合适的正则表达式规则集;构建智能有限自动机;通过智能有限自动机匹配方法对每个读入的测试集分别进行字符串匹配,并对匹配结果进行统计。实验结果表明,与XFA相比,SFA在存储空间开销上减少了44.1%,在存储器访问次数上减少了69.1%,提高了正则表达式匹配的时空效率。解决了XFA存在的冗余迁移边问题,能够有效的节省存储空间,同时也提高了XFA的性能。为当前网络带宽和业务流量迅猛增长环境下,正则表达式匹配方法应用时面临的线速数据包处理的吞吐量要求和存储空间需求提供了一种行之有效的解决方案。

Description

基于智能有限自动机的正则表达式匹配方法
技术领域
本发明涉及电子计算机网络技术,具体是一种基于智能有限自动机的正则表达式匹配方法。
背景技术
网络入侵检测与防御系统(Network Intrusion Detection and PreventionSystems,NIDS/NIPS)是网络安全防御的重要手段,即通过实时监测网络流量,检查每个数据包的头部信息和有效载荷(即数据包内容),识别和阻断网络可疑行为。NIDS/NIPS的核心是深度数据包检测(Deep Packet Inspection,DPI),即采用特征匹配算法,将每个数据包内容与一组预定义的特征进行匹配。DPI技术不仅应用于NIDS/NIPS,而且还应用于应用层数据包分类、P2P流量识别、基于内容的流量计费等。
特征匹配算法可分为字符串匹配算法和正则表达式匹配算法。由于正则表达式具有丰富灵活的表达能力,当前的主流NIDS/NIPS,例如Snort[2]、Bro[3]、TippingPoint IPS、Cicso IOS IPS等,已采用正则表达式来描述复杂攻击特征,以及采用正则表达式匹配算法来替代字符串匹配算法。正则表达式匹配算法采用有限自动机来表示一组已知攻击的特征正则表达式。有限自动机分为确定型有限自动机(Deterministic Finite Automata,DFA)和非确定型有限自动机(Nondeterministic Finite Automata,NFA)。DFA具有时间高效等优点,即匹配速度快,但是存在存储空间开销大等缺点;而NFA具有存储空间高效等优点,但是存在匹配速度慢等缺点。如何设计一种时空高效的有限自动机成为正则表达式匹配算法的关键间题。
随着网络带宽和业务流量的迅猛增长,正则表达式匹配算法面临高速海量数据包处理的高性能挑战。一方面,正则表达式匹配算法要求实现10-40Gbps线速数据包处理;另一方面,正则表达式匹配算法要求有限自动机存储在小容量的快速存储器(例如片上SRAM)上,从而进一步提高其吞吐量。DFA采用五元组定义,即D=(Q,∑,δ,q0,F),其中Q是状态集合,∑是输入字母表集合,δ是状态迁移函数,q0是起始状态,F是接受状态集合,且
Figure BDA0000056764190000021
当输入字符a时,对于任意状态q∈Q,根据状态迁移函数δ,D迁移到下一状态q′=δ(q,a)。针对正则表达式的DFA构建,首先采用Thompson构造法将正则表达式转化为NFA,其次采用子集构造法将NFA转化为等价的DFA。图1给出了正则表达式{.*ab.*cd}的单独DFA,其中状态空间为{P,Q,R,S,T},字母表为∑={a,b,c,d}。例如,起始状态为q0=P,状态迁移函数为δ(P,a)=Q、δ(Q,b)=R等,且接受状态T。
在高速网络环境中,随着特征规则集日益庞大,DPI采用一组单独DFA进行特征匹配,导致处理时间增加、匹配效率降低,因而DPI采用联合DFA来表示一组DFA。但是,联合DFA带来状态空间爆炸问题,即多个单独DFA的状态排列组合来记录部分匹配结果,导致联合DFA难以存储在小容量的快速存储器上执行,增加慢速存储器访问次数,从而降低正则表达式匹配算法的吞吐量。
图2给出了正则表达式{.*ef.*gh}的单独DFA,其中状态空间为{V,W,X,Y,Z},字母表为∑={e,f,g,h}。图3给出了正则表达式{.*ab.*cd}和{.*ef.*gh}的联合DFA。为了清晰起见,图3省略了其他状态到初始状态的迁移边。图1和图2显示,单独DFA分别包含5个状态;而图3显示,联合DFA包含16个状态。联合DFA的状态个数与正则表达式中通配符(例如“*”)的个数密切相关。由于通配符,即星号“*”,表示任意字符,当联合DFA表示正则表达式{.*ab.*cd}和{.*ef.*gh}时,两个单独DFA的状态进行叉积组合,产生指数级增长的额外状态个数,造成DFA状态空间爆炸。
为了消除联合DFA的状态空间爆炸问题,Smith等人提出了扩展有限自动机(XFA),即采用辅助变量替代额外状态来记录部分匹配结果,执行简单操作指令来检查匹配是否成功。如果联合DFA的状态个数小于单独DFA的状态数之和,则每个单独DFA是非歧义的;反之,如果每个单独DFA是非歧义的,则联合DFA也是非歧义的。歧义的联合DFA采用歧义状态来记录部分匹配结果的所有排列组合。针对歧义的联合DFA,XFA是在DFA状态上增加辅助比特变量,消除歧义状态,并在接受状态上执行比较指令,检查辅助比特变量是否设置。XFA匹配过程是:当读入一个字符时,XFA查找当前状态的相应迁移边,迁移到下一状态;执行下一状态的操作指令,检查辅助变量是否设置来判断匹配是否成功。
XFA采用七元组定义,即X=(Q,V,∑,δ,U,(q0,v0),F),其中Q是状态集合,V是辅助变量集合,∑是输入字母表,δ:Q×∑→Q是状态迁移函数,U:Q×V→V是每个状态的更新函数,q0是起始状态,v0是辅助变量的初始值,
Figure BDA0000056764190000031
是接受状态集合。DFA是根据当前状态和输入字符来迁移到下一个状态,而XFA是根据当前状态、辅助变量和输入字符来迁移到下一个状态并更新相应的辅助变量。
例如,对于正则表达式{.*ab.*cd}和{.*ef.*gh},图1和图2中的两个单独DFA的状态个数之和为10,而图3中的联合DFA的状态个数为16,因而联合DFA是歧义的。针对正则表达式{.*ab.*cd},XFA采用1个比特辅助变量Bit1来记录部分匹配结果ab;针对正则表达式{.*ef.*gh},XFA采用1个比特辅助变量Bit2来记录部分匹配结果ef。图4给出了正则表达式{.*ab.*cd}和{.*ef.*gh}的联合XFA,即采用9个状态和2个比特辅助变量,与图3中的联合DFA是等价的,且消除了其状态空间爆炸。
XFA虽然消除了DFA状态空间爆炸问题,但是存在冗余迁移边问题,导致存储空间需求大,从而增加存储器访问次数,限制了XFA的性能。为了简明指出冗余迁移边问题,当分别读入字符串为abababcd和abcdabcdabcdefgh,给出图5和图6的XFA示例。
图5给出了正则表达式{.*ab.*cd}的XFA,其中包含5个状态和17条迁移边。当读入字符串abababcd时,XFA的状态迁移序列为P→Q→R→Q→R→Q→R→S→T;当第1次到达状态R时,辅助变量Bit1设置为1,表示等待到达状态S和T,检查指令语句来指出匹配成功;由于XFA未记录到达状态R,即已部分匹配字符串ab,而等待后续字符串cd,XFA的迁移状态中2次出现重复状态Q和R,导致不必要的状态迁移,从而产生额外的存储器访问次数和状态查找等开销。
图6给出了正则表达式{.*abcd.*efgh}的XFA,其中包含9个状态和33条迁移边。当读入字符串abcdabcdabcdefgh时,XFA的状态迁移序列为0→1→2→3→4→1→2→3→4→1→2→3→4→5→6→7→8,其中状态1、2、3和4重复出现3次;当第1次到达状态3时,辅助变量Bit1设置为1,表示已部分匹配字符串abcd,而等待后续字符串efgh;由于XFA未判断辅助变量Bit1是否设置,XFA需要迁移不必要的状态,导致存储器访问次数和状态查找等额外开销。造成不必要的状态迁移的根本原因是XFA存在冗余失效迁移边(见图5和图6中所示的虚线迁移边),并未判断辅助变量是否设置。
发明内容
本发明所要解决的技术问题是,解决XFA的冗余迁移边问题,在XFA基础上,增加辅助变量的判断指令,消除不必要的状态迁移,从而减少XFA的存储空间开销和提高其匹配效率。
为解决上述问题,本发明的技术方案是,基于智能有限自动机的正则表达式匹配方法为:
1)选取合适的正则表达式规则集;
2)构建智能有限自动机(Smart Finite Automaton,SFA);
3)通过智能有限自动机匹配方法对每个读入的测试集分别进行字符串匹配,并对匹配结果进行统计。
所述的正则表达式规则集选取方法为,采用100个规则集,每个规则集包含100条形式为{.*SubStr1.*SubStr2....*SubStrN}的正则表达式,其中子串SubStr1、SubStr2和SubStrN等具有相同的长度,测试集为1MB的字符串集。
智能有限自动机的构建过程是根据所选取的合适正则表达式规则集,通过智能有限自动机构造方法构造有限自动机并同时生成状态集。
智能有限自动机构造过程分为两个步骤:
1)在扩展有限自动机的分支迁移边上增加操作指令来判断是否状态迁移,消除不必要的状态迁移;
2)消除扩展有限自动机中的回退迁移边。
与XFA相比,SFA在迁移边条数上减少了56%,在存储空间开销上减少了44.1%,在存储器访问次数上减少了69.1%,而在匹配时间上减少了11%,提高了正则表达式匹配的时空效率。
附图说明
图1正则表达式{.*ab.*cd}的单独DFA;
图2正则表达式{.*ef.*gh}的单独DFA;
图3正则表达式{.*ab.*cd}和{.*ef.*gh}的联合DFA;
图4正则表达式{.*ab.*cd}和{.*ef.*gh}的的联合XFA;
图5正则表达式{*ab.*cd}的XFA;
图6正则表达式{.*abcd.*efgh}的XFA;
图7正则表达式{.*ab.*cd}的SFA;
图8正则表达式{.*abcd.*efgh}的SFA;
图9SFA和XFA的迁移边条数比较,(a)相同子串长度,不同通配符个数,(b)相同通配符个数,不同子串个数
图10SFA和XFA的指令条数比较,(a)相同子串长度,不同通配符个数,(b)相同通配符个数,不同子串个数;
图11SFA和XFA的存储空间开销比较,(a)相同子串长度,不同通配符个数,(b)相同通配符个数,不同子串个数;
图12SFA和XFA的状态迁移次数比较,(a)相同子串长度,不同通配符个数,(b)相同通配符个数,不同子串个数;
图13SFA和XFA的匹配时间比较,(a)相同子串长度,不同通配符个数,(b)相同通配符个数,不同子串个数。
具体实施方式
为了解决XFA的冗余迁移边问题,本文提出了智能有限自动机(SFA),即在XFA基础上,增加辅助变量的判断指令,消除不必要的状态迁移,从而减少XFA的存储空间开销和提高其匹配效率。SFA的灵感来源是基于对DFA状态迁移的观察:如图1所示,当读入字符串abababcd时,DFA的状态迁移序列为P→Q→R→R→R→R→R→S→T,其中状态R重复出现5次;由于DFA的状态R具有记忆功能,即记录已部分匹配字符串ab,等待后续字符串cd,当读入非cd的字符串,DFA始终迁移到状态R,而不会回退到R之前的状态P或Q。因此,XFA虽然采用辅助变量和操作指令来消除DFA状态空间爆炸问题,但是也删除了状态的记忆功能。基于上述观察,本文的SFA是利用辅助变量,增加XFA迁移边的记忆功能,从而避免不必要的状态迁移。
SFA的构建过程是:1)在XFA的分支迁移边上增加操作指令来判断是否状态迁移,从而消除不必要的状态迁移;2)消除XFA中回退迁移边,从而减少XFA的存储空间开销。在XFA中,迁移边分为向前迁移边(ForwardingTransition)和交叉迁移边(Crossing Transition)。向前迁移边是指从深度为i的节点指向深度为i+1的节点的迁移边;而交叉迁移边是指从深度为i的节点指向深度为j的节点的迁移边,且i<=j。分支迁移边是指从深度为0的节点指向深度为1的节点的向前迁移边。例如,图5中的迁移边a:P→Q和c:P→S是分支迁移边。回退迁移边是指从中间状态i指向中间状态j的交叉迁移边或者从前缀状态指向同一分支的中间状态的交叉迁移边,其i≠j。前缀状态是指设置辅助变量为1的状态,中间状态是除了初始状态、接受状态和前缀状态的其他状态。例如,图5中的状态R是前缀状态、状态Q和S是中间状态,迁移边c:Q→S和a:S→Q是回退迁移边,而迁移边c:R→S不是回退迁移边。因此,在分支迁移边上,增加判断操作指令,即if(Bit)transit表示当辅助变量Bit设置为1时执行状态迁移,或者if(!Bit)transit表示当辅助变量Bit未设置为1时执行状态迁移,从而可判断是否查找指定的状态迁移及下一个状态。当分支迁移边的判断操作指令表示不执行状态迁移时,SFA保持当前状态不变,从而减少迁移边的存储空间访问次数,提高正则表达式匹配的效率。
图7给出了正则表达式{.*ab.*cd}的SFA,其中包含5个状态和13条迁移边。如图7所示,在分支迁移边a:P→Q上增加了判断操作指令if(!Bit1)transit,在分支迁移边c:P→S上增加了判断操作指令if(Bit1)transit,从而过滤掉不必要的状态迁移。与图5中DFA相比,SFA具有相同的状态个数,但是其迁移边条数从17减至13。图8给出了正则表达式{.*abcd.*efgh}的SFA,其中包含9个状态和25条迁移边。如图8所示,在分支迁移边a:0→1和e:0→5上分别增加了相应的判断操作指令。与图6中DFA相比,SFA的迁移边条数从33减至25。实验结果表明,当正则表达式规则数量更多且更复杂时,SFA虽然在少量迁移边上增加了判断操作指令,但是在存储空间等方面显著减少。
当读入字符串abababcd时,图7中SFA的匹配过程是:当读入字符a时,由于辅助变量Bit1设置为0,初始状态P执行判断操作指令,迁移到状态Q;当读入字符b时,状态Q迁移到前缀状态R,并设置辅助变量Bit1为1;当读入字符a时,状态R迁移到初始状态P;当读入字符b、a和b时,由于辅助变量Bit1设置为1,初始状态P执行判处操作指令,不迁移到其他状态,停留在初始状态P;当读入字符c时,由于辅助变量Bit1设置为1,初始状态P执行判处操作指令,迁移到状态S;最后,当读入字符d时,状态S迁移到接受状态T,并检查辅助变量是否设置为1,从而匹配正则表达式{.*ab.*cd}。因而,图7中SFA的状态迁移序列为P→Q→R→P→P→P→P→S→T,其存储器访问次数仅为5次,而少于XFA的8次。类似地,当读入字符串abcdabcdabcdefgh时,图8中SFA的状态迁移序列为0→1→2→3→4→0→0→0→0→0→0→0→0→5→6→7→8,其存储器访问次数仅为9次,而少于XFA的16次。
本发明采用C/C++设计实现了XFA和SFA,并运行在CPU为Intel CeleronCPU 1.3GHZ、内存为512MB的计算机上。在软件模拟实验中,本文在不同通配符(星号*)个数和不同子串长度的条件下评估正则表达式匹配算法的时间效率指标。空间效率指标包括状态个数、迁移边条数、指令条数和存储空间开销等;而时间效率指标包括状态迁移次数和匹配时间等。在评估数据集中,采用100个规则集,且每个规则集包含100条形式为{.*SubStr1.*SubStr2....*SubStrN}的正则表达式,其中子串SubStr1、SubStr2和SubStrN等具有相同的长度,而测试集为1MB的字符串集。
表1给出了XFA和SFA的状态个数。表1(a)和1(b)分别是在不同通配符个数和不同子串长度的条件下XFA和SFA的状态个数。表1显示,SFA和XFA具有相同的状态个数。
Figure BDA0000056764190000091
表1
SFA和XFA的迁移边条数比较如图9所示,与XFA相比,SFA在迁移边条数上减少了56%;随着星号个数或子串长度的增加,SFA减少的冗余迁移边条数比率也增多,即从33.8%增至56%。
图10给出了SFA和XFA的指令条数比较。SFA和XFA均采用相同的操作指令来执行状态迁移或匹配检查等,由专用嵌入式硬件(例如GPU/SIMD)支持。图10表明,与XFA相比,由于在分支迁移边上增加额外的判断操作指令,SFA的操作指令条数增多;随着星号个数的增加,SFA的指令条数也增加;但是,随着子串长度的增加,SFA的指令条数保持恒定不变。
图11给出了SFA和XFA的存储空间开销比较。存储空间开销是由状态个数、迁移边条数、操作指令条数和辅助变量个数所决定的。在相同的实验条件下,SFA与XFA的状态个数和辅助变量个数是相同的;SFA的迁移边条数少于XFA,而SFA的操作指令条数多于XFA。因而,存储空间开销是SFA空间效率的关键指标。图11表明,与XFA相比,SFA在存储空间开销上减少了44.1%;随着星号个数或子串个数的增加,SFA减少的存储空间开销也增多,即从21%增至44.1%。
图12给出了SFA和XFA的状态迁移次数比较。状态迁移次数主要反映正则表达式匹配算法的存储器访问次数,即存储器带宽需求。由于嵌入式存储器的带宽受限和代价昂贵,减少状态迁移次数有助于减少存储器带宽需求,从而提高正则表达式匹配的性能和硬件开销。图12表明,与XFA相比,SFA在状态迁移次数上减少了46.2%-69.1%。
图13给出了SFA和XFA的匹配时间比较。本文是在相同硬件平台和评估数据集的条件下,统计SFA和XFA的实际匹配时间。由于受通用硬件平台的CPU、I/O总线带宽等限制,基于软件实现的SFA和XFA难以满足实际10Gbps线速数据包处理。但是,本文的匹配时间是在相同条件下的仿真匹配时间,可满足SFA和XFA的性能比较需求。图13表明,与XFA相比,SFA在匹配时间上减少了6.7%-11%。
本发明作为一种基于智能有限自动机的正则表达式匹配方法,具有一定的通用性,并且可以通过应用该方法的思想改进正则表达式匹配方法。可应用于深度数据包检测,网络入侵检测系统以及信息安全等领域之中。
其具体的实施归纳为一个预备步骤和两个实施步骤:
预备步骤:选取合适的正则表达式规则集
采用100个规则集,且每个规则集包含100条形式为{.*SubStr1.*SubStr2....*SubStrN}的正则表达式,其中子串SubStr1、SubStr2和SubStrN等具有相同的长度;而测试集为1MB的字符串集。
步骤1:构建智能有限自动机(SFA)
SFA的构建过程是:根据选取合适的正则表达式规则集,通过SFA构造方法构造有限自动机并同时生成状态集;
智能有限自动机(SFA)构造过程分为两个步骤:
1)在XFA的分支迁移边上增加操作指令来判断是否状态迁移,从而消除不必要的状态迁移;
2)消除XFA中回退迁移边,从而减少XFA的存储空间开销。
步骤2:通过SFA匹配算法对每个读入的测试集分别进行字符串匹配,并对匹配结果进行统计以便于对SFA效率进行评估。

Claims (1)

1.一种基于智能有限自动机的正则表达式匹配方法,其特征在于,该方法为:
1)选取合适的正则表达式规则集;
2)构建智能有限自动机;
3)通过智能有限自动机匹配方法对每个读入的测试集分别进行字符串匹配,并对匹配结果进行统计;
   所述的正则表达式规则集选取方法为,采用100个规则集,每个规则集包含100条形式为{.*SubStr1.*SubStr2….*SubStrN}的正则表达式,其中所有子串SubStr1、SubStr2……SubStrN具有相同的长度,测试集为1MB的字符串集;其中,N为100;
   所述智能有限自动机的构建过程包括两个步骤:
(1)在扩展有限自动机的分支迁移边上增加操作指令来判断是否状态迁移,消除不必要的状态迁移;
(2)消除扩展有限自动机中的回退迁移边,从而减少扩展有限自动机的存储空间开销。
CN201110101411A 2011-04-22 2011-04-22 基于智能有限自动机的正则表达式匹配方法 Expired - Fee Related CN102184197B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110101411A CN102184197B (zh) 2011-04-22 2011-04-22 基于智能有限自动机的正则表达式匹配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110101411A CN102184197B (zh) 2011-04-22 2011-04-22 基于智能有限自动机的正则表达式匹配方法

Publications (2)

Publication Number Publication Date
CN102184197A CN102184197A (zh) 2011-09-14
CN102184197B true CN102184197B (zh) 2012-10-10

Family

ID=44570374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110101411A Expired - Fee Related CN102184197B (zh) 2011-04-22 2011-04-22 基于智能有限自动机的正则表达式匹配方法

Country Status (1)

Country Link
CN (1) CN102184197B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523219B (zh) * 2011-12-16 2015-01-14 清华大学 正则表达式匹配系统及匹配方法
CN103294735B (zh) * 2012-02-28 2016-08-03 中国科学技术大学 基于tcam的确定性有穷状态自动机dfa的匹配方法和装置
CN103294734B (zh) * 2012-02-28 2016-11-16 中国科学技术大学 基于tcam的确定性有穷状态自动机dfa的匹配方法和装置
CN103297293B (zh) * 2013-05-17 2016-03-09 华为技术有限公司 报文检测方法及装置
CN104253712B (zh) * 2013-06-26 2017-09-26 北京思普崚技术有限公司 一种利用深度包检测技术进行p2p网络识别的方法
US9507563B2 (en) 2013-08-30 2016-11-29 Cavium, Inc. System and method to traverse a non-deterministic finite automata (NFA) graph generated for regular expression patterns with advanced features
CN104714995B (zh) * 2013-08-30 2019-04-23 凯为有限责任公司 用于遍历正则表达式图样生成的nfa的系统和方法
US10110558B2 (en) 2014-04-14 2018-10-23 Cavium, Inc. Processing of finite automata based on memory hierarchy
US10002326B2 (en) 2014-04-14 2018-06-19 Cavium, Inc. Compilation of finite automata based on memory hierarchy
CN104333487A (zh) * 2014-10-31 2015-02-04 广东工业大学 一种面向实时网络数据流的高效事件匹配方法
CN105184157B (zh) * 2015-07-07 2018-02-27 重庆邮电大学 一种基于分类计数器的确定有限状态机构造方法
CN106130762A (zh) * 2016-06-23 2016-11-16 昆山九华电子设备厂 一种基于有穷自动机的网络训练综合分析方法
CN106878289A (zh) * 2017-01-22 2017-06-20 中国人民解放军信息工程大学 基于多维模板有限自动机tmfa的正则表达式匹配方法及其装置
CN107135093B (zh) * 2017-03-17 2020-05-05 西安电子科技大学 一种基于有限自动机的物联网入侵检测方法及检测系统
US10397263B2 (en) * 2017-04-25 2019-08-27 Futurewei Technologies, Inc. Hierarchical pattern matching for deep packet analysis
CN109977298B (zh) * 2019-02-15 2021-07-23 中国科学院信息工程研究所 一种从正则表达式中抽取最长精确子串的方法
CN110321463B (zh) * 2019-05-31 2022-01-21 中国科学院计算技术研究所 一种字符串匹配方法、系统、存储介质及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100192225A1 (en) * 2009-01-28 2010-07-29 Juniper Networks, Inc. Efficient application identification with network devices
CN101916259B (zh) * 2010-07-06 2012-07-11 中国科学院计算技术研究所 确定自动机状态转换表的空间压缩方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张国军等.基于动态默认转移的深度包检测算法.《计算机工程》.2009,(第09期), *
雷丽晖等.一种基于扩展有限自动机验证组合Web服务的方法.《软件学报》.2007,(第12期), *

Also Published As

Publication number Publication date
CN102184197A (zh) 2011-09-14

Similar Documents

Publication Publication Date Title
CN102184197B (zh) 基于智能有限自动机的正则表达式匹配方法
CN103733590B (zh) 用于正则表达式的编译器
Goel et al. Small subset queries and bloom filters using ternary associative memories, with applications
CN101442540B (zh) 基于现场可编程门阵列的高速模式匹配算法
KR100960120B1 (ko) 시그니처 스트링 저장 메모리 최적화방법과 그 메모리 구조및 시그니처 스트링 패턴 매칭방법
CN100452055C (zh) 一种用于文本或网络内容分析的大规模多关键词匹配方法
CN103412858A (zh) 用于文本或网络内容分析的大规模特征匹配的方法
CN106407224A (zh) 一种键值存储系统中文件压实的方法和装置
Villa et al. Accelerating real-time string searching with multicore processors
CN103312627A (zh) 基于两级存储的正则表达式匹配方法
CN101030897B (zh) 一种入侵检测中模式匹配的方法
CN102521356A (zh) 基于确定有限状态自动机的正则表达式匹配设备和方法
CN107515931A (zh) 一种基于聚类的重复数据检测方法
CN103166942B (zh) 一种恶意代码的网络协议解析方法
Yang et al. PiDFA: A practical multi-stride regular expression matching engine based on FPGA
Chen et al. Ac-suffix-tree: Buffer free string matching on out-of-sequence packets
CN115695041B (zh) 基于sdn的ddos攻击检测与防护的方法及应用
CN107277062A (zh) 数据包的并行处理方法及装置
CN103297293B (zh) 报文检测方法及装置
Someswararao et al. Recent advancements in parallel algorithms for string matching on computing models–a survey and experimental results
CN102195827A (zh) 基于重叠子字符串分类器的深度分组检测方法
CN101848091A (zh) 数据查找处理方法及系统
Shenoy et al. Hardware/software mechanisms for protecting an IDS against algorithmic complexity attacks
Zhou et al. An improved Bloom filter in distributed crawler
CN114745336B (zh) 基于rfc的报文分类方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUNAN YIGU TECHNOLOGY DEVELOPMENT CO., LTD.

Free format text: FORMER NAME: HUNAN YIGU INFORMATION TECHNOLOGY DEVELOPMENT CO., LTD.

CP03 Change of name, title or address

Address after: 410000 Hunan province Changsha Changsha city high tech Development Zone, Lu Tin Road No. 8 Oak Park 2 2 floor

Patentee after: HUNAN YIGU TECHNOLOGY DEVELOPMENT CO., LTD.

Address before: 410205, No. 209, Lu long road, hi tech Development Zone, Hunan, Changsha

Patentee before: Hunan Yigu Information Technology Development Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121010

Termination date: 20180422