一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种高效深度报文检测方法和装置与流程

2022-06-05 13:36:02 来源:中国专利 TAG:


1.本发明属于计算机通信领域,具体涉及一种高效深度报文检测方法和装置。


背景技术:

2.深度报文检测(deep packet inspection)是一种基于应用层的流量检测和控制技术,通过对应于流中数据报文的净荷(payload)区域进行逐个字节扫描,解决了仅仅识别报文头部,不能更加准确的识别应于的缺点;由于需要逐个字节识别报文,对识别设备的性能要求很高。同时随着网络技术的发展,带宽越来越大,进一步提升了对设备性能的要求;网络应用也不断复杂化,各种应用增多,对识别的规则数也越来越多,进一步加剧了深度报文检测设备对性能和灵活性的需求。
3.cn112671618提出了一种深度报文检测的方法和装置,利用开源的安全检测引擎suricata以及hyperscan高性能正则表达式匹配库,可以较好的解决深度报文检测识别准确度低的问题,灵活性比较好,但是该方法跑在通用处理器上,无论是性能和功耗,均不能满足高性能的应用,比如核心节点100g的dpi应用。
4.cn113298101a提出了一种数据报文识别方法和装置,利用训练好的cnn网络和dpi设备,两级组合起来,用来提高识别准确度和识别效率。该方案借助cnn系统做第一级父类应用识别,减轻对dpi设备的压力。但是该方案中,cnn网络在父类应用训练阶段面临训练收敛速度慢,推理阶段准确率不高的问题;cnn网络虽然能够部分缓解dpi设备性能的压力,但不能从根本上解决dpi设备本身对性能和灵活性的要求。
5.cn 112491643a提出了一种深度报文检测方法和装置,通过对报文包长等分布信息提取出来,并做多级规则比较,把比较结果送给第二级神经网络中做识别,可以提升一定的准确率。但对于高速网络的应用,报文包长分布以及多级规则的提取比较耗时,多级比较前后结果存在依赖,延时不确定性波动大;而且第二级神经网络的训练和收敛也面临和cn113298101a一样的问题。
6.cn101848091a提出了一种数据查找处理方法及系统,通过多级流水查找,智能规则压缩技术,能够较好的解决字符串的查找匹配;但是对于dpi应用中灵活的正则表达式,特别是规则之间的灵活组合,不能满足要求。


技术实现要素:

