CN101252541B - 一种网络流量分类模型的建立方法及相应系统 - Google Patents

一种网络流量分类模型的建立方法及相应系统 Download PDF

Info

Publication number
CN101252541B
CN101252541B CN2008101036221A CN200810103622A CN101252541B CN 101252541 B CN101252541 B CN 101252541B CN 2008101036221 A CN2008101036221 A CN 2008101036221A CN 200810103622 A CN200810103622 A CN 200810103622A CN 101252541 B CN101252541 B CN 101252541B
Authority
CN
China
Prior art keywords
bunch
center
clusters
net flow
network traffics
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.)
Expired - Fee Related
Application number
CN2008101036221A
Other languages
English (en)
Other versions
CN101252541A (zh
Inventor
苏欣
杨建华
张大方
谢高岗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2008101036221A priority Critical patent/CN101252541B/zh
Publication of CN101252541A publication Critical patent/CN101252541A/zh
Application granted granted Critical
Publication of CN101252541B publication Critical patent/CN101252541B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种网络流量分类模型的建立方法,包括:从所捕获的网络流量的的流数据包中选择和提取识别指标;根据识别指标,在所设定的若干不同的簇数目下,选择初始化簇中心;在所设定的若干不同的簇数目下,分别根据初始化簇中心,对识别指标进行分簇操作,并重新计算新的簇中心点;在所设定的若干不同的簇数目下,分别计算各个分簇操作结果的标准化互信息值,根据标准化互信息值从所设定的若干不同的簇数目中选择一个作为最佳簇数目;根据所得到的最佳簇数目,选择最佳簇数目下的分簇操作结果和新的簇中心点作为网络流量分类模型。本发明通过NMI值的计算来验证簇数目的选择是否合适,并通过对最佳簇数目的选择得到较好的聚类特征,较高的识别精度。

Description

一种网络流量分类模型的建立方法及相应系统
技术领域
本发明涉及网络流量分类,特别涉及在网络流量分类中分类模型的建立方法及相应系统。
背景技术
近几年来,随着因特网技术的飞速发展,不断涌现出新型的协议及应用软件,如P2P(Peer-To-Peer)、VOIP(Voice Over Internet Protocol)等。新业务的不断增加使得出口网络带宽利用率居高不下,甚至引起网络拥塞,对于企业或者校园网络来说尤为明显,因此,在实际应用中需要对网络流量进行控制。此外,通过不安全的网络环境获得的应用程序,也可能会造成病毒和恶意代码的入侵,为网络安全带来隐患。在上述的网络流量控制和网络安全中,都涉及到如何快速准确地识别应用,即如何对网络流量进行分类,将一段网络流量划分到特定的应用中。
早期的网络流量分类方法是基于端口的分类方法,即根据网络流量所通过的端口区别不同的网络应用。这种方法具有简单、高效的优点,但是随着因特网应用的不断发展,尤其是P2P等业务的不断发展,很多应用开始使用动态端口,甚至使用常用Web服务的80端口来伪装其他应用。因此,基于端口的分类方法误判率逐渐提高,对于采用类似P2P应用的动态端口特性的应用变得难以识别。为了解决基于端口分类方法的缺点,本领域的技术人员又提出了基于特征字段分析的方法。但是这种方法也存在自身的缺点:第一,仅仅能识别那些特征字符串可见的应用,但是特征字符串的获得非常困难,对一些非公开的协议尤其困难,如Skype;第二,识别处理过程变得复杂并需要一定的内存,需要保存大量数据包的Payload,影响流量识别的实时性。
上述的基于端口和特征字段分析的网络流量分类方法都是根据应用层的信息来实现网络流量的分类,在本领域中,还存在根据传输层统计信息对网络流量进行分类的方法。此类方法依赖于不同应用在连接网络过程中表现出来的不同行为特征。例如,在一些P2P应用中,BitTorren的连接具有持久性和数据传输的双向性,而FTP的数据传输连接不具有持久性,并且是单方向的发送数据,通过这两个特征就可以区分BitTorrent和FTP。在实际应用中,包括发送数据包的总个数、连接持续时间和平均包大小在内的传输层统计信息都可以作为区别特征。但是这些特征往往只能在流结束之后才能获得,因此这些基于行为特征的网络流量识别方法只适用于历史分析,而不能用于在线实时识别。
McGregor等人提出针对流量传输层的某些属性,比如数据包的大小、到达时间间隔、字节数、连接持续时间等,把这些指标混合作为一个指标使用EM(Expectation Maximization)算法来进行流量识别。但是作者没有验证这种分类方法的准确率如何,也没有说明哪个属性可以得到最好的结果。Zander等人提出的基于AutoClass的EM算法是对前一种算法的拓展,该算法利用客户端发向服务器端数据流的数据包长度作为分类的属性,具有识别率较高的优点,但是EM算法在学习过程中需要花费很多的时间。
Jeffrey Erman等人提出了一种在速度上优于AutoClass算法的基于数据挖掘算法K-means的流量分类方法(请见参考文献1:Traffic Classification Using Clustering Algorithms;Jeffrey Erman,Martin Arlitt,Anirban Mahanti;University of Calgary,2500 University Drive NW,Calgary,AB,Canada)。通过实验得出K-means算法在对应用层协议的识别率上高于AutoClass算法。这种方法通过对传输层协议TCP的连接的某些指标(如数据包个数、数据包大小的均值、除去数据包包头信息的负载大小的均值、传输字节的个数和数据包的平均到达时间等)进行特征聚类,K-means算法把具有相同特征连接的指标进行分簇,然后再从分好的簇内提取出特征来进行在线的流量分类。这种方法存在三点不足:第一,采用的指标基本上是流统计指标,需要流结束后才能得到,所以不适用于在线实时识别;第二,没有说明哪种指标可以产生较好的结果;第三,使用的K-means算法在初始化簇中心的选择和簇数目的确定上都存在缺陷,对分簇的结果以及提取的特征有很大影响,实验结果识别率较低。
由于Jeffrey Erman的工作存在着一些不足,Laurent Bernaille等人提出一种观察TCP连接的前5个数据包长度来识别流量(请见参考文献2:Traffic Classification On The Fly;Laurent Bernaille,Renata Teixeira,Ismael Akodjenou Augustin Soule,Kave Salamatian;LIP6,Universit′e Pierre et Marie Curie,Thomson Paris Lab;Paris,FRANCE)。文章通过实验分析得出不同应用的TCP连接的前5个数据包的长度和方向具有一定特征,并且可以进行有效流量识别。虽然文章在流统计的指标选取上有所改进,但是对于K-means算法所存在簇中心的初始化和簇数目确定的缺陷并无说明如何改进。
发明内容
本发明的目的是克服现有的网络流量分类方法在簇中心的初始化和簇数目的确定上所存在的缺陷,从而提供一种网络流量分类方法以及应用于网络流量分类方法的网络流量分类模型的建立方法。
为了实现上述目的,本发明提供了一种网络流量分类模型的建立方法,包括:
步骤1)、从所捕获的网络流量的流数据包中选择和提取识别指标;所述识别指标为所捕获的网络流量中的TCP连接建立的前4个数据包的长度和方向,所述TCP连接已被去除所有包含控制命令的数据包;
步骤2)、根据步骤1)所得到的识别指标,在所设定的多个簇数目下,选择所捕获网络流量的初始化簇中心;
步骤3)、在所设定的多个簇数目下,分别根据步骤2)所得到的初始化簇中心,对所述的识别指标进行分簇操作,并根据分簇后的结果重新计算所捕获网络流量中的新的簇中心点;
步骤4)、在所设定的多个簇数目下,分别计算步骤3)所得到的各个分簇操作结果的标准化互信息值,根据所述的标准化互信息值从所设定的多个簇数目中选择一个作为最佳簇数目;
步骤5)、根据步骤4)所得到的最佳簇数目,从步骤3)所得到的结果中选择该最佳簇数目下的分簇操作结果和新的簇中心点作为网络流量分类模型。
上述技术方案中,所捕获网络流量中的所有识别指标形成数据集,所述数据集中的点为一个TCP连接中的识别指标。
上述技术方案中,所述的识别指标的选择和提取包括:
步骤1-1)、在所述网络流量的流数据包中,去除不属于TCP连接的数据包;
步骤1-2)、在剩余的数据包中,去除那些在应用开始连接之前所生成的TCP连接;
步骤1-3)、在TCP连接中去除所有包含控制命令的数据包;
步骤1-4)、从TCP连接建立的前4个数据包中提取数据包的长度和方向作为识别指标。
上述技术方案中,所述的步骤2)包括:
步骤2-1)、从所述数据集中随机选择一个点作为簇中心;
步骤2-2)、计算所述数据集中与当前簇中心离散性最强的点,将该点作为下一个簇中心;所述当前簇中心包括所有已经被选中作为簇中心的点;
步骤2-3)、重复上述的步骤2-2),直至所得到的簇中心的数目与所设定的簇数目相同。
上述技术方案中,所述数据集为所捕获网络流量中的所有TCP连接的识别指标的集合。
上述技术方案中,在所述的步骤2-2)中,计算所述数据集中与当前簇中心离散性最强的点是通过在数据集中选择概率p最大的点得到,所述概率p的计算公式如下:
P = D ( x ′ ) 2 Σ x ∈ S D ( x ) 2
其中,D(x)表示一个点x到当前簇中心最短的距离;x表示数据集中任意的一个点;x’表示数据集中任意的另外一个点,该点x’将通过计算概率P来决定是否成为下一个簇中心;S是一段网络流量中的所有TCP连接的识别指标的集合。
上述技术方案中,在所述的步骤2-2)中,所述的当前簇中心为所有已选择的簇中心。
上述技术方案中,在所述的步骤3)中,所述分簇操作包括:
步骤3-1)、根据所述的初始化簇中心的值,将数据集中的数据划分给与其距离最近的簇中心所在的簇;
步骤3-2)、在各个簇中更新簇中心;
步骤3-3)、根据更新后的簇中心重新对数据集中的数据进行所在簇的划分,然后在各个新划分的簇中更新簇中心;重复这一过程,直到各个簇的中心点不再发生变化。
上述技术方案中,所述的标准化互信息值的计算包括:
步骤4-1)、计算一个簇在一个应用中的概率;
步骤4-2)、计算所述数据集中点在一个应用中的概率,以及所述数据集中的点在一个簇中的概率;
步骤4-3)、根据步骤4-1)和步骤4-2)的计算结果,计算标准化互信息的值,从而得到数据集中的点同时属于一个簇及一个应用的概率。
上述技术方案中,所述的根据所述的标准化互信息值从所设定的多个簇数目中选择一个作为最佳簇数目包括:选择标准化互信息值最大的簇数目作为最佳簇数目。
本发明还提供了一种建立网络流量分类模型的系统,包括:
识别指标提取模块,用于从所捕获的网络流量的流数据包中选择和提取识别指标;所述识别指标为所捕获的网络流量中的TCP连接建立的前4个数据包的长度和方向,所述TCP连接已被去除所有包含控制命令的数据包;
初始化簇中心选择模块,用于根据识别指标,在所设定的多个簇数目下,选择所捕获网络流量的初始化簇中心;
分簇模块,用于在所设定的多个簇数目下,分别根据初始化簇中心,对所述的识别指标进行分簇操作,并根据分簇后的结果重新计算所捕获网络流量中的新的簇中心点;
标准化互信息值计算模块,用于在所设定的多个簇数目下,分别计算各个分簇操作结果的标准化互信息值,根据所述的标准化互信息值从所设定的多个簇数目中选择一个作为最佳簇数目;
结果输出模块,用于根据所得到的最佳簇数目,从所述分簇模块所得到的结果中选择该最佳簇数目下的分簇操作结果和新的簇中心点作为网络流量分类模型。
本发明又提供了一种网络流量分类方法,包括:
步骤1)、采用所述的网络流量分类模型的建立方法建立网络流量分类模型;
步骤2)、从当前的网络上截取网络流量,从该网络流量中提取各个TCP连接建立的前4个数据包的包长和方向;所述TCP连接已被去除所有包含控制命令的数据包;
步骤3)、将流中所提取的数据包的包长与网络流量分类模型中的簇中心进行欧式距离的计算;
步骤4)、根据计算结果判定数据包所在流所属的应用。
上述技术方案中,所述的根据计算结果判定数据包所在流所属的应用包括:
将进行距离计算的流暂时归属于与其距离最近的簇;然后判断流与暂时归属的簇之间的距离是否在这个簇的半径之内,如果在,则这个流是属于这个簇的,即认为这个流是属于这个簇所包含的协议的流;如果不在,则认为这个流属于未知流量。
本发明具有以下优点:
1、本发明在选择初始化簇中心时,利用特定的概率对簇中心进行选择,从而得到分散比较均匀的簇中心,并且算法在每次聚合后得到的结果比较稳定,不会因为簇中心随机选择而使得结果变化较大。
2、本发明通过NMI值的计算来验证簇数目的选择是否合适,并通过对最佳簇数目的选择得到较好的聚类特征,较高的识别精度。
3、本发明选择TCP连接的前4个数据包的长度和方向作为识别指标,无需等待流结束才能得到识别指标;而且连接中的前几个数据包正好处于连接的协商阶段,在这个阶段消息序列都是预定义好的,不同应用之间是不同的,理论上比较适合用来区分不同的应用。
4、本发明挖掘协议特征以实现对流的识别,不像端口特征那样容易变化,也不像基于特征字符串分析的方法那样需要保存大量数据包的Payload,因而是一种比较稳定,快速的应用层流量识别方法。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1为BT、POCO、EDONKEY三种应用根据统计信息得到的前4个数据包的长度和方向;
图2为一个实施例中不同簇数目下的NMI值;
图3为本发明的网络流量分类模型的建立方法的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的说明。
在对网络流量进行分类的过程中,首先截取一段网络流量,然后对这段网络流量进行分析,进而将网络流量中的流划分给具体的应用。其中的流是指一个包括通信双发的源IP、目的IP、源端口、目的端口和协议的五元组。在这一过程中,流所属的应用的可能种类是已知的,关键在于如何对这些流进行分类,并划分到相应的应用中。在对流进行分类的过程中,需要采用网络流量分类模型,本发明所要解决的就是如何建立网络流量分类模型。
网络流量分类模型的建立是在对现有的网络流量进行分析的基础上得到的,下面参考图3,以一个具体的实例进行说明。
步骤10、捕获并保存应用产生的网络流量。对应用产生的网络流量的捕获和保存属于现有技术,在本实施例中可以采用开放的网络协议分析器Ethereal对网络流量进行捕获。假设所捕获的一段网络流量是在2007年8月17日某时段,中国科学院计算技术研究所的出口链路所收集到的数据包信息。该段网络流量的大小约为2.51GB,总共包含有27967034个数据包,TCP连接个数为82417个。在该段网络流量中,包含的应用的种类是已知的,假设包含BT、POCO、EDONKEY三种已知的应用,并且每个流所属的具体应用是已知的。
步骤20、在所捕获的网络流量的流数据包中选择和提取识别指标。在本实施例中,要选择和提取的识别指标为TCP连接中的前4个数据包的长度和方向。将数据包的长度和方向作为识别指标是因为在不同应用中,数据包的长度和方向通常有各自的特点。例如,在图1中,描述了所述的BT、POCO、EDONKEY三种应用根据统计信息得到的前4个数据包的长度和方向。在4个图中,横轴代表数据包的长度,纵轴代表协议,横轴上大小为正数的表示从服务器到客户端,大小为负数的表示从客户端到服务器。从图中可以看出一些数据包具有精确的长度和方向,例如,BT的前4个数据包中均存在长度为68字节的情况,POCO的第一个数据包的长度在140-200字节范围内,Edonkey的第一个数据包的大小在10-129字节范围内,方向由服务器到客户端的数据包。综合上述情况可以看出,通过使用数据包的长度和方向可以很准确地区分不同的应用。
步骤30、根据步骤20中所选择和提取的识别指标,在所设定的多个簇数目下,分别选择初始化簇中心。由于本发明在后续的步骤中通过K-means数据挖掘算法建立网络流量分类模型,因此在本步骤中需要选择簇中心,第一次选择得到的簇中心就是所述的初始化簇中心。在选择初始化簇中心的过程中可采用一种名称为Weighting D2的算法,该算法是一种基于特定的概率来选择初始化簇中心的方法。所述的选择初始化簇中心具体包括簇数目的选择,以及簇中心坐标的选择。为了在后续的操作中可以选择一个最佳的簇数目,因此在本步骤中要在多个簇数目下依次进行初始化簇中心的选择。假设用K表示簇的数目,则在本实施例中将其大小设定在5到45之间,然后分别选取上述值,实现簇中心初始化的操作。
步骤40、根据步骤30所得到的初始化簇中心,在所设定的多个簇数目下,对网络流量中的所有TCP连接的识别指标做分簇操作,并根据分簇后的结果计算新的簇中心点。在本步骤中,在进行分簇操作时采用了K-means算法进行特征聚合,挖掘协议的特征。
步骤50、采用NMI值对簇数目进行验证。在前文中已经提到,簇数目K可能有多个可能的取值,但在网络流量分类模型中,簇数目K只可能采用其中的一个,因此,要在K的多个取值中选择最合适的一个,使得所划分簇的质量最好,对网络流量进行分类的效果最佳。在本步骤中采用了求NMI(Normalized Mutual Information,标准化互信息)值的方式选择最合适的K值。最终所得到的最佳簇数目,以及在该簇数目下所得到的分簇结果就是本发明所要求得的网络流量分类模型。
以上是本发明的网络流量分类模型的建立方法的基本操作步骤,下面对上述操作步骤中的某些操作步骤的具体实现过程进行进一步的说明。
在前述的步骤20中,在选择和提取识别指标之前,需要有一定的前序操作,以保证所提取识别指标的准确性。整个选择和提取过程可以包括以下步骤:
步骤21、在网络流量的所有数据包中,去除那些不属于TCP连接的数据包;
步骤22、在剩余的数据包中,去除那些在应用开始连接之前所生成的TCP连接;
步骤23、在TCP连接中去除所有包含控制命令的数据包,如包含有SYN、Keep-Alive、Ack(不包含数据)等控制命令的数据包。此类数据包不包含与应用相关的数据,因此在本步骤中也要去除。
步骤24、从TCP连接建立的前4个数据包中提取数据包的长度和方向作为识别指标。
上述过程是本发明在实现识别指标的选择和提取时的一个较佳实施例,本领域的普通技术人员应当了解,对上述步骤的简单替换与修改都应当在本发明的保护范围内。
在前文中,对利用Weighting D2算法对初始化簇中心的过程进行了简要的说明,为了方便理解,在此对步骤30中簇中心初始化的操作进行具体说明:
步骤31、在一个数据集S中随机选择一个点作为簇中心c1;在本步骤中,所涉及的数据集S中的一个点表示了一个TCP连接中的识别指标,从前面的描述中已经知道,一个TCP连接的识别指标包括TCP连接中的前4个数据包的长度和方向,用数值表示长度,正负表示方向,因此,所述的数据集S中的一个点实际上就是如{100,68,-60,68}之类的四维向量。在对数据集S中的点的含义进行说明后,很容易理解,所述的数据集S是一段网络流量中的所有TCP连接的识别指标的集合。
步骤32、根据当前的簇中心选择下一个簇中心ci;在选择下一个簇中心的过程中,采用概率P计算下一个簇中心ci
假设 P = D ( x ′ ) 2 Σ x ∈ S D ( x ) 2
其中,D(x)表示一个点x到被选中的簇中心最短的距离;x表示数据集中任意的一个点;x’表示数据集中任意的另外一个点,该点将通过计算概率P来决定是否成为下一个簇中心。
从上述的概率计算公式可知,对于数据集中的任意点,公式中的分母值是一定的,分子的值则会根据数据集中不同的点而有所不同。因此,在选择下一个簇中心时,选择数据集中计算得到的概率P最大的点作为下一个簇中心。在计算D时,所述的被选中的簇中心为当前的簇中心,当前簇中心根据簇中心计算的次数而有所不同。例如,随机选择一个点作为第一个簇中心后,在选择第二个簇中心时,当前簇中心就是第一个簇中心;但在选择第三个簇中心时,当前簇中心为第一和第二个簇中心,依次类推。
步骤33、重复执行上一步,直到得到第K个簇中心。
上述的步骤31-33是对初始化簇中心的实现过程的示例性说明,对上述步骤的简单替换或删改都应当在本发明的保护范围内。
在前述的步骤40中介绍了可采用K-means算法进行特征聚合,从而实现分簇操作,其具体实现步骤包括:
步骤41、根据初始化簇中心的值,将数据集S中的数据划分给与其距离最近的簇中心所在的簇;
步骤42、在各个分簇中更新簇中心;在本步骤中,更新簇中心的的操作包括重新计算每个簇中所有数据的平均值,然后用代表平均值的点作为新的簇中心点。
步骤43、根据新得到的簇中心点,重新对数据集中的数据进行所在簇的划分,然后重新计算每个簇中所有数据的平均值,得到新的簇中心点;重复这一过程,直到各个簇的中心点不再发生变化。在前一个步骤中已经提到,在采用K-means算法进行分簇操作时,簇的数目K具有多个值,在本实施例中,K的大小在5到45之间,因此,在本步骤中重新计算簇的中心点时,需要对K的各种取值情况进行新的簇中心点的计算。
采用NMI值对簇数目进行验证从而得到网络流量分类模型的具体实现步骤如下:
步骤51、计算一个簇在某一个应用的概率;假设用X表示应用分布的一个变量,Y是表示簇分布的一个变量,用MI表示一个簇在一个应用中的概率,则该概率的计算公式为:
MI ( X , Y ) = Σ i , j p ij log ( p ij p i p j )
其中,其中,pij表示一条在j簇里面的连接属于应用i的概率;pi表示应用i的概率,pj表示簇j的概率。其中的pij、pi、pj都是根据实际分簇后的结果实际计算而得到的。
步骤52、计算数据集中的点属于某一个应用的概率H(X),以及数据集中的点属于某一个簇的概率H(Y)。
H ( X ) = - Σ i p i log ( p i )
H ( Y ) = - Σ j p i log ( p j )
步骤53、计算NMI的值,通过所得到的NMI值可以得到一个点属于某一个簇以及某一个应用的概率。NMI值的计算公式如下:
MMI ( X , Y ) = MI ( X , Y ) H ( X ) H ( Y )
上述步骤中计算得到的MI是一种衡量若干种信息之间共享量的概念,在本方法中通过对应用和簇的分布概率计算得到,而熵(即H(X)和H(Y))解决了对信息的量化度量问题。变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。这就说明,如果一个簇能包含的应用是单一的,那么就是变量的不确定性比较小,熵就小,那么NMI的值就大;反之,NMI的值就小。这样就可以通过NMI的值来反映簇质量的高低。因此,将不同簇数目时计算得到的NMI值之间进行比较,可以知道当K为何值时,分簇的效果最佳。在图2中,对本实施例中K的各种取值情况下,所得到的NMI值的情况进行了说明,从图中可以看出,当簇数目K在25时,所得到的NMI值最大。因此,当K为25时,根据步骤40所得到的最终分簇结果就是本发明的网络流量分类模型。
利用上述说明所得到的网络流量分类模型可实现对网络流量中数据包所属应用的分类。例如,在一次网络流量分类的过程中,将网络中的双方向(从客户端到服务器端和从服务器端到客户端)的流量作为输入,从中提取五元组(协议、源IP地址、目的IP地址、源端口和目的端口)和数据包的大小;去除不需要的连接并存储在双方向上每个数据包的大小,从中提取TCP连接的前4个包的包长。然后将所提取的数据包的包长与网络流量分类模型中的簇中心进行欧式距离的计算,根据计算结果判定数据包所在的流所属的应用。其中的欧式距离的计算公式如下:
E = Σ i = 1 K Σ j = 1 n | dist ( x j , c j ) | 2
其中,xj表示j簇内的一个点,cj表示j簇的簇中心。
在判断流所属的应用时,将进行距离计算的流暂时归属于与其距离最近的簇;然后判断流与暂时归属的簇之间的距离是否在这个簇的半径之内,如果在,则这个流是属于这个簇的,即认为这个流是属于这个簇所包含的协议的流;如果不在,则认为这个流属于未知流量。对本实施例中所截取的网络流量通过本发明的网络流量分类模型进行网络流量分类后,可以得到表1中的下列结果:
 协议   比例
 BT   17.7%
 POCO   8.1%
 EDONKEY   22.8%
