一种前缀匹配算法制造技术

技术编号:3482198 阅读:291 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示了一种前缀匹配算法和方法,所述前缀匹配引擎用来将输入流前缀和预定义特征前缀进行匹配,其包括一个前缀逻辑电路,一个存储预定义特征字符串前缀信息的前缀查询表和一个表项缓存器。根据输入流的一部分,所述前缀逻辑电路能够读取在前缀查询表中表项组的一个预设数字,并将表项组预设数字的表项值组存储在表项缓存器中。通过检查表项缓存器中的临时表项值组,所述前缀逻辑电路判断是否找到一个前缀匹配,上述方法使得前缀匹配判断切实有效。

【技术实现步骤摘要】

本专利技术涉及计算机网络结构和系统,特别是一种在网络处理程序 中运行的采用前缀匹配算法的模式匹配运算,所述网络处理程序需要 内容匹配或者内容过滤。
技术介绍
现在,计算机系统在一个近乎无所不在的互联环境中运行,无论 是连接到互联网和网络还是通过无线技术互相连接。虽然无时不在的 通信已经为商业网络和信息共享创造了无数的新机会,但也同时增加 了破坏网络安,或者说黑客攻击,试图窃取保密信息或者以其他方式 妨碍网络通信等情况发生的频率。考虑到保护信息和服务的重要性,需要大量的工作确保公共安全。 最近,大量以在网络中侦测和阻止攻击为目标的计算机程序出现,包 括反病毒内容过滤,防火墙,侵入侦测/防止和网络保护。几乎每个现 代安全网络系统的核心都是一种模式匹配算法,所述模式包括一个内容匹配的特征字符串(signature string)。在模式匹配运算中,正在通过 的包数据流(packettraffic)被用来和一个代码库(library)进行比较, 所述代码库包含一些已知的可疑的、有威胁的、或危险的包数据流的 模式。 一旦发现在待检测的包数据流(screened packet traffic)和代码 库中的一个模式之间存在匹配,就会发出一个警报,并且该匹配的包 数据流就可以在造成任何损害前被捕获。除了在网络安全程序中的运 用,模式匹配也用在IP (internet protocol;互联网协议)路径中,其中 每个通过该路径的包数据流被检索以找到IP地址。遗憾的是,检査每个包数据流的每个字节以检测其是否与一组上 万个模式中的一个匹配,需要大量的处理资源,包括处理每个包数据 流的时间量存储量。另外,由于包数据流的速度随时间不断增加,为了不限制数据包的流量,模式匹配操作必须以每秒千兆字节(Gbps)的速度运行。考虑以上因素,所述特征字符串匹配引擎被设计成包括一个 前缀匹配引擎和一个精确匹配引擎。所述前缀匹配引擎,通过比对一 个预编译过的前缀查询表检查包数据流的前缀,并作为预处理器过滤 出大多数包数据流。只有那些其前缀被发现与在前缀查询表中的预定 义前缀匹配的包数据流,会在精确匹配引擎中被进一步检测。因为精 确匹配引擎很少启动,因此总的包数据流流量被很大提高。虽然前缀匹配算法提供了一个提高流量的解决方案,但是目前的 前缀匹配技术仍不能提供满意的性能、流量、和灵活性。例如,简单 的前缀匹配根据所有存储在前缀査询表中的前缀,检査一个包数据流 的前缀。当特征字符串的数量达到几千个时,所述简单前缀匹配的性 能会因为大量处理时间和有不利影响的流量而明显降低。而且,当最 短特征字符串的长度比较小时,简单的前缀匹配被证实会增加误判次 数并因此频繁启动精确匹配引擎。这样,前缀匹配引擎就不能提高数 据流量。
技术实现思路
因此,本专利技术要解决的技术问题在于,提供一种前缀匹配算法, 其使得前缀匹配判断切实有效。一个典型的前缀匹配引擎包括一个査询表, 一个逻辑电路和一个 表项。所述查询表存储预定义特征组的前缀信息。所述逻辑电路连接 到所述查询表,根据输入流的一部分,读取表项组在查询表中预先设 定的数字。所述表项缓存器连接到所述逻辑电路,用来存储表项组预 定义数字的临时表项值组。根据所述临时表项值组,所述逻辑电路判 断是否找到一个预定义特征组字符可能的匹配。具体地说,本专利技术提供了一种用于将输入流与预定义特征字符串进行匹配的设备,包括一个查询表,用于把预定义特征字符串的前缀信息存储在一组表项中;一个逻辑电路,连接至所述査询表,以根据所述输入流的一部分读取査询表中的表项;一个表项缓存器,连接至所述逻辑电路,以存储所述预定数量表 项的临时表项值,其中所述逻辑电路判断是否找到一个基于临时表项 值的可能匹配。本专利技术还提供了一种将一个输入流与预定义特征字符串进行匹配 的方法,包括将预定义特征字符串的前缀信息存储在表项组中;根据所述输入流的一部分读取一预定数量的表项;存储所述预定数量的表项组的临时表项值;基于所述临时表项值判断是否有一个可能匹配。本专利技术另提供了一种将一输入流与预定义特征字符串进行匹配的 系统,包括一个前缀匹配引擎,用于将预定义特征字符串的前缀信息存储在 一个査询表的多个表项中,检査预定数量的表项组以在输入流中找到与预定义特征字符串一个可能的匹配;以及一个精确匹配引擎,连接至所述前缀匹配引擎,用于收集与可能 匹配有关的前缀信息,并基于收集到的前缀信息作出精确匹配的判断。上述设备与方法使得前缀匹配判断切实有效。附图说明本专利技术的优点可以从如下详述的典型实施例中明显得出,其中对 专利技术的详述应与相应的附图一起理解,其中图1所示是根据本专利技术的一个实施例的一个前缀匹配引擎的方框图。图2所示是根据本专利技术的一个实施例的所述图1中一个前缀査询表的结构。图3所示是根据本专利技术的一个实施例的在前缀査询表中一个表项 的数据结构。图4所示是根据本专利技术的一个实施例的图1中前缀匹配引擎的一 个时序图。图5是根据本专利技术的一个实施例的一个显示前缀匹配条件的表。具体实施方式现在将要对本专利技术的具体实施例详细说明,虽然本专利技术将会以相 关实施例进行表述,但是可以理解的是,本专利技术并不局限于所述实施 例中。相反,本专利技术意在覆盖其他任何包含在由所附权利要求书所定 义的本专利技术的主旨和范围内的各种变型、修改和等同方式。图1显示了一个典型前缀匹配引擎100的框图,所述前缀匹配引 擎100包括一个前缀逻辑电路103, 一个前缀査询表105和一个表项缓 存器107,有效载荷包数据流从输入流模块101中流出。所述前缀匹配 引擎100连接到输入流模块101,并用于检査在一个有效载荷包数据流 中,是否有被认为对网络有害的预定义特征字符串,例如互联网蠕虫 或计算机病毒的存在。最后,每个包数据流最左边部分的前缀字符串 都被所述前缀匹配引擎100所检査。如果在前缀字符串检查后得到的 是否定结果,则说明被检査的包数据流与预定义的所有特征字符串都 不匹配,从而被检査的包数据流就能够被滤出。如果在前缀字符串检 査后,得到的是肯定结果,则说明被检査的包数据流可能与预定义的 特征字符串中的一个匹配。当发现一个可能的匹配时,关于被检査包 数据流的信息就被直接从前缀匹配引擎100传送到一个输出模块109, 所述信息从模块109进一步被输送给一个精确匹配引擎(图中未示出) 以对照预定义特征字符串进行精确包数据流检查。为了实现所述前缀字符串检查,所述前缀逻辑电路103连接到所 述输入流模块101并因此接收输入流的一部分,所述输入流的线速率 能接近或超过l吉比特(Gbits) /秒。根据输入流的所述部分,所述前 缀逻辑电路103在连续时钟周期中读取所述前缀査询表105中预定数 量的表项,并把接收到的表项的值存储在表项缓存器107中。这里, 前缀査询表105为一个预编译快速存储器,例如静态随机存储器 (SRAM)或减少迟延的动态随机存储器(RLDRAM),用于存储所述预 定义特征字符串的前缀信息。前缀査询表中的每个表项包括一个位置 段, 一个长度段和一个地址段,下文将会对此加以详述。通过检査存储在表项缓存器107中的临时表项值的位置段,前缀逻辑电路103能判断是否找到与预定义特征组字符串中的一个可能匹配。图2显示了前缀査询表105本文档来自技高网
...

【技术保护点】
一种用于将输入流与预定义特征字符串进行匹配的设备,包括:    一个查询表,用于把预定义特征字符串的前缀信息存储在一组表项中;    一个逻辑电路,连接至所述查询表,以根据所述输入流的一部分读取查询表中的表项;    一个表项缓存器,连接至所述逻辑电路,以存储所述预定数量表项的临时表项值,其中所述逻辑电路判断是否找到一个基于临时表项值的可能匹配。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:邢献武符永贵
申请(专利权)人:凹凸电子武汉有限公司
类型:发明
国别省市:83[中国|武汉]

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

1