陈金富 赵 慧 常 鹏 张永铮
1(中国科学院信息工程研究所 北京 100093)2(中国科学院大学 北京 100049)3(国家计算机网络应急技术处理协调中心 北京 100029)
P2P应用流量的高效分类方法研究
陈金富1,2赵 慧3*常 鹏1张永铮1
1(中国科学院信息工程研究所 北京 100093)2(中国科学院大学 北京 100049)3(国家计算机网络应急技术处理协调中心 北京 100029)
随着互联网应用的广泛使用,网络应用已经呈现出很多类别,尤其是P2P应用流量的暴增。传统的流量分类和应用识别方法已经达不到稳定可观的应用识别率。为了提高P2P应用流量分类准确率和稳定性,科学管理规划网络,提出WMFA(滑动窗口多流关联)分类算法,使用P2P应用流量统计特征,通过降低流统计特征维数,以及减少计算每个流中包的数量,利用C4.5决策树算法对P2P主流应用进行一次分类,采用WMFA算法进行误识别流的挖掘,再进行多流关联进行二次识别,从而提高P2P应用流量分类准确率。实验表明,在降低流特征维数以及减少每个流数据包的前提下,面向国内主流P2P应用WMFA算法对P2P应用在线识别的分类正确率达到96%以上,在准确率上比现有方法平均提高3%。
P2P流量分类 应用识别 WMFA算法 多流关联
据中国互联网络信息中心统计,截至2015年6月,我国网民规模达6.68亿,互联网普及率为48.8%。据思科最新统计,对于剧增的流量,P2P流量占绝大部分。P2P网络应用流量的暴涨,占据了巨大的网络带宽,不利于高质量的服务,这些问题说明,研究如何提高P2P应用流量分类准确率迫在眉睫。P2P流量分类和应用识别对于很多单位的网络管理员、使用者都有很大的好处。准确地分类P2P应用流量可以为一些网络管理员合理地分配网络流量,科学地规划网络资源。同时,应用服务的提供商可以高效地管理流量计费服务,也方便消费者查看已经消耗的流量。
以往的P2P网络流量分类和应用识别研究方法主要是基于端口、负载特征来判别,但是因为P2P应用的暴增,加上一些通信协议的不断更新,以往研究方法分类准确率越来越不稳定。2005年,Moore等做了端口识别应用的实验,运用端口来进行应用分类,结果表明准确率不超过70%[1]。端口识别应用存在过大的误报率问题,接着提出基于数据包负载分析的技术[2],指解析数据包的负载,并判断是否匹配已知应用的指纹来进行应用分类。该分类方法识别率有很大的提升,但是对于P2P流量而言,很多加密流量,一些很难挖掘特征的应用没办法进行准确的分类。后来提出基于主机网络行为来进行P2P应用分类,网络行为代表了大类应用的交互特征,所以没办法进行细粒度的应用识别。由于机器学习算法的迅猛发展,研究者们提出使用机器学习的算法来进行P2P应用流量分类,通过离线网络流的特征学习,建立分类模型,然后对P2P流量进行在线的分类,很多研究表明可以达到较高的分类准确率。在以往的研究中,机器学习方法训练集是经过大量计算的流特征,根据Moore等提出的249个流特征[3],选择一定的特征子集。但是机器学习的方法比较依赖数据集,在计算一些流特征的时候,需要计算流中每个包的特征,在网络流量暴涨情况下,应用识别的性能有所下降,分类准确率不稳定。
为了有效地提高P2P应用流量分类准确率,本文提出WMFA(滑动窗口多流关联算法)分类算法,可以在一个时间单位窗口中在线的实时识别P2P应用流量。通过降低P2P应用流特征维度,以及减少流中数据包个数的方式,利用C4.5的方法来对P2P应用进行一次识别,再用WMFA算法来去除C4.5误识别的流,然后采用时空关联来进行多流关联识别,从而提高P2P应用流量分类准确率。实验结果表明该方法可以在线实时对P2P应用流量进行有效分类,不仅分类稳定,而且对P2P应用识别具有较高准确率。
现有的P2P应用流量分类方法主要包括基于端口、数据包负载、网络行为以及机器学习的分类方法,本节主要介绍各种分类方法并总结各种方法存在的问题。
1.1 基于端口的P2P应用分类方法
在P2P网络通信过程中,无论是客户端还是服务端,或者是一个Peer节点,必须提供IP地址和端口和另一方进行通信,在一定的时间内,主机某个端口关联一个网络应用,端口小于1 024的一般作保留使用。一些常见的有RFC文档描述的网络协议基本有固定的端口,识别传统的协议较简单,只需解析端口号,然后和IANA机构颁布的端口进行比对,有比较高的识别率,而且基于端口识别方法简单,容易实现,分类性能很高。但是对于P2P应用来说,大多采用了端口跳变技术。随着P2P网络应用端口的动态使用,基于端口的P2P应用识别和流量分类很不稳定,有的研究表明采用固定端口的P2P流量仅仅占30%左右[4-5]。
1.2 基于负载的P2P应用分类方法
因为P2P网络应用采用端口跳变的技术,所以基于端口的P2P应用分类具有很高的误报率。为了有效提高P2P应用流量分类准确率,提出了基于数据包负载的识别方法。通过分析数据包的有效负载,并判断是否匹配已知应用的指纹来进行应用分类,研究表明该方法分类有比较高的准确性。Sen等[6]使用负载分析方法来识别P2P应用,实验结果显示分类中误报率小于5%。Liu等[7]使用深度流负载识别迅雷流量,TCP流量的识别准确率仅有87%。基于数据包负载进行P2P应用分类准确率得到一定的提升,而且可以达到细粒度的识别。但是对于P2P流量而言,很多是私有协议以及加密流量,比如迅雷就采用了私有协议来传输数据,很难挖掘负载特征。所以使用该方法还是无法有效的识别P2P应用,无法确保一些特征的有效性和实时性。
1.3 基于网络行为的P2P应用分类方法
私有协议和加密的流量无法挖掘有效负载特征,为了保证分类准确率稳定性,继而提出通过P2P应用的交互行为来进行应用分类。Karagiannis等[8]利用应用交互过程的行为特征来分类,提出盲分类方法,方法没有考虑端口号,而且不用解析数据包的有效负载,实验结果表明该分类方法能够达到95%的精度,但是盲分类方法实践比较困难,无法满足实时性的分类要求。Collins等[9]采用P2P应用TCP连接特征来识别P2P应用的TCP流量,该方法没有给出UDP流量分类的方案,而且容易和别的一些流量混淆。Wang等[10]使用应用行为特征来对P2P流量分类,但是平均分类准确率只有90%。主机交互行为方法不用考虑端口号,而且不用对数据包进行深度解析,有效提高了分类性能。但是它不能精细化分类P2P应用,也因为P2P应用在交互过程中路由具有动态性,致使该方法分类稳定性不高。
1.4 基于机器学习的P2P应用分类方法
目前研究热点主要在基于机器学习的分类方法,不同应用网络流量具有一定的流特征,将流特征提取出来并用机器学习算法来训练建立分类模型,然后对在线应用流量进行分类。Zuev等[11]采用朴素贝叶斯方法,提取网络流特征训练,但是分类准确率仅有60%左右, 而且分类算法依赖数据流特征之间的独立性。在2009年,Huang等[12]用KNN(K最近邻)分类算法来对网络流量进行分类,实验结果表明分类准确率达到90%,但是KNN算法计算复杂度高,每有数据包到来就需要计算训练集中所有的流,性能比较低。同时在2009年,徐鹏等[13]采用C4.5决策树对流量进行分类,分类准确率能达到94%,但是该算法需要的流特征较多,需要的数据分组较多,计算复杂度偏高。2013年,周文刚等[14]使用谱聚类算法对网络流量进行分类,总体准确率达到94.62%,该方法对协议进行分类,没有精细化到应用分类。2014年,Patel等[15]采用迭代式调整的SVM算法对网络流量进行分类,该方法对一般的协议分类准确率达到90%,但是对于P2P和多媒体流量分类准确率在70%左右。2015年,Hong等[16]使用SVM对网络流量进行粗粒度分类,P2P流量分类准确率仅有80%左右。
目前已有的流量分类和应用识别研究往往具有一定的局限性,当前研究大都针对粗粒度分类,面向P2P应用细粒度分类研究较少。采用基于机器学习的流量分类方法,识别率不稳定,算法计算复杂性比较高等,从而影响网络流量的管理和应用类别的监控。与上述研究工作相比,本文面向主流P2P类应用流量分类,提出WMFA算法进行P2P流量的在线实时分类,实时的粒度体现在一个时间单位窗口上。在减少流统计特征,减少会话开始的数据包数量,利用C4.5决策树算法对P2P主流应用进行一次分类,用WMFA算法进行误识别流的挖掘,再进行多流关联进行二次识别,可以达到较高的分类准确率。
P2P应用流量分类中,机器学习比较依赖数据集所以识别率有时候不稳定。面向主流P2P应用分类,本文提出基于WMFA算法的应用在线实时分类方法,基于滑动时间窗口的多流在线关联方法集成了C4.5和多元离群点检测方法,采用信息增益率来选择P2P流特征,然后使用C4.5对P2P进行一次识别,挖掘误识别流,利用时空关联将已识别的流来关联未识别的流作二次精确识别。
通过信息增益率来筛选P2P网络应用行为特征,在特征提取方面,本文提出的优化方案是将TCP流和UDP流分开进行处理,在性能方面,每个流仅选取前9个报文进行分析。
2.1 特征选择
2005年,Moore等[3]提出了249个对流量分类的流统计特征。在实际分类中考虑到计算复杂度问题,通常只选择部分流统计特征来对流量进行分类。在特征选择方面,潘吴斌等[17]提出选择性集成的嵌入式特征选择算法,分类准确率达到95%,但是分类没有精细化到应用。特征选择的目的是在保持较高分类准确率的条件下,尽量的降低流统计特征的维数。
本文采用信息增益率方法来选择P2P流特征,不考虑应用中携带的广告流量和DNS流量。优化方案体现在分开处理P2P应用TCP和UDP流量,仅考虑通过每个P2P网络流的前10个数据包来计算流统计特征。在该特征选择算法,用GR代表信息增益率,Gain是信息增益,SpInfo表示分裂信息。那么在流统计特征属性T上,针对训练数据集D的信息增益率的计算如式(1)所示:
(1)
信息增益表示两个信息需求之间的差值。通过流统计特征T划分前后类别期望信息的差值比较,这个差值越大说就表示流统计属性T划分越好,划分后类别更纯。信息增益的计算为Gain(T)=Info(D)-InfoT(D),通过信息熵的方式来计算信息增益。Info(D)就是数据集D的熵。令Ri表示D中网络流属于第i个应用的概率,使用m代表P2P应用类别的总数,可以计算信息熵,则P2P应用流量数据集中网络流分类的信息熵计算如式(2)所示:
(2)
通过信息增益率选择的分类属性,按照增益率的大小排序,然后选择增益率较大的前15个分裂属性。在信息增益率算法的基础上,通过卡方检验来判断信息增益选择的流特征相关性,并去除具有相关性的特征。针对P2P应用TCP和UDP流量,使用信息增益率作为度量标准选择了10个最有效的流统计特征如表1所示。
表1 P2P流量TCP和UDP流统计特征
本文在Moore的特征基础上,增加了P2P应用的一些特有流特征,因为P2P应用大部分使用私有协议,每个流携带交互信息的数据包最大概率出现在前3个包,熵值是最大的。同时,在分析P2P应用中,我们发现交互过程中初始化窗口携带的分类信息很大。
2.2 WMFA分类算法
机器学习方法分类主要依赖数据集,使用C4.5对P2P流量进行分类,结果大多数存在误识别的流。为去除误识别流提出WMFA算法(基于滑动时间窗口多流关联) ,主要目的是在线实时挖掘每个时间窗口中误识别的流,再进行时空关联将未识别的流标记为已识别的流。
P2P通信应用流量具有流量连续性、端口离散性、流大窗口连续性、流小窗口短暂性以及输入输出流量均衡性。使用滑动时间窗口来量化流量的连续性。设定一个单位统计时间为一个窗口。根据经验规则,单位时间设置为5分钟。设置窗口尺寸为wn,这里的窗口尺寸设置为4。
将一个时间窗口P2P流量分类结果数据集中同应用的流作为输入,挖掘误识别的流并清除流标记。本文运用基于χ2统计量的多元分类结果离群点检测,这里的离群点是指误识别的应用流。使用多元属性来度量P2P通信原理,多元属性分别为f1端口离散性,f2输入/输出流量比,f3大窗口持续性,f4小窗口短暂性,四个属性的量化如下。
在线实时量化四个P2P通信属性,这里实时粒度是一个时间窗口,本文设置为5分钟。f1端口离散性记录每个流客户端端口ClientPort值,由于P2P应用通信端口一般比较大,而其他三个属性的量化结果在0到1区间范围内,为平衡各属性的权重,使用hash函数将客户端端口hash到0到1区间内,f1的量化如式(3)所示:
f1=Hash(ClientPort)
(3)
f2输入/输出流量比使用每条流的输入字节数fbytes和输出字节数bbytes量化,如式(4)所示:
(4)
f3大窗口连续属性使用每条流中包负载大于初始化窗口大小包数量big_wins和整条流包数flow_packets来量化,如式(5)所示:
(5)
f4小窗口短暂属性使用每条流中包负载小于流前三个包长的数量small_wins和整条流包数flow_packets来量化,如式(6)所示。
(6)
基于χ2统计量的多元分类结果离群点检测,使用上述量化的P2P应用流量特征,如计算式(7)所示:
(7)
其中fi是当前窗口第i个属性特征值,EiWn是前wn窗口内被标记为内同一应用第i属性的均值,n代表属性维度,这里n表示4。在识别过程中,时间窗口会不断向后滑动,EiWn代表每个属性的窗口尺寸平均值会不断改变。如果在某个时间窗口中χ2统计量较大,则将该流视为误识别并将该流的应用分类标记去除。
通过离群点检测算法,将误报的流标记被删除并在一个时间单位窗口中使用在线实时多流时空关联,实时的粒度是一个时间窗口,空间是指该窗口中每条流中IP和端口PORT。如果在一个时间窗口上,同一个IP和端口PORT的流有未识别的流,则将该流标记为对应IP和PORT已识别的流,伪代码如下:
算法 多流时空关联
输入:一次识别结果集Data,时间窗口win_time
输出:关联后的识别结果
1:foreach flow in Data do
2: if flow.IP and flow.Port is same then
3: if flow.TIME < win_time then
4: AppNames.add(flow.AppName)
5: AppName = Max(AppNames)
6:endforeach
7:foreach flow in Data do
8: if flow.AppName == null then
9: flow.AppName = AppName
10:endforeach
11:return Data
算法的输入是C4.5识别的结果集Data和时间窗口长度win_time,时间窗口代表了在线实时的粒度,本文设置实时粒度是5分钟。输出是WMFA关联识别的结果集。第2行中如果流的客户端IP和端口PORT一样,并且流的时间小于win_time,则将流中标记的应用名称记录。第5行中计算出现频率最高的应用编码。采用了hash原理,将每条流的IP和PORT作为键key,每条流的应用编号作为值value,在同一个时间窗口中客户端IP和PORT一样的流进行关联。AppName记录了应用编码,将一次识别结果Data中未识别的流或者误识别的流标记成AppName已识别的应用编码。
3.1 实验评估
本文实验的度量指标分别是准确率和召回率。准确率和召回率使用下面三个变量来计算。
(1) 真阳率TP(True Positive):算法识别为某P2P应用的网络数据流,而且确实属于该应用的网络数据流。
(2) 假阳率FP(False Positive):算法识别为某P2P应用的网络数据流,但是不属于该应用的网络数据流。
(3) 假阴率FN(False Negative):算法识别为非某P2P应用的网络数据流,但是属于该协议或者应用的网络数据分组。
准确率与召回率度量在分类中广泛使用。准确率可以看作精确性的度量,而召回率是完全性的度量,二者的计算如式(8)和式(9)所示。
(8)
(9)
3.2 数据集
本文的数据集采自某局域网的网络出口。在2015年9月和11月的不同时间段,我们用GT[18]工具采集了6个数据集,包含数据包负载的完整信息。数据集的情况如表2所示。
表2 P2P应用数据集描述
数据集通过GT进行流量标注,主要考虑国内常见P2P网络应用流量的分类。因为本文中仅考虑P2P应用私有协议的流量,所以过滤掉HTTP流量和DNS流量,对剩下的TCP和UDP流进行分类。P2P应用实验数据集分别是迅雷,uTorrent,QQ旋风,优酷,暴风影音,腾讯视频,LeTV,PPTV,爱奇艺和搜狐视频,它们是国内最常见的P2P应用。这里主要是下载类和多媒体类P2P应用。从图中看出,迅雷在各个数据集中流量较大,搜狐和暴风流量相对较小。
3.3 每条流开始的数据包数目实验
本实验目的是比较每条流取前N个数据包来统计流特征时,TCP和UDP流量分类准确率的变化,从而找出在P2P流量中N的合适值。使用NetMate提取P2P应用流特征,以及工具Weka-3.7.13[19]和sklearn[20]来完成特征选择和流量分类任务。
本节通过单因子均值实验,验证四种分类算法使用流开始的不同数据包数目统计特征分类的准确性,决定选择统计分析合适的数据包数目。基于2.1节提出的流统计特征进行分类和上节的数据集,运用KNN(K最近邻分类算法)、NB(朴素贝叶斯分类算法)、C4.5决策树和SVM支持向量机算法对数据集data3进行学习建立模型,然后对数据集data1、data2、data4进行预测,实验结果如表3所示。
表3 每条流前N包特征分类准确率 %
采用单因子均值分析方法验证统计每条流开始不同数据包个数下分类平均准确率,这里的单因子是指数据包个数,它统计每条流开始的5到10个数据包,均值取的是不同测试集下不同分类算法分类准确率的平均值。
从结果可以看出,分类单因子数据包个数从5到9分类准确率均值基本呈递增趋势。取每条流开始5个数据包进行特征提取并使用四种算法分类时,TCP流量平均准备率是90.68%,UDP流量分类平均准确率为89.11%;6个数据包时,TCP流量平均分类准确率是89.5%,UDP流量平均分类准确率为89.81%;取7个、8个和9个数据包时,TCP流量分类平均准确率分别为91.65%,91.03%和92.46%,UDP流量分类平均准确率分别是90.56%,90.44%和92.19%;当取10个数据包时,TCP分类平均准确率是92.02%。UDP流量分类平均准确率为91.79%。可以看出,TCP和UDP流量分类统计流前9个数据包平均分类准确率较高。
因此在本文实验数据集上,针对P2P应用流量选定每条流开始的前9个数据包来统计特征是最合适的。
3.4 WMFA算法分类实验对比
本节实验是使用上节结论,统计P2P应用流量每条流前9个数据包的流特征,使用data3离线训练流基本特征,在线回放data1、data2、data4、data5和data6流量,进行在线实时分类,采用WMFA算法和其他四种分类算法进行实验对比,分类准确率和召回率作为评估指标。P2P应用TCP分类准确率对比结果如图1所示,UDP流量分类准确率实验结果如图2所示。
图1 P2P应用TCP流量分类准确率结果
图2 P2P应用UDP流量分类准确率结果
由图1和图2看出,面向主流P2P流量的在线实时分类,WMFA算法的分类准确率高于其他四种分类算法,在5个测试集上分类准确率平均能达到96%以上,而且分类准确率比较稳定,不受数据集大小的影响。对于其他四种分类算法,C4.5分类方法识别准确率相对较高,在不同数据集上,分类比较稳定,准确率基本在93%左右。KNN和NB分类算法分类准确率相对较低,TCP流量分类平均准确率分别为91.08%和91.11%,UDP流量分类平均准确率分别为90.87%和90.75%。KNN分类方法是给出测试元组才处理训练元组,计算复杂度高,空间复杂度高;朴素贝叶斯分类方法需要条件独立性假设,识别准确率也相对较低,基本低于91.5%;SVM分类方法准确率比朴素贝叶斯和K-NN都要高,比C4.5决策树分类准确率低,但是需要建模的时间最长。
针对P2P应用TCP和UDP流量,5种分类算法的召回率实验结果如图3和图4所示。
图3 P2P应用TCP流量分类召回率结果
图4 P2P应用UDP流量分类召回率结果
从实验结果看出,召回率类似于准确率,WMFA召回率较高,无论是TCP流量还是UDP流量召回率平均在95%以上,尤其在测试集data2上的TCP流量达到了97.2%的召回率,整个召回率曲线比较平稳。C4.5决策树对P2P流量分类的召回率维持在91%到94%之间,TCP流量的召回率相对UDP较高,但不是很稳定。SVM和NB分类平均召回率差不多,落在区间88%到92%之间,和C4.5算法类似,TCP流量的召回率相对UDP较高,NB分类召回率不稳定。KNN分类算法平均召回率最低,平均召回率在85%到91%之间,浮动比较大。
针对主流P2P应用流量的在线实时分类,WMFA算法的分类准确率和召回率都高于其他四个分类算法。WMFA算法根据P2P通信原理特征,在一个时间窗口中实时检测离群点。挖掘C4.5分类结果中误识别的流,再将未识别的流和已识别的流进行关联,明显的提高了P2P整体流量分类准确率和召回率。
用data3作为训练集时,data2和data5数据集作为测试集。选择data2和data5是因为data2测试集大小为1.08 GB,是5个测试集中最小的,而data5测试集大小是5.32 GB,是5个测试集中流量最大的,通过两个流量大小差距最大的测试集来实验,测试分类算法在不同大小应用分类准确率的稳定性。我们对比5种分类算法识别各种P2P应用TCP和UDP流量细粒度的准确率。data2作为测试集时,各个P2P应用TCP和UDP分类准确率结果如图5和图6所示。
图5 data2 TCP应用分类准确率
图6 data2 UDP应用分类准确率
data2测试集的应用分类结果可以看出,WMFA应用分类在线分类的平均准确率达到96%以上,在不同的P2P应用中分类准确率比较稳定。具体到细粒度P2P应用上,每个P2P应用TCP和UDP流量分类都是WMFA分类准确率最高。下载类的P2P应用迅雷和uTorrent以及QQ旋风流量的分类平均准确率相对较低在95.5%左右,而音视频类的P2P应用比如优酷和暴风以及搜狐视频分类准确率较高,最低也有96%,有的达到97.87%的分类准确率。相比其它4个分类算法,C4.5分类平均准确率相对KNN和NB以及SVM都较高,应用分类准确率平均在93%,KNN和NB分类准确率较低,应用分类平均准确率在90.8%左右。可以看到KNN分类算法,除了优酷和暴风分类准确率平均在92%以上,其它应用分类准确率在80%到91%之间。data2测试集流量比较小,5种分类算法分类都比较稳定,各个应用分类准确率浮动不大。
当使用data5作为测试集时,各个P2P应用TCP和UDP分类准确率结果如图7和图8所示。
图7 data5 TCP应用分类准确率
图8 data5 UDP应用分类准确率
在线回放测试集data5和data2,从实验结果可以看出,两个测试集的分类有一些差别。相同点在于,WMFA在线分类P2P应用的平均准确率也达到96%以上,在不同的P2P应用中分类准确率比较稳定。不同点在于,对其他四种分类算法,分类平均准确率有所下滑。对于TCP流量,NB分类算法下滑了2点百分点,UDP流量分类中,KNN分类算法下滑了1.5个百分点。同时单独从测试集data5中实验结果看出,针对P2P应用WMFA算法分类比较稳定,而其它四种算法分类准确率浮动比较大。可以看出,KNN分类算法在识别迅雷应用时分类准确率只有85.3%,腾讯视频TCP流量分类准确率也仅有86%,NB算法在识别UTorrent的TCP流量是分类准确率仅有87.02%,其他应用分类准确率基本在89%以上。同时,SVM分类准确率从87.02%到94.48%,浮动较大。这说明NB和K-NN以及SVM分类算法受数据集大小的影响。
综合来看,针对主流P2P应用流量在线分类,WMFA算法在P2P应用分类准确率上明显高于其他分类算法,分类平均准确率达到96%以上,而且分类比较稳定,不受数据集大小的影响。WMFA算法中考虑了P2P应用通信原理,在分类中挖掘出分类器误识别的应用流,并采用时空关联方法进行多流之间的关联,最终达到分类准确率和召回率的明显提升。
随着P2P网络流量的日益复杂多样,有效的P2P应用分类有利于科学管理规划网络流量。本文面向P2P主流应用细粒度在线实时分类提出基于滑动窗口多流关联的算法WMFA,实时粒度是一个时间单位窗口,有效地提升了P2P应用流量分类的准确率和召回率。结合P2P应用通信原理,提取出P2P应用流量特征,可以有效的减少流特征的数量。在性能方面,没有计算整个流的特征,而是通过计算每个流的前9个数据包来提升分类的性能。实验结果表明WMFA算法针对常见P2P应用在线实时分类的平均准确率达到96%以上,相比其他分类方法分类准确率平均提高约3%,最高能提高7%,分类稳定性较高。
本文的主要贡献在于:
(1) 有效地减少了P2P应用流统计特征维数。针对P2P应用,在Moore流特征的基础上,本文结合P2P网络应用通信原理,提取P2P应用特有的流属性,包括流的窗口属性和前三个数据包负载长度,将流特征维数降低至10维,有效的减少了流特征的维数。
(2) P2P应用流量统计特征提取只需考虑流前9个数据包,以往的研究一般是考虑从整条流提取流统计特征,本文仅考虑P2P应用每条流前N包的统计特征,并通过实验确定N取9是最合适的,通过减少计算每条流开始的数据包数目,有效提高了分类性能。
(3) 针对主流P2P应用流量在线实时分类提出WMFA算法,有效的提升了P2P应用流量分类准确率和召回率。P2P应用流量分类达到了较高的分类准确率(平均在96%以上)。
[1]MooreAW,PapagiannakiKP.Towardtheaccurateidentificationofnetworkapplications[C]//Proceedingsofthe6thInternationalWorkshoponPassiveandActiveMeasurement(PAM2005),Boston,MA,USA,2005:41-54.
[2]DewesC,WichmannA,FeldmannA.AnanalysisofInternetchatsystems[C]//Proceedingsofthe3rdACMSIGCOMMConferenceonInternetMeasurement.NewYork:ACMPress,2003:51-64.
[3]MooreA,ZuevD,CroganM.Discriminatorsforuseinflow-basedclassification[R].RR-05-13,DepartmentofComputerScienceResearchReports,QueenMaryUniversityofLondon,2005.
[4]MadhukarA,WilliamsonC.AlongitudinalstudyofP2Ptrafficclassification[C]//Modeling,AnalysisandSimulationofComputerandTelecommunicationSystems,2006 14thIEEEInternationalSymposiumon.IEEE,2006:179-188.
[5]RoughanM,SenS,SpatscheckO,etal.Class-of-servicemappingforQoS:astatisticalsignature-basedapproachtoIPtrafficclassification[C]//Proceedingsofthe4thACMSIGCOMMConferenceonInternetMeasurement.ACM,2004:135-148.
[6]SenS,SpatscheckO,WangD.Accurate,scalablein-networkidentificationofp2ptrafficusingapplicationsignatures[C]//Proceedingsofthe13thInternationalConferenceonWorldWideWeb.ACM,2004:512-521.
[7]LiuJ,LiuF,HeD.TheidentificationforP2PThundertrafficbasedondeepflowidentification[C]//CloudComputingandIntelligentSystems(CCIS),2012IEEE2ndInternationalConferenceon.IEEE,2012:504-507.
[8]KaragiannisT,PapagiannakiK,FaloutsosM.BLINC:multileveltrafficclassificationinthedark[J].ACMSIGCOMMComputerCommunicationReview.ACM,2005,35(4):229-240.
[9]CollinsMP,ReiterMK.Findingpeer-to-peerfile-sharingusingcoarsenetworkbehaviors[C]//Proceedingsofthe11thEuropeanConferenceonResearchinComputerSecurity.Springer,2006:1-17.
[10]WangD,ZhangL,YuanZ,etal.CharacterizingApplicationBehaviorsforclassifyingP2Ptraffic[C]//Computing,NetworkingandCommunications(ICNC),2014InternationalConferenceon.IEEE,2014:21-25.
[11]ZuevD,MooreAW.Trafficclassificationusingastatisticalapproach[C]//Proceedingsofthe6thInternationalWorkshoponPassiveandActiveMeasurement(PAM2005).Springer,2005:321-324.
[12]HuangS,ChenK,LiuC,etal.Astatistical-feature-basedapproachtointernettrafficclassificationusingmachinelearning[C]//UltraModernTelecommunications&Workshops,2009InternationalConferenceon.IEEE,2009:1-6.
[13] 徐鹏,林森.基于C4. 5决策树的流量分类方法[J].软件学报,2009,20(10):2692-2704.
[14] 周文刚,陈雷霆,董仕.基于谱聚类的网络流量分类识别算法[J].电子测量与仪器学报,2013,27(12):1114-1119.
[15] Patel S,Sondhi J,Motvani A,et al.Improved Intrusion Detection Technique based on Feature Reduction and Classification using Support Vector Machine and Particle of Swarm Optimization[J].International Journal of Computer Applications,2014,100(18):34-37.
[16] Hong Y,Huang C,Nandy B,et al.Iterative-tuning support vector machine for network traffic classification[C]//Integrated Network Management (IM),2015 IFIP/IEEE International Symposium on.IEEE,2015:458-466.
[17] 潘吴斌,程光,郭晓军,等.基于选择性集成策略的嵌入式网络流特征选择[J].计算机学报,2014,37(10):2128-2138.
[18] Gringoli F,Salgarelli L,Dusi M,et al.GT:picking up the truth from the ground for internet traffic[J].ACM SIGCOMM Computer Communication Review,2009,39(5):12-18.
[19] Hall M,Frank E,Holmes G,et al.The WEKA data mining software:an update[J].ACM SIGKDD Explorations Newsletter,2009,11(1):10-18.
[20] Buitinck L,Louppe G,Blondel M,et al.API design for machine learning software:experiences from the scikit-learn project[DB].arXiv preprint arXiv:1309.0238,2013.
RESEARCH ON EFFICIENT CLASSIFICATION METHOD OF P2P APPLICATION TRAFFIC
Chen Jinfu1,2Zhao Hui3*Chang Peng1Zhang Yongzheng1
1(InstituteofInformationEngineering,ChineseAcademyofSciences,Beijing100093,China)2(UniversityoftheChineseAcademyofScience,Beijing100049,China)3(NationalComputerNetworkEmergencyResponseTechnicalTeam/CoordinationCenterofChina,Beijing100029,China)
Network application has been showing a lot of categories because of the widespread use of Internet applications, especially P2P applications traffic growth. Traditional traffic classification and application identification methods can’t considerable reach stable application classification precision. In order to improve classification accuracy and stability of P2P application traffic and manage network scientifically, this paper proposes WMFA (sliding window multi-flow association) algorithm. Using P2P application traffic statistics feature by reducing the flow statistics feature dimension and reducing the number of packets in each network traffic flow, C4.5 algorithm is used to classify P2P applications. We use WMFA algorithm to mine misrecognized flows, and carry on the multi-flow association on the second recognition to improve the P2P application traffic classification accuracy. Experimental results show that with a decrease in P2P traffic flow characteristics dimension and reducing the number of each flow data packets, WMFA algorithm average classification precision for the domestic mainstream P2P application is more than 96%, the average rate of accuracy than the existing method of 3%.
P2P traffic classification Application recognition WMFA algorithm Multi-flow association
2016-01-07。国家自然科学基金项目(61572496);国家高技术研究发展计划基金项目(2013AA014703)。陈金富,硕士生,主研领域:网络安全。赵慧,工程师。常鹏, 工程师。张永铮,研究员。
TP3
A
10.3969/j.issn.1000-386x.2017.04.020