表1
从上表中的内容可以知道所截取的网络流量中的数据包属于协议BT、POCO和EDONKEY的比例。
在表2中,对采用本发明的网络流量分类模型对本实施例中所捕获的网络流量划分到BT、POCO、EDONKEY三种已知应用的正确率进行了统计,从中可以看出,采用本发明的网络流量分类模型具有很高的识别率以及较低的误识别率和漏识别率。
Figure GSB00000347870100121
表2
本发明还提供了一种与所述方法相适应的建立网络流量分类模型的系统,包括:
识别指标提取模块,用于从所捕获的网络流量的的流数据包中选择和提取识别指标;
初始化簇中心选择模块,用于根据识别指标,在所设定的多个簇数目下,选择所捕获网络流量的初始化簇中心;
分簇模块,用于在所设定的多个簇数目下,分别根据初始化簇中心,对所述的识别指标进行分簇操作,并根据分簇后的结果重新计算所捕获网络流量中的新的簇中心点;
标准化互信息值计算模块,用于在所设定的多个簇数目下,分别计算各个分簇操作结果的标准化互信息值,根据所述的标准化互信息值从所设定的多个簇数目中选择一个作为最佳簇数目;
结果输出模块,用于根据所得到的最佳簇数目,从所得到的结果中选择该最佳簇数目下的分簇操作结果和新的簇中心点作为网络流量分类模型。
利用上述系统可实现对网络流量分类模型的建立。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (13)

