中国科技论文在线
http://www.paper.edu.cn
基于 C4.5 算法和 AdaBoost 算法的 P2P 流量
识别方法
韩颜伦1,李学明2**
5
10
(1. 北京邮电大学信息与通信工程学院,北京 100876;
2. 北京邮电大学数字媒体实验室,北京 100876)
摘要:针对目前互联网主要的四种 P2P 应用,提出一种基于 C4.5 算法和 AdaBoost 算法的
P2P 流量识别方法。C4.5 算法根据最大信息增益率原则生成决策树对流量进行识别,
AdaBoost 算法则通过多次调用 C4.5 算法生成一系列决策树联合成更加强大的识别器。实验
表明,随着 Adaboost 循环次数的增加,提高了 P2P 流量识别率。
关键词:流量识别;C4.5 算法;AcaBoost 算法;特征选择
中图分类号:TP391
15
P2P Network Traffic Classification Based on C4.5 algorithm
and AdaBoost algorithm
HAN Yanlun1, LI Xueming2
(1. School of Information and Communication Engineering,Beijing University of Posts and
Telecommunications,Beijing 100876;
20
2. Digital Media Lab in Multimedia Technology Center, School of Information and
Communication Engineering, Beijing University of Posts and Telecommunications,Beijing
100876)
25
Abstract: To solve the traffic classification of four major P2P application on the Internet,purpose
P2P network traffic classification based on C4.5 algorithm and AdaBoost algorithm.C4.5
algorithm grow decision tree to inspect data flows under the tule of max inromation gain
rat,AdaBoost algorithm called C4.5 algorithm many times to make a series of decision trees,which
is greater classify flows.Based on the experimental data, this approach demonstrates that it
improves P2P traffic classification rate with the increase in AdaBoost cycles.
Key words: traffic classification; C4.5 algorithm; AdaBoost algorithm;feature selection
30
0 引言
随着科学技术的发展,尤其是计算机相关技术和通信技术的飞速发展,使得互联网已经
完全深入到政治、经济、社会、军事和文化等各个方面。互联网上五花八门的各种应用也给
用户带来了便捷,其中以 P2P(Peer-to-Peer)技术为核心的应用正在受到非常大量的网民的
35
追捧,同时对其他网络产品应用造成巨大的冲击,许多领域也正发生着明显的变化。P2P 技
术的发展给人们带来方便的同时,由其产生的庞大流量也给网络管理者尤其是网络运营商带
来了巨大的挑战。P2P 应用的广泛普及,越来越多的新 P2P 协议不断出现,而且变得越来越
作者简介:韩颜伦(1983-),男,硕士研究生,多媒体通信
通信联系人:李学明,(1969-),男,教授,博士生导师,数字媒体实验室。1992 毕业于中国科技大学
无线电系,1997 在北京邮电大学获工学博士学位后到北京交通大学信息所做博士后,1999 年到北京邮电
大学从事教学科研工作,2002 年曾在德国卡尔斯鲁厄大学作高级访问学者并讲授多媒体课程。主要从事数
字图像处理、视频编码与传输、多媒体通信等方向的研究工作。先后主持完成多项国家及企业研究开发项
目,获国家科技进步三等奖、信息产业部科技进步一二等奖各一次,出版专著 1 本、教材 1 本、发表学术
论文 40 多篇。现为北京电子学会广播电视专业委员会副主任委员,中国图象图形学会数码专业委员会委
员,中国电子学会信号处理分会委员. E-mail: lixm@bupt.edu.cn
- 1 -
中国科技论文在线
http://www.paper.edu.cn
复杂,这些软件不仅为用户提供了更好的资源搜索和下载能力,还在各方面增强其可扩展性
和功能,并且采用各种手段逃避网络监控的检测。据统计,所有 P2P 应用的总流量已占服
40
务提供商业务总量的 60%-80%,P2P 应用的流量也占据了网络带宽超过一半的比例。在一
些沿海较发达的省市,运营商的流量统计结果显示,P2P 业务的流量占到白天网络流量的
40%-50%,这一数值在晚上达到 80%-90%以上[1]。因此,面对 P2P 技术日益革新的严峻现
状,对 P2P 应用进行有针对性、准确、高效率的管控有着极为重要的意义,而准确的识别
是对 P2P 流量进行有效管控的前提。
45
最初的 P2P 应用采用的是固定端口,SubhabrataSen[2]等人在 2002 年通过获得特定端口
的流量,对当时流行的 3 种 P2P 文件共享软件 DirectConnect,FastTrack 和 Gnutella 进行了
分析和识别。但是之后的大部分 P2P 软件采用了随机端口技术,这种基于端口的识别技术
不再具有很强的应用价值。目前,深层数据包检测技术 DPI(Deep Packet Inspection)是应
用最广、识别率较高的方法之一。2004 年,Sen 等人[3]分析 2003 年的网络数据,发现通过
DPI 能够以接近 95%的识别率对 5 种 P2P 协议进行监测。但是越来越多的 P2P 应用采用加
密报文和私有协议,DPI 面临了很大的挑战。由于上述 2 种方法的局限性,科研人员研究出
新的识别方法--深度流检测技术(Deep Flow Inspection)。DFI 利用不同 P2P 应用的流量特
征的差异性,引入机器学习等算法,对 P2P 应用进行基于特征指标的学习,建立分类模型
来识别 P2P 流量。虽然一些文献[4] [5] [6]提出很多基于流特征的 P2P 流量分类方法,但由于目
前 DFI 的识别率普遍不高,所以在特征选择和优化算法等方面仍需要我们更深一步的研究。
本文正是针对目前互联网上流行的主要四种 P2P 应用,提出一种基于 C4.5 算法和 AdaBoost
50
55
算法的 P2P 流量识别方法。
1 C4.5 决策树算法
1.1 决策树
60
C4.5 决策树算法的前身是 IDE3 决策树算法,两者均是由 Quinlan 提出的[7]。C4.5 决策
树算法在机器学习领域得到了广泛应用,后来又发展出了更加强大的商业版本 C5.0 算法(未
公开)。由于 IDE3 决策树算法只能对离散属性进行操作,不适用于本文所研究的网络流量
情形,本文采用 C4.5 算法作为识别器构建算法,并对其做出改进。
C4.5 算法是以 ID3 算法为核心的完整的决策树生成系统。他通过两个步骤来建立决策
65
树:树的生成阶段和树的修剪阶段。C4.5 采用基于信息增益率的方法选择测试属性。信息
增益率通过加入一个被称为分裂信息量的项,分裂信息用来衡量属性分裂数据的广度和均匀
性。
1.2 决策树修剪
由于决策树的生成完全依赖于训练集数据,而训练集中的数据很难是“完美”的,或多
70
或少都会混入噪声或偶然特性。此时,直接由训练集生成的决策树往往出现过度拟合(Over
Fitting)的问题,即:过分地模拟了训练集中的每个特性,使噪声和偶然特性也在决策树上
被体现出来。过度拟合往往带来两个后果:一是决策树过于庞大,二是在训练集上分类效果
良好但使用实际待测数据分类效果较差[8]。
为了解决过度拟合的问题,我们有必要对决策树进行修剪(pruning),即剪除多余的
75
决策分支。目前修剪算法主要分作事前剪枝和事后剪枝两大类。
1.事前剪枝:即在决策树分支生成之前就停止决策树的生长。这种修剪方法可以有效地
- 2 -
中国科技论文在线
http://www.paper.edu.cn
减少生成决策树的开销,控制决策树的大小。但是由于难以获取一个准确的决策树停止生长
条件,这种方法在实际应用中并不理想。在本文所实现的系统中只是简单设定当某一结点可
用的训练集样本数低于一定值时便停止生长,避免决策树深度过大。
80
2.事后剪枝:事后剪枝就是在决策树生成之后再对其进行修剪的算法。许多文献[7][9]都
提出了事后剪枝算法,这些算法在工程上取得了良好的应用。具有代表性的事后剪枝算法包
括悲观修剪 PEP(pessimistic error pruning)、降低错误修剪 REP(reduced error pruning)等
修剪方式。
PEP 算法最大的优点在于不需要独立的剪枝集,这在某些数据量小的情况下非常有用。
85
但是在本文所涉及的具体情形中,我们所需要的训练数据量是足够的,没有必要使用训练集
本身在估算误判率。同时,使用独立剪枝集的另一个优势在于,噪声干扰具有随机性,不大
可能再多个样本中同时出现相同的噪声,因此使用独立的剪枝集将有效剪除决策树中过分拟
合训练集的那部分树枝,本文选用 REP 算法来作为决策树修剪的算法。
2 AdaBoost 算法
90
网络流量的数据具有不稳定的特征。由于受到网络不稳定、网络延迟等因素的影响,往
往表现出特性不太稳定。所谓不稳定是指,样本中含有的偶然性较大,单次训练得出的流量
模型在换用另一数据集时准确率下降较大。若仅使用 C4.5 算法生成决策树进行判定,准确
率将难以保证。因此我们采用 AdaBoost 算法对 C4.5 决策树进行提升,以求最佳准确率。
AdaBoost 算法改进自 Boosting 算法。其原理是:使用某一算法(如 C4.5 算法)作为基
95
础算法生成弱分类器,重复调用该算法生成一系列弱分类器,每个分类器根据其正确率将获
得一个权值。再将这一系列弱分类器联合起来生成强分类器。每当有新的待检测数据输入时,
该数据将平行地交给各个弱分类器进行分类。算法将相同结果的分类器权重相加,取权重最
高的结果作为强分类器的最终输出。
AdaBoost 算法的步骤如下:
100
1. 令循环变量
,设训练集全集为 T,初始化训练集中所有数据的权重 为 1/n,n
为 T 中数据的总数;
2. 使用基础弱分类器生成算法生成弱分类器 ;
3. 计算弱分类器 的误判率,公式为 :
(1)
105
4. 修正训练集中各数据的权重,降低正确分类的数据权重,正确分类数据的新权重按
以下公式生成:
5. 归一化权重:
(2)
(3)
110
6. 根据当前弱分类器的准确率设定该弱分类器在实际分类时的投票权重:
- 3 -
0iiwiCiCieie错误分类的数据权重数据权重总和'1 * 1iiiiewwe'11 * iiww训练集原来的权重和训练集新的权重和
中国科技论文在线
http://www.paper.edu.cn
(4)
7. i 如果等于预先设定的循环次数 N 则退出循环,否则 i+1 后回到第 2 步。
对于待检测数据 X,AdaBoost 算法按照投票方式进行识别分类:
1.对于每一个弱分类器 ,将数据 X 放入其中,得出分类结果 ;
115
2.将弱分类器 的权值
加入 的权重;返回第 1 步直到所有弱分类器都循环完
毕;
3.返回权重最高的结果 x 作为最终识别结果。
3 实验验证
3.1 实验环境和采集数据
120
本文的程序的运行环境如下:
操作系统:windows7;
网络环境:局域网接入教育网;
采集时间:在每天早、中、晚等不同时段采集十数次数据;
采集对象:P2P 流量包括 PPTV 直播点播、QQLIVE 直播点播、PPS 直播点播、迅雷下
125
载数据流量;非 P2P 流量包括网页流量、优酷视频流量和其他网络流量。
3.2 属性选择
本文程序对于数据流中数据的统计提取分为全流属性和子流属性两类。子流属性便于在
线分类时不必等待全流传输完毕就能开始识别工作从而达到在线识别的目的;全流属性则只
能在全流传输完毕后才能开始识别,但是可能会体现出子流属性所没有的流特征。
130
但是这些属性所包含的信息量都不同,各属性的重要性也是不同的。本文分析了各属性
在 AdaBoost+C4.5 各决策树中作为非叶子节点的测试属性的次数,次数越高表明该属性越重
要。
最终选择的属性包含了全流属性和子流属性,这些属性将最全面地体现出数据模型的特
性。将包含全部属性集的训练集进行训练,AdaBoost 重复 10 次,得到各属性的使用次数如
135
下表:
表 1 属性使用次数统计
Tab. 1 the uising number of traffic feature
属性编号
1
2
3
4
5
6
7
8
9
10
属性
最小报文净荷长度
子流下行最小报文净荷长度
子流频率最大报文净荷长度
子流最小报文间隔时间
子流最大报文间隔时间
出现频率最大的报文净荷长度
子流第三大报文净荷长度
最大报文净荷长度
子流上行方向最小报文净荷长度
频率第三报文净荷长度
- 4 -
全流/子流
使用次数
全流
子流
子流
子流
子流
全流
子流
全流
子流
全流
27
21
21
20
19
19
19
18
15
13
log1iiiewCeiCixiCiwCix
中国科技论文在线
http://www.paper.edu.cn
由上表可以看出,使用次数前十的属性中有 6 项属性是子流属性。除此之外,为了解决
P2P 流量中 TCP 流量的识别问题,加入了并发连接数这一属性。本文将每 10s 为一个单位
140
时间片段,统计在每个时间片段中,拥有同一目的 IP、目的端口而源 IP、源端口不同的数
据流数目,也就是并发连接数目。
3.3 实验结果与分析
根据本文指出的 AdaBoost 算法原理,AdaBoost 需要生成一系列的弱分类器(在本文中
是 C4.5 决策树)以联合成强分类器。具体生成多少弱分类器取决于 AdaBoost 的循环次数。
145
理论上,循环次数越高,联合的分类器就越强,但是运算的复杂度就越高。同时,在实际上,
由于设备的能力有限,算法的循环次数是需要特别选择的。
表 2 AdaBoost 各循环次数与识别率的联系
Tab. 2 the relationship between traffic classification rate and AdaBoost cycles
循环
次数
1
2
3
4
5
6
7
8
9
10
11
12
PPTV 识别率
QQLIVE 识别率
PPS 识别率
迅雷下载识别率
总识别率
94.8%
94.8%
96.2%
96.5%
97.7%
97.7%
97.1%
98.0%
96.5%
96.5%
97.4%
98.8%
93.5%
93.5%
91.3%
92.0%
92.7%
92.3%
93.2%
93.9%
93.7%
95.6%
95.4%
92.7%
92.7%
92.7%
93.9%
95.4%
95.4%
95.0%
95.6%
96.0%
96.2%
96.9%
96.4%
96.4%
92.5%
92.5%
93.9%
94.8%
95.2%
94.8%
95.7%
95.4%
95.1%
95.0%
94.1%
94.3%
92.8%
92.8%
93.5%
94.0%
94.9%
94.4%
95.3%
95.5%
95.4%
95.3%
94.4%
95.1%
从上表可以看出,随着循环次数的增加,识别准确率呈现上升的趋势。循环一次即只利
150
用 C4.5 算法生成一个分类器进行识别,识别率都超过了 90%,已经达到了离线分析的水平。
而通过 AdaBoost 算法多次循环后,无论是单独的某种应用还是总体的识别率都有一定的提
高:PPTV 识别由 94.8%提升到 98.8%,QQLIVE 识别率由 93.5%提升到 95.6%,PPS 识别率
由 92.7 提升到 96.9%,迅雷下载识别率由 92.5%提升到 95.7%;总识别率也由 92.8%提升到
95.5%,提高了 2.7 个百分点。
155
循环 1 次和循环 2 次的效果是相同的,因为当仅有两个决策树时,根据判决原理,判决
分类结果仅仅依赖于权重较高的那个决策树。由于 AdaBoost 算法自适应地调节数据权重的
原因,本次识别率高的数据在下次训练时权重降低,导致了识别率震荡上升的结果。循环次
数在 10 次左右识别率趋于平坦或不再上升,因此建议循环次数为 10 次。
4 结束语
160
本文提出了一种基于决策树的 P2P 流量识别方法。该方法利用 C4.5 决策树算法和
- 5 -
中国科技论文在线
http://www.paper.edu.cn
AdaBoost 算法综合考虑各个特征属性对主要的四种 P2P 应用进行识别。实验结果表明,相
对于 C4.5 算法,这种方法进一步提高了 P2P 流量的识别率。本文提出的方法只是提高了算
法的识别率,并没有考虑分类器的构造时间。因此,如何在提高识别率的基础上进一步缩短
分类器的构造时间,将是下一步的主要研究工作之一。
165
[参考文献] (References)
[1] 陈庆章,邵奔,陈超.基于复合特征的 P2P 业务识别系统的研究和实现.东南大学学报(自然科学版),2008
(9)
[2] Sen S, Wang J. "Analyzing peer-to-peer traffic across large networks". In: Proc. of the 2nd ACM SIGCOMM
Workshop on Internet Measurement Workshop. 2002.
[3] S. Sen, O. Spatscheck, and D. Wang. "Accurate, scalable in network identification of P2P traffic using
application signatures". In WWW2004, New York, NY, USA, 2004.
[4] J. R. Quinlan, C4.5: Programs for machine learning[M]. San Francisco, CA, USA:Morgan Kaufmann
Publishers Inc,1993:302.
[5] Thomas Karagiannis. "Transport Layer Identification of P2P Traffic". IMC'04, O ctober 25-27, 2004, Taormina,
Sicily, Italy.
[6] Karagiannis T, Papagiannaki K, Faloutsos M. "BLINC: multilevel traffic classification in the dark". ACM
SIGCOMM, 2005. Philadelphia, PA, USA: ACM Press, 2005, pp. 229-240.
[7] J. R. Quinlan, Bagging, boosting, and C4.5[A]. In Proceedings of the Thirteenth National Conference on
Artificial Intelligence[C], 1996:725-730.
[8] 屈俊峰,朱莉,胡斌,两种决策树的事前修剪算法[J],计算机应用,2006.3,26(3):15.
[9] 黎娅,郭江娜,决策树的剪枝策略研究[J],河南科学,2009.3,27(3):20
170
175
180
- 6 -