[发明专利]深度报文检测DFA状态转移表的压缩与报文匹配方法有效
申请号: | 201110026486.2 | 申请日: | 2011-01-25 |
公开(公告)号: | CN102075430A | 公开(公告)日: | 2011-05-25 |
发明(设计)人: | 缪庆军;丁贤根 | 申请(专利权)人: | 无锡网芯科技有限公司;江苏华丽网络工程有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06 |
代理公司: | 无锡华源专利事务所 32228 | 代理人: | 聂汉钦 |
地址: | 214028 江苏省无锡市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 深度 报文 检测 dfa 状态 转移 压缩 匹配 方法 | ||
1.一种深度报文检测DFA状态转移表的压缩与报文匹配方法,其特征在于:对DFA状态转移表的每一行,将转移状态相同的相近输入字符及其转移状态用(起始字符,位图,转移状态)三元组表示,存放于高速存储器中;当查找输入字符的转移状态时,并行匹配同一行的三元组。
2.根据权利要求1所述深度报文检测DFA状态转移表的压缩与报文匹配方法,其特征在于:
DFA状态转移表的压缩依次执行以下步骤:
1)对每个状态行,将转移状态相同的输入字符分为同一组;
2)对每个状态行,将分在同一组的相邻或邻近的输入字符及其转移状态用(起始字符,位图,转移状态)三元组来表示;其中起始字符为分组内最小的输入字符;位图以二进制表示,计算该组各个输入字符相对于起始字符的偏移值,将位图上与这些偏移值相对应的比特位置1,其余比特位置0;
3)对每个状态行,当分在同一组的输入字符不能被单个所述三元组编码时,由多个所述三元组来编码;
4)对每个状态行,如果其包含的所述三元组的个数不超过预设的阀值,则该状态行用上述三元组编码的方式存放在高速存储器中;否则,该状态行不压缩,用一维线性数组的方式存储在片外DRAM中;
5)对状态值重新映射,使得存放三元组的高速存储器中存放的状态值都小于片外DRAM存放的状态值;将片外DRAM存放的状态值中的极小值作为分界值;
报文匹配依次执行以下步骤:
6)以DFA状态转移表的起始状态和报文首字符作为起始输入;
7)如果该状态是终结状态则结束匹配;如果状态值小于所述分界值,则执行步骤8查找存放三元组的高速存储器;否则,执行步骤9查找片外DRAM;
8)根据一维线性数组索引的方式,从存放三元组的高速存储器中读出该状态行的所有三元组编码,将每一个三元组编码中位图比特偏移值置1的字符与该输入字符进行匹配;如果匹配到,则取该字符所在三元组的转移状态和报文的下个字符作为输入,执行步骤7;如果没有匹配到任何三元组,则匹配失败并结束;
9)根据二维线性数组索引的方式,从片外DRAM中读取对应的转移状态;如果有转移状态,则取该转移状态和报文的下个字符作为输入,执行步骤7;如果没有转移状态,则匹配失败并结束。
3.根据权利要求2所述深度报文检测DFA状态转移表的压缩与报文匹配方法,其特征在于:所述每个位图占4~16个比特,且各个位图的宽度是固定的。
4.根据权利要求2所述深度报文检测DFA状态转移表的压缩与报文匹配方法,其特征在于:所述每个状态行包含三元组个数的阀值为2~32。
5.根据权利要求2所述深度报文检测DFA状态转移表的压缩与报文匹配方法,其特征在于:所述三元组可以存放在片内高速存储器中或片外高速存储器中,所述高速存储器包括SRAM。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡网芯科技有限公司;江苏华丽网络工程有限公司,未经无锡网芯科技有限公司;江苏华丽网络工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110026486.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:煤焦块筛分系统
- 下一篇:烟丝翻箱喂料风送装置