一种改进GRU模型的网络流量流特征分类方法

文档序号:30969899发布日期:2022-07-30 22:58阅读:666来源:国知局
一种改进GRU模型的网络流量流特征分类方法
一种改进gru模型的网络流量流特征分类方法
技术领域
1.本发明涉及网络流量分类领域,具体涉及一种改进gru模型的网络流量流特征分类方法。


背景技术:

2.网络流量分类(network traffic classification,ntc)是互联网服务提供商和网络运营商极其关注的问题之一,网络流量分类器识别网络中流动的流量数据并将它们映射到所属的应用程序。流量类别监控相关的可能动作和对策包括过滤/阻止不需要的流、启动合法拦截会话、在存在特定过载条件、威胁或违反网络运营商服务条款的活动时执行重新路由或资源重新分配等。流量分类所提供的信息对于网络运营非常有价值,有时是基本信息。例如,运营商需要对流量组成进行详细了解,并识别应用程序使用趋势,以便更好地进行网络设计和提供。qos 解决方案根据不同的标准对流量进行优先排序和不同的处理,首先需要将流量划分为不同的类别:在将数据包分配给类别时,识别数据包所属的应用程序至关重要。以同样的方式,流量分类支持区分类别收费或服务级别协议sla验证。另外,一些国家政府希望isp对非法或关键流量进行合法拦截,从而要求他们准确了解通过其网络传输的内容类型。事实上,流量分类代表了流量管理的第一步,也是网络管理至关重要的一步。
3.深度学习已经能很好地应用于图像处理和自然语言处理,它给加密流量分类领域带来了新的研究思路。近年来,在自然语言处理与图像处理中表现优异的深度学习技术被广泛应用在流量分类领域,如卷积神经网络、长短期记忆等。但是,互联网发展的最具有挑战性的趋势是基础设施在各个方面的巨大增长,例如链路的带宽容量等。大多数流量分类的实际应用需要在准确性、性能和成本之间进行权衡,以满足网络监测者的需求。
4.随着互联网技术的飞速发展,互联网在公共生活中发挥着重要的作用,为网络用户带来了极大的便利。因此,准确的网络流量分类成为更有效地提升网络管理水平、提高服务质量、保障网络安全的基础任务。而随着各种新网络应用的出现,网络流量的规模也在不断扩大,网络流量分类变得越来越具有挑战性。到目前为止,研究人员已经提出了非常多的流量分类方法。由于加密协议的广泛使用与升级,网络流量载荷特征及其统计特征发生了明显的变化,传统流量分类方法已经不再适用。当机器学习应用于流量分类领域时,加密流量识别有了一定的进步,但是其良好的性能很大程度上依赖于优秀的特征提取和分类算法选择,这是很复杂和耗时的。近年来,深度学习被广泛应用于流量分类领域,因为它可以从原始流量中自动选择底层特征。更重要的是,基于深度学习的方法有更强大的学习能力,因此它们可以更轻松地处理具有多层神经网络的繁重网络任务。此外,它们需要更少的计算资源,但可以达到比传统方法更高的精度。但深度学习流量分类模型仍然存在一些问题,例如模型的复杂度过高、训练时间长、可扩展性不高等缺点。
5.为了解现有技术的发展状况,对已有的专利和文献进行了检索、比较和分析,筛选出如下与本发明相关度比较高的技术信息:
6.专利方案1:cn112770323a基于网络流量空间时间特征的移动恶意应用家族分类方法,提供了一种基于网络流量空间时间特征的移动恶意应用家族分类方法,获取移动终端应用程序的流量,提取完整的tcp会话流;提取tcp会话中tcp 数据包的字节码和http数据包的字节码;根据得到的字节码,利用预设深度学习模型分别提取流量空间特性和流量时间特征,得到移动恶意应用家族分类结果;本公开通过提取tcp会话中tcp数据包的字节码和http数据包的字节码,使用卷积神经网络自动提取流量空间特性,使用长短期记忆网络自动提取流量时间特征,实现了移动恶意应用家族的准确分类。缺陷:使用卷积神经网络和长短期记忆网络作为深度学习模型,可能导致模型过于复杂、参数量过大,模型训练时间过长,不适用于实时或早期流量分类。同时卷积神经网络网络与循环神经网络的拼接架构不同可能影响实验结果。
7.专利方案2:cn112598036a一种基于多尺度特征注意力的网络流量分类方法及系统,涉及一种网络流量分类方法和系统。其中,网络流量分类方法包括:获取待分类网络流量数据;获取网络流量分类模型;以待分类网络流量数据为输入,采用网络流量分类模型得到待分类网络流量数据的网络流量分类。本发明提供的网络流量分类方法和系统,通过采用以网络流量数据为输入,以网络流量分类为输出的优化训练后的支持向量机分类模型(即网络流量分类模型)对待分类网络流量数据进行分类,能够在提高网络流量分类精度的同时,提高分类速度,进而提高整体分类效率。缺陷:采用网络字节流序列的集合作为神经网络模型的输入,可能导致数据规模过于庞大,导致耗费极高的计算时间和资源。而选取字节流序列长度的大小也会影响实验结果,选取长度太小不足以表达各个应用的特征,过长虽然能涵盖大多数应用产生的字节流,但不同应用产生的流字节序列的长度差距较大,一旦全部转换成独热形式,可能导致输入神经网络的数据过于稀疏,使训练收敛时间过长。


