[发明专利]确定自动机的空间压缩方法有效
申请号: | 200910090556.3 | 申请日: | 2009-08-20 |
公开(公告)号: | CN101630323A | 公开(公告)日: | 2010-01-20 |
发明(设计)人: | 杨毅夫;刘燕兵;刘萍;郭莉 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京泛华伟业知识产权代理有限公司 | 代理人: | 王 勇 |
地址: | 100190北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 确定 自动机 空间 压缩 方法 | ||
技术领域
本发明涉及网络安全领域,特别涉及确定自动机的空间压缩方法。
背景技术
正则表达式(Regular Expression)是计算机科学中用来描述或者匹配 一系列符合某个句法规则的字符串的单个字符串。利用正则表达式来匹配 那些符合某个模式的文本内容的方法也被称为正则表达式匹配算法。正则 表达式匹配算法一直都是计算机科学的研究焦点之一,它被广泛应用于网 络入侵检测、计算机病毒特征码匹配、网络信息内容安全、信息检索等多 个领域中。
确定自动机(DFA)是正则表达式匹配算法的基础,DFA在计算机中 以状态转换表的方式加以存储。通常,用DFA进行正则表达式匹配的基 本过程如下:
步骤a、对于给定的正则表达式,用经典的方法构建相应的DFA;
步骤b、采用DFA对输入的文本(或者网络流)进行匹配。这一匹配 过程又包括:
步骤b-1、当前状态current处于DFA的初始状态;
步骤b-2、对于每一个输入的文本字符t[i],根据状态转换表的内容从 自动机的当前状态current跳转到它的后继状态next;
步骤b-3、如果后继状态next是自动机的接受状态,那么说明当前文 本位置发生了一次匹配,输出匹配位置;
步骤b-4、继续处理下一个字符。
从上述过程可以看出,DFA是正则表达式匹配过程的核心。DFA中用 于记录当前状态current到后继状态next的转换情况的状态转换表的大小 (也就是下文中所提到的DFA存储空间)对实现正则表达式匹配时所占 用的计算机存储资源的多少直接相关,而正则表达式匹配的速度也和DFA 状态转换的速度有着密切的联系。
近年来,随着待处理信息量的不断增强和实时处理的紧迫需求,对正
则表达式匹配算法的性能提出了更高的要求。正则表达式匹配算法的性能 包括匹配速度和所占用计算机存储资源两个方面,而DFA正与这两个方 面有着密切的联系。因此,本领域技术人员希望通过对DFA的改变来改 进现有的正则表达式匹配算法,使得改进后的正则表达式匹配算法能够对 DFA存储空间进行压缩以减少对计算机存储资源的占用,并能加快DFA 状态的转换速度。
在参考文献1(Algorithm to Accelerate Multiple Regular Expressions Matching for Deep Packet Inspection Conference:SIGCOMM’06September 11-15,2006)中提出了D2FA方法来压缩DFA的存储空间。它通过引入默 认转移(default transition)来减少状态转移的数目,从而降低自动机的存 储空间。引入默认转移能够极大地减少DFA的状态转移,在该文中所记 载的实验表明,该方法平均能够减少95%的状态转移。但是该方法的缺陷 在于:每处理一个字符可能需要在D2FA中进行多次状态跳转,导致实际 的匹配性能不高。
在参考文献2(An improved DFA for fast regular expression matching, ACM SIGCOMM Computer Communication Review,Volume 38,Issue 5(October 2008),Pages 29-40)中提出了δFA方法来压缩DFA的状态表。 该方法提取子状态和父状态的相同元素来消除状态转换表的冗余。在状态 访问序列中,如果当前状态t要访问的元素next[t,c]与其前一个状态s的 对应元素next[s,c]相同,那么可以直接从前一个状态中读取相应的值。 该方法能够取得非常好的压缩效果,但是非常费时的。
综上所述,现有技术中所公开的正则表达式匹配算法无法同时提高 DFA空间的压缩效果与DFA状态的转换速度,从而影响了正则表达式匹 配算法的最终匹配性能。
发明内容
本发明的目的是克服现有技术无法同时提高DFA空间的压缩效果与 DFA状态的转换速度的缺陷,从而提供一种在压缩效果与转换速度上达到 良好平衡的方法。
为了实现上述目的,本发明提供了一种确定自动机的空间压缩方法, 包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910090556.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种主题网络爬虫系统的设计方法
- 下一篇:嵌入式系统以及硬件设定方法