CN114338437B - 网络流量分类方法、装置、电子设备及存储介质 - Google Patents
网络流量分类方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114338437B CN114338437B CN202210039374.9A CN202210039374A CN114338437B CN 114338437 B CN114338437 B CN 114338437B CN 202210039374 A CN202210039374 A CN 202210039374A CN 114338437 B CN114338437 B CN 114338437B
- Authority
- CN
- China
- Prior art keywords
- byte
- flow
- sequence
- classification
- network model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012549 training Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 10
- 239000000284 extract Substances 0.000 abstract description 10
- 238000013135 deep learning Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 238000013145 classification model Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种网络流量分类方法、装置、电子设备及存储介质,将捕获的pcap文件切分为流序列,流序列由多个流量数据包组成;从流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的。本发明为字节序列中的每个字节分别进行位置编码,可以有效提取字节序列中各字节的关键位置信息,提高流量分类网络模型识别的准确率。
Description
技术领域
本发明涉及网络流量管理技术领域,尤其涉及一种网络流量分类方法、装置、电子设备及存储介质。
背景技术
流量分类是现代通信网络中的一项重要任务。由于高吞吐量流量需求的快速增长,正确管理网络资源、识别使用网络资源不同类型的应用程序变得至关重要。
目前,互联网上新应用程序的出现以及各种组件之间的交互极大地增加了网络的复杂性和多样性,使得流量分类本身成为一个难题,网络流量分类面对着越来越多的挑战。为了应对这些挑战,现有技术将深度学习方法应用在流量分类领域以实现高性能的分类器。
然而,这种深度学习网络流量分类方法一方面在提取流量特征的过程中依赖于大量的专家经验,特征提取结果存在一定的偏差。另一方面在提取到流量特征序列后,并没有充分挖掘特征序列中各字节所包含的上下文关键信息,导致基于深度学习的流量分类模型最终输出的流量分类结果准确度不高。
发明内容
本发明提供一种网络流量分类方法、装置、电子设备及存储介质,用以解决现有技术中网络流量分类结果精确度不高的缺陷,实现有效提取字节序列各字节的关键位置信息,提高深度学习流量分类模型的分类准确率。
本发明提供一种网络流量分类方法,包括:
将捕获的pcap文件切分为流序列,所述流序列由多个流量数据包组成;
从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;
对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的。
根据本发明提供的一种网络流量分类方法,所述将捕获的pcap文件切分为流序列,包括:
基于五元组对所述pcap文件中的数据包流进行切分,得到流序列;所述五元组包括:源IP地址、源端口、目的IP地址、目的端口和协议号。
根据本发明提供的一种网络流量分类方法,从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列,包括:
基于预设规则从所述流序列中提取各个流量数据包预设数量的字节特征,得到以流为单位的字节序列。
根据本发明提供的一种网络流量分类方法,所述对所述字节序列中的各个字节进行位置编码,包括:
基于下述公式对所述字节序列中的各个字节进行位置编码,将每个字节在数据包中的位置转化为d维的特征向量Ppos,所述公式为:
P(pos,2i)=sin(pos/m2i/d)
P(pos,2i+1)=cos(pos/m2i)
其中,2i,2i+1∈[0,d-1],表示生成的位置编码的每个通道,m为常数,用于使每个字节的位置对应唯一的位置编码。
根据本发明提供的一种网络流量分类方法,所述流量分类网络模型由N个自动编码器层构成,N≥2,所述流量分类网络模型的损失函数为:
其中,hi-1为第i个自动编码器的输入层,N为以流为单位的样本数量。
本发明还提供一种网络流量分类装置,包括:
第一处理模块,用于将捕获的pcap文件切分为流序列,所述流序列由多个流量数据包组成;
第二处理模块,用于从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;
第三处理模块,用于对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的。
根据本发明提供的一种网络流量分类装置,所述第三处理模块,具体用于:
基于下述公式对所述字节序列中的各个字节进行位置编码,将每个字节在数据包中的位置转化为d维的特征向量Ppos,所述公式为:
P(pos,2i)=sin(pos/m2i/d)
P(pos,2i+1)=cos(pos/m2i)
其中,2i,2i+1∈[0,d-1],表示生成的位置编码的每个通道,m为常数,用于使每个字节的位置对应唯一的位置编码。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述网络流量分类方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述网络流量分类方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述网络流量分类方法的步骤。
本发明提供的网络流量分类方法、装置、电子设备及存储介质,通过将捕获的pcap文件切分为流序列,从流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列。然后对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的。本发明从原始流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列作为流量分类网络模型的输入,相比于现有的手工提取流的统计特征,既减少了模型输入数据的规模,又充分挖掘了流量数据的时序特征。此外,本发明为字节序列中的每个字节分别进行位置编码,可以有效提取字节序列中各字节的关键位置信息,提高流量分类网络模型识别的准确率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的网络流量分类方法的流程示意图之一;
图2是本发明提供的网络流量分类方法的流程示意图之二;
图3是本发明提供的网络流量分类装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供的网络流量分类方法,包括:
步骤101:将捕获的pcap文件切分为流序列,所述流序列由多个流量数据包组成;
在本步骤中,首先在链路连接中捕获应用程序的pcap文件,并按照五元组切分pcap文件中的数据包流,得到由多个数据包组成的流序列。
步骤102:从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;
在本步骤中,可选的,选择初始值M=40作为每个数据包采用的字节数(因为报头位于数据包的包头,而TCP的公共报头长度大于UDP的报头长度,为40字节)。另外,考虑到常用的随机端口分配和网络地址转换技术可能会对分类结果产生混淆,本发明用零来替代IP地址和端口号来避免这种影响。因此,单个数据包的字节处理结果为D={d1,…,di,…,dM},其中di为数据包的第i(i<M)个字节,取值范围为[0,255],归一化处理,使取值范围为[0,1]。对于每个以流为单位的序列样本fi,字节序列Fpacket如下述所示,N的大小等于数据包的数量。
Fpacket={D1,D2,D3…DN},N=packet length of fi
步骤103:对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的。
在本步骤中,需要说明的是,数据包包含IP报头、传输层报头和有效负载。不同位置的字节往往代表着不同的含义,且相互影响。例如,IP头中的“版本”决定了“源IP地址”的长度是4字节(IPv4)或16字节(IPv6)。因此,当应用程序通过格式良好的头交换信息时,其位置因素的信息时非常重要,不可忽视的。因此,本发明在采用流量分类网络模型对数据包特征进行分析时,首先对数据包的各字节进行位置编码,以提高后续流量识别的准确性。
在本步骤中,在完成各个字节的位置编码后,将编码后的字节序列输入至流量分类网络模型中,输出流量分类结果。其中,流量分类网路模型由N个自动编码器层构成,N≥2,其可以自动提取潜在特征。自动编码器是一种无监督的神经网络模型,它可以学习到输入数据的隐含特征,这称为编码(coding),同时用学习到的新特征可以重构出原始输入数据,称之为解码(decoding)。在流量分类网络模型的最后一层连接softmax分类器层,用以生成流量分类结果。
本发明提供的网络流量分类方法,通过将捕获的pcap文件切分为流序列,从流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列。然后对字节序列中的各个字节进行位置编码,并将编码后的字节序列输入至流量分类网络模型中,输出流量分类结果。本发明从原始流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列作为流量分类网络模型的输入,相比于现有的手工提取流的统计特征,既减少了模型输入数据的规模,又充分挖掘了流量数据的时序特征。此外,本发明为字节序列中的每个字节分别进行位置编码,可以有效提取字节序列中各字节的关键位置信息,提高流量分类网络模型识别的准确率。
基于上述实施例的内容,在本实施例中,所述将捕获的pcap文件切分为流序列,包括:
基于五元组对所述pcap文件中的数据包流进行切分,得到流序列;所述五元组包括:源IP地址、源端口、目的IP地址、目的端口和协议号。
在本实施例中,将流序列作为唯一的原始流量分类单位,以此将加密流量分类到特定的应用程序中。原始流可以表示为具有相同流长度和不同类型(例如消息类型序列和分组长度序列)的多个序列。本发明中,将pcap文件中的原始流量集合P分割成多个子集的集合F={f1,…,fi,…,fm},m为原始流量划分的子集个数,fi表示将原始流量划分为多个子集中的任一子流。子流fi=(xi,di,ti)中的数据包以时间顺序排列,其中xi表示包括源IP地址、源端口、目的IP地址、目的端口和协议号的五元组;di是子流fi传输的总时长;ti则是子流fi中的数据包流的第一个数据包开始传输的时间。
基于上述实施例的内容,在本实施例中,从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列,包括:
基于预设规则从所述流序列中提取各个流量数据包预设数量的字节特征,得到以流为单位的字节序列。
在本实施例中,可选的,选择初始值M=40作为每个数据包采用的字节数(因为报头位于数据包的包头,而TCP的公共报头长度大于UDP的报头长度,为40字节)。另外,考虑到常用的随机端口分配和网络地址转换技术可能会对分类结果产生混淆,本发明用零来替代IP地址和端口号来避免这种影响。因此,单个数据包的字节处理结果为D={d1,…,di,…,dM},其中di为数据包的第i(i<M)个字节,取值范围为[0,255],归一化处理,使取值范围为[0,1]。对于每个以流为单位的序列样本fi,字节序列Fpacket如下述所示,N的大小等于数据包的数量。
Fpacket={D1,D2,D3…DN},N=packet length of fi
由此可见,本发明截取流数据包字节序列前40字节,包括包头的一部分作为代表性的特征,既减少了流量分类网络模型输入数据的规模,又充分挖掘了流量数据的时序特征。
基于上述实施例的内容,在本实施例中,所述对所述字节序列中的各个字节进行位置编码,包括:
基于下述公式对所述字节序列中的各个字节进行位置编码,将每个字节在数据包中的位置转化为d维的特征向量Ppos,所述公式为:
P(pos,2i)=sin(pos/m2i/d)
P(pos,2i+1)=cos(pos/m2i)
其中,2i,2i+1∈[0,d-1],表示生成的位置编码的每个通道,m为常数,用于使每个字节的位置对应唯一的位置编码。
在本实施例中,可选的,采用三角函数对位置进行编码,将每个字节的位置position转化为d维的向量Ppos:
P(pos,2i)=sin(pos/100002i/d)
P(pos,2i+1)=cos(pos/100002i)
其中,2i,2i+1∈[0,d-1],表示生成的位置编码的每个通道,而设置常数10000保证了每个位置都能对应唯一的位置编码。
由此可见,本发明将字节序列中的各个字节进行位置编码,以充分挖掘数据包字节序列中各字节所包含的上下文关键信息,本发明通过三角函数编码方式,使得流量分类网络模型可以更容易地学习关注字节相对位置,同时它能为每个字节输出一个独一无二的编码。位置编码使流量分类网络模型知道每个字节在字节序列中的相对和绝对的位置信息。
基于上述实施例的内容,在本实施例中,所述流量分类网络模型由N个自动编码器层构成,N≥2,所述流量分类网络模型的损失函数为:
其中,hi-1为第i个自动编码器的输入层,N为以流为单位的样本数量。
在本实施例中,在完成各个字节的位置编码后,将编码后的字节序列输入至流量分类网络模型中,输出流量分类结果。其中,流量分类网路模型由N个自动编码器层构成,N≥2,其可以自动提取潜在特征。自动编码器是一种无监督的神经网络模型,它可以学习到输入数据的隐含特征,这称为编码(coding),同时用学习到的新特征可以重构出原始输入数据,称之为解码(decoding)。在流量分类网络模型的最后一层连接softmax分类器层,用以生成流量分类结果。本发明通过多层编码器充分提取更高层次的信息,进一步提高分类器性能。
具体的,对于单个编码器,输入层为其中di-1是输入层hi-1的维度,隐藏层为/>其中di是隐藏层的维度。根据下述公式,编码过程为:输入层hi-1被映射到隐藏层hi,解码过程为:隐藏层hi被映射到输出层/>
hi=f(Wi,1hi-1+bi,1)
其中Wi,1(di×di-1)和Wi,2(di-1×di)是编码器和解码器的权重矩阵,和是偏置向量,激活函数f(·)和/>通常用sigmoid函数。
通常意义上,第i个自动编码器试图重建输入hi-1,使尽可能与hi-1相似。因此流量分类网络模型的目标是使重建误差尽可能小,损失函数如下式:
对于堆叠自动编码器,假设样本作为原始数据输入到单个的编码器中,得到的编码特征重新作为下一个编码器的输入。堆叠式编码器按损失函数进行训练,最终生成更为抽象的特征。对于应用程序识别任务,在所提出的流量分类网络模型SAE(Stacked AutoEncoder)的最后一层,连接softmax分类器层,生成流量分类结果。
由此可见,本发明针对现代互联网环境下网络加密流量分类问题,设计了一种基于改进位置编码的网络流量数据包特征分类方法,从流序列中截取各个数据包部分字节序列,并对处理后的字节序列进行三角函数位置编码,以流量分类网络模型SAE提取流量数据代表性特征,提高分类模型的准确率。本发明通过对字节序列进行位置编码,可以有效提取字节序列各字节的关键位置信息,并显著提高深度学习流量分类模型的准确率。
下面通过具体实施例进行说明:
实施例一:
在本实施例中,需要说明的是,准确的流量分类已成为高级网络管理任务的先决条件之一,例如提供适当的服务质量QoS(Quality of Service)、异常检测、流量定价等。同时,用户隐私和数据加密的日益增长需求极大地增加了当今互联网中的加密流量。加密程序将原始数据转换为类似伪随机的格式,目的是使其难以解密。结果导致加密数据几乎不包含任何用于识别网络流量的判别模式。因此,加密流量的准确分类已成为现代网络中的真正挑战。另外,现有的网络流量分类方法,例如有效载荷检查以及基于机器学习和基于统计的方法,都需要专家提取模式或特征,此过程容易出错、耗时且成本高昂。最后,许多互联网服务提供商由于其高带宽消耗和版权问题而阻止文件共享应用程序。为了规避这个问题,这些应用程序使用协议嵌入和混淆技术来绕过流量控制***,因此,识别此类应用程序是网络流量分类中最具挑战性的任务之一。
上述现有的网络流量分类方法缺陷如下:
(1)基于负载数据报文的字节流的字节分布特征进行应用程序流量分类,生成字节分布特征的过程依赖大量的专家经验,可能会产生偏差导致分类结果的差异。
(2)将数据包荷载数据转化成字节序列,字节序列后续再输入到一维神经网络进行训练提取特征,并基于此进行流量分类。这种方法没有采用包头中的信息,事实上包头中包含了大量有用信息。同时现有技术是基于数据包进行分类的,分类单位的尺度较小,不适用于流级别的流量分类。
随着网络技术和加密技术的飞速发展,网络安全问题越来越受到大众的关注,网络加密流量的规模不断增加,给网络流量分类带来了巨大挑战。将机器学习算法与人工设计相结合已经成为解决这一问题的主流方法,但它需要大量的人力来提取和处理特征,这在很大程度上依赖于专业经验。然而,机器学习方法的成功诉诸于手工设计的特征的质量。当网络流量环境向快节奏的移动流量演变时,这样的过程是不切实际的,因为它既不能自动化也不能实现高度专业化。近年来深度学习方法被应用在加密流量分类领域以实现高性能的分类器,深度学习流量分类方法允许通过自动提取结构化和复杂的特征表示直接从输入数据训练分类器,这相对于传统机器学习方法有极大的优势,但深度学习方法仍有一些问题,如何从原始流量数据中提取特征,用深度学习模型进行精确的应用程序分类是相关领域研究者面临的一大问题。
在本发明中,将基于原始流作为基本分类单位,提取流的数据包特征,并利用位置编码转化数据包字节序列,以在提取数据包特征的过程中同时保留字节的位置信息。本发明采用堆叠式自动编码器SAE作为分类模型,提取更高层次的流包特征,使应用程序的分类更为准确。
如图2所示,本发明提供的一种网络流量分类方法,包括:
步骤201:从流序列中提取各个流量数据包具有代表性的字节序列;
在本步骤中,首先使用网络流量监控软件实时、连续地将应用程序使用期间产生的一系列流量数据包捕捉并实时存储到内部或外部存储器上。然后将原始流量转化为流序列后按照源IP地址、源端口、目的IP地址、目的端口和协议号切分原始数据包流,从流序列中提取各个数据包前40个字节进行归一化处理。
步骤202:对字节序列中的各个字节进行位置编码,并采用堆叠式自动编码器SAE对字节序列进行分析;
在本步骤中,建立基于位置编码和SAE的流量分类网络模型,首先对数据包的各字节进行位置编码,再将编码后的字节序列输入到SAE编码器中进行分析。本发明采用的SAE架构由三个完全连接的层组成,彼此堆叠在一起,分别由64、32、16个神经元组成。为了防止过拟合问题,在每一层之后采用了0.05的随机失活率。
步骤203:通过训练后的SAE模型输出流量应用分类结果。
在本步骤中,训练堆叠式编码器SAE,模型最后接softmax层输出分类结果。部分流分类结果如下表1所示。
表1
下面对本发明提供的流量分类装置进行描述,下文描述的流量分类装置与上文描述的流量分类方法可相互对应参照。
如图3所示,本发明提供的网络流量分类装置,包括:
第一处理模块1,用于将捕获的pcap文件切分为流序列,所述流序列由多个流量数据包组成;
第二处理模块2,用于从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;
第三处理模块3,用于对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的。
在本实施例中,首先在链路连接中捕获应用程序的pcap文件,并按照五元组切分pcap文件中的数据包流,得到由多个数据包组成的流序列。
在本实施例中,可选的,选择初始值M=40作为每个数据包采用的字节数(因为报头位于数据包的包头,而TCP的公共报头长度大于UDP的报头长度,为40字节)。另外,考虑到常用的随机端口分配和网络地址转换技术可能会对分类结果产生混淆,本发明用零来替代IP地址和端口号来避免这种影响。因此,单个数据包的字节处理结果为D={d1,…,di,…,dM},其中di为数据包的第i(i<M)个字节,取值范围为[0,255],归一化处理,使取值范围为[0,1]。对于每个以流为单位的序列样本fi,字节序列Fpacket如下述所示,N的大小等于数据包的数量。
Fpacket={D1,D2,D3…DN},N=packet length of fi
在本实施例中,需要说明的是,数据包包含IP报头、传输层报头和有效负载。不同位置的字节往往代表着不同的含义,且相互影响。例如,IP头中的“版本”决定了“源IP地址”的长度是4字节(IPv4)或16字节(IPv6)。因此,当应用程序通过格式良好的头交换信息时,其位置因素的信息时非常重要,不可忽视的。因此,本发明在采用流量分类网络模型对数据包特征进行分析时,首先对数据包的各字节进行位置编码,以提高后续流量识别的准确性。
在本实施例中,在完成各个字节的位置编码后,将编码后的字节序列输入至流量分类网络模型中,输出流量分类结果。其中,流量分类网路模型由N个自动编码器层构成,N≥2,其可以自动提取潜在特征。自动编码器是一种无监督的神经网络模型,它可以学习到输入数据的隐含特征,这称为编码(coding),同时用学习到的新特征可以重构出原始输入数据,称之为解码(decoding)。在流量分类网络模型的最后一层连接softmax分类器层,用以生成流量分类结果。
本发明提供的网络流量分类装置,通过将捕获的pcap文件切分为流序列,从流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列。然后对字节序列中的各个字节进行位置编码,并将编码后的字节序列输入至流量分类网络模型中,输出流量分类结果。本发明从原始流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列作为流量分类网络模型的输入,相比于现有的手工提取流的统计特征,既减少了模型输入数据的规模,又充分挖掘了流量数据的时序特征。此外,本发明为字节序列中的每个字节分别进行位置编码,可以有效提取字节序列中各字节的关键位置信息,提高流量分类网络模型识别的准确率。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行网络流量分类方法,该方法包括:将捕获的pcap文件切分为流序列,所述流序列由多个流量数据包组成;从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的网络流量分类方法,该方法包括:将捕获的pcap文件切分为流序列,所述流序列由多个流量数据包组成;从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的网络流量分类方法,该方法包括:将捕获的pcap文件切分为流序列,所述流序列由多个流量数据包组成;从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种网络流量分类方法,其特征在于,包括:
在链路连接中捕获应用程序的pcap文件,并按照五元组切分pcap文件中的数据包流,将基于原始流作为基本分类单位,得到由多个数据包组成的流序列,所述流序列由多个流量数据包组成;
从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;
对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的;
所述对所述字节序列中的各个字节进行位置编码,包括:
基于下述公式对所述字节序列中的各个字节进行位置编码,将每个字节在数据包中的位置转化为d维的特征向量Ppos,所述公式为:
P(pos,2i)=sin(pos/m2i/d)
P(pos,2i+1)=cos(pos/m2i)
其中,2i,2i+1∈[0,d-1],表示生成的位置编码的每个通道,m为常数,用于使每个字节的位置对应唯一的位置编码。
2.根据权利要求1所述的网络流量分类方法,其特征在于,
所述五元组包括:源IP地址、源端口、目的IP地址、目的端口和协议号。
3.根据权利要求1所述的网络流量分类方法,其特征在于,从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列,包括:
基于预设规则从所述流序列中提取各个流量数据包预设数量的字节特征,得到以流为单位的字节序列。
4.根据权利要求1所述的网络流量分类方法,其特征在于,所述流量分类网络模型由N个自动编码器层构成,N≥2,所述流量分类网络模型的损失函数为:
其中,hi-1为第i个自动编码器的输入层,N为以流为单位的样本数量。
5.一种网络流量分类装置,其特征在于,包括:
第一处理模块,用于在链路连接中捕获应用程序的pcap文件,并按照五元组切分pcap文件中的数据包流,将基于原始流作为基本分类单位,得到由多个数据包组成的流序列,所述流序列由多个流量数据包组成;
第二处理模块,用于从所述流序列中提取各个流量数据包的字节特征,得到以流为单位的字节序列;
第三处理模块,用于对所述字节序列中的各个字节进行位置编码,并将编码后的所述字节序列输入至流量分类网络模型中,得到所述流量分类网络模型输出的流量分类结果;其中,所述流量分类网络模型是基于以流为单位的样本和样本对应的流量分类结果训练后得到的;所述第三处理模块,具体用于:基于下述公式对所述字节序列中的各个字节进行位置编码,将每个字节在数据包中的位置转化为d维的特征向量Ppos,所述公式为:
P(pos,2i)=sin(pos/m2i/d)
P(pos,2i+1)=cos(pos/m2i)
其中,2i,2i+1∈[0,d一1],表示生成的位置编码的每个通道,m为常数,用于使每个字节的位置对应唯一的位置编码。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述网络流量分类方法的步骤。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述网络流量分类方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210039374.9A CN114338437B (zh) | 2022-01-13 | 2022-01-13 | 网络流量分类方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210039374.9A CN114338437B (zh) | 2022-01-13 | 2022-01-13 | 网络流量分类方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338437A CN114338437A (zh) | 2022-04-12 |
CN114338437B true CN114338437B (zh) | 2023-12-29 |
Family
ID=81025840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210039374.9A Active CN114338437B (zh) | 2022-01-13 | 2022-01-13 | 网络流量分类方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338437B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022195B (zh) * | 2022-05-26 | 2023-10-10 | 电子科技大学 | 一种用于IPv6网络的流量动态测量方法 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7684320B1 (en) * | 2006-12-22 | 2010-03-23 | Narus, Inc. | Method for real time network traffic classification |
CN108199863A (zh) * | 2017-11-27 | 2018-06-22 | 中国科学院声学研究所 | 一种基于两阶段序列特征学习的网络流量分类方法及*** |
CN109995601A (zh) * | 2017-12-29 | 2019-07-09 | ***通信集团上海有限公司 | 一种网络流量识别方法及装置 |
CN110012035A (zh) * | 2019-05-17 | 2019-07-12 | 广东工业大学 | 网络流量识别方法、***、装置及计算机可读存储介质 |
CN110691003A (zh) * | 2019-09-04 | 2020-01-14 | 北京天融信网络安全技术有限公司 | 一种网络流量分类方法、装置和存储介质 |
CN111147396A (zh) * | 2019-12-26 | 2020-05-12 | 哈尔滨工程大学 | 一种基于序列特征的加密流量分类方法 |
WO2020119481A1 (zh) * | 2018-12-11 | 2020-06-18 | 深圳先进技术研究院 | 一种基于深度学习的网络流量分类方法、***及电子设备 |
CN111355671A (zh) * | 2019-12-31 | 2020-06-30 | 鹏城实验室 | 基于自注意机制的网络流量分类方法、介质及终端设备 |
CN111711633A (zh) * | 2020-06-22 | 2020-09-25 | 中国科学技术大学 | 多阶段融合的加密流量分类方法 |
CN112104570A (zh) * | 2020-09-11 | 2020-12-18 | 南方电网科学研究院有限责任公司 | 流量分类方法、装置、计算机设备和存储介质 |
CN112804253A (zh) * | 2021-02-04 | 2021-05-14 | 湖南大学 | 一种网络流量分类检测方法、***及存储介质 |
WO2021103135A1 (zh) * | 2019-11-25 | 2021-06-03 | 中国科学院深圳先进技术研究院 | 一种基于深度神经网络的流量分类方法、***及电子设备 |
CN113079069A (zh) * | 2021-06-04 | 2021-07-06 | 南京邮电大学 | 一种面向大规模加密网络流量的混合粒度训练及分类方法 |
CN113472751A (zh) * | 2021-06-04 | 2021-10-01 | 中国科学院信息工程研究所 | 一种基于数据包头的加密流量识别方法及装置 |
CN113472809A (zh) * | 2021-07-19 | 2021-10-01 | 华中科技大学 | 一种加密恶意流量检测方法、检测***及计算机设备 |
US11165675B1 (en) * | 2021-04-19 | 2021-11-02 | Corelight, Inc. | System and method for network traffic classification using snippets and on the fly built classifiers |
CN113783795A (zh) * | 2021-07-19 | 2021-12-10 | 北京邮电大学 | 加密流量分类方法及相关设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7574409B2 (en) * | 2004-11-04 | 2009-08-11 | Vericept Corporation | Method, apparatus, and system for clustering and classification |
US10237147B2 (en) * | 2013-05-13 | 2019-03-19 | Marvell World Trade Ltd. | Heuristic network traffic classification using byte-distributions |
US10904203B2 (en) * | 2016-09-09 | 2021-01-26 | Arbor Networks, Inc. | Augmenting network flow with passive DNS information |
CN113348645B (zh) * | 2018-11-27 | 2024-02-27 | 萨瑟尔公司 | 数据流分类的***和方法 |
US20200364585A1 (en) * | 2019-05-17 | 2020-11-19 | Oracle International Corporation | Modular feature extraction from parsed log data |
US11233744B2 (en) * | 2019-11-28 | 2022-01-25 | Hewlett Packard Enterprise Development Lp | Real-time network application visibility classifier of encrypted traffic based on feature engineering |
US11704558B2 (en) * | 2020-05-21 | 2023-07-18 | Servicenow Canada Inc. | Method of and system for training machine learning algorithm for object classification |
-
2022
- 2022-01-13 CN CN202210039374.9A patent/CN114338437B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7684320B1 (en) * | 2006-12-22 | 2010-03-23 | Narus, Inc. | Method for real time network traffic classification |
CN108199863A (zh) * | 2017-11-27 | 2018-06-22 | 中国科学院声学研究所 | 一种基于两阶段序列特征学习的网络流量分类方法及*** |
CN109995601A (zh) * | 2017-12-29 | 2019-07-09 | ***通信集团上海有限公司 | 一种网络流量识别方法及装置 |
WO2020119481A1 (zh) * | 2018-12-11 | 2020-06-18 | 深圳先进技术研究院 | 一种基于深度学习的网络流量分类方法、***及电子设备 |
CN110012035A (zh) * | 2019-05-17 | 2019-07-12 | 广东工业大学 | 网络流量识别方法、***、装置及计算机可读存储介质 |
CN110691003A (zh) * | 2019-09-04 | 2020-01-14 | 北京天融信网络安全技术有限公司 | 一种网络流量分类方法、装置和存储介质 |
WO2021103135A1 (zh) * | 2019-11-25 | 2021-06-03 | 中国科学院深圳先进技术研究院 | 一种基于深度神经网络的流量分类方法、***及电子设备 |
CN111147396A (zh) * | 2019-12-26 | 2020-05-12 | 哈尔滨工程大学 | 一种基于序列特征的加密流量分类方法 |
CN111355671A (zh) * | 2019-12-31 | 2020-06-30 | 鹏城实验室 | 基于自注意机制的网络流量分类方法、介质及终端设备 |
CN111711633A (zh) * | 2020-06-22 | 2020-09-25 | 中国科学技术大学 | 多阶段融合的加密流量分类方法 |
CN112104570A (zh) * | 2020-09-11 | 2020-12-18 | 南方电网科学研究院有限责任公司 | 流量分类方法、装置、计算机设备和存储介质 |
CN112804253A (zh) * | 2021-02-04 | 2021-05-14 | 湖南大学 | 一种网络流量分类检测方法、***及存储介质 |
US11165675B1 (en) * | 2021-04-19 | 2021-11-02 | Corelight, Inc. | System and method for network traffic classification using snippets and on the fly built classifiers |
CN113079069A (zh) * | 2021-06-04 | 2021-07-06 | 南京邮电大学 | 一种面向大规模加密网络流量的混合粒度训练及分类方法 |
CN113472751A (zh) * | 2021-06-04 | 2021-10-01 | 中国科学院信息工程研究所 | 一种基于数据包头的加密流量识别方法及装置 |
CN113472809A (zh) * | 2021-07-19 | 2021-10-01 | 华中科技大学 | 一种加密恶意流量检测方法、检测***及计算机设备 |
CN113783795A (zh) * | 2021-07-19 | 2021-12-10 | 北京邮电大学 | 加密流量分类方法及相关设备 |
Non-Patent Citations (3)
Title |
---|
《基于数据包字节长度的线性自回归(Autoregression)和支持向量分类机(SVM)的网络流量预测建模与分析》;王靖华,何迪;《微型电脑应用》(第11期);1-3, 23 * |
《基于相关性分析的多维数据融合方法》;葛宁玲;《中国优秀硕士学位论文全文数据库信息科技辑》(第05期);全文 * |
Yonghua Huo ; Chunxiao Song ; Sheng Gao ; Haodong Yang ; Yu Yan ; Yang Yang.《Network Traffic Prediction Method Based on Time Series Characteristics》.《10th International Conference on Computer Engineering and Networks》.2020,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114338437A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111865815B (zh) | 一种基于联邦学习的流量分类方法及*** | |
CN110012029B (zh) | 一种区分加密和非加密压缩流量的方法和*** | |
CN113179223B (zh) | 一种基于深度学习和序列化特征的网络应用识别方法及*** | |
CN110796196B (zh) | 一种基于深度判别特征的网络流量分类***及方法 | |
CN111191767B (zh) | 一种基于向量化的恶意流量攻击类型的判断方法 | |
CN112311814B (zh) | 基于深度学习的恶意加密流量识别方法、***及电子设备 | |
CN112437016B (zh) | 网络流量识别方法、装置、设备及计算机存储介质 | |
CN110751222A (zh) | 基于cnn和lstm的在线加密流量分类方法 | |
CN113037730A (zh) | 基于多特征学习的网络加密流量分类方法及*** | |
CN112104570A (zh) | 流量分类方法、装置、计算机设备和存储介质 | |
CN111144470A (zh) | 一种基于深度自编码器的未知网络流量识别方法及*** | |
CN111611280A (zh) | 一种基于cnn和sae的加密流量识别方法 | |
CN113935426A (zh) | 一种电力物联网异常数据流量的检测方法及装置 | |
CN114338437B (zh) | 网络流量分类方法、装置、电子设备及存储介质 | |
CN114826776B (zh) | 一种用于加密恶意流量的弱监督检测方法及*** | |
CN111355671B (zh) | 基于自注意机制的网络流量分类方法、介质及终端设备 | |
CN112887291A (zh) | 基于深度学习的i2p流量识别方法及*** | |
CN112383488B (zh) | 一种适用于加密与非加密数据流的内容识别方法 | |
CN113904961B (zh) | 一种用户行为识别方法、***、设备及存储介质 | |
CN114970680A (zh) | 基于cnn+lstm的流量终端实时识别方法及装置 | |
CN110417786B (zh) | 一种基于深度特征的p2p流量细粒度识别方法 | |
CN113852605A (zh) | 一种基于关系推理的协议格式自动化推断方法及*** | |
CN113449768A (zh) | 一种基于短时傅里叶变换的网络流量分类装置及方法 | |
Ma et al. | Bi-ETC: A Bidirectional Encrypted Traffic Classification Model Based on BERT and BiLSTM | |
Zheng et al. | Multi-view multi-label anomaly network traffic classification based on mlp-mixer neural network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |