特征匹配方法和装置的制作方法

文档序号:7741850阅读:197来源:国知局
专利名称:特征匹配方法和装置的制作方法
技术领域
本发明实施例涉及通信技术领域,特别涉及一种特征匹配方法和装置。
背景技术
随着互联网的飞速发展,网络的业务种类越来越多,新业务层出不穷且越来越复 杂,给电信运营商带来机遇的同时也带来了挑战,如何有效管理,控制和运营网络成为重要 问题。深度包解析(Deep Packet Inspection ;简称DPI)技术越来越占据重要位置。DPI 技术正逐步将用户管理、安全控制、精细的业务控制等能力集成在一起,实现各类业务的动 态感知、策略控制、以及网络与业务的安全保障等功能,降低运营商的管理成本,丰富业务 内容和收入增长模式,为运营商提供一个电信业务的基础运营平台。特征匹配是DPI技术的关键。随着业务发展,协议类型越来越多,流量越来越大, 协议特征越来越复杂,规则数量越来越多。如何保证特征匹配性能、减少所需存储空间成为 亟待解决的问题。如图1所示,为现有DPI技术中特征匹配的示意图,如图1所示,编译器 11将特征库编译成不确定性有限(non-determinate finite automaton ;简称NFA)状态 机或确定性有限(determinate finite automaton ;简称DFA)状态机,存储在存储器中; 匹配引擎13接收输入数据,从片外存储器12如双倍速率同步动态随机处理器(Double Data Rate ;简称DDR)内存、同步动态随机处理器(SynchronousDynamic Random Access Memory ;简称SDRAM)、四倍速率(Quad Date Rate ;简称QDR)内存等一次读入单个特征数 据(状态机状态),然后对输入数据逐个字符进行单特征匹配,输出匹配结果。现有DPI技术中的特征库很大,生成的DFA状态机,占用大量的存储空间,多存放 在片外存储器,在匹配过程中匹配引擎需要频繁访问片外存储器;如果生成NFA状态机,存 储量减少了,但匹配过程中被同时激活的状态从几个到上万不等,激活状态不可控,特征匹 配性能低;因此,现有特征匹配速度低。

