一种规则匹配方法、装置及系统的制作方法

文档序号:7749205阅读:172来源:国知局
专利名称:一种规则匹配方法、装置及系统的制作方法
技术领域
本发明涉及通信技术领域,更具体地说,涉及一种规则匹配方法、装置及系统。
背景技术
目前,IPdnternet Protocol,互联网协议)业务的爆炸性发展及宽带业务的迅猛 增长,给运营商带来了机遇的同时也带来了挑战。DPI (De印Packetlnspection,深度包检 测)技术作为一种网络设备增强的过滤器,将用户管理、安全控制、精细的业务控制等能力 有机地集成在一起。实现各类业务的动态感知、策略控制、QoS(Quality of Service,服务 质量)和业务的安全保障等功能,它既为运营商提供一个电信业务的基础运营平台,也可 以降低运营商的资本性支出与运营支出。DPI技术的关键作用是为了识别出网络中数据的应用类别。在DPI技术中,用于识 别出网络中数据的应用类别的识别技术包含特征字识别、应用层网关识别、行为模式识别 等。在这些识别技术中,特征字识别技术成为目前识别技术的主要方法之一,而特征字识别 技术中,规则匹配技术是特征字识别的关键技术。在现有的技术方案中,规则匹配技术的实现由一个匹配引擎和一个状态机配合完 成。其中,匹配引擎为一个整体的匹配引擎,状态机为由所有规则组成的规则集通过编译器 统一编译成的一个树形或网型结构的状态机。上述规则集包括纯字符串规则、正则表达式 规则以及正则表达式和字符串的混合规则等多种类型。在对数据进行匹配规则时,通过匹 配弓I擎按照所述状态机来实现规则匹配。然而,发明人发现,上述方案至少存在以下问题上述方案中,随着业务发展,协议类型越来越多,流量越来越大,协议特征字的规 则变得越来越复杂,规则数量越来越多。所以,状态机容量会越来越大,而且分支也越来越 多、状态深度越来越大。由于状态机容量大,分支多、状态深度大,使得匹配时查找状态机中 所需的规则时耗费系统资源和时间多、性能差,越来越不能适应匹配大流量数据的要求。