技术实现要素:

8.本发明为了避免背景技术中的问题设计了一种改进gru模型的网络流量流特征分类方法,将流数据包长度序列作为输入,利用gru网络规模小、拟合速度快的特点对流量数据进行分析,提取流量数据的时序特征。同时对传统双向gru 循环神经网络进行了改进,增加了门控机制,以提高流量分类的准确率和速度。
9.本发明采用的技术方案为:
10.一种改进gru模型的网络流量流特征分类方法,包括以下步骤:
11.s1:在链路连接中捕获应用程序的流量数据包,将捕获的原始流量转化成流序列,并按照五元组切分原始数据包流,然后基于流量数据的流特征将流序列转换成流数据包长度序列,经过处理的流量数据构成数据集;
12.s2:建立基于门控循环单元神经网络的深度学习流量分类模型;
13.s3:设置反向传播优化器和损失函数,利用数据集训练深度学习流量分类模型,利用训练好的深度学习流量分类模型提取出流量数据的时序特征,基于提取出的特征参数,连接全连接层,再通过softmax函数得到分类结果。
14.进一步的,步骤s1包括以下步骤:
15.s11、使用网络流量监控软件实时、连续地将应用使用期间产生的一系列数据包捕获并实时存储到内部或外部存储器上;
16.s12、将捕获的原始流量集合p分割成多个子集的集合f={f1,...,fi,...,fm};m 为原始流量划分的子集个数,fi表示将原始流量划分为多个子集中的任一子流;子流fi=(xi,bi,di,ti)中的数据包以时间顺序排列,其中xi表示包括源ip地址、源端口、目的ip地址、目的端口和协议号的五元组,bi∈[0,∞)为子流fi中所有数据包的大小,单位是字节,di是子流fi传输的总时长,ti则是子流fi中的数据包流的第一个数据包开始传输的时间;
[0017]
s13、将原始流量转化成流序列后,采用流数据包长度序列作为流特征序列;假设流序列训练样本集合中有n个样本,总属于c种应用,则第p个流序列样本表示为:
[0018][0019]
其中,0<p≤n,n
p
是流x
p
的数据包数量,是时间步i时刻的数据包特征值,表示数据包的长度特征,i=1,2,
…np

