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

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

技术领域

发明涉及计算机应用技术领域,尤其涉及一种基于TCAM(ternary content addressable memory,三态内容寻址存储器)的DFA的匹配方法和装置。

背景技术

正则表达式技术是计算机网络系统的一项核心基础技术,被广泛应用于入侵检测和防护、签名匹配、蠕虫检测、包内容过滤、流量分析、协议识别等领域。正则表达式具有灵活、强大的描述字符串模式的能力,正则表达式的匹配通过有限自动机实现,该有限自动机包括NFA(non-deterministic finite automaton,非确定性有限自动机)和DFA(deterministic finite automaton,确定性有限自动机)。即可将正则表达式编译为一个NFA,然后可以将此NFA转化为一个与之等价的DFA,通过NFA或者DFA的状态转换检查输入字符串中是否存在给定的正则表达式模式。NFA和DFA在存储空间和匹配速度两个方面拥有各自的优点和缺点。

有限自动机存储的是一个状态转换表,给定一个当前活跃状态和一个输入字符,通过在状态转换表中查询,可得到下一时刻活跃的状态。自动机的存储空间取决于这个状态转换表的大小,由于字符表的大小通常是确定的(如ASCII表),所以自动机的存储空间主要取决于状态的个数。

NFA所需存储空间小,其状态数与正则表达式的规则集大小(即规则集中字符数)成线性增长关系。但NFA的匹配速度很慢。由于NFA的不确定性,对于每个字符,NFA中的状态都有可能同时转移到多个目的状态,导致一次状态转换需要多次内存访问。对于这些同时激活的目的状态,在处理下一个输入字符时,它们又会同时激活更多的目的状态。因此,NFA的匹配速度是不可预测的,实际应用中,通常需要几十次内存访问才能完成一次NFA状态转换,远不能满足网络线速(line rate)。

DFA具有确定性的匹配速度,由于对于每个输入字符,每个DFA状态有且仅有唯一的目的状态,因此每次DFA状态转换仅需一次内存访问。但DFA的状态数可能与正则表达式的规则集大小成指数增长关系,导致正则表达式规则通常无法用DFA存储。目前的基于DFA的方法都无法突破一个存储体积的瓶颈,即所存储的DFA转移边的数目总是大于DFA状态数,因此也就无法存储状态数成指数膨胀的DFA。

目前,由于上述有限状态自动机的体量非常大,导致上述基于DFA的正则表达式匹配方法亟待改进。

【发明内容】

本发明的实施例提供了一种基于TCAM的DFA的匹配方法和装置,以实现解决同时兼顾存储空间和匹配速度的难题。

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

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

将确定性有穷状态自动机DFA的每个状态用若干三态内容寻址存储器TCAM条目表示,每个TCAM条目由源状态域、输入字符域和目的状态域三个域组成,基于生成所述DFA的非确定性有穷状态自动机NFA中的链式结构,以及所述NFA和所述DFA之间的内在链式结构特征,识别出所述DFA中的链式结构;

根据所述DFA中的链式结构对所述DFA的状态进行重新编号和编码,在TCAM中对所述DFA的状态转移边进行重新编码;

以具体的所述源状态域和输入字符域的拼接作为搜索关键词,按照所述搜索关键字在所述DFA的所有TCAM条目中进行搜索,将搜索得到的目的状态域作为输出结果。

一种基于TCAM的确定性有穷状态自动机DFA的匹配装置,包括:

DFA链式结构识别模块,用于将DFA的每个状态用若干三态内容寻址存储器TCAM条目表示,每个TCAM条目由源状态域、输入字符域和目的状态域三个域组成,基于生成所述DFA的非确定性有穷状态自动机NFA中的链式结构,以及所述NFA和所述DFA之间的内在链式结构特征,识别出所述DFA中的链式结构;

重编码处理模块,根据所述DFA中的链式结构对所述DFA的状态进行重新编号和编码,在TCAM中对所述DFA的状态转移边进行重新编码;

搜索匹配模块,用于以具体的所述源状态域和输入字符域的拼接作为搜索关键词,按照所述搜索关键字在所述DFA的所有TCAM条目中进行搜索,将搜索得到的目的状态域作为输出结果。

本发明实施例通过对DFA状态ID重新编号以反映DFA中链式结构副本的特征;最终基于重新编号的状态ID,在TCAM中通过对DFA的状态转移边进行编码和压缩,使得DFA中的副本链式结构在TCAM中能够被合并,以达到减少存储空间的目。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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