[发明专利]基于TCAM的非确定性有限自动机的匹配方法和装置有效

专利信息
申请号: 201210021964.5 申请日: 2012-01-31
公开(公告)号: CN103226551A 公开(公告)日: 2013-07-31
发明(设计)人: 董群峰;彭坤杨 申请(专利权)人: 中国科学技术大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京凯特来知识产权代理有限公司 11260 代理人: 郑立明;黄晓军
地址: 230026 安*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 tcam 确定性 有限 自动机 匹配 方法 装置
【说明书】:

技术领域

发明涉及计算机应用技术领域,尤其涉及一种基于TCAM(ternary content addressable memory,三态内容寻址存储器)的NFA(non-deterministic finite automaton,非确定性有限自动机)的匹配方法和装置。

背景技术

从最早的grep(global search regular expression and print out the line,全面搜索正则表达式并把行打印出来),到现在非常流行的PCRE(Perl Compatible Regular Expressions,perl语言兼容正则表达式),正则表达式因其强大、便捷、高效的文本处理能力,得到了广泛的使用。目前,几乎所有主编程流语言都支持正则表达式;在软件开发和日常数据处理工作中,正则表达式更是人们不可或缺的得力助手。

正则表达式是一种“通用的模式语言”,它由两种字符构成:特殊字符和普通字符。特殊字符称为“元字符”,普通字符称为“文字”。“文字”就像语言中的单词,“元字符”则像文法;把单词按文法组织起来,就有了语义。正如文章由句子段落构成一样,一个完整的正则表达式也是由小的模块单元组成的。虽然模块单元各自都很简单,但它们的组合却千变万化。正是这种简单模块的复杂组合,使得正则表达式具有了强大的表达能力。

例如,正则表达式a+b可以用来描述ab,aab,aaab,......等一系列特征的

字符串。正则表达式匹配技术是一项用于检测给定的输入字符流中是否包含特定的正则表达式所描述的模式的技术,它计算机网络系统的一项核心基础技术,被广泛应用于如入侵检测和防护、签名匹配、蠕虫检测、深度包检测、流量分析、协议识别等等。正则表达式的匹配通过有限自动机实现,即将正则表达式的规则编译成一个等价的有限自动机,包括NFA(non-deterministic finite automaton,非确定性有限自动机)和DFA(deterministic finite automaton,确定性有限自动机)。

基于自动机的正则表达式匹配技术急需解决的两大难题是自动机的存储体积和匹配速度。在这两个关键性能指标上,DFA和NFA各自具有不同的优点和缺点。

DFA的每个状态对于每个输入字符都只转移到一个唯一的目的状态,使得在DFA运行的时刻,都只有一个状态是活跃的,因此DFA实现正则表达式匹配的过程非常简单:一次DFA状态转换即可处理一个输入字符。DFA因此具有确定的匹配速度,但是DFA所需的状态空间可能呈现指数膨胀,在最坏情况下,具有n个状态的DFA,其等价的DFA可能多达2n个状态,在实际的网络应用中,几十个具有“.*”结构(表示匹配任意多数量的任意字符)的正则表达式组合在一起,就会使得编译得到的DFA因为状态空间发生指数膨胀而无法存储。而随着网络应用和流量的快速发展,需要同时检测的正则表达式规则往往成千上万,基于DFA的正则表达式技术往往变得不可行。

NFA的优点在于它的存储体积小,其体积与正则表达式规则集大小(即规则集中字符数)成线性增长关系,即使成千上万条规则,所生成的NFA占用的体积也很小。但NFA的状态转移具有不确定性,对于NFA的每一个状态和每一个字符,它所到达的目的状态的数目是不唯一的,也就是说一个NFA状态可以经过一个字符激活多个NFA状态,而这多个NFA状态被同时激活以后,在处理下一个输入字符时,又可能进一步激活更多的状态。因此在NFA运行的过程中,总是会有一组数目不确定的状态同时活跃。由于同时活跃的状态所组成的集合始终是NFA全体状态集合的一个子集,我们把NFA运行时可能出现的活跃状态组成的集合称之为活跃状态子集,NFA的一次状态转换的过程也就是一个源活跃状态子集经过一个输入字符激活一个目的活跃状态子集的过程。

目前,NFA的上述特征导致其匹配速度变得缓慢和不可预测。实际应用中,通常需要几十次内存访问甚至更多才能完成一次NFA状态转换,远不能满足网络线速。

发明内容

本发明的实施例提供了一种基于三态内容寻址存储器的正则表达式的匹配方法和装置,以提高基于NFA的正则表达式匹配的速度。

为实现上述的发明目的,本发明采用下述的技术方案:

一种基于TCAM的非确定性有穷状态自动机的匹配方法,包括:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210021964.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top