CN112187664B - 一种基于半监督学习的应用流自动分类方法 - Google Patents
一种基于半监督学习的应用流自动分类方法 Download PDFInfo
- Publication number
- CN112187664B CN112187664B CN202011010285.9A CN202011010285A CN112187664B CN 112187664 B CN112187664 B CN 112187664B CN 202011010285 A CN202011010285 A CN 202011010285A CN 112187664 B CN112187664 B CN 112187664B
- Authority
- CN
- China
- Prior art keywords
- flow
- layer
- clustering
- array
- type
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- 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
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于半监督学习的应用流自动分类方法,该方法从网络流量数据中提取有效特征,包括非比例特征和比例特征;使用自底向上的层次聚类算法实现对网络流量的多层次自动分类,在每一层次的聚类中计算非比例特征的余弦相似度和比例特征的欧氏距离,将结果中满足阈值条件的流聚合为一类,调整分类阈值逐层聚类直到将所有原始流量最终聚合为一类;确定聚类结果中能够将典型流量类型区分开来且将同一类流量聚合为一类的流量类型层,根据已有标签的典型流量信息为流量类型层中的各类流量打上流量类型标签。本发明可自动区分网络流量的流量类型,可用于网络管理和网络安全监测。
Description
技术领域
本发明属于网络测量技术领域,涉及一种基于半监督学习的网络应用流量自动分类方法。
背景技术
网络流量分类是实现有效的网络管理的重要环节之一,流量分类的目的是从不同应用和协议的网络流量中识别出流量的类别,从而有效地支持下游应用(如QoS保障,网络测量,入侵检测等)。因此网络流量分类已经逐渐成为了网络管理领域的研究热点。
目前存在的流量分类方法主要有三大类,包括基于端口的、基于负载的以及基于机器学习技术的方法,均各自具有缺陷。
基于端口的流量分类是通过检查分组的传输层端口,根据IANA制定的知名端口号与注册端口号列表将分组和应用匹配起来。然而随着网络应用的不断发展,基于端口的分类方法的缺陷日益明显,流行的P2P与被动FTP等新型网络应用使用随机端口进行数据传输,从而导致基于端口的分类方法逐渐被淘汰。
随着技术的发展,工业级产品中广泛使用基于负载的流量分类方法,该方法主要分析数据包的有效负载来判断其是否包含与已知应用相匹配的特征,但是基于负载的方法需要预先知道应用的语法和特征,而且需要提取每个IP分组载荷的明文。随着加密应用以及其他新型应用的涌现,由于无法获取数据包的负载明文以及存在未知应用的语法和特征,逐步降低了此方法的分类性能。
由于机器学习技术的高分类性能以及对动态端口和加密流量的强适应性,机器学习技术在近年来的流量分类研究中得到大量应用。传统的机器学习方法主要分为基于统计学方法的(如SVM、Adaboost、NaiveBayes等)以及基于高级深度学习模型的(如sparseauto-encoder等)方法。尽管传统的机器学习方法有较好分类性能,但是存在以下两个限制。1)监督学习方法中,分类结果中的所有的种类必须是预先知道的(先验条件)。2)这种方法需要人工标记数据,需要在相当长的一段时间内探索流特征。而实际网络中存在着由未知的应用在较短时间阶段产生的新的流量。在这种流量分类问题中,监督学习方法不仅分类性能较差而且不能适应网络的动态变化。尽管现在已经有一些无监督学习方法(如K-means)可以部分地解决这个问题,但这些无监督学习方法还需要额外的手工检查。
发明内容
为了有效地实现网络流量的自动分类,自动化地将网络流量精准分类,本发明从网络流量中提取了多种有效特征,针对有效特征的特点,结合余弦相似度与欧氏距离的适用性设计了相似度计算方法,并基于半监督学习方法与分层聚类思想设计了一种应用流自动分类方法以识别网络流量的类型。
为了达到上述目的,本发明提供如下技术方案:
一种基于半监督学习的网络应用流量自动分类方法,包括如下步骤:
(1)采集网络流量数据,包括主干网中未知流量类型的流量以及应用中已知流量类型的流量数据;
(2)基于采集的网络流量数据,提取76种数据流特征建立特征库;
(3)结合余弦相似度与欧氏距离,针对步骤(2)中建立的特征库使用层次聚类算法实现对网络流量的聚类并输出分类结果;
(4)分析步骤(3)输出的各应用流量的聚类结果,确定将典型的流量类型区分开来的聚类层次,将这一聚类层次作为流量类型层;
(5)为流量类型层中每一类的流量打上流量类型标签。
进一步,所述步骤(1)包括如下子步骤:
(1.1)在高速主干网中使用流量采集器采集流量数据,作为待分类流量,保存为pcap格式文件;
(1.2)启用不同网络应用的过程中在设备上对网络应用使用时产生的数据进行采集,保存为pcap格式文件,并为这些典型应用流量打上流量类型标签;
(1.3)混合步骤(1.1)采集的主干网未知流量与步骤(1.2)采集的已有标签的典型流量。
进一步,所述步骤(2)包括如下子步骤:
(2.1)针对步骤(1)中采集的分组数据,按照源IP,源端口,宿IP,宿端口,传输协议类型进行组流,对每条流提取76种有效特征;
(2.2)为每条流添加编号id。
进一步,所述步骤(3)包括如下子步骤:
(3.1)定义存放数据的结构体:定义存放76个特征的一维数组结构体Datalist,以及用于存放多个一维数组Datalist的结构体DataArray;创建DataArray对象存放各层数据:array_0存放原始流数组,array_1~array_N存放第一层~第N层聚类结果;
(3.2)开始第一层聚类:依次读取每一条流的76个特征值作为一个DataList元素加入array_0;对非比例特征使用余弦相似度算法计算相似度,对比例特征使用欧式距离算法计算相似度;依次计算array_0中第i条流与第j条流之间的相似度,其中,0≤i<Len(array_0),i+1≤j<Len(array_0);设置初始阈值,将距离在初始阈值设置范围内的流量合并为一类,得到第一层聚类的分类结果存入结构体变量array_1;第一层聚类结果中,如果各类中的流量的特征数值高度相似,则能够确定初始阈值合适,如果array_1各类中的流量的特征非高度相似,则输出当前分类结果中全部的流量之间的相似度数值,依据流编号追踪已有标签的典型流量中的同类流量,得到已有标签的同类流量之间的相似度值,将此相似度值用于修正初始阈值,直到完成第一层聚类;如果第一层聚类将原始流量全部聚合为一类就结束聚类过程,进入步骤(3.6)输出聚类结果;否则进入步骤(3.3);
(3.3)定义int型变量用于记录聚类层次,并初始化为:Lpre=1,Lnext=2,进入步骤(3.4);
(3.4)开始第Lnext层聚类:计算第Lpre层聚类结果array_Lpre中每一类中各条流特征值的平均值作为这一类的代表特征值,形成新的特征向量集作为第Lnext层聚类的分类对象array_Lpre’;对非比例特征使用余弦相似度算法计算相似度,对比例特征使用欧式距离算法计算相似度;依次计算array_Lpre’中第i条流与第j条流之间的相似度,其中0≤i<Len(array_Lpre’),i+1≤j<Len(array_Lpre’);根据第Lpre层聚类的阈值对第Lnext层聚类的阈值做出相应调整,将距离在第Lnext层阈值设置范围内的流量合并为一类,得到第Lnext层聚类的分类结果存入array_Lnext;如果array_Lnext的类别总数缩减为上一层聚类结果中类别总数的1/2,则说明第Lnext层阈值合适,否则需对当前分类结果中全部流量之间的相似度数值进行排序,定位至相似度取值范围的中间数值,尝试用此中间数值将分类总数缩小为一半以修正第Lnext层阈值,直到完成第Lnext层聚类;如果第Lnext层的聚类结果中的类别总数为1就结束聚类过程,进入步骤(3.6)输出聚类结果;否则进入步骤(3.5);
(3.5)Lpre++,Lnext++;重复(3.4)的过程,完成下一层聚类直到将原始流量聚为一类;
(3.6)将各层聚类的结果输出。
进一步,所述步骤(4)包括如下子步骤:
(4.1)对步骤(3.6)输出结果中的流量编号进行分析,得到各流量的分类轨迹;
(4.2)自底向上逐层判断各层是否为流量类型层,如果已有标签的典型流量在该层中被分为一类,则该层为流量类型层。
进一步,所述步骤(5)包括如下子步骤:
(5.1)为步骤(3.6)各层聚类的阶段性结果加上各层的类id;
(5.2)在步骤(3.6)各层聚类的结果中定位至流量类型层,汇总该层聚类结果中每一类的所属流量,将出现次数最多的流量类型作为这一类中所有流量的流量类型标签,并标记主干网未知流量中未能标记流量类型的流量为新型未知流量类型。
与现有技术相比,本发明具有如下优点和有益效果:
(1)本发明结合半监督学习方法和分层聚类思想提出的分层自动聚类方法可以实现流量的自动分类,为网络管理以及下游应用(如QoS保证、入侵检测)提供支持。
(2)本发明充分利用了网络应用流量的关键特征,提取了包括比例特征与非比例特征在内的共76个特征,建立的特征库是原创的有效特征集。本发明对不同特征使用不同的相似度计算方式求解流相似度,该技术使得本发明具有较高的分类准确性以及可用性。
(3)本发明使用半监督学习方法构建流量分类模型,与常用的基于监督学习的分类方法相比,不需要大量的标签数据,可以快速进行模型更新,具有较强的实用性与可行性。
附图说明
图1为本发明提供的基于半监督学习的网络应用流量自动分类方法的总体流程图;
图2为结合相似度计算方式以及分层聚类思想设计的自动分层聚类算法的流程图;
图3为流量类型层中每一类的流量打上应用类型标签的算法流程图。
图4为存放流量数据的结构体示意图。
具体实施方式
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
本发明首先建立了有效特征库,其中包括比例特征与非比例特征;其次结合有效特征的特点并依据余弦相似度和欧氏距离的适用性进行了相似度计算实现流量的逐层聚类,将结果中满足阈值条件的流聚合为一类,调整分类阈值逐层聚类直到将所有原始流量最终聚合为一类;最后根据已有标签的典型流量为流量类型层中的各类流量打上流量类型标签,实现网络流量的自动分类。具体的说,本发明提供的一种基于半监督学习的网络应用流量自动分类方法,其流程如图1所示,包括如下步骤:
(1)采集网络流量数据,包括主干网中未知流量类型的流量以及少量典型应用中已知流量类型的流量数据;具体包括:
(1.1)在高速主干网中使用流量采集器采集流量数据,作为待分类流量,保存为pcap格式文件。
(1.2)启用不同网络应用的过程中在设备上对网络应用使用时产生的数据进行采集,保存为pcap格式文件,并为这些典型应用流量打上流量类型标签。
(1.3)混合步骤(1.1)采集的主干网未知流量与步骤(1.2)采集的已有标签的典型流量。
(2)基于采集的网络流量数据,提取76种数据流特征建立特征库;具体包括:
(2.1)针对步骤(1)中采集的分组数据,按照源IP,源端口,宿IP,宿端口,传输协议类型组流,对每条流提取76种有效特征。特征的名称和含义如下表1,表1中CS是指从Client端到Server端的方向,SC表示从Server端到Client端的方向。其中1-7号特征为流的标识信息,8-37号特征为非比例特征,38-76号特征为比例特征。非比例特征是与数据包数和数据长度、流量持续时间相关的特征(如数据包数量、数据包平均长度、数据传输时间);而比例特征是与流量标志位、包长比例等相关的流隐含的深层信息(如包中PSH标志位、确认分组和数据分组之间的间隔时间)。
表1特征名称及含义介绍
(2.2)为了便于后续的结果分析,为每条流添加流编号。本例中,特征的部分数据如下表2,表2中C是指从Client端到Server端的方向,S表示从Server端到Client端的方向。
表2
(3)结合余弦相似度与欧氏距离,针对步骤(2)中建立的特征库使用层次聚类算法实现对网络流量的聚类并输出分类结果;具体包括:
具体地说,本步骤中,如图2读取网络应用流量的特征数据,对非比例特征使用余弦相似度算法计算相似度,对比例特征使用欧式距离算法计算相似度,分层聚类得到层次聚类结果并输出结果的方法如下:
(3.1)定义存放数据的结构体如下:
首先,定义存放76个特征的一维数组结构体Datalist,以及用于存放多个一维数组Datalist的结构体DataArray,如图4所示。
Typedef struct DataList{
string data[76];
};
Typedef struct DataArray{
struct DataList datalist;
};
其次,定义用于存放数据的结构体变量。
struct DataArray array_0;#array_0存放原始流数组
struct DataArray array_1;#array_1存放第一层聚类结果
struct DataArray array_2;#array_2存放第二层聚类结果
…
struct DataArray array_N;#array_N存放第N层聚类结果
(3.2)开始第一层聚类:依次读取每一条流的76个特征值作为一个DataList元素加入array_0。对非比例特征使用余弦相似度算法计算相似度,对比例特征使用欧式距离算法计算相似度。依次计算array_0中第i条流(0≤i<Len(array_0))与第j条流(i+1≤j<Len(array_0))之间的相似度。设置初始阈值,将距离在初始阈值设置范围内的流量合并为一类,得到第一层聚类的分类结果存入结构体变量array_1。本例中,初始阈值为:余弦[0.99,1.00],欧式为[0,1],第一层聚类的结果是将原始的2507条流聚合为594类,并存入array_1。第一层聚类结果(array1)中,如果各类中的流量的特征数值极其接近(说明特征值高度相似),就可以确定初始阈值是合适的。如果array_1各类中的流量的特征不是高度相似的,就需要输出当前分类结果中全部的流量之间的相似度数值,依据流编号追踪已有标签的典型流量中的同类流量,得到已有标签的同类流量之间的相似度值,将此相似度值用于修正初始阈值,直到完成第一层聚类。如果第一层聚类将原始流量全部聚合为一类就结束聚类过程,进入步骤(3.6)输出聚类结果;否则进入步骤(3.3)。本例中分析第一层聚类结果(array_1)的部分结果如下表3,可以看到array_1中各类的所有流量的特征高度相似,说明初始阈值可行。但是第一层聚类没有将原始流量聚合为一类,所以需要进入步骤(3.3)继续下一层聚类。
表3
(3.3)定义int型变量用于记录聚类层次,并初始化为:Lpre=1,Lnext=2,进入步骤(3.4)。
(3.4)开始第Lnext层聚类:计算第Lpre层聚类结果array_Lpre中每一类中各条流特征值的平均值作为这一类的代表特征值,形成新的特征向量集作为第Lnext层聚类的分类对象array_Lpre’。对非比例特征使用余弦相似度算法计算相似度,对比例特征使用欧式距离算法计算相似度。依次计算array_Lpre’中第i条流(0≤i<Len(array_Lpre’))与第j条流(i+1≤j<Len(array_Lpre’))之间的相似度。根据第Lpre层聚类的阈值对第Lnext层聚类的阈值做出相应调整。将距离在第Lnext层阈值设置范围内的流量合并为一类,得到第Lnext层聚类的分类结果存入array_Lnext。如果array_Lnext的类别总数缩减为上一层聚类结果中类别总数的1/2,就说明第Lnext层阈值是合适的。否则就需要对当前分类结果中全部流量之间的相似度数值进行排序,定位至相似度取值范围的中间数值,尝试用此中间数值将分类总数缩小为一半以修正第Lnext层阈值,直到完成第Lnext层聚类。如果第Lnext层的聚类结果中的类别总数为1就结束聚类过程,进入步骤(3.6)输出聚类结果;否则进入步骤(3.5)。
(3.5)Lpre++,Lnext++;重复(3.4)的过程,完成下一层聚类直到将原始流量聚为一类。
(3.6)将各层聚类的结果输出。本实施例中经过了九层聚类才最终将2507条网络流量聚类为一大类。各层聚类的阈值设置和分类概况如下:
第1层:余弦∈[0.99,1.0],欧式距离∈[0,1.0];原始的2507条流聚合为594类。
第2层:余弦∈[0.97,1.0]、欧氏距离∈[0.0,1.3];1层聚类得到的594类聚合为305类。
第3层:余弦∈[0.91,1.0]、欧氏距离∈[0.0,2.0];2层聚类得到的305类聚合为116类。
第4层:余弦∈[0.93,1.0]、欧氏距离∈[0.0,2.5];3层聚类得到的116类聚合为63类。
第5层:余弦∈[0.90,1.0]、欧氏距离∈[0.0,3.5];4层聚类得到的63类聚合为29类。
第6层:余弦∈[0.90,1.0]、欧氏距离∈[0.0,5.0];5层聚类得到的29类聚合为18类。
第7层:余弦∈[0.85,1.0]、欧氏距离∈[0.0,10];6层聚类得到的18类聚合为10类。
第8层:余弦∈[0.75,1.0]、欧氏距离∈[0.0,220];7层聚类得到的10类聚合为4类。
第9层:余弦∈[0.50,1.0]、欧氏距离∈[0.0,588];8层聚类得到的4类聚合为1类。
将各层聚类的阶段性结果输出到表格中,部分结果如下表4,展示的是每一条原始网络应用流量的分类轨迹。例如源数据id为5的流量在第一层聚类结果中被分到594类的第5类中,在第二层聚类结果中被分到305类的第2类中,后续的三、四、五层聚类过程中该流量都被分到每一层聚类结果的第2类中,从第六层聚类开始该流量都被分到每一层聚类结果的第1类中。
表4
(4)分析步骤(3)输出的各应用流量的聚类结果,确定将典型的流量类型区分开来的聚类层次,将这一聚类层次作为流量类型层;具体包括:
(4.1)对步骤(3.6)输出结果中的流量编号进行分析,得到各流量的分类轨迹(即某一条流量在每一层聚类中分到了当前聚类结果中的哪一类)。分析暗网应用Tor应用的数据如下,可见此聚类算法快速地将暗网数据聚合为一类。
1)第1层聚类:暗网数据的一层数据id为1780至1789,一层聚类分为5类:一层第394、395、396、397、398类(原始数据的10类—>第一层聚类的5类)。
2)第2层聚类:第一层聚类结果中的第394--398类分为第二层聚类结果中的第209、210、211类(第一层聚类的5类—>第二层聚类的3类)。
3)第3层聚类:第二层聚类结果中的第209、210、211类分为第三层聚类结果中的第93类(第二层聚类的3类—>第三层聚类的1类)。
后续的4至9层聚类,Tor数据全部聚在1类中。
(4.2)自底向上逐层判断各层是否为流量类型层,如果已有标签的典型流量在该层中被分为一类,该层为流量类型层。本发明实施例中第五层次聚类能区分出常用标准类型且让已知类中同一类流量分为一类,将该层次作为流量类型层。
(5)为流量类型层中每一类的流量打上流量类型标签;具体包括:
(5.1)为(3.6)各层聚类的阶段性结果加上各层类id(在每一层聚类结果中的类编号)。
(5.2)如附图3,在步骤(3.6)各层聚类的结果中定位至流量类型层,汇总该层聚类结果中每一类的所属流量,将出现次数最多的流量类型,作为这一类中所有流量的流量类型标签。并标记主干网未知流量中未能标记流量类型的流量为新型未知流量类型。
本发明实施例中,如表5分类算法将已有标签的典型流量准确地打上了相应的流量类型标签,而如表6所示,对于主干网中未知流量可以给出特定的标记符号,作为新型未知流量类型存在。
表5
表6
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (1)
1.一种基于半监督学习的网络应用流量自动分类方法,其特征在于,包括如下步骤:
(1)采集网络流量数据,包括主干网中未知流量类型的流量以及应用中已知流量类型的流量数据;包括如下子步骤:
(1.1)在高速主干网中使用流量采集器采集流量数据,作为待分类流量,保存为pcap格式文件;
(1.2)启用不同网络应用的过程中在设备上对网络应用使用时产生的数据进行采集,保存为pcap格式文件,并为这些典型应用流量打上流量类型标签;
(1.3)混合步骤(1.1)采集的主干网未知流量与步骤(1.2)采集的已有标签的典型流量;
(2)基于采集的网络流量数据,提取76种数据流特征建立特征库;包括如下子步骤:
(2.1)针对步骤(1)中采集的分组数据,按照源IP,源端口,宿IP,宿端口,传输协议类型进行组流,对每条流提取76种有效特征;
(2.2)为每条流添加编号id;
(3)结合余弦相似度与欧氏距离,针对步骤(2)中建立的特征库使用层次聚类算法实现对网络流量的聚类并输出分类结果;包括如下子步骤:
(3.1)定义存放数据的结构体:定义存放76个特征的一维数组结构体Datalist,以及用于存放多个一维数组Datalist的结构体DataArray;创建DataArray对象存放各层数据:array_0存放原始流数组,array_1~array_N存放第一层~第N层聚类结果;
(3.2)开始第一层聚类:依次读取每一条流的76个特征值作为一个DataList元素加入array_0;对非比例特征使用余弦相似度算法计算相似度,对比例特征使用欧式距离算法计算相似度;非比例特征是与数据包数和数据长度、流量持续时间相关的特征;比例特征是与流量标志位、包长比例相关的流隐含的深层信息;依次计算array_0中第i条流与第j条流之间的相似度,其中,0≤i<Len(array_0),i+1≤j<Len(array_0);设置初始阈值,将距离在初始阈值设置范围内的流量合并为一类,得到第一层聚类的分类结果存入结构体变量array_1;第一层聚类结果中,如果各类中的流量的特征数值高度相似,则能够确定初始阈值合适,如果array_1各类中的流量的特征非高度相似,则输出当前分类结果中全部的流量之间的相似度数值,依据流编号追踪已有标签的典型流量中的同类流量,得到已有标签的同类流量之间的相似度值,将此相似度值用于修正初始阈值,直到完成第一层聚类;如果第一层聚类将原始流量全部聚合为一类就结束聚类过程,进入步骤(3.6)输出聚类结果;否则进入步骤(3.3);
(3.3)定义int型变量用于记录聚类层次,并初始化为:Lpre=1,Lnext=2,进入步骤(3.4);
(3.4)开始第Lnext层聚类:计算第Lpre层聚类结果array_Lpre中每一类中各条流特征值的平均值作为这一类的代表特征值,形成新的特征向量集作为第Lnext层聚类的分类对象array_Lpre’;对非比例特征使用余弦相似度算法计算相似度,对比例特征使用欧式距离算法计算相似度;依次计算array_Lpre’中第i条流与第j条流之间的相似度,其中0≤i<Len(array_Lpre’),i+1≤j<Len(array_Lpre’);根据第Lpre层聚类的阈值对第Lnext层聚类的阈值做出相应调整,将距离在第Lnext层阈值设置范围内的流量合并为一类,得到第Lnext层聚类的分类结果存入array_Lnext;如果array_Lnext的类别总数缩减为上一层聚类结果中类别总数的1/2,则说明第Lnext层阈值合适,否则需对当前分类结果中全部流量之间的相似度数值进行排序,定位至相似度取值范围的中间数值,尝试用此中间数值将分类总数缩小为一半以修正第Lnext层阈值,直到完成第Lnext层聚类;如果第Lnext层的聚类结果中的类别总数为1就结束聚类过程,进入步骤(3.6)输出聚类结果;否则进入步骤(3.5);
(3.5)Lpre++,Lnext++;重复(3.4)的过程,完成下一层聚类直到将原始流量聚为一类;
(3.6)将各层聚类的结果输出;
(4)分析步骤(3)输出的各应用流量的聚类结果,确定将典型的流量类型区分开来的聚类层次,将这一聚类层次作为流量类型层;包括如下子步骤:
(4.1)对步骤(3.6)输出结果中的流量编号进行分析,得到各流量的分类轨迹;
(4.2)自底向上逐层判断各层是否为流量类型层,如果已有标签的典型流量在该层中被分为一类,则该层为流量类型层;
(5)为流量类型层中每一类的流量打上流量类型标签;包括如下子步骤:
(5.1)为步骤(3.6)各层聚类的阶段性结果加上各层的类id;
(5.2)在步骤(3.6)各层聚类的结果中定位至流量类型层,汇总该层聚类结果中每一类的所属流量,将出现次数最多的流量类型作为这一类中所有流量的流量类型标签,并标记主干网未知流量中未能标记流量类型的流量为新型未知流量类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011010285.9A CN112187664B (zh) | 2020-09-23 | 2020-09-23 | 一种基于半监督学习的应用流自动分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011010285.9A CN112187664B (zh) | 2020-09-23 | 2020-09-23 | 一种基于半监督学习的应用流自动分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112187664A CN112187664A (zh) | 2021-01-05 |
CN112187664B true CN112187664B (zh) | 2023-04-18 |
Family
ID=73956322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011010285.9A Active CN112187664B (zh) | 2020-09-23 | 2020-09-23 | 一种基于半监督学习的应用流自动分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187664B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112422590B (zh) * | 2021-01-25 | 2021-04-27 | 中国人民解放军国防科技大学 | 基于主动学习的网络流量分类方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067612A (zh) * | 2018-07-13 | 2018-12-21 | 哈尔滨工程大学 | 一种基于增量聚类算法的在线流量识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639481B (zh) * | 2018-12-11 | 2020-10-27 | 深圳先进技术研究院 | 一种基于深度学习的网络流量分类方法、系统及电子设备 |
-
2020
- 2020-09-23 CN CN202011010285.9A patent/CN112187664B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067612A (zh) * | 2018-07-13 | 2018-12-21 | 哈尔滨工程大学 | 一种基于增量聚类算法的在线流量识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112187664A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020119662A1 (zh) | 一种网络流量分类方法 | |
Erman et al. | Semi-supervised network traffic classification | |
CN109218223B (zh) | 一种基于主动学习的鲁棒性网络流量分类方法及系统 | |
CN111314331A (zh) | 一种基于条件变分自编码器的未知网络攻击检测方法 | |
CN109151880B (zh) | 基于多层分类器的移动应用流量识别方法 | |
CN111565156B (zh) | 一种对网络流量识别分类的方法 | |
CN102394827A (zh) | 互联网流量分级分类方法 | |
CN110225001B (zh) | 一种基于主题模型的动态自更新网络流量分类方法 | |
CN115600128A (zh) | 一种半监督加密流量分类方法、装置及存储介质 | |
CN114915575B (zh) | 一种基于人工智能的网络流量检测装置 | |
Zhao et al. | Towards unknown traffic identification via embeddings and deep autoencoders | |
Salman et al. | Data representation for CNN based internet traffic classification: a comparative study | |
CN112187664B (zh) | 一种基于半监督学习的应用流自动分类方法 | |
CN113887642B (zh) | 一种基于开放世界的网络流量分类方法及系统 | |
Min et al. | Online Internet traffic identification algorithm based on multistage classifier | |
CN117633627A (zh) | 一种基于证据不确定性评估的深度学习未知网络流量分类方法及系统 | |
Huo et al. | A novel approach for semi-supervised network traffic classification | |
CN114666273B (zh) | 一种面向应用层未知网络协议的流量分类方法 | |
CN115242724B (zh) | 一种基于两阶段聚类的高速网络流量服务分类方法 | |
CN114978593B (zh) | 基于图匹配的不同网络环境的加密流量分类方法及系统 | |
CN114358177B (zh) | 一种基于多维度特征紧凑决策边界的未知网络流量分类方法及系统 | |
CN113794653A (zh) | 一种基于抽样数据流的高速网络流量分类方法 | |
Hsieh et al. | On the classification of mobile broadband applications | |
CN110417786B (zh) | 一种基于深度特征的p2p流量细粒度识别方法 | |
CN112367325A (zh) | 基于闭合频繁项挖掘的未知协议报文聚类方法和系统 |
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 |