一种基于FPGA的快速正则表达式匹配实现系统及方法
摘要文本
天津光电聚能通信股份有限公司取得“一种透气窗帘布”专利技术,本发明公开了一种基于FPGA的快速正则表达式匹配实现系统及方法:系统包括主机内的正则表达式策略拆解模块、数据流发送模块,以及FPGA内的正则表达式策略缓存模块、正则表达式匹配策略匹配模块、正则表达式重组策略匹配模块;拆解每个会话的正则表达式策略,根据会话号将拆解后的正则表达式策略存入正则表达式策略缓存模块;数据流发送模块产生不同会话号数据流,发送给正则表达式匹配策略匹配模块,获取当前数据流会话号,根据会话号获取拆解后的正则表达式策略,配置到正则表达式匹配策略匹配模块进行第一次匹配;基于KMP算法对第一次匹配结果进行第二次查找匹配,得到最终的正则表达式匹配结果。本发明采用FPGA实现查找速率更快,支持多会话、多策略并行查找。
专利主权项内容
1.一种基于FPGA的快速正则表达式匹配实现系统,其特征在于,包括主机内的正则表达式策略拆解模块、数据流发送模块,以及FPGA内的正则表达式策略缓存模块、正则表达式匹配策略匹配模块、正则表达式重组策略匹配模块;所述正则表达式策略拆解模块用于对每个会话的正则表达式策略分别进行拆解,根据会话号将拆解后的正则表达式策略存入FPGA的正则表达式策略缓存模块中;其中,所述拆解后的正则表达式策略包含两部分:一部分为正则表达式匹配策略,包含固定值匹配子策略、重复匹配子策略、范围匹配子策略、任意字符匹配子策略、其他字符匹配子策略中的至少一个;另一部分为正则表达式重组策略;根据正则表达式重组策略,将正则表达式匹配策略重组为拆解前的正则表达式策略;对正则表达式匹配策略的查找结果,基于KMP算法对正则表达式重组策略进行查找匹配;所述数据流发送模块用于产生不同会话号的数据流,将数据流拆分成多个数据包,发送给FPGA的正则表达式匹配策略匹配模块;其中,所述数据流的会话号与正则表达式策略的会话号存在对应关系;所述正则表达式策略缓存模块用于存储拆解后的正则表达式策略;所述正则表达式匹配策略匹配模块包括固定值匹配模块、重复匹配模块、范围匹配模块、任意字符匹配模块、其他字符匹配模块;所述正则表达式匹配策略匹配模块接收数据流发送模块发来的数据流,并从数据流中获取当前数据流的会话号,根据会话号从正则表达式策略缓存模块中获取拆解后的正则表达式策略,配置到正则表达式匹配策略匹配模块的各子模块中进行第一次匹配;所述正则表达式重组策略匹配模块采用KMP算法对第一次匹配结果进行第二次查找匹配,得到最终的正则表达式匹配结果。
专利申请信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种基于FPGA的快速正则表达式匹配实现系统及方法 |
| 专利类型 | 发明申请 |
| 申请号 | CN202311649808.8 |
| 申请日 | 2023/12/5 |
| 公告号 | CN117349409A |
| 公开日 | 2024/1/5 |
| IPC主分类号 | G06F16/33 |
| 权利人 | 天津光电聚能通信股份有限公司 |
| 发明人 | 毕顺利; 朱天逸; 张长利 |
| 地址 | 天津市滨海新区滨海高新区神舟大道139号1层4号厂房 |