一种TCP长连接非完整流量的数据分析方法与流程

文档序号:24038012发布日期:2021-02-23 15:38阅读:115来源:国知局
一种TCP长连接非完整流量的数据分析方法与流程
一种tcp长连接非完整流量的数据分析方法
技术领域
[0001]
本发明涉及网络技术技术领域,更具体地说,本发明涉及一种tcp长连接非完整流量的数据分析方法。


背景技术:

[0002]
常见的审计系统,通常采用网络流量镜像的方式获取客户端和服务端之间的通信流量;对于流量较小的服务系统;这些流量可能是网络客户端和服务端直接通信的流量;对于流量较大的系统,通常单台服务系统不能完成服务,而是由多台服务通过代理的方式来均摊提供服务,前面会有一个负载均衡的服务器。负载均衡器和真正服务之间的tcp连接通常是长连接,维持时间可能长达数小时,甚至数天。当前镜像流量都需要使用镜像设备才能将通信流量镜像到新的设备上,而镜像过程当中不可避免的会产生流量的丢失;而当前大部分镜像流量上的协议解析都需要基于完整的tcp完整的会好连接,对于已经建立的会话上传输的数据,或者存在丢包的数据,一般都采取忽略的方式不在处理,从而导致当前建立连接的流量以及存在丢包的连接流量的丢失。


技术实现要素:

[0003]
为了克服现有技术的上述缺陷,本发明的实施例提供一种tcp长连接非完整流量的数据分析方法,本发明所要解决的技术问题是:如何解决现有数据分析技术中的部分丢包信息丢失造成的数据不完整问题。
[0004]
为实现上述目的,本发明提供如下技术方案:一种tcp长连接非完整流量的数据分析方法,具体分析步骤如下:
[0005]
s1、数据分流:
[0006]
s1.1:使用tcp连接数据,若其中包含完整的握手信息则进入正常的tcp协议解析流程;
[0007]
s1.2:对于不包含握手信息的tcp连接数据,根据四元组信息建立会话,并缓存数据,并将该tcp连接状态置位缓存状态;
[0008]
s1.3:对于存在丢包的tcp连接,将该tcp置为丢包状态;
[0009]
s2:对于缓存状态和丢包状态的tcp连接,对于payload,会附带tcp的seq,ack进行应用层协议的试探解析;
[0010]
s3:若应用层能够解析成功,解析成功的应用层request和response会附带payload的首个数据包的seq及ack信息,并对这些信息进行缓存;
[0011]
s4:每解析成功一次应用层协议,则对应用层的request及response进行一次匹配,如果匹配成功,则认为流量可进行连续处理;
[0012]
s5:更新底层的tcp连接状态。
[0013]
在一个优选地实施方式中,所述步骤s1.2中四元组信息设置为源ip、源端口、目的ip和目的端口。
[0014]
在一个优选地实施方式中,所述步骤s1.1中对tcp数据包根据四元组信息进行缓存。
[0015]
在一个优选地实施方式中,所述对payload进行应用层协议的试探解析,解析成功后,将对应的request或response缓存再应用层的解析结果当中。
[0016]
在一个优选地实施方式中,所述对解析成功的应用层request及response进行匹配判断;匹配的依据是对于连续的payload,有两个request当中有一个response,或者两个response当中有一个request;判断request和response的先后顺序借助tcp的seq及ack进行大小判断。
[0017]
在一个优选地实施方式中,所述应用层request及response能够匹配成功后,则将底层tcp连接状态转换为正常连接状态。
[0018]
在一个优选地实施方式中,所述发现数据丢包,则将tcp连接状态转换为丢包状态。
[0019]
在一个优选地实施方式中,所述在丢包状态下只对数据缓存,只有当数据量达到一定数量时,再对丢包不能处理的数据进行丢弃处理,同时对已经缓存的数据,能够处理的连续数据进行连续处理。
[0020]
本发明的技术效果和优点:
[0021]
本发明用于行为审计和风险发现的信息源时,在网络流量数据中还原出应用层协议的完整会话行为,在丢包状态下只对数据缓存,只有当数据量达到一定数量时,再对丢包不能处理的数据进行丢弃处理,同时对已经缓存的数据,能够处理的连续数据进行连续处理,可看到未知系统服务上的数据流动,用于发现数据流动关联的信息源,从而解决对于镜像流量中存在丢包的情况,进行协议识别,解析并还原出有效数据。
附图说明
[0022]
图1为本发明的整体工作流程示意图。
[0023]
图2为本发明的通信传达示意图。
具体实施方式
[0024]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025]
本发明提供了一种tcp长连接非完整流量的数据分析方法,具体分析步骤如下:
[0026]
s1、数据分流:
[0027]
s1.1:使用tcp连接数据,若其中包含完整的握手信息则进入正常的tcp协议解析流程;
[0028]
s1.2:对于不包含握手信息的tcp连接数据,根据四元组信息建立会话,并缓存数据,并将该tcp连接状态置位缓存状态;
[0029]
s1.3:对于存在丢包的tcp连接,将该tcp置为丢包状态;
[0030]
s2:对于缓存状态和丢包状态的tcp连接,对于payload,会附带tcp的seq,ack进行
应用层协议的试探解析;
[0031]
s3:若应用层能够解析成功,解析成功的应用层request和response会附带payload的首个数据包的seq及ack信息,并对这些信息进行缓存;
[0032]
s4:每解析成功一次应用层协议,则对应用层的request及response进行一次匹配,如果匹配成功,则认为流量可进行连续处理;
[0033]
s5:更新底层的tcp连接状态。
[0034]
所述步骤s1.2中四元组信息设置为源ip、源端口、目的ip和目的端口,所述步骤s1.1中对tcp数据包根据四元组信息进行缓存,所述对payload进行应用层协议的试探解析,解析成功后,将对应的request或response缓存再应用层的解析结果当中,所述对解析成功的应用层request及response进行匹配判断;匹配的依据是对于连续的payload,有两个request当中有一个response,或者两个response当中有一个request;判断request和response的先后顺序借助tcp的seq及ack进行大小判断,所述应用层request及response能够匹配成功后,则将底层tcp连接状态转换为正常连接状态,所述发现数据丢包,则将tcp连接状态转换为丢包状态,所述在丢包状态下只对数据缓存,只有当数据量达到一定数量时,再对丢包不能处理的数据进行丢弃处理,同时对已经缓存的数据,能够处理的连续数据进行连续处理。
[0035]
如图1-2所示的,实施方式具体为:在tcp通信中,point1和point2进行通信,但是镜像流量中,request_i包存在丢包,则该链接再收到response_i的流量时,将会进入丢包处理状态,但是再接收到request_i+1及response_i+1的流量后;因为可根据response_i,request_i+1,response_i+1的匹配信息,及其seq,ack的信息;可以判断出后续的流量可以进入正常的流量处理;则该链接可以继续解析出requeset_i+2之后的应用层数据。
[0036]
最后应说明的几点是:首先,在本申请的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变,则相对位置关系可能发生改变;
[0037]
其次:本发明公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计,在不冲突情况下,本发明同一实施例及不同实施例可以相互组合;
[0038]
最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1