(19)中华人民共和国国家知识产权局
(12)发明专利说明书 | ||
(10)申请公布号 CN 109672589 A (43)申请公布日 2019.04.23 | ||
(21)申请号 CN201811636724.X
(22)申请日 2018.12.29
(71)申请人 江苏博智软件科技股份有限公司
地址 210012 江苏省南京市雨花台区软件大道168号3栋5层
(72)发明人 傅涛
(74)专利代理机构
代理人
(51)Int.CI
权利要求说明书 说明书 幅图 |
(54)发明名称
一种基于DPI的数据报文深度识别的实现方法 | |
(57)摘要
本发明公开了一种基于DPI的数据报文深度识别的实现方法,包括以下几个步骤:首先捕包分投线程循环调用捕包平台接口,从对应的捕包网卡上捕获报文;其次识别线程从自己的报文队列中取出报文进行识别;最后线程扫描属于自己的连接hash表,报文进行投递。本发明采取镜像方式进入系统流量进行应用层识别,可以识别出具体的协议,并投递到后端的还原系统进行分析还原。本发明能精确了解报文所承载的业务类型及流量大小等信息,适用于识别网络通信中使用了私有协议进行通信的应用。 | |
法律状态
法律状态公告日 | 法律状态信息 | 法律状态 |
2022-12-30 | 发明专利申请公布后的驳回IPC(主分类):H04L12/26专利申请号:201811636724X申请公布日:20190423 | 发明专利申请公布后的驳回 |
权 利 要 求 说 明 书
1.一种基于DPI的数据报文深度识别的实现方法,其特征在于,包括以下几个步骤:
正则匹配法律条文首先捕包分投线程循环调用捕包平台接口从对应的捕包网卡上捕获报文,按照源IP-目的IP-源端口-目的端口的格式由连接的负载均衡投递到各报文队列;
其次识别线程从属于自己的报文队列中取报文,进行连接管理、分片处理、识别处理;
最后投递线程从属于自己的连接hash表中将已识别的报文,经过url过滤处理后,通过统一发包平台发送到后端的还原组件。
2.根据权利要求1所述的一种基于DPI的数据报文深度识别的实现方法,其特征在于,所述捕包分投线程在整个DPI进程中只启动1个,当捕获到报文后,按源IP-目的IP-源端口-目的端口的格式由负载均衡投递到报文队列,报文队列个数由DPI进程启动时指定的流量大小来确定,流量在0-500Mbps的情况下,整个DPI进程只有1个捕包队列、1个识别线程,如果流量在0-4Gbps的情况下,整个DPI进程只有2个捕包队列、2个识别线程,如果流量在4-10Gbps的情况下,整个DPI进程只有4个捕包队列、4个识别线程。
3.根据权利要求1所述的一种基于DPI的数据报文深度识别的实现方法,其特征在于,所述的识别线程首先解析报文的ethernet层、IP层、TCP层头信息,同时扫描自己的连接hash表,将超时(5秒)还未能识别的连接上所有报文释放,并且释放该连接;再扫描自己的IP分片hash表,释放超时(5秒)未能重组好的IP分片报文,如果报文是IP分片,结合IP分片hash表,将报文以“ether头->ip头->tcp头->payload”的形式投递给后端还原组件;扫描报文中是否有vlan头封装,如果有识别线程将VLAN头全部剥离,将报文以“ether头->ip头->tcp头->payload”的形式投递给后端还原组件;将当前报文定位并通过保存指针的方式缓存到连接hash表中对应的连接节点中去,并且按报文的TCP序列号升序排列;然后调用hyperscan接口,指定block模式参数和协议正则模式数据库,对当前报
文进行扫描,如果成功识别,就标记该连接为协议已识别,如果不能识别,就将该报文的前、后报文一起加起来,调用hyperscan接口,指定stream模式参数,进行多报文扫描识别,如果stream模式扫描还是失败,并且stream模式扫描总次数达到4次,后续该连接上就不再进行内容正则模式的识别;hyperscan调用扫描接口后,如果匹配成功,就回调DPI提供的匹配成功callback函数,在callback函数中,对识别成功的连接设置“识别成功”标志及协议信息,识别成功后的协议如果是web 页面浏览,识别线程查询url过滤表进行url过滤,过滤掉没有意义的门户网站等连接流量。
4.根据权利要求1所述的一种基于DPI的数据报文深度识别的实现方法,其特征在于,所述的投递线程遍历属于自己的连接hash表,对协议正则模式识别失败的连接,继续后续识别,对已识别的连接,将报文投递到后端还原组件;对未识别的连接,查询ACL表,进行ACL识别;如果连接超过10秒还未能识别,则查询端口检索表,进行端口识别;如果端口识别失败,则进行查询IP搜索树,进行IP识别;如果都未能识别,则标记该连接为丢弃,并释放该连接下缓存的所有报。
说 明 书
<p>技术领域
本发明涉及数据报文深度识别技术领域,尤其涉及一种基于DPI的数据报文深度识别的实现方法。
背景技术
普通报文检测仅分析IP层以下内容,包括:源IP、目的IP、源端口、目的端口、协议类型。但现有的各种网络通信使用了私有协议,非标准的应用使用任意的TCP/UDP端口来进行通信,增加了识别的难度,使用普通方式,无法精确的识别出协议。
发明内容
本发明的目的是针对现有的普通报文检测无法精确的识别出各种网络通信中使用的私有协议的问题,发明一种基于DPI的数据报文深度识别的实现方法。
本发明的技术方案是:
一种基于DPI的数据报文深度识别的实现方法,其特征是它包括以下几个步骤:
首先捕包分投线程循环调用捕包平台接口从对应的捕包网卡上捕获报文,按照源IP-目的IP-源端口-目的端口的格式由连接的负载均衡投递到各报文队列。
其次识别线程从属于自己的报文队列中取报文,进行连接管理、分片处理、识别处理。
最后投递线程从属于自己的连接hash表中将已识别的报文,经过url过滤处理后,通过统一发包平台发送到后端的还原组件。
所述的捕包分投线程在整个DPI进程中只启动1个,当捕获到报文后,按源IP-目的IP-源端口-目的端口的格式由负载均衡投递到报文队列。报文队列个数由DPI进程启动时指定的流量大小来确定,流量在0-500Mbps的情况下,整个DPI进程只有1个捕包队列、1个识别线程。如果流量在0-4Gbps的情况下,整个DPI进程只有2个捕包队列、2个识别线程。如果流量在4-10Gbps的情况下,整个DPI进程只有4个捕包队列、4个识别线程。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论