发明内容
有鉴于此,本发明实施例提供一种规则匹配方法、装置及系统,以解决现有技术存 在的系统资源的耗费和时间多、性能较低的问题。本发明实施例是这样实现的一种规则匹配方法,包括获取被匹配数据的特征特性;根据所述被匹配数据的特征特性从多个状态机中确定目标状态机;所述多个状态 机分别由多个子规则集编译得到,所述多个子规则集根据规则的不同特征特性划分得到, 每个子规则集的特征特性用于分别标识与其对应的状态机;通过匹配引擎按照所述目标状态机对被匹配数据进行规则匹配。一种规则匹配装置,包括
特征特性获取单元,用于获取被匹配数据的特征特性;目标状态机确定单元,用于根据所述被匹配数据的特征特性确定多个状态机中的一个为目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集由 规则根据规则不同的特征特性划分得到,每个子规则集的特征特性用于分别标识每个状态 机;匹配引擎,用于按照所述目标状态机对被匹配数据进行规则匹配。一种规则匹配系统,包括,规则匹配装置以及状态机生成装置;所述状态机生成装置包括特征特性划分单元,用于根据规则的不同特征特性将规则划分得到多个子规则 集;编译单元,用于对所述特征特性划分单元划分得到的所述子规则集分别编译得到 多个状态机,每个子规则集的特征特性用于分别标识每个状态机;所述规则匹配装置包括特征特性获取单元用于获取被匹配数据的特征特性;目标状态机确定单元用于根据所述被匹配数据的特征特性确定多个状态机中的 一个为目标状态机;匹配引擎,用于按照所述目标状态机对被匹配数据进行规则匹配。从上述的技术方案可以看出,本发明实施例将所需要的规则按照其不同的特征特 性类型分为了多个子规则集,编译每个子规则集以生成与之对应的状态机。在进行规则匹 配时,根据被匹配数据的不同特征特性,查找相应的状态机并启动设定匹配引擎。由于本发 明实施例将现有技术中的整体的状态机划分成多个相对较小的状态机,有效地减小了状态 机中的规则集的大小,使得状态机的分支减少、状态深度变小。从而可以有效地减少规则匹 配的匹配周期,节省了系统资源的耗费和时间,进而提高了匹配效能。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图1为本发明实施例一种规则匹配方法的流程图;图2为本发明实施例一种规则匹配装置的结构示意图;图3为本发明实施例一种规则匹配系统结构示意图;图4为本发明实施例一种规则匹配系统中状态机生成单元结构示意图;图5为本发明实施例一种规则匹配系统中特征特性划分单元结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例公开了一种规则匹配方法,以解决现有技术存在的系统资源的耗费 和时间多、性能较低的问题。具体过程如图1所示,包括以下步骤步骤S11、获取被匹配数据的特征特性; 在本发明实施例中,当在对被匹配数据进行规则特征匹配时,获取被匹配数据的 特征特性。从而,可以确定被匹配数据的特征特性是属于诸如特殊符号、表达式、特殊字符 串或特殊语法的组合等中的哪一种或多种。比如,在本发明实施例中,被匹配数据可以是一 种表达式,其特征特性为“表达式”。步骤S12、根据所述被匹配数据的特征特性从多个状态机中确定目标状态机;所 述多个状态机分别由多个子规则集编译得到,所述多个子规则集根据规则的不同特征特性 划分得到,每个子规则集的特征特性用于分别标识与其对应的状态机;在本发明实施例中,预先将所有规则匹配所用到的规则按照其特征特性的不同进 行分类形成子规则集。所述特征特性可以是规则的属性,这样,就可以按照规则的属性的不 同划分子规则集,比如,可以是特殊符号、表达式、特殊字符串或特殊语法的组合等。比如, 有的规则属于特殊符号,这一类的规则被划分到特征特性为特殊符号的子规则集中;同理, 有的规则属于表达式,有的规则属于特殊字符串,有的规则属于特殊语法的组合,将这些规 则分别根据其所属的特征特性划分到相应的子规则集中。在本发明实施例中,同时具有多 种属性的规则还可以同时属于其他的特征特性的子规则集。在本发明实施例中,将具有相同特征特性的规则划分到同一子规则集中,从而分 别形成所有的规则的特征特性的各种子规则集。在根据特征特性的不同将所有规则进行分类并将其划入相应的子规则集中之后, 将每个子规则集分别编译成状态机,由于每个状态机中的规则都具有相同的特征特性,所 述相同的特征特性即为该状态机的特征特性,而每个状态机的特征特性都不相同,所以,使 用特征特性可以标识状态机。也就是说,每个状态机可以通过其规则子集特征特性的不同 而区分,比如可以分为特殊符号的状态机、表达式的状态机等。由于有的规则有可能同时具 有多个特征特性,所以状态机也可以同时具有多种特征特性,比如某一规则含有xyzkj,这 种特征属于特殊符号;同时,它还含有ab. *cd,这种特征属于表达式,因此这时的状态机同 时属于特殊字符和表达式两种情况。因为,根据规则的特征特性不同划分为多个子规则集,将每个子规则集分别编译 成状态机,每个子规则集的特征特性用于标识状态机;所以,特征特性与状态机之间有对应 关系。另外,在使用匹配引擎进行规则匹配时,由于特征特性可以标识状态机,所以根据被 匹配数据中的特征特性不同,能够查找到相应的状态机,即目标状态机。比如,当所述被匹 配数据为表达式的时候,可以根据所述数据的特征特性(如表达式),找到目标状态机,即, 标识为表达式的表达式状态机。步骤S13、通过匹配引擎按照所述目标状态机对被匹配数据进行规则匹配。在找到目标状态机后,预设的匹配引擎按照所述目标状态机对所述被匹配数据进 行规则匹配。比如,在本发明实施例中,可以是由匹配引擎可以按照表达式状态机对被匹配 的表达式进行规则匹配。在本发明实施例的技术方案中,分别由规则分类后的子规则集形成多个状态机,在规则匹配时,先获取被匹配数据的特征特性,然后使用与所述特征特性相对应的状态机 对所述被匹配数据进行规则匹配。与现有技术中使用由所有规则形成的一个整体的状态 机的技术方案相比,本发明实施例中,由于通过子规则集形成的状态机的体积较小,所以这 样的状态机的状态分支也较少,状态深度也较小,从而使得匹配规则时的匹配周期较少,进 而,有效地提高了匹配规则时的匹配效能。在本发明的另一实施例中,当需要更新升级规则时,可以根据新规则的特征特性重新划分并更新与该新规则特征特性对应的子规则集,重新编译更新后的子规则集生成新 的状态机。在本发明实施例中,当需要更新规则的时候,可以根据新规则的特征特性更新与 该规则特征特性对应的子规则集,在需要更新规则的子规则集中完成规则的更新后,只需 要重新编译更新规则后的子规则集,然后生成新的状态机即可完成对状态机的升级。比如, 使用本发明实施例的技术方案,当需要加入新的表达式规则时,根据需要加入的新规则的 特征特性(如表达式),确定需要更新的子规则集为表达式子规则集;然后更新所述表达式 子规则集,重新编译更新后的表达式子规则集,生成新的表达式状态机。在现有技术中,要完成对表达式规则的增加,需要对包含有所有规则的整体规则 集进行更新,然后对所述整体规则集进行重新编并生成新的整体状态机。与现有技术相比, 本发明实施例不需要重新编译没有更新规则的子规则集。本发明实施例中更新并编译的子 规则集的体积要小于现有技术中的整体规则集。所以,在本发明实施例中,在对状态机进行 升级时,只要重新编译更新了规则的子规则集来生成新的状态机即可实现升级,不需要像 现有技术中那样要对包括了全部规则的规则集进行编译。从而节省了升级状态机时的编译 时间和系统资源。在本发明实施例中,所述设定匹配引擎可以为多个匹配引擎中与所述目标状态机 的特征特性相对应的匹配引擎。其中,所述匹配引擎可以为多个。所述多个匹配引擎分别 通过特征特性与目标状态机相关联,从而,可以在对被匹配数据进行规则匹配时,根据目标 状态机的特征特性,启动相应的匹配引擎。比如,特征特性为特殊符号、表达式、特殊字符串 和特殊语法的组合的各个状态机,可以分别根据其特征特性的不同对应有匹配引擎。在本 发明实施例中,每个状态机都有相应的匹配引擎;具体的,状态机可以和与其相应的匹配引 擎一一对应,也可以由全部状态机中的多个状态机对应一个匹配引擎。在匹配规则时,根据被匹配数据的特征特性查找相应的目标状态机并启动与所述 状态机对应的匹配引擎。比如,被匹配数据为表达式时,目标状态机为表达式状态机,由于 表达式状态机有其所关联的匹配引擎,从而可以启动相关联的匹配引擎。在本发明实施例 中,表达式状态机与匹配引擎关联具体的方式可以为根据目标状态机的特征特性生成索 引值,所述索引值与所述目标状态机关联的匹配引擎相对应,从而可以在规则匹配时,通过 所述索引值确定与目标状态机相关联的匹配引擎,使用所述匹配引擎配合所述目标状态机 对被匹配数据进行规则匹配。在本发明实施例中,通过为每个状态机设置与其关联的匹配引擎,然后在对数据 进行规则匹配时,根据规则的特征查找相应的状态机并启动与所述状态机对应的匹配引擎。在本发明实施例中,所述匹配引擎与所述状态机之间由索引值形成对应关系,具体可以是,索引值可以为将所述状态机特征特性哈希(Hash)取值或循环冗余校验取值的 结果。比如,将表达式状态机的“表达式”这一特征特性哈希取值,得到的值即可以为索引 值,通过所述索引值与设定的对应匹配引擎相对应,从而可以将表达式状态机与设定的匹 配引擎相关联。本发明实施例通过将用于标识状态机的特征特性生成索引值,由此可以方便地将 状态机和相应的匹配引擎关联起来,从而可以在对被匹配数据进行规则匹配时,当根据被 匹配数据的特征特性确定了目标状态机后,可以启动与所述目标状态机相应的匹配引擎, 进而可以使用所述匹配引擎配合所述目标状态机完成对被匹配数据的规则匹配。在本发明实施例中,通过为每个状态机设置关联指定的匹配引擎,使得在规则匹 配时可以并行运行多个匹配引擎,进而可以并行对多个被匹配数据进行规则匹配。比如,在 被匹配数据为多个时,其中包括有特殊字符和表达式,由于分别设有特殊字符状态机关联 的匹配引擎和表达式状态机的匹配引擎时匹配规则,所以,可以同时进行特殊字符规则匹 配和表达式规则匹配。与本发明的上一实施例相比,本发明实施例因为可以并行的对多个 具有不同特征特性的被匹配数据同时进行规则匹配,从而进一步的提高了匹配的性能。
在本发明的另一实施例中,上述实施例中所述多个匹配引擎中包括有需根据所述 被匹配数据的特征特性触发激活的匹配引擎。在本发明实施例中,可以将使用频率较少且状态为不工作超过设定时间的匹配引 擎休眠,以降低系统功耗。当对被匹配数据进行规则匹配时,在确定目标状态机后,查找目 标状态机根据其特征特性设有相对应的匹配引擎,当其所对应的匹配引擎的状态为休眠 时,激活所述匹配引擎。本发明实施例通过将使用频率较少且状态为不工作超过设定时间的匹配引擎休 眠,并在其被使用到时将其激活的技术方案,降低了匹配引擎的系统功耗,节约了系统资 源。在本发明的另一实施例中,可以将所述状态机规则集中多个规则的相同部分提取 出来;在使用具有相同部分的多个规则对被匹配数据进行规则匹配时,先使用相同部分匹 配,然后再使用多个规则中每个规则的不相同部分分别匹配。例如,假设状态机的规则集中有三条规则分别为字符串“油^‘^^‘^^”;则可 以将多个规则的相同部分“a”提取出来,匹配时先匹配“a”,如果不满足,则后续不再用这 三个字符串进行匹配;如果满足,则再分别用每个规则不相同部分(如“bc”、“de”、“fg”) 对被匹配数据进行匹配,从而不需要每次匹配都用“a”匹配一次。通过提取状态机中的多个规则的相同部分,使得在对被匹配数据进行规则匹配 时,只需要使用多个具有相同部分的规则的相同部分匹配一次,然后分别使用所述多个具 有相同部分的规则的部分匹配即可。从而避免了使用多个具有相同部分的规则的相同部分 多次匹配,进而提高了匹配效率。在本发明的另一实施例中,所述预先根据规则的特征特性不同划分为多个子 规则集,包括将引起状态爆炸的语法组合的规则使用NFA(Non-deterministic Finite Automata,非确定有限自动机)的方式处理或将所述规则进行重写处理,然后根据处理后 的该规则的特征特性划分到相应的规则集中。具体地说,一条或一组规贝I」,如果它生成的DFA(DeterministicFiniteAutomaton,确定有限自动机)与对应的NFA相比较,其状态之比呈指数时,称之为状 态爆炸。比如规则.*A. *B. *C(. *表示任意个字符,该规则表示A前面可以有任意个字符, A、B之间、B、C之间也可以有任意个字符),对其本身而言,由于其交互性很强,所以当其与 其他规则同处于一个规则集中时,有可能引起状态爆炸。另外,规则A{m,n}B(表示A后面 可以跟m到η个B),当η值较大时,可能引起状态爆炸。对于此类规则,在本发明实施例中, 可以集中使用NFA的方式处理。具体地,可以使用计数器来处理{m,η},这样,当计数器值在 [m,n]区间内任一值时都符合该语法,即只用一个单元即可实现原来多分支的情况,不需要 再增加n-m条分支。本发明实施例在预先根据规则的特征特性不同划分为多个子规则集的时候,可以 将规则中的引起状态爆炸的语法组合的规则使用NFA的方式处理或将所述规则进行重写 处理。从而有效地控制状态数,节约存储容量。在本发明实施例中,所述预先根据规则的特征特性不同划分为多个子规则集,还 可以包括将由.*和纯字符串组成的规则采用.*切割方式处理,然后将该规则划分到纯字 符串的规则集中。
比如,有两条规则P和Q,其中,P = (·*Α· *Β· *C),Q = (· *Χ· *Υ· *Ζ)。假设字符串 P的长度(除.*外)为s,P中有η个.*(如规则P中现在有3个.*,即η = 3)。在Α,B, C与X,Y,Z这些.*分隔的子串其前缀都不相同的情况下,Q中每个子串(Χ,Υ,Ζ)每增加一 个字符(例如X原先为ab,现在增加一个字符为abc),状态数增加η个;每增加一个.* (如 原来P从(.*AB. *C)变为(.*A. *B. *C),A、B间增加了一个.*),状态数增加(s+Ι)个。如 果规则集中有k条规则含有.*,且每条有χ个.*,则这些规则生成的DFA有xk个状态。对 于此类规则(只含有.*语法的正则),在本发明实施例中,采用.*切割方式将字符串切割 为A,B, C,X,Y,Z六个子串,再将这些子串一起进行编译,因为原来规则中的.*表示任意 字符,因此,采用切割后的子串匹配也能起到与原来规则同样的匹配效果。因为只剩下字符 串,所以编译速度会有很大提升。在本发明实施例中,还可以通过每个子串的位置(如子串 在报文中的位置,或子串相互之间的位置等)进行标记,从而保证了最终整体匹配的精确。在本发明实施例中,通过使用.*切割方式对由.*和纯字符串组成的规则进行编 译前的预处理,将正则表达式间接转换为了字符串进行处理,从而降低了编译器的消耗,提 高了匹配引擎的匹配性能。在本发明实施例中,所述预先根据规则的特征特性不同划分为多个子规则集,还 可以包括将语法使用状态机耗费资源多的规则,划分到一个规则集中,并使用独立资源处 理该规则集中的规则。所述独立资源可以包括与非门或计数器等。例如,规则[a 0](表示非0),在本发 明实施例中,可以使用非门实现,即,通过使用一个非门加一个比较器(与常量0的比较)。 通过将所述独立的资源可以作为公共资源给多个匹配引擎使用。从而可以减少匹配规则时 对状态机资源的耗费,提高了匹配引擎的匹配性能。参见图2,本发明实施例还提供了一种规则匹配装置30,包括特征特性获取单元 31、目标状态机确定单元32和匹配引擎33。所述特征特性获取单元31,用于获取被匹配数据的特征特性;
所述目标状态机确定单元32,用于根据所述被匹配数据的特征特性确定多个状态 机中的一个为目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规 则集根据规则不同的特征特性划分得到,每个子规则集的特征特性用于分别标识每个状态 机;匹配引擎33 用于按照所述目标状态机对被匹配数据进行规则匹配。其中,在本发明实施例中,当在对被匹配数据进行规则特征匹配时,特征特性获取单元31获取被匹配数据的特征特性。从而,可以确定被匹配数据的特征特性是属于诸如特 殊符号、表达式、特殊字符串或特殊语法的组合等中的哪一种或多种。本发明实施例中使用到的状态机由多个子规则集编译得到,所述多个子规则集根 据规则不同的特征特性划分得到,例如特征特性可以是特殊符号、表达式等。此外,本发明 实施例还可以对子规则集进行更新,生成新的状态机,来满足匹配需求。本发明实施例中,匹配引擎33可以是一个,或者多个,每个匹配引擎可以与一个 或多个状态机进行对应。当存在多个匹配引擎时,可以并行运行多个匹配引擎以加快匹配 速度;同时,在平时也可以将使用频率较少且状态为不工作超过设定时间的匹配引擎休眠, 以达到降低系统功耗的目的;在需要使用的时候再激活相关匹配引擎。匹配引擎在进行规则匹配时,可以提取所述状态机的规则集中具有相同部分的多 个规则的相同部分,在使用所述具有相同部分的多个规则进行规则匹配时,先使用所述相 同部分匹配一次,然后使用所述多个规则中每个规则的不相同部分分别匹配。在本发明实施例的技术方案中,分别由规则分类后的子规则集形成多个状态机, 在规则匹配时,先获取被匹配数据的特征特性,然后使用与所述特征特性相对应的状态机 对所述被匹配数据进行规则匹配。与现有技术中使用由所有规则形成的一个整体的状态机 的技术方案相比,本发明实施例中,由子规则集形成的状态机的体积较小,所以状态机的状 态分支较少,状态深度也较小,从而使得匹配规则时的匹配周期较少,进而,有效地提高了 匹配规则时的匹配效能。参见图3,本发明实施例还提供了一种规则匹配系统,包括规则匹配装置30,状 态机生成装置40 ;其中,所述规则匹配装置30可以为采用图3所示实施例中的装置,在此不再赘 述;所述状态机生成装置40包括特征特性划分单元41,用于根据规则的不同特征特性将规则划分得到多个子规则 集,每个子规则集的特征特性用于分别标识每个状态机;编译单元42,用于对所述特征特性划分单元41划分得到的所述子规则集分别编 译得到多个状态机;其中,所述特征特性划分单元41在根据规则不同特征特性进行划分时,可以参考 上述实施例中的各种划分方法,在此不再赘述。参见图4,本发明实施例中,所述状态机生成装置还包括规则更新单元43,用于对规则进行更新,更新后的规则再经过特征特性划分单元 进行划分后生成更新后的子规则集,再将利用编译单元生成更新后的状态机。参见图5,本发明实施例中,所述特征特性划分单元41还包括
爆炸规则子划分单元411,用于将引起状态爆炸的语法组合的规则使用NFA的方式处理或将所述规则进行重写处理,然后根据处理后的该规则的特征特性划分到相应的规 则集中;字符串切割子划分单元412,用于将由.*和纯字符串组成的规则采用.*切割方式 处理,然后将该规则划分到纯字符串的规则集中;资源消耗子划分单元413,用于将语法使用状态机消耗资源多的规则,划分到一个 规则集中。需要说明的是,本发明实施例中装置及系统中的各个单元可以通过各种硬件处理 电路实现(如CPU、FPGA、MCU等)及其附属电路实现,当采用集成处理芯片进行处理时,每 个芯片也可以实现一个或多个本发明实施例中的逻辑单元,在此并不限定。在本发明实施例的技术方案中,分别由规则分类后的子规则集形成多个状态机, 在规则匹配时,先获取被匹配数据的特征特性,然后使用与所述特征特性相对应的状态机 对所述被匹配数据进行规则匹配。与现有技术中使用由所有规则形成的一个整体的状态机 的技术方案相比,本发明实施例中,由子规则集形成的状态机的体积较小,所以状态机的状 态分支较少,状态深度也较小,从而使得匹配规则时的匹配周期较少,进而,有效地提高了 匹配规则时的匹配效能。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,所述程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为 磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory, RAM)等。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
权利要求
一种规则匹配方法,其特征在于,包括获取被匹配数据的特征特性;根据所述被匹配数据的特征特性从多个状态机中确定目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集根据规则的不同特征特性划分得到,每个子规则集的特征特性用于分别标识与其对应的状态机;通过匹配引擎按照所述目标状态机对被匹配数据进行规则匹配。
2.根据权利要求1所述的规则匹配方法,其特征在于,还包括升级状态机时,根据更新规则的特征特性重新划分并更新对应的子规则集,重新编译 更新后的子规则集生成新的状态机。
3.根据权利要求1所述的规则匹配方法,其特征在于,所述匹配引擎为在多个匹配引 擎中与所述目标状态机的特征特性相关联的匹配引擎;所述关联具体为根据目标状态机的特征特性生成索引值,由所述索引值对应与所述目标状态机关联的 匹配引擎;所述关联用于通过所述索引值确定与目标状态机相关联的匹配引擎;使用所述匹配引 擎配合所述目标状态机对被匹配数据进行规则匹配;所述索引值包括将所述特征特性哈希 取值或循环冗余校验取值的结果。
4.根据权利要求3所述的规则匹配方法,其特征在于,所述多个匹配引擎中包括需根 据所述被匹配数据的特征特性触发激活的匹配引擎。
5.根据权利要求1至4中任一所述的规则匹配方法,其特征在于,还包括提取所述状 态机的规则集中具有相同部分的多个规则的相同部分,在使用所述具有相同部分的多个规 则进行规则匹配时,先使用所述相同部分匹配一次,然后使用所述多个规则中每个规则的 不相同部分分别匹配。
6.根据权利要求5所述的规则匹配方法,其特征在于,所述预先根据规则的特征特性 不同划分为多个子规则集,包括将引起状态爆炸的语法组合的规则使用NFA的方式处理或将所述规则进行重写处理, 然后根据处理后的该规则的特征特性划分到相应的规则集中;或者,将由.*和纯字符串组成的规则采用.*切割方式处理,然后将该规则划分到纯字符串 的规则集中;或者,将语法使用状态机耗费资源多的规则,划分到一个规则集中,并使用独立资源处理该 规则集中的规则。
7.一种规则匹配装置,其特征在于,包括特征特性获取单元,用于获取被匹配数据的特征特性;目标状态机确定单元,用于根据所述被匹配数据的特征特性确定多个状态机中的一个 为目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集由规则 根据规则不同的特征特性划分得到,每个子规则集的特征特性用于分别标识每个状态机;匹配引擎,用于按照所述目标状态机对被匹配数据进行规则匹配。
8.根据权利要求7所述的规则匹配装置,其特征在于,所述匹配引擎通过提取所述状 态机的规则集中具有相同部分的多个规则的相同部分,在使用所述具有相同部分的多个规则进行规则匹配时,先使用所述相同部分匹配一次,然后使用所述多个规则中每个规则的 不相同部分分别匹配。
9.一种规则匹配系统,其特征在于,包括如权利要求7-8任一所述的规则匹配装置;以及, 状态机生成装置,所述状态机生成装置包括特征特性划分单元,用于根据规则的不同特征特性将规则划分得到多个子规则集,每 个子规则集的特征特性用于分别标识每个状态机;编译单元,用于对所述特征特性划分单元划分得到的所述子规则集分别编译得到多个 状态机。
10.根据权利要求9所述的规则匹配系统,其特征在于,所述特征特性划分单元还包括规则更新单元,用于对规则进行更新,使得更新后的爆炸规则子划分单元,用于将引起状态爆炸的语法组合的规则使用NFA的方式处理或 将所述规则进行重写处理,然后根据处理后的该规则的特征特性划分到相应的规则集中;字符串切割子划分单元,用于将由.*和纯字符串组成的规则采用.*切割方式处理,然 后将该规则划分到纯字符串的规则集中;资源消耗子划分单元,用于将语法使用状态机消耗资源多的规则,划分到一个规则集中。
全文摘要
本发明实施例公开了一种规则匹配方法、装置及系统,其中所述规则匹配方法包括获取被匹配数据的特征特性;根据所述被匹配数据的特征特性从多个状态机中确定目标状态机;所述多个状态机分别由多个子规则集编译得到,所述多个子规则集根据规则的不同特征特性划分得到,每个子规则集的特征特性用于分别标识与其对应的状态机;通过匹配引擎按照所述目标状态机对被匹配数据进行规则匹配。本发明实施例有效地减小了状态机中的规则集的大小,使得状态机的分支减少、状态深度变小。从而可以有效地减少规则匹配的匹配周期,节省了系统资源的耗费和时间,进而提高了匹配效能。
文档编号H04L29/06GK101841546SQ20101017634
公开日2010年9月22日 申请日期2010年5月17日 优先权日2010年5月17日
发明者吴富强, 孙灵燕, 曾佳, 王晓波 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1