内容匹配方法和装置制造方法及图纸

技术编号:8194078 阅读:196 留言:0更新日期:2013-01-10 03:54
本发明专利技术实施例提供一种内容匹配方法和装置。该方法包括:基于设定的至少一种哈希算法对至少一个目标字符串进行哈希运算,以分别获取各目标哈希结果;根据每个目标字符串的各目标哈希结果形成该目标字符串的哈希表项,将各个目标字符串的哈希表项组合形成哈希匹配表;根据所述至少一种哈希算法对被测字符串进行哈希运算,以获取各被测哈希结果;根据所述被测字符串的各被测哈希结果在所述哈希匹配表的各哈希表项中进行匹配,以获得匹配结果。本发明专利技术能简化匹配所占用的系统资源,字符串提取过程和字符串哈希匹配过程并行执行,能提高匹配速度;且在增加或减少目标字符串时,不必对哈希匹配表重新编译,易于升级和维护。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术实施 例涉及数据处理技术,尤其涉及一种内容匹配方法和装置
技术介绍
随着网络精细化发展,许多网络用户和设备商越来越关注报文7层以上内容,用于进行包过滤、内容计费、流量检测、搜索引擎等,在国防、公安、安全、网络服务管理、商业广告等领域也逐步得到广泛应用。深度报文解析(Deep Packet Inspection,简称DPI)技术应运而生,可基于协议规定识别报文中的各个字段内容。协议识别/解析是DPI关键技术之一,而字符串/特征字匹配是协议识别/解析的重要内容,匹配速度的快慢直接影响产BH 生倉泛ο现有技术针对字符串或特征字进行的内容匹配技术典型的执行如下操作a)将目标字符串分为至少一个第一字符串山)通过组合生成第二字符串组,例如进一步将第一字符串的子串作为第二字符串;c)从第二字符串中提取第三字符串,例如按照黑名单、白名单筛选出常用的字符串作为第三字符串,采用状态机或规则树等算法编译各第三字符串;d)采用滑窗方式,根据不同的起始位置,比较被检测字符串中是否匹配第一个字符串节点处的第三字符串;e)如果匹配成功,但存在下一个字符串节点,则进入下一个匹配流程;f)如果匹配成功,且无下一字符串节点,则被检测字符串与目标字符串匹配;g)如果匹配失败,则被检测字符串与目标字符串不匹配。现有的内容匹配方法至少存在如下缺陷1)如果目标字符串较长时,匹配节点分支和匹配时间成倍增加,性能会急剧下降;2)为了提高性能时,只能采用多匹配引擎,资源消耗过大;3)新增目标字符串时,需要重新编译规则树,不利于热升级,只能采用表项备份切换方式解决。
技术实现思路
本专利技术实施例提供一种内容匹配方法和装置,以提高字符串内容匹配时的匹配速度,减少资源占用量,同时便于升级和维护。本专利技术实施例提供了一种内容匹配方法,包括基于设定的至少一种哈希算法对至少一个目标字符串分别进行哈希运算,以分别获取每个目标字符串与各哈希算法对应的各目标哈希结果;根据每个目标字符串的各目标哈希结果形成该目标字符串的哈希表项,将各个目标字符串的哈希表项组合形成哈希匹配表;根据所述至少一种哈希算法对被测字符串进行哈希运算,以获取所述被测字符串与各哈希算法对应的各被测哈希结果;根据所述被测字符串的各被测哈希结果在所述哈希匹配表的各哈希表项中进行匹配,以获得匹配结果。本专利技术实施例还提供了一种内容匹配装置,包括第一哈希运算模块,用于基于设定的至少一种哈希算法对至少一个目标字符串分别进行哈希运算,以分别获取每个目标字符串与各哈希算法对应的各目标哈希结果;哈希表形成模块,用于根据每个目标字符串的各目标哈希结果形成该目标字符串的哈希表项,将各个目标字符串的哈希表项组合形成哈希匹配表;第二哈希运算模块,用于根据所述至少一种哈希算法对被测字符串进行哈希运算,以获取所述被测字符串与各哈希算法对应的各被测哈希结果;哈希表匹配模块,用于根据所述被测字符串的各被测哈希结果在所述哈希匹配表的各哈希表项中进行匹配,以获得匹配结果。本专利技术实施例提供的内容匹配方法和装置,简化了匹配所占用的系统资源,无需额外的倒换或备份资源;字符串提取过程和字符串哈希匹配过程并行执行,可以大大缩短匹配时间,能提高匹配速度;哈希结果的匹配操作不会受到目标字符串长短的影响,所以匹 配效率高;且在增加或减少目标字符串时,不必对哈希匹配表重新编译,而只需修改相应的哈希表项即可,哈希算法及其数量也可以随时更新,因此易于升级和维护。附图说明图I为本专利技术实施例一提供的内容匹配方法的流程图;图2为本专利技术实施例二提供的内容匹配方法的流程图;图3为本专利技术实施例三提供的内容匹配方法的流程图;图4为本专利技术实施例四提供的内容匹配方法的流程图;图5为本专利技术实施例五提供的内容匹配装置的结构示意图;图6为本专利技术实施例六提供的内容匹配装置的结构示意图;图7为本专利技术实施例七提供的内容匹配装置的结构示意图。具体实施例方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一图I为本专利技术实施例一提供的内容匹配方法的流程图,该内容匹配方法可具体应用于各种应用场景中,典型地如网址过滤、报文过滤等,由以软件和/或硬件形式承载于服务器中的内容匹配装置来执行,例如承载于网关GPRS支持节点(Gateway GPRS SupportNode,简称GGSN)。该方法具体包括如下步骤步骤110、内容匹配装置基于设定的至少一种哈希算法对至少一个目标字符串分别进行哈希运算,以分别获取每个目标字符串与各哈希算法对应的各目标哈希结果;步骤120、内容匹配装置根据每个目标字符串的各目标哈希结果形成该目标字符串的哈希表项,将各个目标字符串的哈希表项组合形成哈希匹配表;步骤130、内容匹配装置根据所述至少一种哈希算法对被测字符串进行哈希运算,以获取所述被被测字符串与各哈希算法对应的各个被测哈希运算结果;步骤140、内容匹配装置根据所述被测字符串的各个被测哈希运算结果在所述哈希匹配表的各哈希表项中进行匹配,以获得匹配结果。本实施例的技术方案中包括了对目标字符串的编译步骤110和120,以及采用编译的哈希匹配表对被测字符串进行匹配的步骤130和140。所谓目标字符串,是内容匹配技术中,作为匹配基准的字符串,可以由用户预先设定。所谓被测字符串,是在内容匹配技术中,作为需要被匹配过滤的字符串,例如待过滤报文中的字段、网址等。例如,在网页过滤的应用中,用户可设定体现过滤目标的关键字作为目标字符串,例如能体现暴力、色情等等待过滤内容的字符串,对目标字符串进行预编译,以便执行后续的匹配操作。随后用户打开的网址,作为被测字符串,首先会与预编译的目标字符串进行匹配,如果匹配一致,则可以过滤掉该网页,否则,则正常打开该网址的网页。本实施例将目标字符串通过哈希算法转换为目标哈希结果,采用同样的哈希算法获取被测字符串的被测哈希结果,通过哈希结果的匹配来得到被测字符串是否与目标字符 串匹配的结果。本专利技术实施例的技术方案,简化了匹配所占用的系统资源,无需额外的倒换或备份资源;此外,字符串提取过程和字符串哈希匹配过程并行执行,当报文中的被测字符串较多时,例如20个以上,也可以大大缩短匹配时间,可流水作业,能提高匹配速度;哈希结果的匹配操作不会受到目标字符串长短的影响,所以匹配效率高;且在增加或减少目标字符串时,不必对哈希匹配表重新编译,而只需修改相应的哈希表项即可,哈希算法及其数量也可以随时更新,因此易于升级和维护。本实施例的技术方案,匹配结果的精确度与所采用的具体哈希算法和哈希算法的数量相关。选择适当的哈希算法,能最大限度地体现目标字符串的特性,从而使得相同的字符串具有相同的哈希结果。增加哈希算法的数量,同样可以降低不同字符串具有完全相同的哈希结果的概率,从而可减小误匹配率。具体所采用的哈希算法及其数量可根据目标字符串的数量等实际应用场景来设置。本专利技术实施例的技术方案可适用于多种情况,并不限于字符串的匹配,也可以为适用于一串数据的匹配。实施例本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:徐文广戴崇经田聃
申请(专利权)人:华为技术有限公司
类型:
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1