CN102497319A - 一种利用自动机实现单包匹配的系统和方法 - Google Patents

一种利用自动机实现单包匹配的系统和方法 Download PDF

Info

Publication number
CN102497319A
CN102497319A CN201110415232XA CN201110415232A CN102497319A CN 102497319 A CN102497319 A CN 102497319A CN 201110415232X A CN201110415232X A CN 201110415232XA CN 201110415232 A CN201110415232 A CN 201110415232A CN 102497319 A CN102497319 A CN 102497319A
Authority
CN
China
Prior art keywords
mask
dfa
field
heading
coupling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201110415232XA
Other languages
English (en)
Other versions
CN102497319B (zh
Inventor
李锋伟
李静
纪奎
刘朝辉
邵宗有
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Dawning Information Industry Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN201110415232.XA priority Critical patent/CN102497319B/zh
Publication of CN102497319A publication Critical patent/CN102497319A/zh
Application granted granted Critical
Publication of CN102497319B publication Critical patent/CN102497319B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种利用自动机实现单包匹配的系统和方法,其包括:掩码生成模块,用于接收多个报文头字段并生成掩码值;mask_table表,用于接收报文头字段生成的掩码值并查询dfa地址,如果在mask_table表中查询到了输入的mask,就将报文头字段传送到DFA_table进行匹配查找,否则进入下一轮单包匹配;DFA_table表,其包括多个同DFA_table的dfa_addr对应的DFA跳转表,用于接收匹配mask_table表的报文头字段,如果匹配,则进入匹配处理模块,否则进入下一轮单包匹配;匹配处理模块。本发明提供的利用自动机实现单包匹配的系统和方法,过对感兴趣报文的各个域字段构造复杂正则,对不同域设定不同的优先级,利用自动机技术实现对网络数据报文高效匹配筛选。

Description

一种利用自动机实现单包匹配的系统和方法
技术领域
本发明涉及网络安全领域,具体涉及一种利用自动机实现单包匹配的系统和方法。
背景技术
在大流量环境下,对报文进行过滤、筛选,需要高效的处理报文。常规方法通过对各个域的关键字检查来实现匹配,效率低下,不能胜任大流量环境。
专利号CN200710071071.0(基于带记忆确定有限自动机的正则表达式匹配加速方法)公开了一种基于带记忆确定有限自动机的正则表达式匹配加速方法。它包括正则表达式规则编译器和模式匹配引擎,正则表达式规则编译器先把正则表达式转换为解析树,再分别把解析树转换为带记忆的非确定有限自动机和带记忆的确定有限自动机,模式匹配引擎使用编译器生成的带记忆确定有限自动机实现对模式匹配的加速。本发明的优点是:1)因为直接支持了重复操作符,编译器可以不对重复表达式进行展开,大大降低了编译器开发难度,也降低了编译器的内存占用和编译时间;2)基于同样的原因,编译器生成的规则数据库大小也可大大减小,降低了模式匹配引擎的成本和复杂度。
专利号CN201110101517.6(基于字母表压缩的扩展有限自动机构造方法)公开了一种基于字母表压缩的扩展有限自动机(ACFA,Alphabet Compression Based Extend Finite Automaton)构造方法,该方法为:选用合适的规则集在字母表压缩的扩展有限自动机中进行验证试验;读入规则集,通过字母表压缩的扩展有限自动机构造方法构造有限自动机并同时生成状态集;通过字母表压缩的扩展有限自动机匹配方法对每个状态集分别进行字母表划分并压缩其迁移表。与扩展有限自动机XFA相比,ACFA在迁移边上减少95.6%,在存储空间大小上减少了90.7%,而在匹配时间上仅增加了23.6%。因此,ACFA是一种快速且存储高效的正则表达式匹配方法,较已有的正则表达式匹配方法更加适合于高速深度包检测。
目前对单包的匹配技术多是关键字匹配,查询报文中是否有感兴趣的关键字。但是实际的网络流量往往呈现出一类相近的正则特征串。另外,就是单纯的使用DFA状态机来进行匹配,但这种匹配由于报文的每一个字节都需要进行访存,因此不能胜任大流量环境。
发明内容
本发明克服现有技术存在的不足,通过对感兴趣报文的各个域字段构造复杂正则,对不同域设定不同的优先级,利用自动机技术实现对网络数据报文高效匹配筛选。灵活性高,能够对以太网数据包的各个域进行匹配筛选。
本发明提供了一种利用自动机实现单包匹配的系统,其包括
1)掩码生成模块,用于接收多个报文头字段并生成掩码值;
2)mask_table表,用于接收报文头字段生成的掩码值并查询dfa地址,如果在mask_table表中查询到了输入的mask,就将报文头字段传送到DFA_table进行匹配查找,否则进入下一轮单包匹配;
3)DFA_table表,其包括多个同DFA_table的dfa_addr对应的DFA跳转表,用于接收匹配mask_table表的报文头字段,如果匹配,则进入匹配处理模块,否则进入下一轮单包匹配;
4)匹配处理模块。
本发明提供的利用自动机实现单包匹配的系统,报文头字段是ip_sip、ip_dip、tdp_sport、tdp_dport、tcp_flags或tcp_length等等字段。
本发明提供的利用自动机实现单包匹配的系统,报文头字段采用硬件多路并发输入到掩码生成模块。
本发明提供的利用自动机实现单包匹配的系统,mask_table表是根据规则生成的mask_value和dfa_addr对应表,
本发明提供的利用自动机实现单包匹配的系统,DFA状态跳转表是通过具有相同mask不同tcp_payload的规则进行分组生成的。
本发明提供的利用自动机实现单包匹配的系统,报文头通过关键字匹配特征串,数据域通过DFA状态机匹配。
本发明提供的利用自动机实现单包匹配的系统,对感兴趣报文的各个域字段构造复杂正则,格式:报文头字段=?&数据域=?&?$。其中“?”是具体的值或符号,“&”表示与,“$”表示结束。
本发明还提供了一种利用自动机实现单包匹配的方法,其包括
1)掩码生成步骤,接收多个报文头字段并生成掩码值;
2)mask_table表匹配步骤,其接收报文头字段生成的掩码值并查询dfa地址,如果在mask_table表中查询到了输入的mask,就将报文头字段传送到DFA_table进行匹配查找,否则进入下一轮单包匹配;
3)DFA_table表匹配步骤,通过多个同DFA_table的dfa_addr对应的DFA跳转表,接收并匹配mask_table表的报文头字段,如果匹配,则进入匹配处理步骤,否则进入下一轮单包匹配;
4)匹配处理步骤。
本发明提供的利用自动机实现单包匹配的方法,报文头字段是ip_sip、ip_dip、tdp_sport、tdp_dport、tcp_flags或tcp_length等等字段。
本发明提供的利用自动机实现单包匹配的方法,报文头字段采用硬件多路并发输入到掩码生成步骤。
本发明提供的利用自动机实现单包匹配的方法,采用的mask_table表是根据规则生成的mask_value和dfa_addr对应表,
本发明提供的利用自动机实现单包匹配的方法,DFA状态跳转表是通过具有相同mask不同tcp_payload的规则进行分组生成的。
本发明提供的利用自动机实现单包匹配的方法,报文头通过关键字匹配特征串,数据域通过DFA状态机匹配。
本发明提供的利用自动机实现单包匹配的方法,对感兴趣报文的各个域字段构造复杂正则,格式:报文头字段=?&数据域=?&?$。其中“?”是具体的值或符号,“&”表示与,“$”表示结束。
与现有技术相比,本发明的有益效果在于:通过采用该方案,可以灵活有效地对报文各个字段进行高效匹配。能够胜任大流量环境下的高效匹配的要求。
附图说明
图1是本发明的状态流程图。
具体实施方式
为了解决这些问题,本发明采用了专门的规则,该复杂规则灵活性比较高,能够匹配ethernet帧中的所有域。报文头通过关键字匹配特征串,数据域通过DFA状态机匹配。
本规则的格式形如:ip_sip=10.0.0.1&ip_dip=10.0.0.2&tcp_payload=Http&abcdef$。该条规则代表的意思是,匹配源ip等于10.0.0.1,目的ip等于10.0.0.2并且payload域中包含Http和以abcdef结尾的报文串。同时在报文头的关键字匹配字段中还可以添加tdp_sport,tdp_dport以及tcp_length,tcp_flags等等所有感兴趣的字段,所有这些字段都通过’&’相连接。另外,在tcp_payload关键字域中,可以对payload的不同段使用正则表达式来表示出来,不同段也通过’&’相连接。具体工作流程如附图1所示。不同报文头字段的组合,产生了不同的mask,具有相同mask不同tcp_payload的规则进行分组,产生一组DFA状态跳转表。
对于多个报文头字段,比如ip_sip、ip_dip、tdp_sport、tdp_dport、、tcp_length等等字段可以采用硬件多路并发输入到掩码生成模块,然后根据生成的掩码值到mask_table表中查询,mask_table表是根据规则生成的mask_value和dfa_addr对应表,不同的掩码对应不同的dfa地址表,如果在mask_table表中查询到了输入的mask,这时就进入DFA_table所对应的dfa_addr的DFA跳转表中进行匹配查找,如果在mask_table表中没有找到输入的mask,则进入下一轮单包匹配中。如果在DFA_table中没有查找到匹配的结果,则也进入下一轮单包匹配中,如果匹配了,则进入匹配处理模块处理。
本发明通过对感兴趣报文的各个域字段构造复杂正则,对不同域设定不同的优先级,利用自动机技术实现对网络数据报文高效匹配筛选。灵活性高,能够对以太网数据包的各个域进行匹配筛选。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所述领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者同等替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。