1.一种网络流量分类模型的建立方法,包括:
步骤1)、从所捕获的网络流量的流数据包中选择和提取识别指标;所述识别指标为所捕获的网络流量中的TCP连接建立的前4个数据包的长度和方向,所述TCP连接已被去除所有包含控制命令的数据包;
步骤2)、根据步骤1)所得到的识别指标,在所设定的多个簇数目下,选择所捕获网络流量的初始化簇中心;
步骤3)、在所设定的多个簇数目下,分别根据步骤2)所得到的初始化簇中心,对所述的识别指标进行分簇操作,并根据分簇后的结果重新计算所捕获网络流量中的新的簇中心点;
步骤4)、在所设定的多个簇数目下,分别计算步骤3)所得到的各个分簇操作结果的标准化互信息值,根据所述的标准化互信息值从所设定的多个簇数目中选择一个作为最佳簇数目;
步骤5)、根据步骤4)所得到的最佳簇数目,从步骤3)所得到的结果中选择该最佳簇数目下的分簇操作结果和新的簇中心点作为网络流量分类模型。
2.根据权利要求1所述的网络流量分类模型的建立方法,其特征在于,所捕获网络流量中的所有识别指标形成数据集,所述数据集中的点为一个TCP连接中的识别指标。
3.根据权利要求2所述的网络流量分类模型的建立方法,其特征在于,在所述的步骤1)中,所述的识别指标的选择和提取包括:
步骤1-1)、在所述网络流量的流数据包中,去除不属于TCP连接的数据包;
步骤1-2)、在剩余的数据包中,去除那些在应用开始连接之前所生成的TCP连接;
步骤1-3)、在TCP连接中去除所有包含控制命令的数据包;
步骤1-4)、从TCP连接建立的前4个数据包中提取数据包的长度和方向作为识别指标。
4.根据权利要求2所述的网络流量分类模型的建立方法,其特征在于,所述的步骤2)包括:
步骤2-1)、从所述数据集中随机选择一个点作为簇中心;
步骤2-2)、计算所述数据集中与当前簇中心离散性最强的点,将该点作为下一个簇中心;所述当前簇中心包括所有已经被选中作为簇中心的点;
步骤2-3)、重复上述的步骤2-2),直至所得到的簇中心的数目与所设定的簇数目相同。
5.根据权利要求4所述的网络流量分类模型的建立方法,其特征在于,所述数据集为所捕获网络流量中的所有TCP连接的识别指标的集合。
6.根据权利要求4所述的网络流量分类模型的建立方法,其特征在于,在所述的步骤2-2)中,计算所述数据集中与当前簇中心离散性最强的点是通过在数据集中选择概率P最大的点得到,所述概率P的计算公式如下:
P = D ( x ′ ) 2 Σ x ∈ S D ( x ) 2
其中,D(x)表示一个点x到当前簇中心最短的距离;x表示数据集中任意的一个点;x’表示数据集中任意的另外一个点,该点x’将通过计算概率P来决定是否成为下一个簇中心;S是一段网络流量中的所有TCP连接的识别指标的集合。
7.根据权利要求4所述的网络流量分类模型的建立方法,其特征在于,在所述的步骤2-2)中,所述的当前簇中心为所有已选择的簇中心。
8.根据权利要求1所述的网络流量分类模型的建立方法,其特征在于,在所述的步骤3)中,所述分簇操作包括:
步骤3-1)、根据所述的初始化簇中心的值,将数据集中的数据划分给与其距离最近的簇中心所在的簇;
步骤3-2)、在各个簇中更新簇中心;
步骤3-3)、根据更新后的簇中心重新对数据集中的数据进行所在簇的划分,然后在各个新划分的簇中更新簇中心;重复这一过程,直到各个簇的中心点不再发生变化。
9.根据权利要求1所述的网络流量分类模型的建立方法,其特征在于,在所述的步骤4)中,所述的标准化互信息值的计算包括:
步骤4-1)、计算一个簇在一个应用中的概率;
步骤4-2)、计算所述数据集中点在一个应用中的概率,以及所述数据集中的点在一个簇中的概率;
步骤4-3)、根据步骤4-1)和步骤4-2)的计算结果,计算标准化互信息的值,从而得到数据集中的点同时属于一个簇及一个应用的概率。
10.根据权利要求1所述的网络流量分类模型的建立方法,其特征在于,所述的根据所述的标准化互信息值从所设定的多个簇数目中选择一个作为最佳簇数目包括:选择标准化互信息值最大的簇数目作为最佳簇数目。
11.一种建立网络流量分类模型的系统,包括:
识别指标提取模块,用于从所捕获的网络流量的流数据包中选择和提取识别指标;所述识别指标为所捕获的网络流量中的TCP连接建立的前4个数据包的长度和方向,所述TCP连接已被去除所有包含控制命令的数据包;
初始化簇中心选择模块,用于根据识别指标,在所设定的多个簇数目下,选择所捕获网络流量的初始化簇中心;
分簇模块,用于在所设定的多个簇数目下,分别根据初始化簇中心,对所述的识别指标进行分簇操作,并根据分簇后的结果重新计算所捕获网络流量中的新的簇中心点;
标准化互信息值计算模块,用于在所设定的多个簇数目下,分别计算各个分簇操作结果的标准化互信息值,根据所述的标准化互信息值从所设定的多个簇数目中选择一个作为最佳簇数目;
结果输出模块,用于根据所得到的最佳簇数目,从所述分簇模块所得到的结果中选择该最佳簇数目下的分簇操作结果和新的簇中心点作为网络流量分类模型。
12.一种网络流量分类方法,包括:
步骤1)、采用权利要求1-10之一所述的网络流量分类模型的建立方法建立网络流量分类模型;
步骤2)、从当前的网络上截取网络流量,从该网络流量中提取各个TCP连接建立的前4个数据包的包长和方向;所述TCP连接已被去除所有包含控制命令的数据包;
步骤3)、将流中所提取的数据包的包长与网络流量分类模型中的簇中心进行欧式距离的计算;
步骤4)、根据计算结果判定数据包所在流所属的应用。
13.根据权利要求12所述的网络流量分类方法,其特征在于,所述的根据计算结果判定数据包所在流所属的应用包括:
将进行距离计算的流暂时归属于与其距离最近的簇;然后判断流与暂时归属的簇之间的距离是否在这个簇的半径之内,如果在,则这个流是属于这个簇的,即认为这个流是属于这个簇所包含的协议的流;如果不在,则认为这个流属于未知流量。
CN2008101036221A 2008-04-09 2008-04-09 一种网络流量分类模型的建立方法及相应系统 Expired - Fee Related CN101252541B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101036221A CN101252541B (zh) 2008-04-09 2008-04-09 一种网络流量分类模型的建立方法及相应系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101036221A CN101252541B (zh) 2008-04-09 2008-04-09 一种网络流量分类模型的建立方法及相应系统

