P2P网络流量检测方法技术领域
本发明涉及一种网络流量检测方法,特别是涉及一种P2P(peer-to-peer)网络流量检
测方法。
背景技术
随着P2P网络技术的广泛应用,P2P网络流量在国内主干网上占的比例已经从过
去的0.76%激增到70%左右。因此,对P2P流量的识别和控制对于提高网络服务质量
和网络的管理与维护具有重要意义。
传统的P2P流量检测主要采用DPI(Deep Packet Inspection)方法,DPI方法具有
明显的局限性。DPI方法依据报文应用层中的特征字段来检测,存在两方面的缺陷:
一方面,DPI方法只能识别已知协议特征的P2P流量;另一方面,它无法识别加密协
议的流量,还牵涉到侵犯用户隐私的问题。随着P2P软件和协议的不断升级,以及加
密机制的广泛应用,DPI方法的检测效率将大大降低。近几年,基于连接行为和机器
学习的P2P流量识别方法成为国内外的研究热点。
文献1“Karagiannis T,Papagiannaki K,Faloutsos M.BLINC:Multilevel t raffic
classification in the dark.New York:Proc of ACM SIGCOMM,2005:229-240”公开了一
种基于传输层行为的P2P流量识别方法BLINC(Blind Classification),该方法基于{IP,
Port}对、传输协议类型等P2P协议的连接特征来识别P2P协议。由于BLINC不依赖
于知名P2P端口号和应用层特征字段,所以能识别加密网络流和未知P2P协议。因为
在不同的网络环境中,网络的连接状况差异较大,BLINC方法的稳定性不好。
文献2“Moore A W,Zuev D.Internet t raffic classification using Bayesian analysis
techniques.New York:Proc of the 2005 ACM SIGMETRICS Conf on Measurement and
Modeling of Computer Systems,2005,50-60”公开了一种基于大量传输层特征的朴素贝
叶斯模型的流量分类方法,该方法提取传输层的248个统计特征,使用实际流量数据
对模型进行训练,对常用协议有很好的分类效果。由于朴素贝叶斯方法是基于各项属
性条件独立的前提,而且需要对大量网络流进行标注以组成训练集,代价较高,扩展
性不好。
文献3“徐鹏,刘琼,林森.基于支持向量机的Internet流量分类研究[J].计算机研究与
发展,2009,46(3):407-414”公开了一种基于SVM的流量分类方法,能有效降低冗余属
性的干扰,而且不依赖与贝叶斯方法中的先验概率,有很好的分类准确率和稳定性。
但缺点同样在于需要大量标注好的网络流进行训练,而且标注的准确性直接影响最后
的分类准确率。有监督学习方法中一般都采用17-fileter来实现训练集的标注,17-fileter
根据应用层特征字段匹配来识别协议,随着P2P协议的不断更新和升级已及加密技术
的广泛应用,17-fileter的准确性无法保障。如果无法获得一定数量的标注准确的训练
集,所有的有监督学习的方法的检测准确率都无法保障。
文献4“J.Erman,A.Mahanti,M.Arlitt.Semi-supervised network traffic classification.
ACM International Conference on Measurement and Modeling of Computer Systems
Performance Evaluation Review,35(1),2007,369-370”公开了将半监督学习方法引入
到Internet流量分类的分类方法,该方法首先使用K-means算法对标注样本和未标注
样本进行聚类,然后根据聚类结果簇中标注样本的标签来标记未标注样本,可以认为
是聚类方法的一种扩展,最终都需要进行手工标记。
文献5“Thorsten Joachims.Transductive Inference for Text Classification using
Support Vector Machines.San Francisco:International Conference on Machine Learning
(ICML),1999,200-2009”公开了一种将TSVM方法应用于文本分类,为将TSVM方法
应用于Internet流量分类提供了理论基础。
发明内容
为了克服现有的网络流量检测方法检测精度差的不足,本发明提供一种P2P网络
流量检测方法。该方法分两个阶段来训练分类器,首先使用半监督聚类来近似估计测
试样本中的正例样本数N的值,然后根据N的值来进一步训练TSVM模型。与背景
技术相比,N的值更加接近真实值,使得训练出的TSVM分类模型具有很好的稳定性
和鲁棒性,可以提高网络流量检测精度。
本发明解决其技术问题所采用的技术方案是:一种P2P网络流量检测方法,其
特点是包括以下步骤:
(a)使用流量采集卡在网关出口捕获网络流量,对捕获的网络流量进行数据包
解析,并计算相应的流统计特征。
(b)根据网络数据包的源IP地址、源端口、传输协议、目的端口、目的IP地址
信息进行网络流重组,信息相同的数据包组成一个数据流。使用17-fileter
对重组后的网络流进行标注,标注数据分为P2P协议和非P2P协议两类。
(c)以数据流为单位提取统计特征,包括包大小、包到达时间间隔、流大小、
流持续时间。协议已知的数据流加上协议类别标签,P2P协议数据流的标签
为“1”,非P2P协议数据流的标签为“-1”,协议未知的数据流标签为“0”,每
条数据流对应一个样本,用一个特征向量表示。将标注协议数据与未标注
协议数据混合,使用K-Means聚类算法对混合数据聚类,生成两个聚类簇。
(d)将步骤(c)得到的标注协议数据流样本和未标注协议数据流样本混合到一
起构成训练集,标注协议数据流样本集用train_set表示,未标注协议数据流
样本集用test_set表示。
(e)使用K-Means聚类算法对步骤(d)中的train_set和test_set组成的混合训练集
进行半监督聚类,生成两个聚类簇。分别计算两个簇中的包含的标注数据
中P2P协议数据的比例,确定两个簇所属的类别。根据P2P协议簇中包含的
样本个数来近似确定测试样本中的正例样本数N的值。
(f)根据步骤(e)确定的测试样本中的正例样本数N的值,使用标注协议数据
和未标注协议数据共同训练TSVM分类模型。
TSVM的训练过程描述如下:
Minimize over ( y 1 * , . . . , y k * , w , b , ξ 1 , . . . , ξ n , ξ 1 * , . . . , ξ k * ) ]]>
1 2 | | w | | 2 + C Σ i = 1 n ξ i + C * Σ j = 1 k ξ j * - - - ( 1 ) ]]>
Subject to:
yi[w·xi+b]≥1-ξi
∀ j = 1 k : ]]> y j [ w · x j * + b ] ≥ 1 - ξ j * ]]>
∀ i = 1 n : ]]>ξi≥0
∀ j = k : ]]> ξ j * ≥ 0 ]]>
式中,ξi和是松弛变量,C是标注协议样本的影响因子,C*未标注协议样本的影响
因子。
(g)使用步骤(f)中训练的TSVM分类模型对网络数据流进行识别,判定是否
为P2P网络流量。
本发明的有益效果是:由于采用两个阶段来训练分类器,首先使用半监督聚类来
近似估计测试样本中的正例样本数N的值,然后根据N的值来进一步训练TSVM模
型。与背景技术相比,N的值更加接近真实值,使得训练出的TSVM分类模型具有很
好的稳定性和鲁棒性,提高了网络流量检测精度。本发明由于使用大量未标注数据参
与训练分类模型,充分利用了半监督学习的优势,与传统的只使用标注数据训练模型
的监督学习算法相比,准确性和稳定性更好。
下面结合附图和实施例对本发明作详细说明。
附图说明
图1是背景技术基于TSVM模型的网络流量检测方法流程图。
图2是本发明P2P网络流量检测方法流程图。
具体实施方式
1.网络流量捕获。
使用流量采集卡在网关出口捕获网络流量,对捕获的网络流量进行数据包解析,
并计算相应的流统计特征。只捕获传输协议为TCP的流量,周期为一个星期,以PCAP
文件格式保存。
2.网络流重组。
根据网络数据包的源IP地址、源端口、传输协议、目的端口、目的IP地址这五个
信息进行网络流重组,这五个信息相同的数据包组成一个数据流。使用17-fileter对重组
后的网络流进行标注,标注数据分为P2P协议和非P2P协议两类。
3.提取统计特征。
以数据流为单位提取统计特征,共计20个。包括包大小、包到达时间间隔、流大
小、流持续时间等。协议已知的数据流加上协议类别标签,P2P协议数据流的标签为“1”,
非P2P协议数据流的标签为“-1”,协议未知的数据流标签为“0”,这样每条数据流对应
一个样本,用一个特征向量表示。将标注数据与大量的未标注数据混合,使用K-Means
聚类算法对混合数据聚类,生成两个聚类簇。
4.生成训练集。
因为是半监督分类器,所以需要标注数据和未标注数据共同训练分类器,将第3
步得到的标注协议数据流样本和未标注协议数据流样本混合到一起构成训练集,标注
协议数据流样本集用train_set表示,未标注协议数据流样本集用test_set表示,也称为测
试集。
5.半监督聚类。
使用K-Means聚类算法对第4步中的训练集train_set进行半监督聚类,生成两个
聚类簇。分别计算两个簇中的包含的标注数据中P2P协议数据的比例,确定两个簇
所属的类别。根据P2P协议簇中包含的样本个数来近似确定测试样本中的正例样本
数N的值。
6.训练TSVM分类器。
TSVM的训练过程可以用以下的优化问题描述:
Minimize over ( y 1 * , . . . , y k * , w , b , ξ 1 , . . . , ξ n , ξ 1 * , . . . , ξ k * ) ]]>
1 2 | | w | | 2 + C Σ i = 1 n ξ i + C * Σ j = 1 k ξ j * - - - ( 1 ) ]]>
Subject to:
yi[w·xi+b]≥1-ξi
∀ j = 1 k : ]]> y j [ w · x j * + b ] ≥ 1 - ξ j * ]]>
∀ i = 1 n : ]]>ξi≥0
∀ j = k : ]]> ξ j * ≥ 0 ]]>
式中,ξi和是松弛变量,C是标注协议样本的影响因子,C*未标注协议样本的影响
因子。
TSVM模型的训练过程分为以下几个步骤:
(1)根据第5步的结果确定的N的值,并使用参数C和C*的默认值,根据训练集
中的标注样本进行学习,得到一个初始分类器,并依据特定规则指定测试样本中的正
例样本数N的值。
(2)用初始分类器对测试样本进行分类,根据判别函数的输出值选取N个未标注
样本暂时标注为正例,其余标注为反例,并指定一个临时的影响因子
(3)根据第(2)步的标注结果对所有样本重新训练,对新得到的分类器按照特
定规则交换一对标注不同的测试样本的标注值,使得式(1)中的目标函数值获得最大
下降。这一步反复执行,直到找不到符合交换条件的样本对为止。
(4)均匀的增加临时影响因子的值并返回的步骤(3),当时,算
法结束,输出结果。
7.P2P流量识别。
将待识别的网络流量按照步骤2和步骤3进行流重组和特征提取,转换成样本向量
并生成待检测数据集,输入到步骤6中训练好的分类器,得到分类结果,判定是否属于
P2P流量。
总之,本发明利用改进的TSVM算法检测P2P流量,与现有技术大多采用监督学习
的方法相比,可以使用大量未标注样本训练分类模型。使用半监督聚类的方法估计测
试样本中的正例样本数N,与背景技术TSVM模型相比,精确度更高,鲁棒性更好。经
过对本发明进行的仿真检验,在标注样本数量较少的情况下达到了93%以上的检测率。