CN101547138A - 用于快速模式匹配的方法和装置 - Google Patents

用于快速模式匹配的方法和装置 Download PDF

Info

Publication number
CN101547138A
CN101547138A CN200810088409A CN200810088409A CN101547138A CN 101547138 A CN101547138 A CN 101547138A CN 200810088409 A CN200810088409 A CN 200810088409A CN 200810088409 A CN200810088409 A CN 200810088409A CN 101547138 A CN101547138 A CN 101547138A
Authority
CN
China
Prior art keywords
pattern
target pattern
sections
data flow
cut
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.)
Pending
Application number
CN200810088409A
Other languages
English (en)
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN200810088409A priority Critical patent/CN101547138A/zh
Publication of CN101547138A publication Critical patent/CN101547138A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明提供了一种用于快速模式匹配的方法和装置,所述方法包括步骤:提供目标模式;按照所述目标模式的反模式来确定数据流上的分割点,所述反模式的任何后缀或者任何前缀都不是所述目标模式的子串;在所述分割点处将所述数据流分割为至少两个段;以及在所述至少两个段中分别搜索所述目标模式。通过本发明,可以实现更好的负载平衡,大大减少进行模式匹配的次数,并节省系统资源以及处理时间。

Description

用于快速模式匹配的方法和装置
技术领域
本发明涉及一种用于快速模式匹配的方法和装置,更具体地,涉及一种利用目标模式的反模式来进行模式匹配的方法和装置。
背景技术
在网络应用日益重要的今天,用于反病毒、反垃圾邮件、防止数据泄漏、内容过滤的网络监视和分析技术也日益重要,其中DPI(深度数据包检查)是网络监视和分析技术中的一种重要方法。通常,需要利用DPI将非常庞大的网络流量与一个大的模式组进行匹配,并且所要求的性能与被监视网络接口的流量速度成比例,而这两者会使DPI对于在千兆比特速度的流量上搜索大模式组变得难以实现。
另一方面,代表恶意攻击的模式可能会被攻击者有意分割,并被分布在不同的数据包中,以躲避被监视者锁定。这样,就要求网络监视者具有在进行检测前重组数据包并重构通信的相应会话的能力。例如,SNORT[1](http://www.snort.org)使用了若干个前处理器插件来整理IP碎片,并在对网络数据实施模式匹配前重建TCP流/会话。这里注意到一个明显的事实是,网络流会随着其大小和持续时间的不同而显著地变化,并且通常可以观察到其大小具有几个数量级的变化。
为了提高模式匹配的性能,美国专利US20070233628中公开了一种采用有限状态机算法、通过分割规则集来实现相对高效的模式匹配的方案。另外,在美国专利US6631466中公开了一种通过分割规则集(变成一系列子集)来实现并行化的方法。另外,美国专利US6493698中公开了一种提高性能的方案,其方法是:首先通过第一阶段的匹配,将能与数据包匹配的规则限定在一定的范围内,然后第二阶段的匹配就仅需要在一个较小的集合里进行,这种方法本质上仍然是通过分割规则集的方式来实现的。
可见,上述现有技术中均是通过分割规则集来实现性能改进的。因此,需要能更有效地提高模式匹配性能的技术。
发明内容
为了实现能更有效地提高模式匹配性能的目的而提出了本发明。
根据本发明的一个方面,提供了一种用于快速模式匹配的方法,包括步骤:提供目标模式;在预定位置上将数据流分割为至少两个段,使得所述目标模式不跨越所述至少两个段的分割点;以及在所述至少两个段中分别搜索所述目标模式。
根据本发明的另一个方面,提供了一种用于快速模式匹配的方法,包括步骤:提供目标模式;按照所述目标模式的反模式来确定数据流上的分割点,所述反模式的任何后缀或者任何前缀都不是所述目标模式的子串;在所述分割点处将所述数据流分割为至少两个段;以及在所述至少两个段中分别搜索所述目标模式。
根据本发明的再一个方面,提供了一种用于快速模式匹配的装置,包括:目标模式库,用于存储并提供目标模式;分割部件,用于在预定位置上将数据流分割为至少两个段,使得所述目标模式不跨越所述至少两个段的分割点;以及匹配部件,用于在所述至少两个段中分别搜索所述目标模式。
根据本发明的再一个方面的用于快速模式匹配的装置还包括:位置确定部件,用于按照所述目标模式的反模式来确定数据流上的进行分割的预定位置,其中所述反模式的任何后缀或者任何前缀都不是所述目标模式的子串。
通过实施本发明,将大数据流切割成较小的段,可以实现更好的负载平衡方案,并且可以大大减少进行模式匹配的次数,节省系统资源以及处理时间。
附图说明
从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其它方面和优点将变得更加清楚并更容易理解,其中:
图1(a)是模式匹配引擎处理分割前的数据流的示意图;
图1(b)是模式匹配引擎处理分割后的数据流的示意图;
图2(a)是数据流分割前的匹配处理的示意图;
图2(b)是数据流分割后的匹配处理的示意图;
图3(a)、图3(b)和图3(c)是示出错误分段的示意图;
图4(a)和图4(b)是示出反模式的定义的示意图;
图5(a)、图5(b)和图5(c)是根据本发明一个实施例的一字节反模式和两字节反模式的示例图;
图6(a)、6(b)和6(c)是示出利用反模式分割数据流的图示;
图7是根据本发明一个实施例的用于快速模式匹配的装置的方框图;
图8是根据本发明另一个实施例的用于快速模式匹配的装置的方框图;
图9是根据本发明实施例的用于快速模式匹配的方法的流程图;以及
图10是根据本发明另一个实施例的用于快速模式匹配的方法的流程图。
具体实施方式
下面将结合附图详细描述本发明的具体实施例。如果考虑到对某些相关现有技术的详细描述可能会混淆本发明的要点,则将不会在这里提供其详细描述。在同一个实施例中,相同的附图标记用于表示执行相同功能的相同元件或元素。
在本发明中,提出了通过将数据流分割为多个段、并保证不会丢失任何模式来进行模式匹配,使得能够并行地检查大的数据流,并可以节省大量的匹配操作。
首先,为了避免在对网络数据进行模式匹配时出现错误,必须在执行模式匹配前从数据流中重组会话/流。但是,由于数据流的大小变化很大,很难在并行处理的模式匹配引擎之间进行负载平衡来实现高吞吐量,如图1(a)所示。图1(a)是基于流的负载平衡。在图1(a)中,附图标记10、20、30分别代表三个模式匹配(PM)引擎,其中数据流A流入PM引擎10,通过第一处理器将其与模式组12中的各个模式进行匹配;数据流B流入PM引擎20,通过第二处理器将其与模式组22中的各个模式进行匹配;数据流C流入PM引擎30,通过第三处理器将其与模式组32中的各个模式进行匹配。
从上述可以看出,由于A、B、C代表不同的数据流,它们只能分别通过不同的PM引擎来处理,而不能相互混合,因此如果数据流A、B、C之间的大小相互差别很大,就会造成PM引擎10、20、30之间的负载不平衡,因而会造成整个装置的性能下降,并浪费处理资源。
在本发明中,通过将数据流分割成若干较小的、非相关的段,并将这些段在各个PM引擎之间进行分布,就可以平衡各个PM引擎之间的负载,并实现较高的资源利用率,如图1(b)所示。图1(b)是示出根据本发明一个实施例将数据流分割为多个段的示例图。在图1(b)中,通过将不同的数据流A、B、C分割为不同的段S1、S2、S3、S4等,并在PM引擎10、20、30之间平衡分配这些段S1、S2、S3、S4,可以明显改善各个PM引擎10、20、30之间的负载平衡。
下面结合图2(a)和图2(b)来进一步说明数据流被分割前和被分割后的处理。
如果要被检查(匹配)的文本是T,其长度为L,假设检查窗口的大小是w,则要被检查的窗口的数量是L-w+1。
如图2(a)所示,要被检查的文本是1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,其长度是20,而检查窗口的大小是7,即w=7。这时,根据传统的方法,要进行检查的次数为L-w+1=20-7+1=14次。也就是说,要利用检查窗口w按顺序(滑动)对文本T进行14次比较,才能将文本T检查完毕。
根据本发明的一个实施例,如图2(b)所示,将上述文本T平均分割成两个段,其中分别为T1=1,2,3,4,5,6,7,8,9,0,和T2=1,2,3,4,5,6,7,8,9,0。分别用检查窗口w对这两个段进行检查,可知对第一个文本T1进行检查的次数是L-w+1=10-7+1=4次,对第二个文本T2进行检查的次数是L-w+1=10-7+1=4次,而总的次数是8次。可见,通过对数据流进行分割,明显减少了进行匹配的次数。同时,由于可以对上述两个段T1和T2分别进行检查,因此可以同时并行地对段T1和T2进行检查,从而可以节省匹配操作的时间,并充分地利用系统资源。
一般来说,假定文本T,其具有长度L,检查窗口大小是w,那么要检查的窗口的数量则是L-w+1。
如果将文本T分割成若干个小段{t1,t2,...,tn}( Σ i = 1 , . . . , n l i = L , 其中li是ti的长度),并保证匹配模式不会出现在两个段的分割处,则要检查的窗口数量是
Figure A200810088409D00072
(保证li是≥w),并且会有如下结果:
( L - w + 1 ) - Σ i ( l i - w + 1 ) = L - w + 1 + nw - n - Σ i l i = L - w + 1 + nw - n - L = ( n - 1 ) ( w - 1 )
也就是说,可以节省超过(n-1)(w-1)次的检查操作。
下面将结合图3(a)至图3(c)来说明对数据流进行分割的方法。
注意,要对数据流进行分割,必须保证没有任何模式会跨越两个段之间的分割点。如果有某个模式跨越了分割点,则就会出现匹配错误。
如图3(a)所示,假设存在模式组S,其中含有模式“attack”、“pattern”“PATTERN”,又假设存在如图3(b)所示的数据流,其中含有字符串“PATTERN”。如果在对数据流进行分割时,将第一个字母“T”和第二个字母“T”之间的位置作为分割点(如图3(c)所示),则在进行匹配时,就会由于模式“PATTERN”跨越了分割点而检索不到这个字符串“PATTERN”。因此,在对数据流进行分割时,必须保证没有任何模式会跨越两个段之间的分割点。
下面通过结合图4(a)和图4(b)来说明反模式的定义。
这里,本发明引入“反模式”的概念,其定义如下:给定一个模式组,S={P1,P2,...,Pn},其中P1,P2,...,Pn分别是模式组S中的不同模式,设定NP是模式组S中的每个模式的反模式,则反模式NP中长于一个字节的任何后缀不能是模式组中的每个模式P1,P2,...,Pn的子串。实际上,反模式还可以有一个对称的定义:给定一个模式组,S={P1,P2,...,Pn},其中P1,P2,...,Pn分别是模式组S中的不同模式,设定NP是模式组S中的每个模式的反模式,则反模式NP中长于一个字节的任何前缀不能是模式组中的每个模式P1,P2,...,Pn的子串。
下面以反模式的第一种定义为例进行具体说明,对于其对称定义,本领域技术人员基于本申请可以对称实施。例如如图4(a)所示的模式组,其中含有模式“attack”和“pattern”,这两个模式的子串分别为at,tt,ta,ac,ck,att,tta,tac,ack,atta,ttac,tack,attac,ttack,attack,以及pa,at,tt,te,er,rn,pat,att,tte,ter,ern,patt,ate,tter,tern,patte,atter,ttern,patter,attern,pattern。如图4(b),其中示出了“Negative”,其长于一个字节的后缀分别是ve,ive,tive,ative,gative,egative,Negative。通过观察可以发现,“Negative”的上述后缀均未出现在上述各个模式的子串中。因此,可以认为“Negative”就是上述模式组中的各个模式的反模式。
当然,作为特殊情况,上述反模式也可以仅仅包括一个字节或仅仅包括两个字节,如图5(a)、5(b)和5(c)所示。在图5(a)中,示出了模式组S,其中含有模式“attack”、“pattern”“PATTERN”。在图5(b)中,示出了一个字节的反模式的查找表,其中左侧的一列表示一个字节的字符,右侧的一列表示左侧的字符是否能成为反模式。可以看到,没有在模式组S的各个模式中出现的字符,均可以成为一个字节的反模式。例如字符“b”,其没有出现在上述任何一个模式中,因此其可以作为上述各个模式的反模式。如果按照反模式的定义来理解,则可以认为这时的字符“b”的后缀就是单个字符“b”本身,而上述各个模式中的子串的最小单位是仅仅一个字符,如“a”、“t”、“t”、“a”、“c”、“k”等。
在图5(c)中,示出了两个字节的反模式的查找表,其中左侧的一列表示两个字节的字符,右侧的一列表示左侧的两字符是否能成为反模式。可以看到,没有在模式组S的各个模式中成为子串的两个连续字符,均可以成为两个字节的反模式。
通过上述定义,可以得出本发明的一个实施方式是:如果在要检查的文本/流中找到反模式NP,并且在该反模式的最后两个字节之间分割该文本/流,则可以保证该模式组中没有任何模式会跨越分割点。如果该反模式只有一个字节,可以去除这个字节,从而将该文本/数据流分割为两个段。
对应反模式的第二种定义,这里的实施方式对应应是:如果在要检查的文本/流中找到反模式NP,并且在该反模式的前两个字节之间分割该文本/流,则可以保证该模式组中没有任何模式会跨越分割点。如果该反模式只有一个字节,可以去除这个字节,从而将该文本/数据流分割为两个段。
下面来证明这个实施方式的正确性(以第一种定义为例)。
对于反模式NP只有一个字节的情况,上述方案显然是正确的,因此通过去除这个单个字节,就可以将该文本/数据流分割为两个段。
对于反模式NP具有两个字节的情况,假设模式组S中存在一个模式P,该模式P跨越了分割点,因此,该模式P至少具有两个字节,即该反模式NP的最后两个字节。这样,模式P必然包括反模式NP的长于一个字节的后缀。然而,根据反模式NP的定义,模式P不能包含反模式NP中长于一个字节的后缀。可见上述结论与反模式的定义是矛盾的。因此,上述假设中的模式P是不存在的。
上述反模式NP的定义和实施方式提供了找到反模式并利用反模式将数据流分割为段的方法,即本发明的实施例中所提供的方法。
下面结合图6(a)至图6(c)说明利用反模式来分割数据流的方法。
图6(a)中,示出了数据流...,#,$,%,a,b,c,d,p,a,t,t,e,r,n,1,2,3,4,5,A,B,...,对于如图5(a)示出的模式组S,可以根据图5(b)和5(c)分别找出模式组S的一个字节的反模式和两个字节的反模式。如图6(a)所示,第一排黑色实线标识出了一个字节的反模式,共示出了11个一字节反模式;第二至第四排黑色实线分别标识出了两个字节的反模式,共示出了13个两字节反模式。
图6(b)示出了一种分割数据流的方法,其中将一字节反模式“b”、“1”和“B”分别去掉,从而将这个数据流分割为四个段,即第一段:...,#,$,%,a,第二段:c,d,p,a,t,t,e,r,n,第三段:2,3,4,5,A,第四段:...。
图6(c)示出了另一种分割数据流的方法,其中分别在两字节反模式“%a”、“dp”、“n1”和“5A”之间进行分割,从而将这个数据流分割为五个段,即第一段:...,#,$,%,第二段:a,c,d,第三段:p,a,t,t,e,r,n,第四段:1,2,3,4,5,第五段:A,B,...。
另外,如果在上述数据流(如图6(a)所示)中存在已经确定出的、模式“pattern”的反模式“Negative”,即,该数据流成为...,#,$,%,a,b,c,d,N,e,g,a,t,i,v,e,p,a,t,t,e,r,n,1,2,3,4,5,A,B,...,这样,也可以在该反模式中的任一字符(一个字节)的任一侧对该数据流进行分割,而该分割点不会将数据流中的字符串“pattern”分割成两个部分。
不管采用哪种分割方法,从上述分析可见,上述数据流中所包含的字符串“pattern”均没有被分割开,从而保证了这种分割方式不会将与要查找的模式对应的字符串进行分割而造成该字符串的丢失。
注意,要找到模式P的反模式NP是非常容易的,因为:1)不需要找到数据流中的所有反模式;2)可以用定制的方式来挑出要使用的反模式,也就是说可以挑出那些容易找到的反模式;3)反模式NP可以从1个字节到上百个字节长,但是反模式也可以很短——一个字节或两个字节就足够好了,也可以很少——要找到多少反模式由用户所使用的算法来决定。
下面结合图7说明根据本发明一个实施例的用于快速模式匹配的装置。
如图7所示,根据本发明实施例的用于快速模式匹配的装置700包括:中央处理单元(CPU)702,用于执行相关的程序,以处理各种数据并控制装置700中的各个部件的操作;只读存储器(ROM)704,用于存储CPU 702进行各种处理和控制所需的各种程序;随机存取存储器(RAM)706,用于存储CPU 702在处理和控制过程中临时产生的中间数据;输入/输出(I/O)部件708,用于与外部设备(未示出)连接,以在外部设备和装置700之间传输各种数据;以及用户接口(I/F)部件710,包括键盘、鼠标,以及可以用各种显示装置实现的、用于输入/输出可视数据的显示部件,和可以输入/输出声音的音频部件,用于与用户进行交互操作。
除上述通用的各个部件外,根据本发明实施例的装置700还包括:目标模式库712,用于存储并提供目标模式组,该目标模式组中可以包括多个目标模式,这里的目标模式组是指上文中说明的模式组S,其中的目标模式是要在数据流中搜索的模式,例如可以是上文中说明的模式“attack”、“pattern”、“PATTERN”等;分割部件718,用于在预定位置上将数据流分割为至少两个段,使得所述目标模式不跨越所述至少两个段的分割点;以及匹配部件720,用于在被分割的至少两个段中分别搜索目标模式。上述各个部件通过数据和命令总线722相互连接。
在上述分割部件718中,可以利用本领域人员能够知道的方法来确定数据流上的该预定位置,也可以利用根据本发明实施例的模式组中的各个模式的反模式来确定数据流上的该预定位置,并且该反模式的确定方法如上文所述。
上述配置不对根据本发明实施例的装置700的结构构成限制,例如,根据本发明的另一个实施例,分割部件718和匹配部件720的功能可以合并由一个部件或分割为更多的部件来完成。
例如,如图8所示,根据本发明的另一个实施例,除上述通用的各个部件外,根据本发明另一个实施例的装置800可以包括:目标模式库812,用于存储并提供目标模式组,该目标模式组中可以包括多个目标模式,这里的目标模式组是指上文中说明的模式组S,其中的目标模式是要在数据流中搜索的模式,例如可以是上文中说明的模式“attack”、“pattern”、“PATTERN”等;位置确定部件816,用于按照所述目标模式的反模式来确定数据流上的分割点,其中该反模式的任何后缀都不是所述目标模式的子串,该反模式的确定方法如上文所述;分割部件818,用于在分割点处将数据流分割为至少两个段;以及匹配部件820,用于在被分割的至少两个段中分别搜索目标模式。上述各个部件通过数据和命令总线822相互连接。
上述配置不对根据本发明实施例的装置800的结构构成限制,例如,根据本发明的另一个实施例,位置确定部件816、分割部件818和匹配部件820的功能可以合并由一个部件或分割为更多的部件来完成。
下面结合图9说明根据本发明一个实施例的用于快速模式匹配的方法。图9是说明根据本发明一个实施例的用于快速模式匹配的方法的流程图。
如图9所示,开始模式匹配后,在步骤S902中,从目标模式库中提供目标模式。然后,在步骤S904中,在预定位置上将数据流分割为至少两个段,使得该目标模式不跨越被分割的至少两个段的分割点。然后,在步骤S906中,在所分割的至少两个段中分别搜索该目标模式,直至匹配操作结束。
根据本发明的另一个实施例,在上述方法中,可以利用本领域技术人员能够知道的方法来确定数据流上的该预定位置,也可以首先确定根据本发明实施例的该目标模式的反模式,然后按照所确定的反模式来确定该预定位置,其中该反模式的任何后缀都不是该目标模式的子串。
根据本发明的另一个实施例,该预定位置可以是该反模式中的任一字节的任一侧的位置。
根据本发明的另一个实施例,该预定位置可以是该反模式的最后两个字节之间的位置。
另外,图9中的步骤流程不对本发明的方法构成限制。
图10是根据本发明另一个实施例的用于快速模式匹配的方法的流程图。
如图10所示,开始模式匹配后,在步骤S1002中,从目标模式库中提供目标模式。然后,在步骤S1004中,确定目标模式的反模式,并按照所确定的反模式来确定数据流上的分割点,其中该反模式的任何后缀都不是该目标模式的子串。然后,在步骤S1006中,在所确定的分割点处将该数据流分割为至少两个段。然后,在步骤S1008中,在所分割的至少两个段中分别搜索该目标模式,直至匹配操作结束。
根据本发明的一个实施例,该分割点可以是该反模式的任一字节(字符)的任一侧的位置。
根据本发明的进一步的实施例,该分割点可以是该反模式的最后两个字节之间的位置。
根据本发明的更进一步的实施例,如果该反模式只有一个字节,则通过从该数据流中移除该反模式来进行分割。
根据本发明的另一个实施例,按照上述方法,可以在数据流的内部将该数据流分割为多个段,从而通过不同的处理器对多个段同时进行匹配,达到在数据流中对模式组中的模式进行并行匹配的目的。这样,就会节省大量的匹配操作,均衡各个处理器的工作负载,并实现节省时间的效果。
以上结合附图描述了本发明的装置和方法。可以通过使用来自SNORT[1]的规则集(模式组)和来自DEFCON[2]
(http://www.ll.mit.edu/IST/ideval/data/2000/2000 data index.html)的流量迹线对上述方法进行试验。通过试验,可以得出以下试验结果:对于SNORT模式组(具有16571个模式,其中有1992个不同的模式),存在19个一字节的反模式和62673个两字节的反模式。
在长度为L=329,965,450字节的流量迹线(具有F=2,979,300个数据流)中,一字节的反模式出现n=5,346,672次。如果仅仅使用一字节的反模式来分割流量迹线中的数据流,根据以上所述,假设检查窗口的大小为w=30,则当前检查次数与现有技术中的检查次数的比率为:
[L-w+1-(w-1)(n+F-1)]/[L-w+1-(w-1)(F-1)]=36%
也就是说,可以节省64%的检查量。
另外需要说明的是,本发明的实施例可以通过硬件、软件或硬件和软件结合的方式来实现,其实现方式不对本发明的范围构成限制。
本发明实施例中的各个功能元件(单元)相互之间的连接关系不对本发明的范围构成限制,其中的一个或多个功能元件可以包括或连接于其它任意的功能元件。
虽然上面已经结合附图示出并描述了本发明的一些实施例,但是本领域的技术人员应当理解,在不偏离本发明的原则和精神的情况下,可以对这些实施例做出变化和改变,所做的变化和改变仍然落在本发明的权利要求及其等价物的保护范围之内。

Claims (10)

1.一种用于快速模式匹配的方法,包括步骤:
提供目标模式;
在预定位置上将数据流分割为至少两个段,使得所述目标模式不跨越所述至少两个段的分割点;以及
在所述至少两个段中分别搜索所述目标模式。
2.根据权利要求1所述的方法,其中按照所述目标模式的反模式来确定所述预定位置,其中所述反模式的任何后缀或者任何前缀都不是所述目标模式的子串。
3.根据权利要求2所述的方法,其中所述预定位置是所述反模式的任一字节的任一侧的位置。
4.根据权利要求2所述的方法,其中所述预定位置是所述反模式的最后两个字节之间的位置或者最前两个字节之间的位置。
5.一种用于快速模式匹配的方法,包括步骤:
提供目标模式;
按照所述目标模式的反模式来确定数据流上的分割点,所述反模式的任何后缀或者任何前缀都不是所述目标模式的子串;
在所述分割点处将所述数据流分割为至少两个段;以及
在所述至少两个段中分别搜索所述目标模式。
6.根据权利要求5所述的方法,其中所述分割点是所述反模式的任一字节的任一侧的位置。
7.根据权利要求4所述的方法,其中所述分割点是所述反模式的最后两个字节之间的位置或者最前两个字节之间的位置。
8.根据权利要求4所述的方法,其中响应于只有一个字节的反模式,通过从数据流中移除所述反模式来进行分割。
9.一种用于快速模式匹配的装置,包括:
目标模式库,用于存储并提供目标模式;
分割部件,用于在预定位置上将数据流分割为至少两个段,使得所述目标模式不跨越所述至少两个段的分割点;以及
匹配部件,用于在所述至少两个段中分别搜索所述目标模式。
10.如权利要求9所述的装置,还包括:
位置确定部件,用于按照所述目标模式的反模式来确定数据流上的进行分割的预定位置,其中所述反模式的任何后缀或者任何前缀都不是所述目标模式的子串。
CN200810088409A 2008-03-26 2008-03-26 用于快速模式匹配的方法和装置 Pending CN101547138A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810088409A CN101547138A (zh) 2008-03-26 2008-03-26 用于快速模式匹配的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810088409A CN101547138A (zh) 2008-03-26 2008-03-26 用于快速模式匹配的方法和装置

Publications (1)

Publication Number Publication Date
CN101547138A true CN101547138A (zh) 2009-09-30

Family

ID=41194044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810088409A Pending CN101547138A (zh) 2008-03-26 2008-03-26 用于快速模式匹配的方法和装置

Country Status (1)

Country Link
CN (1) CN101547138A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015120645A1 (zh) * 2014-02-14 2015-08-20 华为技术有限公司 一种基于服务器查找数据流分割点的方法及服务器
CN106095971A (zh) * 2014-02-14 2016-11-09 华为技术有限公司 一种基于服务器查找数据流分割点的方法及服务器
CN110619234A (zh) * 2019-09-26 2019-12-27 新华三信息安全技术有限公司 一种文本处理方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015120645A1 (zh) * 2014-02-14 2015-08-20 华为技术有限公司 一种基于服务器查找数据流分割点的方法及服务器
CN106095971A (zh) * 2014-02-14 2016-11-09 华为技术有限公司 一种基于服务器查找数据流分割点的方法及服务器
US9906577B2 (en) 2014-02-14 2018-02-27 Huawei Technologies Co., Ltd. Method and server for searching for data stream dividing point based on server
US9967304B2 (en) 2014-02-14 2018-05-08 Huawei Technologies Co., Ltd. Method and server for searching for data stream dividing point based on server
US10264045B2 (en) 2014-02-14 2019-04-16 Huawei Technologies Co., Ltd. Method and server for searching for data stream dividing point based on server
CN106095971B (zh) * 2014-02-14 2019-08-13 华为技术有限公司 一种基于服务器查找数据流分割点的方法及服务器
US10542062B2 (en) 2014-02-14 2020-01-21 Huawei Technologies Co., Ltd. Method and server for searching for data stream dividing point based on server
CN110619234A (zh) * 2019-09-26 2019-12-27 新华三信息安全技术有限公司 一种文本处理方法及装置
CN110619234B (zh) * 2019-09-26 2021-05-28 新华三信息安全技术有限公司 一种文本处理方法及装置

Similar Documents

Publication Publication Date Title
EP3251298B1 (en) Data extraction
You et al. Verification of fault-predictability in labeled Petri nets using predictor graphs
CN110489317B (zh) 基于工作流的云系统任务运行故障诊断方法与系统
CN103200027A (zh) 一种定位网络故障的方法、装置及系统
Yao et al. Formal modeling and systematic black-box testing of sdn data plane
El-Fakih Distinguishing experiments for timed nondeterministic finite state machine
Bell et al. On effectiveness of pairwise methodology for testing network-centric software
CN101547138A (zh) 用于快速模式匹配的方法和装置
CN107579844A (zh) 一种基于业务路径和频度矩阵的动态关联故障挖掘方法
Alves et al. State estimation and detectability of networked discrete event systems with multi-channel communication networks
CN107977310B (zh) 一种遍历测试命令生成方法及装置
CN110519107B (zh) 城域网电路扩容方法及装置
Benharref et al. New approach for EFSM-based passive testing of web services
US11665165B2 (en) Whitelist generator, whitelist evaluator, whitelist generator/evaluator, whitelist generation method, whitelist evaluation method, and whitelist generation/evaluation method
CN115576831A (zh) 一种测试案例推荐方法、装置、设备及存储介质
CN111162963A (zh) 一种基于二分迭代法测试网络通信设备性能的方法及系统
CN110225025B (zh) 异常网络数据行为模型的获取方法、装置、电子设备及存储介质
CN108319517B (zh) 一种故障诊断的方法及装置
KR102079028B1 (ko) 모의 네트워크 트래픽 트레이스 모의 생성을 위한 장치 및 방법
Qiu et al. On decidability of distributed diagnosis under unbounded-delay communication
Yakuwa et al. Efficient model checking of OpenFlow networks using SDPOR-DS
CN110896380A (zh) 流表筛查方法、装置、电子设备及可读存储介质
CN110740049A (zh) 一种sdn环境下安全防护部署的方法及装置
Sija et al. Protocol reverse engineering methods for undocumented ethernet and wireless protocols; survey
Li et al. Decision diagrams method for k-out-of-n: G systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090930