Claims (14)

1.一种利用自动机实现单包匹配的系统,其包括
1)掩码生成模块,用于接收多个报文头字段并生成掩码值;
2)mask_table表,用于接收报文头字段生成的掩码值并查询dfa地址,如果在mask_table表中查询到了输入的mask,就将报文头字段传送到DFA_table进行匹配查找,否则进入下一轮单包匹配;
3)DFA_table表,其包括多个同DFA_table的dfa_addr对应的DFA跳转表,用于接收匹配mask_table表的报文头字段,如果匹配,则进入匹配处理模块,否则进入下一轮单包匹配;
4)匹配处理模块。
2.权利要求1的系统,其特征在于,报文头字段是ip_sip、ip_dip、tdp_sport、tdp_dport、tcp_flags或tcp_length等等字段。
3.权利要求1-2的系统,其特征在于,报文头字段采用硬件多路并发输入到掩码生成模块。
4.权利要求1-3的系统,其特征在于,mask_table表是根据规则生成的mask_value和dfa_addr对应表,
5.权利要求1-4的系统,其特征在于,DFA状态跳转表是通过具有相同mask不同tcp_payload的规则进行分组生成的。
6.权利要求1-5的系统,其特征在于,报文头通过关键字匹配特征串,数据域通过DFA状态机匹配。
7.权利要求1-6的系统,其特征在于,对感兴趣报文的各个域字段构造复杂正则,格式:报文头字段=?&数据域=?&?$。其中“?”是具体的值或符号,“&”表示与,“$”表示结束。
8.一种利用自动机实现单包匹配的方法,其包括
1)掩码生成步骤,接收多个报文头字段并生成掩码值;
2)mask_table表匹配步骤,其接收报文头字段生成的掩码值并查询dfa地址,如果在mask_table表中查询到了输入的mask,就将报文头字段传送到DFA_table进行匹配查找,否则进入下一轮单包匹配;
3)DFA_table表匹配步骤,通过多个同DFA_table的dfa_addr对应的DFA跳转表,接收并匹配mask_table表的报文头字段,如果匹配,则进入匹配处理步骤,否则进入下一轮单包匹配;
4)匹配处理步骤。
9.权利要求8的方法,其特征在于,报文头字段是ip_sip、ip_dip、tdp_sport、tdp_dport、tcp_flags或tcp_length等等字段。
10.权利要求8-9的方法,其特征在于,报文头字段采用硬件多路并发输入到掩码生成步骤。
11.权利要求8-10的方法,其特征在于,采用的mask_table表是根据规则生成的mask_value和dfa_addr对应表,
12.权利要求8-11的方法,其特征在于,DFA状态跳转表是通过具有相同mask不同tcp_payload的规则进行分组生成的。
13.权利要求8-12的方法,其特征在于,报文头通过关键字匹配特征串,数据域通过DFA状态机匹配。
14.权利要求8-13的方法,其特征在于,对感兴趣报文的各个域字段构造复杂正则,格式:报文头字段=?&数据域=?&?$。其中“?”是具体的值或符号,“&”表示与,“$”表示结束。
CN201110415232.XA 2011-12-13 2011-12-13 一种利用自动机实现单包匹配的系统和方法 Active CN102497319B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110415232.XA CN102497319B (zh) 2011-12-13 2011-12-13 一种利用自动机实现单包匹配的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110415232.XA CN102497319B (zh) 2011-12-13 2011-12-13 一种利用自动机实现单包匹配的系统和方法