[0020]
s14、对网络流x
p
中的n
p
个数据包,每个数据包对应的长度为length
t
,则对数据包长度序列进行one-hot编码,得到l’t
=onehot(length
t
),0<t≤n
p
,经过预处理的流量数据构成数据集。
[0021]
进一步的,步骤s2建立的深度学习流量分类模型具体为:
[0022]zt
=σ(wz*[h
t-1
,x
t
])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0023]rt
=σ(wr*[h
t-1
,x
t
])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0024][0025][0026]ct
=σ(wc*[h
t-1
,x
t
])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0027][0028]gt
=σ(wg*[h
t-1
,x
t
])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0029]ht
=(1-g
t
)*x
t
+g
t
*h
t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0030]
式中,σ表示激活函数,通常采用sigmoid函数;z
t
表示更新门,wz则表示更新门的权重;r
t
表示重置门,wr则表示重置门的权重,h
t-1
表示上一时间步 t-1的隐藏状态,x
t
表示当前神经元的输入,表示当前神经元的候选隐藏状态; h
tgru
表示原始gru单元时间步的输出;c
t
和g
t
表示另一神经网络的参数;wg和wc是权重参,和是双向gru网络当前时间步t的前向状态输出和后向状态输出,和通过公式(6)连接后得出是单个时间步的gru 神经元的输出。
[0031]
本发明相比现有技术具有如下优点:
[0032]
(1)本发明从原始流序列中提取代表性流序列特征作为神经网络的输入,而不是手工提取流的统计特征(即传统机器学习方法常用的方法,其主要是建立在丰富的经验、专业知识和大量人力的基础上的),通过研究分析,我们采取流数据包长度序列作为代表性的特征输入神经网络模型,既减少了模型输入数据的规模,又充分挖掘了流量数据的时序特征。
[0033]
(2)本发明采用gru及其衍生网络从流数据包长度序列学习流特征,gru 网络是lstm的一个变体,gru性能与lstm不相上下,但因为结构相对简单所以计算效率更高、收敛速度上更快,同时在参数更新和泛化上性能更佳。同时,为了提高gru网络的预测准确率,我
们对基础双向gru网络进行了改进,通过加入门控机制来进行深度网络的训练,根据数据特征来进行选择性输出,优化了传统神经网络随着深度增加训练变难的缺点。
附图说明
[0034]
图1为本发明实施例的方法流程图。
[0035]
图2为本发明实施例gru单元结构图。
[0036]
图3为本发明实施例fgru网络结构图。
[0037]
图4为本发明实施例部分流量数据示意图。
[0038]
图5为左图为本发明gru网络模型各层的参数状况,右图为本发明模型参数可视化展示图。
具体实施方式
[0039]
下面结合附图对本发明作进一步解释说明。
[0040]
本发明一种改进gru模型的网络流量流特征分类方法,如图1所示,实例的具体分析步骤如下:
[0041]
s1:在链路连接中捕获应用程序的流量数据包。将原始流量转化成流序列,本文中我们按照传统五元组切分原始数据包流,即源ip地址、源端口、目的ip 地址、目的端口和协议号;然后,我们基于流量数据的流特征对流量数据进行进一步的处理,即将原始流序列转换成流数据包长度序列,经过处理的流量数据构成数据集;
[0042]
其中,步骤s1具体包括:
[0043]
s11、使用网络流量监控软件实时、连续地将应用使用期间产生的一系列数据包捕捉并实时存储到内部或外部存储器上。部分流量示意图如图4所示。
[0044]
s12、本发明中,流量分类问题是将流序列作为唯一的原始流量分类单位的,以此将加密流量分类到特定的应用程序中。原始流可以表示为具有相同流长度和不同类型(例如消息类型序列和分组长度序列)的多个序列。本发明中,将原始流量集合p分割成多个子集的集合f={f1,

,fi,

,fm},m为原始流量划分的子集个数,fi表示将原始流量划分为多个子集中的任一子流。子流fi=(xi,bi,di,ti) 中的数据包以时间顺序排列,其中xi表示包括源ip地址、源端口、目的ip地址、目的端口和协议号的五元组;bi∈[0,∞)为子流fi中所有数据包的大小,单位是字节;di是子流fi传输的总时长;ti则是子流fi中的数据包流的第一个数据包开始传输的时间。
[0045]
s13、将原始流量转化成流序列后,我们再从流序列中提取合适的特征用于神经网络的输入。具体来说,我们采用流数据包长度序列(即每个包的字节数) 作为流特征,在这里我们用数学方法表示。假设流序列训练样本集合中有n个样本,总属于c种应用,则第p(0<p≤n)个流序列样本可表示为
[0046][0047]np
是流x
p
的数据包数量,是时间步i时刻的数据包特征值(在这里,表示数据包的长度特征);
[0048]
s14、将流特征序列转换为固定长度、采用独热编码形式的定长one-hot序列。若网
络流x
p
中有n
p
个数据包,每个数据包对应的长度为length
t
,我们对数据包长度序列进行one-hot编码,得到l’t
=onehot(length
t
),(0<t≤n
p
)。经过预处理的流量数据将构成数据集,作为后续神经网络模型的训练数据。
[0049]
s2:建立基于门控循环单元神经网络的深度学习流量分类模型;图5展示了神经网络各层的参数状况和训练后网络的权重参数。
[0050]
其中,步骤s2具体包括:鉴于提取后的流特征序列具有一定的时序性,选用门控循环神经网络(gated recurrent neural network)为基础模型来对提取出的流特征序列进行进一步地分析。门控循环单元(gated recurrent unit,gru) 是一种常用的门控循环神经网络,gru是长短时记忆神经网络(long short-term memory,lstm)的一种改进模型。长短期记忆神经网络是递归神经网络的一种变异模型,能在一定程度上解决循环神经网络梯度爆炸、梯度消失问题,因此广泛应用于时间序列数据的预测。但是lstm循环神经网络仍然存在一些问题。lstm 内部结构复杂,预测时间序列数据可能需要较长的训练时间和预测时间。本发明中采用gru神经网络,以弥补传统lstm网络的缺点。门控循环单元通过门来控制隐藏状态之间的信息转换,并在不使用单独的存储单元的情况下跟踪输入序列的状态。gru的优点是其模型的简单性,参数量较少,因此更适用于构建较大的网络。相较于lstm,它只有两个门控,从计算角度看,它的效率更高,它的可扩展性有利于构筑较大的模型。gru引入了重置门(reset gate)和更新门(updategate)的概念,重置门有助于捕捉时间序列里短期的依赖关系,而更新门有助于捕捉时间序列里长期的依赖关系。
[0051]
本发明使用了gru及其衍生网络用于流量分类业务场景,基础gru网络的计算公式如公式(1)(2)(3)(4)所示:
[0052]zt
=σ(wz*[h
t-1
,x
t
])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0053]rt
=σ(wr*[h
t-1
,x
t
])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0054][0055][0056]
其中,σ表示激活函数,通常采用sigmoid函数;z
t
表示更新门,wz则表示更新门的权重;r
t
表示更新门,wr则表示更新门的权重,更新门和重置门的设计与基础gru的设计是一样的。h
t-1
表示上一神经元的隐藏状态,x
t
表示当前神经元的输入,表示当前神经元的候选隐藏状态;h
tgru
表示原始gru单元的输出;图2展示了基础gru网络单元的计算过程。
[0057]
为了进一步提高神经网络的预测能力,本发明中我们使用了双向gru网络,和表示时间步t的前向状态输出和后向状态输出。本发明对基础gru算法进行改进。改进后的gru网络命名为fgru,改进后的神经网络中门控神经元的计算公式如下:
[0058]ct
=σ(wc*[h
t-1
,x
t
])
ꢀꢀꢀꢀꢀ
(5)
[0059][0060]gt
=σ(wg*[h
t-1
,x
t
])
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0061]ht
=(1-g
t
)*x
t
+g
t
*h
t
′ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0062]
其中,c
t
和g
t
表示另一神经网络的参数;wg和wc是权重参,和是双向gru 网络当前时间步t的前向状态输出和后向状态输出,和通过公式(6)连接后得出
是单个时间步的gru神经元的输出。
[0063]
公式(5)(6)(7)(8)是本发明新增的,表示了本发明对双向gru的改进,增加了门控机制,用以提供更准确的流量分类结果;我们添加了c
t
以及g
t
,表示另一神经网络的参数;前向状态输出和后向状态输出的连接方式为向状态输出和后向状态输出的连接方式为此时当前神经元的输出h
t
的计算公式表示为h
t
=(1-g
t
)*x
t
+g
t
* h

t
,h
t
连接了另一神经网络的参数。改进后的gru网络整体模型如图3所示,流数据包长度序列作为fgru网络单元的输入,fgru网络用于捕捉时间序列中时间步之间的依赖关系,输出特征表示。
[0064]
s3:设置反向传播优化器和损失函数,利用数据集训练深度学习流量分类模型,利用训练好的深度学习流量分类模型提取出流量数据的时序特征,基于提取出的特征参数,连接全连接层,再通过softmax函数得到分类结果。
[0065]
具体包括:将fgru网络的输出连接全连接层,最后连接softmax函数,输出分类结果。设置反向传播优化器、损失函数等拟合训练数据。fgru网络结构如图3所示。表1展示了部分数据的分类结果。
[0066]
序号ip1port1ip2port2protocal分类结果110.8.8.13845849204.236.238.1641781tcpvpn-ftp2204.236.238.164154410.8.8.13859886tcpvpn-ftp310.8.8.1384333675.101.155.1222tcpvpn-ftp475.101.155.124712675.101.155.1222tcpvpn-skype
[0067]
表1:部分流量数据分类结果展示表。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1