Publications (2)

Publication Number Publication Date
CN101252541A CN101252541A (zh) 2008-08-27
CN101252541B true CN101252541B (zh) 2011-05-04

Family

ID=39955734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101036221A Expired - Fee Related CN101252541B (zh) 2008-04-09 2008-04-09 一种网络流量分类模型的建立方法及相应系统

Country Status (1)

Country Link
CN (1) CN101252541B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108173704A (zh) * 2017-11-24 2018-06-15 中国科学院声学研究所 一种基于表征学习的网络流量分类的方法及装置

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088750B (zh) * 2009-12-08 2014-08-06 中国移动通信集团公司 一种多入多出技术中的传播径分簇方法和装置
CN102739522A (zh) * 2012-06-04 2012-10-17 华为技术有限公司 互联网数据流的分类方法及装置
US9954743B2 (en) 2013-08-12 2018-04-24 Hewlett Packard Enterprise Development Lp Application-aware network management
CN103618792B (zh) 2013-11-29 2017-04-19 华为技术有限公司 数据流的识别方法及设备
CN103747477B (zh) * 2014-01-15 2017-08-25 广州杰赛科技股份有限公司 网络流量分析与预测方法和装置
CN104135385B (zh) * 2014-07-30 2017-05-24 南京市公安局 Tor匿名通信流量应用分类的方法
CN104394021B (zh) * 2014-12-09 2017-08-25 中南大学 基于可视化聚类的网络流量异常分析方法
CN104518984B (zh) * 2014-12-22 2017-08-11 北京航空航天大学 一种基于多重分类器对数据包进行流量分类的sdn控制器
WO2017061895A1 (en) * 2015-10-09 2017-04-13 Huawei Technologies Co., Ltd. Method and system for automatic online identification of network traffic patterns
CN105577679B (zh) * 2016-01-14 2019-02-15 华东师范大学 一种基于特征选择与密度峰值聚类的异常流量检测方法
CN105871832B (zh) * 2016-03-29 2018-11-02 北京理工大学 一种基于协议属性的网络应用加密流量识别方法及其装置
CN108259640B (zh) * 2017-12-29 2021-02-12 东软集团股份有限公司 网络地址分类的方法、装置和存储介质以及电子设备
CN110210504A (zh) * 2018-02-28 2019-09-06 中移(苏州)软件技术有限公司 一种网络流量数据的识别方法及设备
CN109548111A (zh) * 2018-11-26 2019-03-29 三川智慧科技股份有限公司 一种LoRa组网系统以及网关自选举方法
CN109831454B (zh) * 2019-03-13 2022-02-25 北京深演智能科技股份有限公司 虚假流量的识别方法和装置
CN110290022B (zh) * 2019-06-24 2021-02-26 中国人民解放军陆军工程大学 一种基于自适应聚类的未知应用层协议识别方法
CN111478861B (zh) * 2020-04-02 2022-08-23 恒安嘉新(北京)科技股份公司 流量识别方法、装置、电子设备、及存储介质
CN111786903B (zh) * 2020-05-28 2022-02-25 西安电子科技大学 一种基于约束模糊聚类和粒计算的网络流量分类方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716867A (zh) * 2004-06-29 2006-01-04 杭州华为三康技术有限公司 数据流量统计方法及装置
CN1937574A (zh) * 2005-09-19 2007-03-28 北京大学 对网络流进行分类、状态跟踪和报文处理的装置和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716867A (zh) * 2004-06-29 2006-01-04 杭州华为三康技术有限公司 数据流量统计方法及装置
CN1937574A (zh) * 2005-09-19 2007-03-28 北京大学 对网络流进行分类、状态跟踪和报文处理的装置和方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CN 1716867 A,全文.
杨策 等.网络流量监测技术及性能分析.空军工程大学学报(自然科学版)第4卷 第1期.2003,第4卷(第1期),57-60.
杨策等.网络流量监测技术及性能分析.空军工程大学学报(自然科学版)第4卷 第1期.2003,第4卷(第1期),57-60. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108173704A (zh) * 2017-11-24 2018-06-15 中国科学院声学研究所 一种基于表征学习的网络流量分类的方法及装置