Publications (2)

Publication Number Publication Date
CN102497319A true CN102497319A (zh) 2012-06-13
CN102497319B CN102497319B (zh) 2014-10-08

Family

ID=46189107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110415232.XA Active CN102497319B (zh) 2011-12-13 2011-12-13 一种利用自动机实现单包匹配的系统和方法

Country Status (1)

Country Link
CN (1) CN102497319B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN106453131A (zh) * 2016-11-03 2017-02-22 瑞斯康达科技发展股份有限公司 一种匹配器生成的方法和设备
CN111866202A (zh) * 2019-11-08 2020-10-30 北京嘀嘀无限科技发展有限公司 报文发送方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1972240A (zh) * 2005-11-24 2007-05-30 武汉烽火网络有限责任公司 快速包过滤处理方法及其装置
CN101853301A (zh) * 2010-05-25 2010-10-06 华为技术有限公司 正则表达式匹配的方法和系统
CN102142009A (zh) * 2010-12-09 2011-08-03 华为技术有限公司 一种正则表达式匹配的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1972240A (zh) * 2005-11-24 2007-05-30 武汉烽火网络有限责任公司 快速包过滤处理方法及其装置
CN101853301A (zh) * 2010-05-25 2010-10-06 华为技术有限公司 正则表达式匹配的方法和系统
CN102142009A (zh) * 2010-12-09 2011-08-03 华为技术有限公司 一种正则表达式匹配的方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857493A (zh) * 2012-06-30 2013-01-02 华为技术有限公司 内容过滤方法和装置
CN102857493B (zh) * 2012-06-30 2015-07-08 华为技术有限公司 内容过滤方法和装置
CN106453131A (zh) * 2016-11-03 2017-02-22 瑞斯康达科技发展股份有限公司 一种匹配器生成的方法和设备
CN106453131B (zh) * 2016-11-03 2019-06-28 瑞斯康达科技发展股份有限公司 一种匹配器生成的方法和设备
CN111866202A (zh) * 2019-11-08 2020-10-30 北京嘀嘀无限科技发展有限公司 报文发送方法、装置、电子设备和存储介质
CN111866202B (zh) * 2019-11-08 2023-04-07 北京嘀嘀无限科技发展有限公司 报文发送方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN102497319B (zh) 2014-10-08

