发明名称 单包正则匹配设备和方法
摘要 本发明提供了一种单包正则匹配设备和方法,所述匹配设备包括:单包正则匹配单元和与所述单包正则匹配单元连接的缓存单元,所述单包正则匹配单元包括:正则表达式匹配模块,与所述正则表达式匹配模块连接的协议变量匹配模块。所述匹配方法通过将多个正则表达式根据协议变量进行分组,分别对每个正则表达式组进行编译,得到多个DFA,首先利用协议变量进行报文匹配,再利用匹配结果加载DFA以进行正则表达式匹配。本发明提供的单包正则匹配设备和方法,减少了匹配过程中需要加载的数据,缩短了加载过程,减少了正则表达式匹配时间,提高了匹配性能。
申请公布号 CN102420750B 申请公布日期 2015.09.23
申请号 CN201110383388.4 申请日期 2011.11.28
申请人 曙光信息产业(北京)有限公司 发明人 纪奎;李锋伟;姬乃军;刘兴奎
分类号 H04L12/70(2013.01)I;G06F17/30(2006.01)I 主分类号 H04L12/70(2013.01)I
代理机构 北京安博达知识产权代理有限公司 11271 代理人 徐国文
主权项 一种单包正则匹配设备的单包正则匹配方法,其特征在于,所述单包正则匹配设备包括:单包正则匹配单元和与其连接的缓存单元,所述单包正则匹配单元包括正则表达式匹配模块,其特征在于,与所述正则表达式匹配模块连接的协议变量匹配模块;所述缓存单元包括:设置片外DFA表的片外缓存和设置片内协议变量表的存储片内缓存;所述片外缓存与所述正则表达式匹配模块连接,所述片内缓存与所述协议变量匹配模块连接;所述协议变量匹配模块包括:协议变量匹配引擎模块和与其连接的结果处理模块;所述协议变量匹配引擎模块接收所述单包正则匹配单元的报文数据流并读取所述片内缓存中的片内协议变量表;所述结果处理模块设置有正则表达式DFA地址信息表;所述正则表达式匹配模块包括:正则式匹配引擎(RgxBranchRngine)、分别与所述正则式匹配引擎连接的片外DFA表读取模块(RgxOffChipDfaCtrl)和汇聚模块(RgxResCollecter);所述正则式匹配引擎接收所述协议变量匹配模块的匹配结果;所述片外缓存是SRAM或者SDRAM;所述片内协议变量表设置协议变量,所述协议变量包括IP包头、TCP包头和UDP包头;所述正则式匹配引擎设置有4路引擎或者8路引擎;所述正则式匹配引擎根据所述协议变量匹配模块的匹配结果,对正则表达式进行分组,将具有相同协议变量的正则表达式分组分成一组,并建立每个正则表达式组与相应协议变量的关系;所述片外DFA表由所述正则表达式组形成;所述匹配方法包括如下步骤:(1)所述协议变量匹配引擎模块对接收到的报文提取报头信息,进行协议变量匹配;(2)所述结果处理模块将匹配上协议变量的报文,传递给所述正则式匹配引擎进行关联DFA匹配;(3)所述正则式匹配引擎接收协议变量匹配结果,通过所述片外DFA表读取模块读DFA表,对接收报文进行正则式匹配;(4)所述正则式匹配引擎完成接收报文的正则式匹配后,将匹配结果传输到所述汇聚模块;在所述步骤(1)中:所述协议变量匹配模块接收数据流中的每一个报文,提取报头中的相应信号量,在所述片内缓存中进行查找,如果报文匹配了某个协议变量,则将该报文递交给一个正则表达式匹配引擎进行关联DFA匹配,如果报文匹配了N个协议变量,则将该报文递交给不同的正则表达式引擎进行并行DFA匹配;其中,N是自然数2、3、4、5、6、7或8;在所述步骤(2)中:所述结果处理模块在所述正则表达式DFA地址信息表中查找与报文对应的DFA地址信息,将报文传递给所述正则式匹配引擎后,根据DFA地址信息在所述正则式匹配引擎中查找相应的正则表达式,对报文进行正则表达式匹配。
地址 100084 北京市海淀区水磨西街64号