一种基于TCP报文特征的网络流量识别方法及装置制造方法及图纸

技术编号:21899097 阅读:44 留言:0更新日期:2019-08-17 18:29
本发明专利技术涉及一种基于TCP报文特征的网络流量识别方法及装置,其中方法包括:步骤S1:获取TCP报文,遍历所有TCP报文并提取出报文的大小,得到应用层消息大小向量;步骤S2:对得到的应用层消息大小向量进行正则化处理,将大小相近的应用层消息大小映射成为相同的大小,得到正则化后的应用层消息大小向量;步骤S3:将正则化后的应用层消息大小向量输入训练好的多个识别模型中,分别得到该应用层消息大小向量隶属于各识别模型所对应的类型的概率,将概率最大的识别模型所对应的概率作为识别结果。与现有技术相比,本发明专利技术具有不受网络波动、网络拥塞、网络间不同MTU的影响等优点。

A Method and Device for Network Traffic Recognition Based on TCP Message Characteristics

【技术实现步骤摘要】
一种基于TCP报文特征的网络流量识别方法及装置
本专利技术涉及一种网络监控领域,尤其是涉及一种基于TCP报文特征的网络流量识别方法及装置。
技术介绍
流量识别是基于网关的网络监控的重要手段,通过对数据包进行分析可以确定数据包所属于的应用,从而实现网络行为监控的目的。最常见的流量识别算法有三种方法,基于端口的流量识别算法、基于DPI的流量识别算法、基于统计学的机器学习算法,这三种方法各有各自的缺点。基于端口的流量识别依靠的是应用与端口间所约定的一对一映射关系,然而随着越来越多的应用使用自定义端口,基于端口的流量识别算法不再有效。基于DPI的流量识别算法分析一条TCP连接的前几个报文,验证这些报文的负载是否有特定的关键字或者特定的格式,然而DPI的方法无法分析经过应用层加密的报文。基于统计学的机器学习算法虽然可以在不使用报文负载以及端口的条件下,保证较高的识别准确率,但是仍有着实时性低以及易受网络波动的影响,这是因为算法所依赖的特征大多与报文的到达时间相关,而到达时间易受网络波动的影响。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于TCP报文特征的网络流量识别方法及装置。本专利技术的目的可以通过以下技术方案来实现:一种基于TCP报文特征的网络流量识别方法,包括:步骤S1:获取TCP报文,遍历所有TCP报文并提取出报文的大小,得到应用层消息大小向量;步骤S2:对得到的应用层消息大小向量进行正则化处理,将大小相近的应用层消息大小映射成为相同的大小,得到正则化后的应用层消息大小向量;步骤S3:将正则化后的应用层消息大小向量输入训练好的多个识别模型中,分别得到该应用层消息大小向量隶属于各识别模型所对应的类型的概率,将概率最大的识别模型所对应的概率作为识别结果。所述步骤S1具体包括:步骤S11:获取TCP报文;步骤S12:遍历所有TCP报文并提取出报文的大小和方向;步骤S13:剔除大小为0的数据,并累加同一方向的报文大小,将累加后的结果组成应用层消息大小向量。所述步骤S2中映射的函数具体为:其中:f(x)为映射后的报文大小,x为映射前的报文大小。所述步骤S3中,对于一个识别模型,其工作过程具体包括:步骤S31:对于正则化后的应用层消息大小向量,按时间顺序依次提取出应用层消息大小;步骤S32:依次将各应用层消息大小输入识别模型,得到模型输出P:P=[p1,p2,p3…pj]其中:j为观测空间的大小,pn为下一个应用层消息大小为状态n的概率;步骤S33:从第二个应用层消息大小开始,从模型输出中检索得到相应的概率值作为后验概率,并将所有后验概率相乘得到该应用层消息大小向量隶属于该识别模型所对应的类型的概率。所述识别模型为一个两层的LSTM层的神经网络,第一层网络以一个正则化之后的应用层消息大小为输入,第一层与第二层的网络之间采用全连接,第二层与Softmax层相连接,第二层的输出为一个大小为J的向量。一种基于TCP报文特征的网络流量识别装置,包括存储器、处理器,以及存储于存储器中并由所述处理器执行的程序,所述处理器执行所述程序时实现以下步骤:步骤S1:获取TCP报文,遍历所有TCP报文并提取出报文的大小,得到应用层消息大小向量;步骤S2:对得到的应用层消息大小向量进行正则化处理,将大小相近的应用层消息大小映射成为相同的大小,得到正则化后的应用层消息大小向量;步骤S3:将正则化后的应用层消息大小向量输入训练好的多个识别模型中,分别得到该应用层消息大小向量隶属于各识别模型所对应的类型的概率,将概率最大的识别模型所对应的概率作为识别结果。与现有技术相比,本专利技术具有以下有益效果:1)对于流量的识别仅根据TCP报文的大小和时间顺序开展,不依赖于报文的编码规则和任何的目标IP地址及端口号信息,不需要了解报文的编码规则,就可以实现流量的识别,通用性广,且不易被绕过。2)采用了后验概率作为依据,相对于传统的流量识别算法,在保证准确率的同时有着更高的实时性以及鲁棒性。实验证明,平均识别可以达到97%,且识别效果不受网络波动、网络拥塞、网络间不同MTU的影响。附图说明图1为本专利技术方法的主要步骤流程示意图;图2为应用层消息提取流程图;图3为LSTM神经网络结构图;图4为分类器运作原理图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。一种基于TCP报文特征的网络流量识别方法,该方法通过计算机程序的形式由计算机系统实现,计算机系统为基于TCP报文特征的网络流量识别装置,包括存储器、处理器,以及存储于存储器中并由处理器执行的程序,如图1所示,处理器执行程序时实现以下步骤:步骤S1:获取TCP报文,遍历所有TCP报文并提取出报文的大小,得到应用层消息大小向量,包括:步骤S11:获取TCP报文;步骤S12:遍历所有TCP报文并提取出报文的大小和方向;步骤S13:剔除大小为0的数据,并累加同一方向的报文大小,将累加后的结果组成应用层消息大小向量。具体的,从TCP报文大小序列中提取出应用层消息大小向量,使得模型的特征不受网络拥塞、网络波动、报文重传、MTU等因素的影响,提取的流程如图2所示。首先初始化存储结果向量的一维数组以及计数器,接着遍历所有的TCP报文并提取出报文的大小。在遍历的过程中,首先比较报文的大小是否为0,如果大小为0则说明该报文并不具备应用层语义,将其丢弃。接着,判断报文的大小是否小于当前的MTU或者是否和当前报文的方向相仿,如果判断结果为真,则将当前计数器的值放入结果数组中,并将计数器的值重置为当前报文的大小,否则将当前的报文大小累计值计数器。等待所有的报文遍历完毕之后,则返回结果数组。例如去除0后的TCP报文大小序列为[10,20,-10,-20,30,40,10,-30],那么合并了相邻的同方向的报文后为[30,-30,80,-30],得到应用层消息大小向量为[30,-30,80,-30]。步骤S2:对得到的应用层消息大小向量进行正则化处理,将大小相近的应用层消息大小映射成为相同的大小,得到正则化后的应用层消息大小向量;由于应用层消息大小的取值是离散的,这会导致模型的运算量过大、运算时间过长,所以我们使用正则化的步骤将大小相近的应用层消息大小映射成为相同的大小。正则化时我们遵循消息越大,大小的差异就对模型越不敏感的原则,使用下述的公式进行映射。其中:f(x)为映射后的报文大小,x为映射前的报文大小。映射分为三个阶段,第一阶段消息大小以相距100字节为一个状态,第二阶段以相距500字节为一个状态,第三阶段所有大于10000字节的报文都映射为一个状态。f(x)是一个经验公式,旨在减少应用层消息大小可能的取值,以减少模型的运算量以及复杂程度。如果一个消息大小向量(单位为B)为[182,193,195,957,801,892],那么经过该公式的映射以后,映射结果为[200,200,200,1000,1000,1000],我们认为大小相近的应用层消息大小,对模型的语义影响是相近的,所以我们将相近的消息大小,全部映射成一个值,以降低模型的运算量。这个公式并没有严格的推导,是在多次实验中获得本文档来自技高网...

