当前位置: > 论文中心 > 计算机论文 >

P2P流量识别(2)

时间:2015-12-25 14:57 点击: 次
数据包特征主要统计单个流内数据包大� ⑹莅酱锏募涓羰奔洹⑹莅嚷�(单位时间内传输数据包的个数)等.列出统计分析部分数据包特征的时间开销和空间开销,其中,n为统计的数据包个数. 不同类别的P2P流量,其数据包

  数据包特征主要统计单个流内数据包大小、数据包到达的间隔时间、数据包比率(单位时间内传输数据包的个数)等.列出统计分析部分数据包特征的时间开销和空间开销,其中,n为统计的数据包个数.

  不同类别的P2P流量,其数据包特征有所差异.Bleul等人比较分析Bittorrent,DirectConnect,eDonkey,Gnutella以及FastTrack这5种P2P流量发现,它们之间的平均数据包长差异较大.除了eDonkey协议外,其他4种频繁出现长度是小于200字节的数据包.Teufl等人指出,音频流的包到达间隔时间非常相似.Marcell等1286JournalofSoftware软件学报Vol.22,No.6,June2011人对Skype呼叫流量进行实验分析发现,平均语音数据包大小在40字节~320字节之间变化,单向讲话流的带宽在20Kbit/s~80Kbit/s之间变化,而skype语音数据包到达的时间间隔是30ms或者60ms,相应的数据包比率分别是33个数据包/s和16个数据包/s.他们利用这些特征将Skype流量与其他的VOIP流量(MSN,YahooMessenger,AOLMessenger,Gtalk)区分开.Bonfiglio等人对skype流量进行实验分析发现,在Skype呼叫连接的前30s内,Skype客户端发送的数据包大小大约是以后发送数据包大小的2倍,平均数据包到达时间间隔是20ms,30ms或者60ms.他们对skype流量识别的误报率为0~0.01%,漏报率为9.82%~29.98%.Yang等人统计包长度、包到达时间间隔和包的字节数等特征,对Bittorrent流量、pplive流量、skype流量和MSN流量的识别准确性在91%~95%.

  Este等人研究了数据包特征的时空稳定性,发现数据包大小受到网络时空环境变化的影响相对最小,而且每个TCP连接成功后的第1个数据包大小对分类的贡献最大.她们仅分析了TCP协议下的数据包特征稳定性,对于UDP协议下的特征稳定性还可以进一步深入研究.文献利用数据包大小和数据包方向(客户端发送的数据包为正,服务器发送的数据包为负)分类网络流,对Bittorrent的识别准确率为96.8%.

  此外,Roughan等人研究,仅统计数据包特征还不足以区分大数据块流和流媒体,也不能将FTP流与WWW流区分开,因此还需要在数据流级获取更多的统计特征.

  (2)数据流特征

  数据流特征主要包括流的源/目的端口号、流大小、流持续时间以及标识位(FIN,SYN,RST,PUSH,ACK,URG)被设置的TCP数据包数目等等.流大小是指同属于一个数据流的所有数据包字节数总和.流持续时间由一个流的结束时刻减去流开始时刻得到.一般而言,TCP流的开始时刻是其SYN数据包到达时刻,TCP流的结束时刻是其FIN或RST数据包到达时刻.UDP流的开始时刻和结束时刻还没有明确定义,目前,CiscoNetflow将流的超时值设置为60s.即,连续两个UDP数据包到达时间间隔超过60s则认为是两个流.

  目前,对于数据流特征提取,国内外学术界已有大量工作.文献对P2P数据流和Web数据流的统计特征进行了比较分析发现,P2P流大小的均值比Web流大小的均值大,P2P流的平均持续时间要比Web流的平均持续时间长.陈庆章等人指出FTP流量和P2P流量各自的数据流特征发现,P2P流的数据包大小变化幅度更大,流的持续时间更长,流的总长度更大.Moore等人提取249种TCP数据流特征,将网络流量粗略分成10种类别,识别Web流量的准确性高达99.27%,而对P2P文件共享流量(KazaA,Bittorrent,Gnutella)识别准确性仅达到36.45%.由于249维特征向量有较大的计算开销和存储开销,Li利用基于相关的快速特征选择算法(fastcorrelation-basedfilter,简称FCBF)从249种数据流特征中选择出12种TCP流特征.此外,Li还提取了9种UDP流特征.Erman等人用向后贪婪特征选择算法从25种TCP数据流特征中选择11种流特征.Chhabra等人提出PISA算法,自动提取流量统计特征.鉴于以往研究,表6列出统计常用数据流特征的时间开销和空间开销,其中,n为统计的数据包个数.

  数据流特征常与机器学习算法结合使用,各个数据流特征结合在一起形成特征向量,作为机器学习算法训练和测试的样本.目前,利用数据流特征分类网络流的研究工作已有很多.文献利用流的持续时间和平均数据包大小分类包含Kazaa在内的7种业务流,总体识别错误率为9.7%.文献利用平均流大小、平均流持续时间等特征分类P2P流量和Web流量,流准确性达到95%,字节准确性达到80%.Jiang等人利用CiscoNetflow得到数据流级的统计信息进行网络流分类,平均准确性达到88.3%.

  P2P流量统计特征不依赖于应用层负载内容,但流量统计特征受网络环境的影响较大,其稳定性相对于应用层负载特征较差.文献指出,Web流持续时间服从双模的Pareto分布,P2P流持续时间服从Weibull-Pareto分布,而文献指出,Web流持续时间和P2P流持续时间近似服从对数正态分布.由于P2P流量在地域分布上的差异性,所以不同的网络实验环境下得到的实验数据不同,流量模型也有所差异.这意味着,利用数据流特征识别P2P流量受网络时空环境的影响较大.文献利用数据流特征建立分类器,并在不同地点采集的数据集上交叉测试,发现分类整体准确性下降.

  2.3.2机器学习算法

  本节先从无监督学习、监督学习、半监督学习3个部分阐述机器学习算法在P2P流量识别领域的应用,再评估与比较各种机器学习算法的性能.

  (1)无监督学习

  目前,国内外基于无监督学习的流量识别研究主要使用了EM(expectation-maximization,期望最大化)算法、AutoClass算法、K均值聚类算法、DBSCAN聚类算法、GMM(高斯混合模型)聚类和HMM(隐马尔可夫模型)聚类算法等.

  EM算法是一种基于概率的聚类算法,它将样本以一定概率指派到簇中.McGregor等人首次将EM算法应用到流量分类中.EM算法将流量样本聚类成若干个簇,从这些簇中选择对分类贡献最大的流量统计特征.

  McGregor等人没有考虑P2P流量的识别,而是粗略地将网络流量分成大数据块传输流、交互流等.EM算法简单且容易实现.在实际流量分类时,EM算法收敛速度较快,但可能达不到全局最优.其计算复杂度线性于流量统计特征数、数据流数和算法迭代次数.

  AutoClass算法是一种无监督贝叶斯聚类算法,是EM算法的一种拓展.它反复使用EM算法以便找到全局最优解.Zander等人用AutoClass算法分类8种协议流量,其中包括Napster的P2P应用流量.他们对Napster的识别准确性不稳定,最差时为0,最好时大约为90%.

  K均值算法以k作为输入参数,把样本集分成k个簇,使得结果簇内相似度高,而簇间相似度低.文献使用K均值聚类算法分类10种协议流量,其中,P2P流量包括eDonkey和kazaa.他们将流量样本集分成50个簇,识别eDonkey的准确性为84.2%,识别kazaa的准确性为95.24%.k均值算法简单且易实现,但该算法有两个局限:一是K均值算法事先随机地选择k个样本作为簇的初始中心,如果初始中心选择不好,K均值算法将要收敛到次优解;二是结果簇总是凸球状的(spherical).在实际的流量分类中,由于数据流的统计特征对分类的贡献不同,结果簇也不应该都是凸球状的.

  文献评估了K均值聚类、GMM和HMM等3种聚类方法分类10种TCP应用流量的性能,发现K均值分类整体准确性为95%左右,而GMM和HMM的分类整体准确性为99%左右.GMM对eDonkey识别的准确率94.1%,对kazaa识别准确率88.9%;而HMM对eDonkey识别的准确率为71.4%,对kazaa识别的准确率为67.7%.苏欣等人比较分析了流量识别中常用的3种聚类算法K均值、DBSCAN和k-medoids,发现K-medoids聚类算法的字节识别率最高.K-medoids聚类算法识别率在91.4%~93.6%之间,计算复杂度为O(nkt)(n是对象的总数,k是簇的个数,t是迭代的次数).文献比较了K均值、DBSCAN和AutoClass等3种聚类算法,发现使用K均值和DBSCAN建立分类模型的时间要小于AutoClass的建模时间,DBSCAN分类流量的准确性要低于K均值聚类算法,但DBSCAN算法的分类精度是最高的.

  (2)监督学习

  监督学习对训练样本集中的每个输入样本提供类别标记和分类代价,并寻找能降低总体代价的方向.

  Roughan等人最早使用监督学习方法分类网络流.他们利用K最近邻法分类7种应用流量.K最近邻算法可以简单描述为:取未知样本x的k个近邻,判断这k个近邻中多数属于哪一类,就把x归为哪一类.他们的实验结果发现:在将所有流量分成3类时,错误率在2.5%~3.4%之间;在将所有流量分成7类时,错误率在9.4%~11.4%之间.

  可见,利用K最近邻方法识别流量时,流量划分得越细,识别的准确率越低.

  Moore等人使用手工方式标记数据流量形成实验数据集(下文简称Moore数据集),他们先用简单的朴素贝叶斯分类算法分类网络流量,分类的总体流准确性较低,仅有65%.这是因为朴素贝叶斯分类算法假定训练集的样本分布为正态分布,但实际上,训练集中的样本分布常常是未知的.贝叶斯核估计算法是用核函数来逼近原有数据集的样本分布,Moore等人在应用贝叶斯核估计分类算法时,分类的流准确性提高到95%以上.尽管贝叶斯核估计算法准确性提高了,但该算法仍旧依赖于各类别样本所占比例.在实际的网络环境中,不同类型的网络流比例是动态变化的,这会影响贝叶斯核估计分类算法的稳定性.

  徐鹏在Moore数据集上使用支持向量机分类流量,对P2P类别的样本识别准确率为86.73%.支持向量机算法将实际问题通过非线性变换到高维的特征空间,并在高维空间中构造线性判别函数来实现原空间中的非线性判别函数,这种变换策略可以有效降低冗余属性和无关属性对分类性能的影响.由于采用二次寻优方法,即使在各流量类别的先验概率不足的情况下,它的分类准确性和稳定性也要比贝叶斯分类算法好.

  C4.5分类算法也不完全依赖于样本分布,文献使用C4.5算法分类流量.该算法的准确性比贝叶斯分类算法好,但建模时间较长.文献评估Bayes网络、决策树和多层感知机(multi-layerperceptron)等3种机器学习算法.他们的实验结果表明,Bayes网络和决策树更适合于高速网络下的流量分类.Williams对贝叶斯网络、C4.5决策树、朴素贝叶斯和朴素贝叶斯分类树等4种算法进行了比较,发现这4种算法流量识别的准确性都在95%以上.但是C4.5决策树算法测试时间最短,更适合实时流量识别.

  基于监督学习的流量分类主要面临两个问题:一是标记的流样本稀缺或难以获取.传统的监督学习算法使用少量已标记的样本建立的分类器,往往不能准确识别训练样本集中没有出现的流类型;二是当网络应用行为发生变化时,传统监督学习算法建立的流量分类器要重新训练.

  (3)半监督学习

  半监督学习是指用大量的未标记的样本和少量已标记的样本建立分类器.文献首次使用半监督学习方法分类网络流量.他们先用K均值算法将大量未标记样本和少量标记样本混合的训练集聚类成若干个不相交的簇,然后使用标记的样本完成簇与类别之间的映射,选择簇中已标记的样本比例最大的类别作为该簇的类别.他们分类8种应用流量,分类的字节准确性在70%~90%之间.

  Qian等人提出基于GMM的半监督流量分类系统,所用的实验数据集是Moore等人的实验数据集.他们在Moore数据集上,每n个样本中选择一个样本作为有标记样本,其余n.1个样本作为未标记样本.实验结果表明,当n的取值越大,分类错误率越高.实际上,n值的增大意味着有标记的样本数减少,未标记样本数增多,所以分类错误率会增大.可见,在实际的流量分类中,为提高分类的准确率,也要保证有标记的样本数.

  基于机器学习的流量识别面临的最大问题就是概念飘移(conceptdrift),即在时刻t得到的最佳分类模型yt,与前一时刻t.1得到的最佳分类模型yt.1不一致.导致这种现象的原因是P2P网络的动态性.Williams也指出,目前机器学习算法识别流量的速度跟不上网络的限速.如何在P2P流量识别中解决概念飘移的问题,可作为未来研究方向.

  (4)机器学习算法的评估与比较

  在流量识别研究中,评估与比较不同的机器学习算法所面临的主要困难在于两点:一是缺少一个可信的评估数据集.基于机器学习的流量分类器在训练的过程中应该采用纯净的数据集,即训练集中的每个样本唯一地属于某个特定的应用(或协议)类别.但是目前已公开的数据集,例如Moore数据集,只是粗略地给出P2P文件共享流量.为此,我们曾开发了一个基于进程的包捕获器以获取纯净的数据样本集,并尝试用单分类支持向量机过滤掉噪音流量.但由于一个应用进程可以支持多种协议的通信方式,该方法也仅适用于分类应用,而不适用分类协议;二是目前分类的流量不同,且机器学习算法使用的参数尚未公布,这给客观地比较机器学习算法的优劣增加了困难.表7比较了目前用于流量识别的机器学习算法.

  2.4基于P2P网络行为特征的流量识别技术

  2.4.1P2P网络行为特征提取

  P2P网络的每个对等体(peer)都承担着两种功能角色,它们既是服务的提供者也是服务的使用者,资源的所有权和控制权分散到网络的每一个结点中.P2P网络行为特征主要包括对等体的连接模式、流行度、扰动性.

  (1)P2P连接模式


   论文榜(www.zglwb.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导代理,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


栏目列表
联系方式
推荐内容
 
QQ在线咨询
投稿辅导热线:
189-6119-6312
微信号咨询:
18961196312