Similar Documents

Publication Publication Date Title
US9369385B2 (en) Packet timing measurement
Wang et al. Wire Speed Name Lookup: A {GPU-based} Approach
CN1874313B (zh) 处理数据包的方法和网络设备
US7570661B2 (en) Script-based parser
CN105578488B (zh) 网络数据采集系统及方法
CN107992026B (zh) 一种基于labveiw的解析dbc分析报文的方法
Yazdinejad et al. P4 to SDNet: Automatic generation of an efficient protocol-independent packet parser on reconfigurable hardware
CN102420750B (zh) 单包正则匹配设备和方法
CN104378234B (zh) 跨数据中心的数据传输处理方法及系统
KR20110057371A (ko) 이더넷-캔 프레임 변환 전송 장치 및 방법
CN106850672B (zh) IPSec隧道的安全联盟查找方法及装置
CN108075949B (zh) 一种vpws环境实现rfc2544的方法及设备
US20110069622A1 (en) Traffic Distribution Control
CN102497319B (zh) 一种利用自动机实现单包匹配的系统和方法
WO2015131739A1 (zh) 数据交互方法、基带处理单元、射频拉远单元及中继单元
Xu et al. High-throughput and memory-efficient multimatch packet classification based on distributed and pipelined hash tables
Kekely et al. Multi buses: Theory and practical considerations of data bus width scaling in FPGAs
CN109687939A (zh) 工程机械设备通信方法、系统及承载通信协议
US20160246882A1 (en) Method and apparatus for generating parallel lookup requests utilizing a super key
CN109040338A (zh) 基于时空的IPv6地址溯源方法
CN105323234B (zh) 业务节点能力处理方法、装置、业务分类器及业务控制器
CN103514407B (zh) 从办公网传输到生产网的音视频文件的杀毒方法和系统
CN109474588A (zh) 一种终端认证方法及装置
Smiljanić et al. A comparative review of scalable lookup algorithms for IPv6
CN104394081B (zh) 一种数据处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220801

Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing

Patentee after: Dawning Information Industry (Beijing) Co.,Ltd.

Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd.

Address before: 100084 Beijing Haidian District City Mill Street No. 64

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.

TR01 Transfer of patent right