Also Published As

Publication number Publication date
CN101252541A (zh) 2008-08-27

Similar Documents

Publication Publication Date Title
CN101252541B (zh) 一种网络流量分类模型的建立方法及相应系统
CN110445653B (zh) 网络状态预测方法、装置、设备及介质
CN105871832B (zh) 一种基于协议属性的网络应用加密流量识别方法及其装置
CN102523241B (zh) 基于决策树高速并行处理的网络流量在线分类方法及装置
CN104270392B (zh) 一种基于三分类器协同训练学习的网络协议识别方法及系统
CN102315974A (zh) 基于层次化特征分析的tcp、udp流量在线识别方法和装置
CN108900432A (zh) 一种基于网络流行为的内容感知方法
CN104102700A (zh) 一种面向因特网不平衡应用流的分类方法
US20220210026A1 (en) Network Parameter Configuration Method and Apparatus, Computer Device, and Storage Medium
CN104468567B (zh) 一种网络多媒体业务流识别和映射的系统及方法
CN105516020B (zh) 一种基于本体知识推理的并行网络流量分类方法
CN102739457A (zh) 一种基于dpi和svm技术的网络流量识别系统及方法
CN109167680A (zh) 一种基于深度学习的流量分类方法
CN101184000A (zh) 基于报文采样和应用签名的互联网应用流量识别方法
CN108462707A (zh) 一种基于深度学习序列分析的移动应用识别方法
CN102164182B (zh) 一种网络协议识别设备和方法
CN105359472A (zh) 一种用于OpenFlow网络的数据处理方法和装置
CN108028807B (zh) 用于在线自动识别网络流量模型的方法和系统
Wang et al. Automatic application signature construction from unknown traffic
CN104333461A (zh) 互联网应用流量识别方法、系统及识别装置
CN103973589A (zh) 网络流量分类方法及装置
CN104468403B (zh) 一种基于nacc对数据包进行网络流分类的sdn控制器
CN103281158A (zh) 深度网络通信粒度检测方法及其检测设备
CN110266603A (zh) 基于http协议的身份认证业务网络流量分析系统及方法
Labonne et al. WIP: Short-Term Flow-Based Bandwidth Forecasting using Machine Learning

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110504

Termination date: 20200409

CF01 Termination of patent right due to non-payment of annual fee