发明内容
本发明实施例提供一种特征匹配方法和装置,用以解决现有技术特征匹配速度低 的问题,提高特征匹配的速度。本发明实施例提供一种特征匹配方法包括对原特征库的特征编译成的原状态机进行分离和删除回跳边的预处理,得到新特 征库;根据所述新特征库和当前匹配信息,预测所述新特征库中与匹配相关的状态和从 输入数据中每次取出的待匹配字符的数量;根据所述新特征库中与匹配相关的状态从所述新特征库中获取特征数据,对所述 特征数据与从所述输入数据中每次取出的所述数量的待匹配字符进行匹配。本发明实施例又提供一种特征匹配装置,包括预处理模块,用于对原特征库的特征编译成的原状态机进行分离和删除回跳边的
4预处理,得到新特征库;特征预测模块,用于根据所述新特征库和匹配引擎中的当前匹配信息,预测所述 新特征库中与匹配相关的状态和从输入数据中每次取出的待匹配字符的数量;特征预取模块,用于根据所述新特征库中与匹配相关的状态从所述新特征库中获 取特征数据;匹配引擎,用于对所述特征数据与从所述输入数据中每次取出的所述数量的待匹 配字符进行匹配。本发明实施例提供的特征匹配方法和装置,通过对原特征库的特征编译成的原状 态机进行分离和删除回跳边的预处理,得到新特征库,从而新特征库与原特征库相比存储 量低,且激活状态可控,降低了特征匹配的复杂程度,根据预测得到的新特征库中与匹配相 关的状态预先从新特征库中提取特征数据后,匹配引擎可以根据特征数据对从输入数据中 每次取出的待匹配字符进行匹配,实现了多字符匹配,提高了特征匹配的速度。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其 他的附图。图1为现有DPI技术中特征匹配的示意图;图2为本发明特征匹配方法第一实施例的流程图;图3a为本发明特征匹配方法第二实施例的流程图;图北为本发明特征匹配方法第二实施例中预处理的示意图;图3c为本发明特征匹配方法第二实施例中原状态机的一种场景的示意图;图3d为本发明特征匹配方法第二实施例中新状态机的一种场景的示意图;图3e为本发明特征匹配方法第二实施例中信息指示结构的示意图;图如为本发明特征匹配方法第三实施例中原特征库生成的原状态机的一种场景 的示意图;图4b为本发明特征匹配方法第三实施例中新状态机的一种场景的示意图;图如为本发明特征匹配方法第三实施例中未分割的原状态机的一种场景的示意 图;图4d本发明特征匹配方法第三实施例中分割后的原状态机的一种场景的示意 图;图如为本发明特征匹配方法第三实施例中未分割的原状态机的另一种场景的示 意图;图4f本发明特征匹配方法第三实施例中分割后的原状态机的另一种场景的示意 图;图5为本发明特征匹配装置第一实施例的结构示意图;图6为本发明特征匹配装置第二实施例的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。图2为本发明特征匹配方法第一实施例的流程图,如图2所示,该特征匹配方法包 括S101、对原特征库的特征编译成的原状态机进行分离和删除回跳边的预处理,得 到新特征库;特征匹配装置的原特征库中包括从网络报文中提取出的特征规则,一般是采用模 式串和正则表达式等来描述的特征规则的集合,特征匹配装置可以对原特征库进行预处 理,得到新特征库,具体方法为对所述原特征库中的特征编译成的原状态机进行分离,得到类非确定性有限状态 机部分和类确定性有限状态机部分;将分离后的原状态机中的回跳边删除,获得新状态机,所述回跳边为从所述类确 定性有限状态机部分返回到所述类非确定性有限状态机部分的跳转边;将所述新状态机存储为所述新特征库。其中,类非确定性有限(NFA)状态机部分同一时间可以有多个状态激活,且第一 个状态始终激活,这与NFA状态机的工作机制相同;与NFA状态机不同的是,类NFA状态机 部分的激活状态的数量可控,因此称为类NFA状态机部分。类确定性有限(DFA)状态机部 分同一时间只有一个状态激活,这与DFA状态机的工作机制相同,与DFA状态机不同的是, 本发明实施例中的类DFA状态机部分为线性,且进行了删除回跳边的处理。其中,对所述原特征库中的特征编译成的原状态机进行分离的方法具体可以包 括根据所述原特征库中的特征编译成的原状态机中的回跳边数量和回跳边占所有 跳转边的比例,确定所述原特征库的类非确定性有限状态机部分的深度;根据所述类非确定性有限状态机部分的深度,将所述原状态机分离为类非确定性 有限状态机部分和类确定性有限状态机部分;对所述类确定性有限状态机部分的具有回跳边或多个跳转边的状态进行分割,使 所述类确定性有限状态机部分的状态线性化。S102、根据所述新特征库和当前匹配信息,预测所述新特征库中与匹配相关的状 态和从输入数据中每次取出的待匹配字符的数量;在生成新特征库后,S102具体可以包括获取包括当前激活状态、输入数据和信息指示结构的当前匹配信息;根据所述当前激活状态和信息指示结构对所述输入数据进行分析,预测所述新特 征库中与匹配相关的状态和从输入数据中每次取出的待匹配字符的数量。其中,与匹配相关的状态可以包括匹配过程中所有的当前激活状态的下一状态或 随后的几个状态,信息指示结构可以包括新特征库保存的新状态机中的每个状态对应的状 态号、跳转边索引、读取的输入数据的字符数、跳转边指示和跳转记录。获取当前激活状态的方法例如当前激活的状态,然后查找各个激活状态的信息指示结构,再对照输入数据的 字符和字符数等信息,可以得到每次需要读取的输入数据的待匹配字符的数量以及需要从 新特征库中预取的特征数据。S103、根据所述新特征库中与匹配相关的状态从所述新特征库中获取特征数据, 对所述特征数据与从所述输入数据中每次取出的所述数量的待匹配字符进行匹配。具体地,特征匹配装置可以将从所述新特征库中获取的所述特征数据存入缓存; 然后,从所述缓存中读取所述特征数据,判断所述特征数据与从输入数据中每次取出的所 述数量的待匹配字符是否匹配。本实施例新特征库与原特征库相比存储量低,激活状态可控,线性化程度高,降低 了特征匹配的复杂程度,根据预测得到的新特征库中与匹配相关的状态和预先从新特征库 中提取特征数据,匹配引擎可以根据特征数据对输入数据进行匹配,从而提高特征匹配的 速度;特征数据可以保存在缓存中,进一步提高了匹配速度;且预测得到了从输入数据中 每次取出的待匹配字符的数量,可以实现多字符匹配,匹配方式灵活。在利用特征匹配进行协议识别例如HTTP和RTSP协议识别的过程中,需要通过从 输入的协议报文数据中匹配到各协议的方法(method)来识别对应协议,每个协议对应多 种方法(即字符串),这些方法就是构成原特征库的特征。协议的特征的特点是特征个数 多,但特征字符串的长度短。特征字符串之间出现相同子串的情况少,而且子串长度短。如 果直接构造原状态机作单字符匹配,则原状态机数量大,匹配性能低。特征匹配装置包括预处理模块、特征预测模块、特征预取模块、匹配引擎和存储 管理模块等。图3a为本发明特征匹配方法第二实施例的流程图,如图3a所示,以协议识别 为例,该特征匹配方法可以包括以下步骤S201、预处理模块将原特征库中的特征编译成的原状态机进行分离、删除回跳边 等处理之后,得到新状态机。S202、存储管理模块将得到的新状态机的相关联的状态,存储在连续的空间中。上述的S201和S202是对原特征库中的各个协议的特征进行预处理的过程。S203、生成并存储新特征库。S204、特征预测模块从匹配引擎中获取当前匹配信息,预测所述新特征库中与匹 配相关的状态和从输入的协议报文中每次取出的待匹配字符的数量。S205、特征预取模块根据新特征库中与匹配相关的状态从新特征库中获取特征数 据,保存在缓存中。S206、匹配引擎从缓存中读取上一步特征数据,根据从输入的协议报文中每次取 出的待匹配字符的数量,从输入的协议报文数据中取出待匹配字符进行匹配。上述的S203到S206是根据新特征库对输入数据进行预测和匹配的过程。S207、输出协议识别结果。图北为本发明特征匹配方法第二实施例中预处理的示意图,如图北所示,假设可 控的最大可激活状态数为K,根据最大可激活状态数K可以选择存储的深度N,例如深度N 等于K。预处理模块将原状态机分离成深度小于等于N的状态(类非确定性有限状态机部 分)和深度大于N的状态(类确定性有限状态机部分)。类非确定性有限状态机部分使用 类似非确定性有限状态机的工作机制,类确定性有限状态机部分使用类似确定性有限状态机的工作机制。综合考虑两个部分的状态机以及匹配实现的复杂度可以确定类非确定性有 限状态机部分的层数即深度的选择。确定前后两部分后,删除回跳边,由于回跳边占原状态机中的所有跳转边的比例 很大,删除回跳边可以节省和压缩很大的存储空间。回跳边为从类确定性有限状态机部分 跳转到类非确定性有限状态机部分的跳转边,在图北中,回跳边为深度大于N的状态往回 跳转到深度小于等于N的状态的跳转边,例如从状态m到状态η的跳转边,从状态j到状 态h的跳转边等。后面的类DFA状态机部分的被删除的回跳边可以通过在前面的类NFA状 态机部分完成等价跳转,不会遗失这些跳转信息,这是由于类NFA状态机部分的第一个状 态始终激活,每次可以有多个状态激活,这与NFA状态机的工作机制相同,但类NFA状态机 部分的同时激活的状态数量可控,且类NFA状态机部分在类DFA状态机部分的匹配过程中 也一直在运行,当类DFA状态机部分因删除了回跳边而跳转失败时,可以自动跳到类NFA状 态机部分的未删除回跳边时需要跳转到达的状态,继续进行正确匹配。图3c为本发明特征匹配方法第二实施例中原状态机的一种场景的示意图,图3d 为本发明特征匹配方法第二实施例中新状态机的一种场景的示意图,假设原特征库中有三 条协议规则“abcabdedfg”、“ edjxks ” 和 “ dfb ”,可以将规则 “abcabdedfg”、“ edjxks ” 和 “dfb”编译成如图3c所示的原状态机。计算由图3c中的原状态机生成新特征库时,确定新特征库的类NFA状态机部分的 层数的方法如下特征匹配装置自动计算和统计回跳边和基本跳转边个数;根据回跳边占 总跳转边比例情况选择原状态机分离界线的层,一般选择除跳转边(restart transition) 外占比例最大的层的下一层作为分离界线。如图3c中,回跳到第三层的状态3和状态16 的回跳边最多,占的比例最大,因此可以选择第三层与第四层之间作为分离界线,将原特征 库的原状态机分成如图3d所示的类NFA状态机部分和类DFA状态机部分;从而得出类NFA 状态机部分的层数即深度N = 3 ;同时得到选择可控的最大可激活状态数K等于N,即可以 控制的同时激活状态个数为3。类NFA状态机部分的工作方式类似NFA状态机,其初始状态 (即图3c中状态0) —直处于激活,当类DFA状态机部分在匹配动作时,类NFA状态机部分 也一起进行匹配动作。将原状态机分离后,将从类DFA状态机部分到类NFA状态机部分的所有回跳边删 除,可以得到如图3d所示的新状态机。删除回跳边后不会缺失跳转信息,具体示例如下假设待匹配的协议报文数据为“abcabdedjxks”,在采用图3c中的原状态机对 “abcabdedjxks”进行匹配时,匹配过程经过的状态如下状态0- >状态1- >状态2- >状态3- >状态4- >状态5_ >状态6_ >状态7_ > 状态8- >状态16- >状态17- >状态18- >状态19,最后到达接受状态19,得出匹配结果 为规则“edjxks”。在采用通过删除回跳边后的图3d的新状态机对“abcabdedjxks”进行匹配时,匹 配过程经过的状态如下 状态0- >状态1- >状态2- >状态3- >状态4 (此时进入类DFA状态机部分)-> 状态5- >状态6- >状态7 (此时激活类NFA状态机部分的状态14)- >状态8 (此时激活 类NFA状态机部分的状态15)- >状态16- >状态17- >状态18- >状态19 ;
由于在匹配过程中,类NFA状态机部分和类DFA状态机部分同时进行匹配动作,且类NFA状态机部分的状态0 —直激活。因此,当在类DFA状态机部分中匹配到状态6后,下 面继续待匹配的字符“e”将使类DFA状态机部分跳转到状态7且同时激活了类NFA状态机 部分的状态14 ;同样接下来的字符“d”使类DFA状态机部分跳转到状态8,且激活了类NFA 状态机部分的状态15 (此时类NFA状态机部分的状态14已经被去激活,而且状态11被激 活);在从状态8后,接下来的待匹配的字符是“ j”,在类DFA状态机部分当前的状态8没有 字符“j”的跳转边(因为原状态机中j字符的回跳边已被删除),但是在类NFA状态机部分 的当前激活的状态0、状态15和状态11中,状态15有字符“j”的跳转边跳到状态16,因此 从状态8自动跳到类NFA状态机部分的状态15,对字符“j”进行匹配;接下来继续匹配下 面的字符“x”、“k”、“s”,经过状态16、状态17、状态18,最后到达接受状态19,得到匹配结 果“edjxks”,可以达到等效匹配,不会缺失跳转信息。经过上面的预处理得到的状态机可以使深度大于N的状态为线性,可以称为变步 长线性状态机。存储管理模块可以将新状态机的各个状态存储到连续的空间,完成新特征 库的创建和存储。然后,特征预测模块根据新特征库可以从匹配引擎中获取当前匹配信息,实时跟 踪匹配引擎中当前激活的状态,由于每个状态在编译的过程中都预先保存了所有跳转边的 信息指示结构,图3e为本发明特征匹配方法第二实施例中信息指示结构的示意图,如图3e 所示,信息指示结构可以包括新特征库保存的新状态机中的每个状态对应的状态号、跳转 边索引、读取的输入数据的字符数、跳转边指示和跳转记录。对于线性状态,编译器预先把 尽可能多的状态信息保存到信息指示结构中的前四个字段,并且每个状态都有信息指示结 构。信息指示结构中最后一个字段跳转记录字段,记录该状态的各跳转边的跳转出现次数 和占所有跳转边的比例,作为历史记录进行保存,匹配引擎实时更新当前各个状态的信息 指示结构,并进行老化管理。特征预测模块获取信息指示结构后,分析当前待匹配数据中的 字符及数量,对一次读取字符个数以及从新特征库中特征数据进行预测,并将预测得到的 新特征库中与匹配相关的状态和从输入数据中每次取出的待匹配字符的数量发到特征预 取模块。特征预取模块从新特征库中获取多个特征数据后,保存到缓存中,匹配引擎从缓 存中获取多个特征数据,可以并行的与读取的输入数据进行多字符特征匹配。本实施例中,对原特征库进行分离和删除回跳边处理后得到的新特征库与原特征 库相比存储量低,且激活状态可控,降低了特征匹配的复杂程度,根据预测得到的新特征库 中与匹配相关的状态预先从新特征库中提取了特征数据后,匹配引擎可以根据特征数据可 以对输入数据进行匹配,从而提高特征匹配的速度;特征数据可以保存在缓存中,匹配引擎 从缓存中获得特征数据,与从外部的存储器取出特征数据的方法相比,进一步提高了匹配 引擎的匹配速度;由于可以预测到从输入数据中每次取出的待匹配字符的数量,实现了多 字符匹配,匹配方式灵活。本发明实施例的特征匹配方法可以处理特征库庞大、相同子特征很长的情况。以 统一资源定位符(Uniform/Universal Resource Locator ;简称URL)为例,URL匹配是DPI 设备中的核心之一。通过匹配URL,可以过滤有害网站,可以根据访问内容收费等。由于网络 的信息瞬息万变,一个可以捕捉实时信息的URL特征库往往是自动生成的。特征库庞大,但 特征格式统一,一般为“host+path”组合。自动生成的特征库中,相同host或者相同path的特征很多,相同部分(子特征)的长度从几个到十几个字符不等。假设特征库中最长相同 子特征的长度为L。如果直接由原特征库构造一个线性状态机,需要将所有L层以下的状态 分离保存,并在匹配过程中同时处理L个激活态。对于每个状态有多条跳转边的状态,即非 线性状态,状态数随着层数的递增呈级数增长。因此,需要尽可能的降低存储层数,对于减 少预取信息量、实现片上存储并提高匹配速度,有重要意义。本发明实施例中预处理模块可 以根据片上存储资源的多少和可控的最大可激活状态数,对原URL特征库进行预处理。假 设最大可激活状态数和深度都为N,所有长度大于N的相同子特征将从原特征中分离出来。图如为本发明特征匹配方法第三实施例中原特征库生成的原状态机的一种场景 的示意图,如图如所示,相同子特征可能出现在原特征的头部(如状态η后开始分叉),也 可能出现在中间或者尾端(如状态m后出现回跳边)。对图如中的原状态机进行分离,可 以得到深度小于等于N的类NFA状态机部分,以及深度大于N的类DFA状态机部分。显然, 如果按原特征库构造出的原状态机,深度N以上存在大量的非线性状态例如状态η、状态 m,特征预取模块无法判断并一次取出有效状态做匹配。图4b为本发明特征匹配方法第三 实施例中新状态机的一种场景的示意图,如图4b所示,对原特征库进行预处理后得到的新 特征库中类DFA状态机部分即深度大于N的状态全部为线性,生成新状态机,如图4b所示, 状态η的子树可以被添加到根状态下,状态m的子树可以被合并到状态m’。经过多次分割 后,类DFA状态机部分只留下了线性状态。下面以具体例子介绍对URL的原状态机进行分割的过程,一般可以分为以下情 况情况一、URL的原状态机中由于相同头子串而出现分叉。假设有两条URL 为"www, sina. com” 和"www, hotmail. com”,图 4c 为本发明特征 匹配方法第三实施例中未分割的原状态机的一种场景的示意图,图4d本发明特征匹配方 法第三实施例中分割后的原状态机的一种场景的示意图,如图4c所示,“www”后的第一 个".“对应的状态与图4b中的状态η类似,都是从具有相同头子串并随后开始分叉;将 "www, sina. com”和‘‘www, hotmail. com”切割后的新状态机;如图4d所示,可以将原来的URL 切割为三条子串后,分别为“www”、", sina. com”和“.hotmail. com”。生成的新状态机根据 这三条子串的匹配结果进行偏移量分析并上报,将"."添加到根状态0下。其中,偏移量 分析是指分析特征中指明的匹配到的子串在输入数据中的位置与该子串实际在输入数据 中的位置是否一样,如果一样,则偏移量分析为匹配成功,否则,偏移量分析为匹配不成功。情况二、URL的原状态机中由于部分子串与头子串相同而出现分叉。假设有两条 URL 为"news. sina. com,,禾口‘‘www, sohu. com/newstoday,,,图 4e 为本发 明特征匹配方法第三实施例中未分割的原状态机的另一种场景的示意图,图4f本发明特 征匹配方法第三实施例中分割后的原状态机的另一种场景的示意图,如图4e所示,从‘‘.,, 到“S”的回跳边表示的在匹配完子串"www, sohu. com/news"后,如果匹配到字符“.”,则往 下匹配第一条URL的“.sina. com"部分;否则,如果匹配到“t”,则继续匹配第二条URL的 “today”部分。如图4f所示,原来的URL被切割为三条子串“news. sina. com”、“www. sohu. com/,,和“newstoday”重构后的新状态机根据这三条子串的匹配结果结合偏移量分析并上 报,将〃 t〃合并“news”中的“S”之后。进一步地,存储管理模块可以将新状态机中线性化的关联的状态保存到关联的存
10储空间中例如地址连续存储空间,便于快速读取。特征预测模块从匹配引擎中获取当前匹 配信息后,预测所述新特征库中与匹配相关的状态和从输入数据中每次取出的待匹配字符 的数量。特征预取单元从新特征库中预取多个特征数据保存到缓存中,匹配引擎从缓存中 获取预取的多个特征数据,并行的与当前读取的输入数据进行多字符匹配,最终的特征匹 配结果可以综合分离后的子特征匹配结果上报。本实施例根据预测得到的新特征库中与匹配相关的状态预先从新特征库中提取 了特征数据,匹配引擎可以根据特征数据可以对输入数据进行匹配,从而提高特征匹配的 速度;特征数据可以保存在缓存中,匹配引擎从缓存中获得特征数据,与从外部的存储器取 出特征数据的方法相比,进一步提高了匹配引擎的匹配速度;并且由于可以预测到从输入 数据中每次取出的待匹配字符的数量,因此可以实现多字符匹配,匹配方式灵活;并且新特 征库与原特征库相比既降低了存储量,又实现了激活状态可控,因此降低了特征匹配的复 杂程度,提高了匹配性能和匹配速度。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。图5为本发明特征匹配装置第一实施例的结构示意图,如图5所示,该特征匹配装 置包括预处理模块40,用于对原特征库的特征编译成的原状态机进行分离和删除回跳边 的预处理,得到新特征库;特征预测模块41,用于根据所述新特征库和匹配引擎43中的当前匹配信息,预测 所述新特征库中与匹配相关的状态和从输入数据中每次取出的待匹配字符的数量;特征预取模块42,用于根据所述新特征库中与匹配相关的状态从所述新特征库中 获取特征数据;匹配引擎43,用于对所述特征数据与从所述输入数据中每次取出的所述数量的待 匹配字符进行匹配。具体地,对原特征库中的特征编译成的原状态机进行预处理,可以得到新特征库, 特征预测模块41根据新特征库和匹配引擎43中的当前匹配信息,预测得到新特征库中与 匹配相关的状态和从输入数据中每次取出的待匹配字符的数量后,特征预取模块42可以 根据新特征库中与匹配相关的状态从新特征库中获取特征数据;然后匹配引擎43根据从 输入数据中每次取出的待匹配字符的数量从输入数据中取出待匹配字符,再对特征数据与 从输入数据中取出的所述数量的待匹配字符进行匹配。具体方法可以参照本发明特征匹配 方法第一实施例的相关描述。本实施例预处理模块对原特征库进行分离和删除回跳边处理后得到的新特征库 与原特征库相比存储量低,且激活状态可控,降低了特征匹配的复杂程度,特征预取模块根 据特征预测模块得到的新特征库中与匹配相关的状态,预先从新特征库中提取特征数据, 匹配引擎可以根据从输入数据中每次取出的待匹配字符的数量从输入数据中取出待匹配 字符,然后特征数据与从输入数据中取出该数量待匹配字符进行匹配,实现了多字符匹配, 提高了特征匹配的速度。
图6为本发明特征匹配装置第二实施例的结构示意图,在本发明特征匹配装置第 一实施例的基础上,如图6所示,预处理模块40具体可以包括分离子模块51和回跳边处 理子模块52。其中,分离子模块51,用于对所述原特征库中的特征编译成的原状态机进行分离, 得到类非确定性有限状态机部分和类确定性有限状态机部分;回跳边处理子模块52,用于将分离后的原状态机中的回跳边删除,获得新状态机, 所述回跳边为从所述类确定性有限状态机部分返回到所述类非确定性有限状态机部分的 跳转边。此外,在对所述原特征库中的特征编译成的原状态机进行分离时,分离子模块51 还可以包括深度确定单元511、分离单元512和分割单元513。深度确定单元511,用于根据所述原特征库中的特征编译成的原状态机中回跳边 数量和回跳边占所有跳转边的比例,确定所述原特征库的类非确定性有限状态机部分的深 度;分离单元512,用于根据所述类非确定性有限状态机部分的深度,将所述原状态机 分离为类非确定性有限状态机部分和类确定性有限状态机部分;分割单元513,用于对所述类确定性有限状态机部分的具有回跳边或多个跳转边 的状态进行分割,使所述类确定性有限状态机部分的状态线性化。预处理模块对原状态机 进行分离的过程可以参照本发明特征匹配方法第二、第三实施例的相关描述以及图3a_图 3d、图 4a-图 4f0进一步地,该特征匹配装置还可以包括存储管理模块45,用于将所述新状态机 存储为所述新特征库。在预处理模块40对原状态机进行预处理,生成新特征库之后,特征预取模块42还 用于,将从所述新特征库中获取的所述特征数据存入缓存;匹配引擎43还用于,从所述缓存中读取所述特征数据,判断所述特征数据与从所 述输入数据中每次取出的所述数量的待匹配字符是否匹配。再进一步地,特征预测模块41具体包括获取子模块53和预测子模块M。其中,获取子模块53,用于从所述匹配引擎中获取包括当前激活状态、输入数据和 信息指示结构的当前匹配信息;预测子模块M,用于根据所述当前激活状态和信息指示结构对所述输入数据进行 分析,预测所述新特征库中与匹配相关的状态和从输入数据中每次取出的待匹配字符的数 量。其中,信息指示结构可以参照本发明特征匹配方法第二实施例的相关描述以及图3e。本实施例预处理模块对原特征库进行分离和删除回跳边处理后得到的新特征库 与原特征库相比存储量低,且激活状态可控,降低了特征匹配的复杂程度,特征预取模块根 据特征预测模块预测得到的新特征库中与匹配相关的状态和从输入数据中每次取出的待 匹配字符的数量,预先从新特征库中提取了特征数据,匹配引擎可以根据特征数据可以对 输入数据进行匹配,从而提高特征匹配的速度;特征预取模块可以将特征数据保存在缓存 中,匹配引擎从缓存中获得特征数据,与从外部的存储器取出特征数据的方法相比,进一步 提高了匹配引擎的匹配速度;由于可以预测得到每次读取的输入数据的字符数量,从而实 现了多字符匹配,匹配方式灵活。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种特征匹配方法,其特征在于,包括对原特征库的特征编译成的原状态机进行分离和删除回跳边的预处理,得到新特征库;根据所述新特征库和当前匹配信息,预测所述新特征库中与匹配相关的状态和从输入 数据中每次取出的待匹配字符的数量;根据所述新特征库中与匹配相关的状态从所述新特征库中获取特征数据,对所述特征 数据与从所述输入数据中每次取出的所述数量的待匹配字符进行匹配。
2.根据权利要求1所述的特征匹配方法,其特征在于,所述对原特征库的特征编译成 的原状态机进行分离和删除回跳边的预处理,得到新特征库,包括对所述原特征库中的特征编译成的原状态机进行分离,得到类非确定性有限状态机部 分和类确定性有限状态机部分;将分离后的原状态机中的回跳边删除,获得新状态机,所述回跳边为从所述类确定性 有限状态机部分返回到所述类非确定性有限状态机部分的跳转边; 将所述新状态机存储为所述新特征库。
3.根据权利要求2所述的特征匹配方法,其特征在于,所述对所述原特征库中的特征 编译成的原状态机进行分离,包括根据所述原特征库中的特征编译成的原状态机中回跳边数量和回跳边占所有跳转边 的比例,确定所述原特征库的类非确定性有限状态机部分的深度;根据所述类非确定性有限状态机部分的深度,将所述原状态机分离为类非确定性有限 状态机部分和类确定性有限状态机部分;对所述类确定性有限状态机部分的具有回跳边或多个跳转边的状态进行分割,使所述 类确定性有限状态机部分的状态线性化。
4.根据权利要求1所述的特征匹配方法,其特征在于,所述根据由原特征库预处理后 得到的新特征库和当前匹配信息,预测所述新特征库中与匹配相关的状态和从输入数据中 每次取出的待匹配字符的数量,包括获取包括当前激活状态、输入数据和信息指示结构的当前匹配信息; 根据所述当前激活状态和信息指示结构对所述输入数据进行分析,预测所述新特征库 中与匹配相关的状态和从输入数据中每次取出的待匹配字符的数量。
5.根据权利要求1所述的特征匹配方法,其特征在于,所述根据所述新特征库中与匹 配相关的状态从所述新特征库中获取特征数据,对所述特征数据与从所述输入数据中每次 取出的所述数量的待匹配字符进行匹配,包括将从所述新特征库中获取的所述特征数据存入缓存; 从所述缓存中读取所述特征数据;判断所述特征数据与从所述输入数据中每次取出的所述数量的待匹配字符是否匹配。
6.一种特征匹配装置,其特征在于,包括预处理模块,用于对原特征库的特征编译成的原状态机进行分离和删除回跳边的预处 理,得到新特征库;特征预测模块,用于根据所述新特征库和匹配引擎中的当前匹配信息,预测所述新特 征库中与匹配相关的状态和从输入数据中每次取出的待匹配字符的数量;特征预取模块,用于根据所述新特征库中与匹配相关的状态从所述新特征库中获取特 征数据;匹配引擎,用于对所述特征数据与从所述输入数据中每次取出的所述数量的待匹配字 符进行匹配。
7.根据权利要求6所述的特征匹配装置,其特征在于,所述预处理模块包括分离子模块,用于对所述原特征库中的特征编译成的原状态机进行分离,得到类非确 定性有限状态机部分和类确定性有限状态机部分;回跳边处理子模块,用于将分离后的原状态机中的回跳边删除,获得新状态机,所述回 跳边为从所述类确定性有限状态机部分返回到所述类非确定性有限状态机部分的跳转边。
8.根据权利要求7所述的特征匹配装置,其特征在于,所述分离子模块包括深度确定单元,用于根据所述原特征库中的特征编译成的原状态机中回跳边数量和回 跳边占所有跳转边的比例,确定所述原特征库的类非确定性有限状态机部分的深度;分离单元,用于根据所述类非确定性有限状态机部分的深度,将所述原状态机分离为 类非确定性有限状态机部分和类确定性有限状态机部分;分割单元,用于对所述类确定性有限状态机部分的具有回跳边或多个跳转边的状态进 行分割,使所述类确定性有限状态机部分的状态线性化。
9.根据权利要求6所述的特征匹配装置,其特征在于,所述特征匹配装置还包括 存储管理模块,用于将所述新状态机存储为所述新特征库;所述特征预取模块还用于,将从所述新特征库中获取的所述特征数据存入缓存; 所述匹配引擎还用于,从所述缓存中读取所述特征数据,判断所述特征数据与从所述 输入数据中每次取出的所述数量的待匹配字符是否匹配。
10.根据权利要求6所述的特征匹配装置,其特征在于,所述特征预测模块包括 获取子模块,用于从所述匹配引擎中获取包括当前激活状态、输入数据和信息指示结构的当前匹配信息;预测子模块,用于根据所述当前激活状态和信息指示结构对所述输入数据进行分析, 预测所述新特征库中与匹配相关的状态和从输入数据中每次取出的待匹配字符的数量。
全文摘要
本发明实施例涉及一种特征匹配方法和装置,其中,该方法包括对原特征库的特征编译成的原状态机进行分离和删除回跳边的预处理,得到新特征库;根据所述新特征库和当前匹配信息,预测所述新特征库中与匹配相关的状态和从输入数据中每次取出的待匹配字符的数量;根据所述新特征库中与匹配相关的状态从所述新特征库中获取特征数据,对所述特征数据与从所述输入数据中每次取出的所述数量的待匹配字符进行匹配。本发明实施例中新特征库与原特征库相比存储量低,激活状态可控,线性化程度高,降低了特征匹配的复杂程度,根据新特征库中与匹配相关的状态从新特征库中提取特征数据后,可以对取出的输入数据匹配,实现多字符匹配,提高特征匹配的速度。
文档编号H04L29/06GK102148805SQ201010109589
公开日2011年8月10日 申请日期2010年2月9日 优先权日2010年2月9日
发明者吴富强, 周咸春, 曾佳, 王晓波 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1