【技术保护点】
1.一种基于TCP报文特征的网络流量识别方法,其特征在于,包括:步骤S1:获取TCP报文,遍历所有TCP报文并提取出报文的大小,得到应用层消息大小向量;步骤S2:对得到的应用层消息大小向量进行正则化处理,将大小相近的应用层消息大小映射成为相同的大小,得到正则化后的应用层消息大小向量;步骤S3:将正则化后的应用层消息大小向量输入训练好的多个识别模型中,分别得到该应用层消息大小向量隶属于各识别模型所对应的类型的概率,将概率最大的识别模型所对应的概率作为识别结果。

【技术特征摘要】
1.一种基于TCP报文特征的网络流量识别方法,其特征在于,包括:步骤S1:获取TCP报文,遍历所有TCP报文并提取出报文的大小,得到应用层消息大小向量;步骤S2:对得到的应用层消息大小向量进行正则化处理,将大小相近的应用层消息大小映射成为相同的大小,得到正则化后的应用层消息大小向量;步骤S3:将正则化后的应用层消息大小向量输入训练好的多个识别模型中,分别得到该应用层消息大小向量隶属于各识别模型所对应的类型的概率,将概率最大的识别模型所对应的概率作为识别结果。2.根据权利要求1所述的一种基于TCP报文特征的网络流量识别方法,其特征在于,所述步骤S1具体包括:步骤S11:获取TCP报文;步骤S12:遍历所有TCP报文并提取出报文的大小和方向;步骤S13:剔除大小为0的数据,并累加同一方向的报文大小,将累加后的结果组成应用层消息大小向量。3.根据权利要求1所述的一种基于TCP报文特征的网络流量识别方法,其特征在于,所述步骤S2中映射的函数具体为:其中:f(x)为映射后的报文大小,x为映射前的报文大小。4.根据权利要求1所述的一种基于TCP报文特征的网络流量识别方法,其特征在于,所述步骤S3中,对于一个识别模型,其工作过程具体包括:步骤S31:对于正则化后的应用层消息大小向量,按时间顺序依次提取出应用层消息大小;步骤S32:依次将各应用层消息大小输入识别模型,得到模型输出P:P=[p1,p2,p3…pj]其中:j为观测空间的大小,pn为下一个应用层消息大小为状态n的概率;步骤S33:从第二个应用层消息大小开始,从模型输出中检索得到相应的概率值作为后验概率,并将所有后验概率相乘得到该应用层消息大小向量隶属于该识别模型所对应的类型的概率。5.根据权利要求1所述的一种基于TCP报文特征的网络流量识别方法,其特征在于,所述识别模型为一个两层的LSTM层的神经网络,第一层网络以一个正则化之后的应用层消息大小为输入,第一层与第二层的网络之间采用全连接,第二层与Softmax层相连接,第二层的输出为一个大小为J的向量。6.一种基于TCP报文特征的网络流量识别装置,其...

【专利技术属性】
技术研发人员:薛广涛金人杰
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1