7.(一)要解决的技术问题
8.本发明要解决的技术问题是如何提供一种高效深度报文检测方法和装置,以解决cnn网络做识别时面临的收敛速度慢,识别准确率低的问题以及处理dpi查找是规则不灵活的问题。
9.(二)技术方案
10.为了解决上述技术问题,本发明提出一种高效深度报文检测装置,该装置包括报文接收单元、报文处理单元、字符串高速查找单元和报文发送单元;
11.报文接收单元用来接收网络中的报文,提取出有效的报文后,送给报文处理单元;
12.报文处理单元包括报文解析单元、dpi结果执行单元和关联关系处理单元;
13.报文解析单元对报文做预处理,即根据报文的不同封装类型,解析出报文的五元组,源mac地址,目的mac地址,源ip地址,目的ip地址和端口号,同时查找一级快速规则表项,获取每种类型的报文指定的转发行为;对需要进一步逐字节过滤的报文发送字符串高速查找单元,其他报文发送到dpi结果执行单元;
14.关联关系处理单元用来接收字符串高速查找单元的查找结果,根据三级规则关联表项对字符串高速查找单元查找到的当前报文命中的字符串进行灵活的组合处理,并得出报文的输出行为;
15.dpi结果执行单元,用于对报文解析单元和关联关系处理单元处理后的结果,做出综合判断,对报文采取对应的输出行为;
16.字符串高速查找单元用于对当前报文的payload进行逐个字节扫描,匹配二级字符串规则表项,返回命中的情况,如果命中,获取命中字符串的位置、长度以及对应的关联关系id,将结果返回关联关系处理单元;
17.报文发送单元,用来把dpi结果执行单元处理后的报文,发送到对应的目的端口。
18.进一步地,所述报文接收单元串联部署在网络中或旁路部署在网络中。
19.进一步地,所述报文解析单元还用于解析出上层的报文类型,同时查找一级快速规则表项,获取每种类型的报文指定的转发行为。
20.进一步地,所述转发行为包括转发、丢弃、编辑或进一步逐字节过滤。
21.进一步地,所述一级快速规则根据当前报文的五元组以及报文类型,来判断当前报文是否需要进行全包的搜索过滤。
22.进一步地,所述三级规则关联表项包括:不同字符串之间的“与或非”操作、当前字符串需要满足的偏移范围以及当前字符串需要和五元组之间的组合匹配。
23.进一步地,所述二级字符串规则表项是一系列不同的字符串,每个报文逐个字节的和所述二级字符串规则表项的所有规则表进行匹配,判断是否命中。
24.进一步地,如果有字符串命中,则返回如下信息:
25.ptr:当前命中字符串相对当前报文payload起始点的位置;
26.string l th:当前命中字符串的长度,结合ptr的值,即可在原始报文中锁定命中的字符串内容;
27.relation id:当前命中的字符串需要去索引的三级规则关联表项的id。
28.进一步地,所述字符串高速查找单元查找的结果返回给关联关系处理单元后,该关联关系处理单元解析出每条命中规则携带的信息,依据relat ion id去获取三级规则关联表项的内容;根据三级规则关联表项的内容,当前报文命中的多个字符串之间的关系进行分析运算,从而实现不同字符串之间的关联关系处理,同时结合报文解析单元提取的五元组信息,完成更加复杂的规则处理。
29.本发明还提供一种高效深度报文检测方法,该方法包括如下步骤:
30.s1、接收报文;
31.s2、提取报文头部五元组,源mac地址,目的mac地址,源ip地址,目的ip地址和端口号;
32.s3、根据报文头部,按照一级快速规则表项,判断是否需要payload逐字节检测,如果不需要,则根据命中的快速规则决定报文的输出行为,并发送到报文发送单元;如果需要,则执行步骤s4;
33.s4、根据二级字符串规则表项对报文的payload区域进行字符串查找匹配,返回命中的情况,如果命中,返回命中的字符串位置、长度以及对应的关联关系,并执行步骤s5;如果没有命中,则返回不命中,并依据头部信息,决定报文的输出行为,发送到报文发送单元;
34.s5、根据三级规则关联表项当前报文命中的字符串进行灵活的组合处理,并得出报文的输出行为,发送到报文发送单元。
35.(三)有益效果
36.本发明提出一种高效深度报文检测方法和装置,与现有技术相比,本发明提出的技术方案中采用了三级查找,可以按照流水方式工作,满足dpi高速性能要求。第一级处理中,通过快速规则表项,对报文的五元组以及应用层协议进行识别,提前对数据进行判断,需要进一步全包过滤扫描的,进入下一级流水;第二级流水中,通过高速查找单元,逐个字节对报文进行查找,完成二级字符串规则表项中所有规则的匹配,返回每个报文中命中的字符串;在第三级流水中,每个命中的字符串规则,索引对应的规则关联表项,关联表项完成流水二中命中的字符串规则,他们之间完成灵活的规则关联,从而即满足了高性能全包过滤,同时规则的灵活性也得到了很好的满足。通过本发明,把用户规则转换为三级规则,通过高速字符串查找以及进一步的灵活关联,较好的满足了高性能大带宽场景下dpi对性能和灵活性的需求。
附图说明
37.图1为本发明的系统架构图;
38.图2为本发明的处理流程;
39.图3为本发明的字符串匹配返回格式;
40.图4为本发明的字符串规则表项和规则关联表项映射关系;
41.图5为本发明的灵活的规则关联示意图。
具体实施方式
42.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
43.本发明属于计算机通信领域,用于大带宽高性能并且需要灵活规则的数据报文检测,比如骨干节点100g接口的大容量报文检测场景。
44.本发明提出了一种既满足高性能,又支持规则灵活处理的深度报文检测方法和装置。该方法和装置工作在专用电路上,比如fpga/asic,相对cn112671618,可以不依赖通用处理器,解决了性能和功耗的瓶颈;同时该方法基于专用算法电路完成报文的逐个字节窗口查找,解决了cn113298101a和112491643a中cnn网络做识别时面临的收敛速度慢,识别准确率低的问题。通过把用户层面的复杂规则,转化为字符串之间的灵活关联,通过规则的关联处理,解决了cn101848091a在处理dpi查找是规则不灵活的问题。
45.整个装置组成如下图1所示,包括报文接收单元、报文处理单元、字符串高速查找
单元和报文发送单元。
46.其中报文接收单元用来接收网络中的报文,提取出有效的报文后,送给报文处理单元。本装置对报文做检测,可以串联部署在网络中,即业务从本装置穿过;也可以旁路部署在网络中,,即报文通过分光器等设备,镜像过来一份送给本装置。不管哪种部署方式,报文接收单元,负责将报文提取出来,供进一步分析。
47.报文处理单元包括报文解析单元、dpi结果执行单元和关联关系处理单元。
48.报文解析单元对报文做预处理,即根据报文的不同封装类型,解析出报文的五元组,源mac地址,目的mac地址,源ip地址,目的ip地址和端口号,同时查找一级快速规则表项,获取每种类型的报文指定的转发行为;对需要进一步逐字节过滤的报文发送字符串高速查找单元,其他报文发送到dpi结果执行单元;
49.报文解析单元用来对报文做预处理,即根据报文的不同封装类型,解析出报文的五元组,源mac地址,目的mac地址,源ip地址,目的ip地址和端口号;也可以进一步解析出上层的报文类型,比如是控制报文还是数据包,是语音还是图片等信息。经过这一级解析处理,同时查找一级快速规则表项,获取每种类型的报文指定的转发行为,比如转发、丢弃、编辑、进一步逐字节过滤等。经过这一级筛选,只有需要进一步逐字节过滤的报文才会送给后续处理,从而提前完成一级数据的流量处理,减轻后级单元分析的压力。其中,一级快速规则举例如下:一级快速规则根据当前报文的五元组,特别是报文类型,来判断当前报文是否需要进行全包的搜索过滤。比如对于icmp报文,控制类型的报文,通常采取直接转发,不进行全报文搜索。对于承载了数据的报文,对其净荷payload进行进一步的逐字节全包搜索过滤。从设备芯片角度,需要具备第一级的快速查找能力,具体的策略,可以根据实际情况用户定义。
50.关联关系处理单元用来接收字符串高速查找单元的查找结果,根据三级规则关联表项对字符串高速查找单元查找到的当前报文命中的字符串进行灵活的组合处理,并得出报文的输出行为;比如不同字符串之间的“与或非”等操作,当前字符串需要满足的偏移范围,当前字符串需要和五元组之间的组合匹配等。
51.dpi结果执行单元,用于对报文解析单元和关联关系处理单元处理后的结果,做出综合判断,对报文采取:转发、丢弃、透传和编辑等输出行为。
52.字符串高速查找单元用于对当前报文的payload进行逐个字节扫描,匹配二级字符串规则表项,返回命中的情况,如果命中,返回命中字符串的位置、长度以及对应的关联关系id,将结果返回关联关系处理单元;
53.报文发送单元,用来把dpi结果执行单元处理后的报文,发送到对应的目的端口。
54.整个设备工作的流程如下:
55.s1、接收报文;
56.s2、提取报文头部五元组,源mac地址,目的mac地址,源ip地址,目的ip地址和端口号;
57.s3、根据报文头部,按照一级快速规则表项,判断是否需要payload逐字节检测,如果不需要,则根据命中的快速规则决定报文的输出行为,并发送到报文发送单元;如果需要,则执行步骤s4;
58.s4、根据二级字符串规则表项对报文的payload区域进行字符串查找匹配,返回命
中的情况,如果命中,返回命中的字符串位置、长度以及对应的关联关系,并执行步骤s5;如果没有命中,则返回不命中,并依据头部信息,决定报文的输出行为,发送到报文发送单元;
59.s5、根据三级规则关联表项当前报文命中的字符串进行灵活的组合处理,并得出报文的输出行为,发送到报文发送单元。
60.对于用户需要处理的规则库,经过编译处理后,拆分成三种规则表项,预先下发到装置中。接收到的报文进入装置后,整个流程处理如下图2所示。经过三级流水处理,最终得出每个报文相对用户规则的匹配结果,完成深度报文检测处理。如果要少量增加或删除规则,可以在线短暂旁路业务,同步增删规则;如果要全量更新规则库,则重新编译优化后,旁路业务,全部更新三级规则后,继续对报文做分析。
61.对于需要进行字符串查找的报文,在字符串高速查找单元中,逐个字节进行扫描,匹配二级字符串规则表项。其中,二级字符串规则表项,是一系列不同的字符串,在dpi领域通常叫做“敏感字符串”。具体的数据格式这里不做限定,实现方法也有多种。主要完成的任务为,每个报文逐个字节的和所述二级字符串规则表项的所有规则表进行匹配,判断是否命中。
62.如果有字符串命中,则返回如下信息:
63.ptr:当前命中字符串相对当前报文payload起始点的位置
64.string l th:当前命中字符串的长度,结合ptr的值,即可在原始报文中锁定命中的字符串内容
65.relation id:当前命中的字符串需要去索引的三级规则关联表项的id。
66.字符串高速查找单元查找的结果返回给关联关系处理单元后,该关联关系处理单元解析出每条命中规则携带的信息,依据relat ion id去获取三级规则关联表项的内容。根据三级规则关联表项的内容,当前报文命中的多个字符串之间的关系进行分析运算,从而实现不同字符串之间的关联关系处理,同时结合报文解析单元提取的五元组信息,可以完成更加复杂的规则处理。
67.下图5对关联关系做几个示例。比如字符串高速查找单元返回结果显示string 1命中,string1在报文的ptr为m,relation id是1。则关联关系单元提取relation rule 1,该规则要求只有在报文offset a到b之间的string1命中才算有效。关联关系处理单元判断报文prt后l th长度的payload是否为string1,同时prt是否在a和b之间,只有两者同时满足,才能认为string 1是真正命中的规则。进而提取规则关联表项中,命中与否对应的动作,是转发、丢弃、编辑等信息。
68.类似的,字符串高速查找单元返回string 2命中,同时relation rule2要求结合五元组中的udp端口号信息,只有端口号在a和b范围中,才是string2真正命中。则关联关系处理单元接收到string 2在字符串高速查找单元命中的信息后,进一步判断报文的五元组信息,获取端口号信息,判断是否为a和b范围中,如果满足,则认为string 2的命中和端口号命中这条复合规则满足。进而提取规则关联表项中,命中与否对应的动作,是转发、丢弃、编辑等信息。
69.同样还可以由rule 3其他规则组成,字符串之间的关联关系通过关联关系表项可以支持灵活的组合。
70.规则之间的关系同样可以在关联关系处理单元完成。比如rule1中除了描述自身
规则,还指定需要判断rule 2和rule 3,他们之间满足rule 1&rule2&(~rule 3)的关系,整个复合规则才算满足。则字符串高速查找单元命中的结果触发relation rule 1的分析,他进一步判断rule 2和rule 3的满足情况以及他们之间的组合情况。进而决定本复合规则的满足情况,从而得到报文对应的输出行为。
71.上述几个规则作为示例,表面通过关联关系处理单元,以字符串高速查找单元的结果为牵引,可以完成非常复杂灵活的规则关联,从而兼顾深度报文检测高速性能和灵活性的要求。
72.本发明提出了一种高效的深度过滤报文方法,通过三级流水处理能够满足深度报文过滤性能的要求;通过专用的字符串高速查找单元,结合灵活的三级规则关联表项,能够完成复杂的深度报文过滤。克服了现有方法中识别性能低,规则不够灵活的缺点。
73.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献