P2P流量综合识别方法的研究

(整期优先)网络出版时间:2022-06-13
/ 2

P2P流量综合识别方法的研究

宋迪

民航贵州空中交通管理分局,贵州贵阳, 550012



摘 要

P2P的网络传输优势将是民航未来网络传输的发展方向,而P2P流量占用了大量互联网带宽资源,为保证网络的正常运行,有必要对P2P流量加以识别并适当控制。本文提出一种利用贝叶斯分类技术对网络中P2P流量进行分类的方法,结合深层数据包载荷特征识别和端口识别技术构建了P2P流量识别器。

关键词:P2P;贝叶斯;网络流量;流量控制;识别器


0 引 言

随着网络技术的迅速发展,P2P技术得到了广泛的应用,其传输优势必将是民航未来网络传输的发展方向。P2P技术不断发展的同时,各种P2P业务所产生的网络流量成为网络带宽的最大消费者,一定程度上影响了其他网络业务正常开展。对P2P网络流量进行科学的管理和控制,已成为网络管理者面临的重要课题之一。

本文将探讨一种基于流量特征检测和深层数据分析的精确匹配方法,结合深层数据包载荷特征识别和端口识别技术构建P2P流量识别器,为网络管理者对P2P流量管理提供一种可行的方案。

1 P2P流量综合识别法

P2P流量综合识别法是运用端口识别、流量特征和深层数据包检测共同对P2P流量进行分类识别的方法。在流量识别的开始阶段使用端口识别技术,把网络流量中的一些常规网络业务流量(如www、FTP等)分离出来,去除这些不需要进行识别的常规网络流量,为后面的流量识别分类工作做好准备。对剩余的网络流量,运用流量特征检测技术识别。在进行识别时,结合数据挖掘技术对P2P网络流量进行分析,获取P2P流量产生的特征属性集,用这些流量特征集来识别新的P2P流量。最后通过深层数据包载荷检测技术对识别出来的P2P流量进行精确分类。

首先获取网络流量数据包,让其进入缓存队列,并对数据包进行完整的信息提取,获取网络流的五元组信息。

其次,对缓存队列里的数据包采用IP地址识别,端口识别,TCP/UDP识别技术进行流量识别,识别出一些常规的网络流量和一些采用固定端口进行流量传输的P2P业务。

第三,对于仍没有识别出来的网络流量,采用贝叶斯(Naïve Bayes,简记为NB)分类技术来进行识别,识别出具有P2P流量特征的网络流量,并对这些网络流量进行分类标识,未能识别出具体类型的P2P流量放到下一步去识别。

最后,对于已经具有P2P流量特征的网络流量,使用深层数据包载荷检测技术进行检测,对一些常见的P2P流量进行分类标识,完成对P2P流量的综合识别。

采用贝叶斯分类技术可以检测识别出未知的、加密的、新的P2P流量,克服了深层数据包技术不能识别加密和新出现的P2P流量的弱点。而在最后使用深层数据包载荷特征检测时,又可以对没有分类出来的P2P流量进行精确的类别标识,克服了流量特征识别技术的缺陷。两种方法综合在一起使用,相互克服了各自的不足,体现了各自的优势。

2 贝叶斯分类器的构建

2.1 网络流量样本获取

为采集网络数据,可使用Sniffer等工具软件在待测网络的网关处进行网络数据包的获取,获取一定量网络数据包以后,根据下述流的定义形成双向的网络流。

定义1 在单位时间内产生的具有相同五元组(源IP地址、源端口、目地IP地址、目地端口、协议)的包属于同一个网络流;

定义2 在足够短的时间间隔里出现的数据包,如果数据包的源地址和目的地址相反,源端口号和目的端口号相反,则属于反向的网络流;

定义3 规定流与流之间的空闲时间为60s,即超过60s就被看成不同的网络流。

2.2 样本流的应用类别分析

在用贝叶斯分类法分析网络流样本之前,需要对每个样本流进行类型识别。识别方法由以下几个步骤组成:

步骤1: 检查流的端口是否使用常用端口(如80、21等)。这一步可以识别出MSN流(MSN常用的端口是569)和eMule流(TCP 使用4662端口,UDP使用4672端口)。

步骤2: 对不是MSN流的样本流使用特征串匹配的方法进行匹配。可以识别出Bittorrent流(Bittorrent包从第一个字节开始的特征串为“0x13BitTorrent”)和PPLive流(PPLive数据包的前两个字节中一般包含特征串“0xE903”)。

步骤3: 对没有经过处理的流使用基于综合统计特征的方法识别Skype流。

2.3 流量特征的选取

一个流量样本的特征属性集合可能涉及到一个到几百个的特征,特征属性集合的表述质量会直接影响贝叶斯分类的效果,所以应尽量选择能够代表样本特性的属性作为特征属性。流量特征选择可以减少特征的数量,进而减少学习和分类的时间,同时还可以去掉不相关或冗余的特征,增加分类的精确性。本文选取的流量特征属性集合为:Packets-Num,Packets-Bytes,Packets-Time,Packets-Rates,Packets-STDev等。

2.4 分类器的学习训练

网络数据包是无结构的记录文件,需要将其转换成向量模型才能进行计算。

定义1:62a69affc16f3_html_d5443c3f2964d929.gif表示网络流样本记录,62a69affc16f3_html_19aeb34df7f7822e.gif。其中,62a69affc16f3_html_bdf644d400606cd5.gif表示样本的第62a69affc16f3_html_31c8712ad49ae564.gif个特征属性,62a69affc16f3_html_d9de0eba18b3fa83.gif为网络流信息样本中的特征属性数目。

定义2:62a69affc16f3_html_c093375d4c9f9aed.gif为类别变量,代表网络流的业务类别。

训练步骤如下:

步骤1:将经过预处理后的数据集分成两部分,即训练样本和测试样本。本文选取80%的数据作为训练数据集,其余数据作为测试数据集。

步骤2:训练过程。从训练样本中学习出贝叶斯网络结构。

步骤3:验证过程。将测试样本集中的每条记录输入给已经训练好的贝叶斯分类器,通过以下贝叶斯公式计算每个测试实例属于各个类的后验概率值:

62a69affc16f3_html_b33b988f17e4bee6.gif

步骤4:决策过程。根据62a69affc16f3_html_afdb3a555ed9d357.gif的最大值来确定X 最大可能的类,即测试样本的类别。

3 测试结果分析

为验证本文识别方法的有效性,我们在某小型企业网上进行了多次应用测试。在某个采样周期内,共采得11251.22M的数据。通过对数据包的综合分析,抽取网络流量样本流共77697个(共4984196个包)作为训练和学习的输入样本。其中训练样本流占全部样本的90%,测试样本流占10%。P2P流的数目是24219,被正确识别并分类的P2P流的数目是23425,分类准确率约为96.722%。经过多次实测,本文方法分类准确率大致在92.537%~98.714%。可以看出,本文的方案在灵活性、适应性及准确率等方面都有了一定的提高。此外,由于本文方法包含有流量特征检测识别功能,可以用来检测加密甚至是新的未知的P2P流量。

参考文献

[1] DENG He, YANG Ai-min, LIU Yong-ding. P2P traffic classification method based on the SVM [J]. Computer Engineering and Applications, 2008, 44(14):122-126.


5 / 5