[发明专利]基于现场可编程门阵列的高速模式匹配算法有效
| 申请号: | 200810241135.1 | 申请日: | 2008-12-30 | 
| 公开(公告)号: | CN101442540A | 公开(公告)日: | 2009-05-27 | 
| 发明(设计)人: | 刘晓燕;王霖 | 申请(专利权)人: | 北京畅讯信通科技有限公司 | 
| 主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F17/30 | 
| 代理公司: | 北京中海智圣知识产权代理有限公司 | 代理人: | 曾永珠;胡 静 | 
| 地址: | 100037北京市西城*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 基于 现场 可编程 门阵列 高速 模式 匹配 算法 | ||
1.一种基于现场可编程门阵列的高速模式匹配方法,其特征在于,包括如下步骤:
步骤1:依据动态扩充AC算法中跳转函数goto方法及对规则库压缩方法将输入的模式 匹配规则集合文件编译为符合FPGA读写规律的二进制规则库文件;其中,所述动态扩充AC 算法中跳转函数goto方法包括:首先构造一个初始的goto函数,再根据这个初始的goto函 数构造failure函数,在构造failure函数过程中根据多模式匹配的AC算法来动态地扩充goto 函数来构造出完整地goto函数和failure函数;
所述多模式匹配的AC算法根据所有的输入模式构造一个状态表,当状态表是一个严格 单向的状态表时,完整的goto函数就是该方法得到的最终结果;否则,构造failure函数,在 AC算法上采用穷举的方式查找回溯过程,从阶数1开始找起,直到遍历所有状态;其中,所 述回溯过程为在非确定性有限状态机NFA中failure函数的一个状态回指的过程,表明了从状 态0到该状态的路径上的字符串包含了从状态0到其他状态的字符串;
所述规则库压缩方法包括:将可能发生非0状态的最小和最大字符之间的状态变化信息 保存;
步骤2:将编译好的二进制规则库文件加载到FPGA的四倍速数据速率静态随机存储器 QDR SRAM,该规则库包括状态跳转表和状态信息表两部分;
步骤3:系统初始化后开始接收数据包,当前系统状态号初始化为0;
步骤4:判断接收到的新的数据包是否需要匹配;若需要匹配,则转至步骤5);否则, 则转至步骤16);
步骤5:取出0状态的状态信息,包括最大及最小有效字符、是否命中的标志位、状态 跳转表的位置基地址,放入当前状态信息中;
步骤6:取一个需要匹配的字符;
步骤7:根据当前状态信息的内容判断取的字符是否在最小字符和最大字符之间;若是, 则转至步骤8);否则,转至所述步骤6)取下一个需要匹配的字符;
步骤8:根据当前状态信息中的状态跳转表的位置基地址和字符计算该字符对应的状态 跳转表的地址;
步骤9:根据所述步骤8得到的状态跳转表的地址,取出下一状态号作为新的当前状态 号;
步骤10:根据取到的状态号来计算存放当前状态信息项的状态信息表的地址;
步骤11:根据所述步骤10得到的状态信息表的地址,取出相应的状态信息放入当前状 态信息中;
步骤12:根据得到的状态信息判断输入的字符是否匹配;若是,则转至步骤13);否则, 则转至步骤14);
步骤13:记录匹配的结果;
步骤14:判断收到的数据包是否全部完成匹配;若是,则转至步骤15);否则,则转至 所述步骤6)取下一个需要匹配的字符;
步骤15:当整个数据包匹配结束后,把匹配结果与原始的数据包重新组合成新的数据包;
步骤16:把数据包转发出去,然后初始化当前的状态号为0,开始新的数据包匹配。
2.根据权利要求1所述的基于现场可编程门阵列的高速模式匹配方法,其特征在于,所 述步骤8的根据当前状态信息中的状态跳转表的位置基地址和字符计算该字符对应的状态跳 转表地址的方法为:
状态跳转表地址=状态跳转表的位置基地址+(最大字符-最小字符)×一个状态跳 转条目占用的字节数。
3.根据权利要求1所述的基于现场可编程门阵列的高速模式匹配方法,其特征在于,所 述步骤10的根据取到的状态号来计算存放当前状态信息项的状态信息表的地址的方法为:
存放当前状态信息项的状态信息表的地址=状态信息表基地址+当前状态号×每个 状态信息条目占用的字节数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京畅讯信通科技有限公司,未经北京畅讯信通科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810241135.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:实现动态域名更新的方法和设备
- 下一篇:一种网络成分协调控制方法





