1、本科毕业论文 文献综述 通信工程 对等网络流量识别技术研究综述 摘要: 近年来,由于 P2P 技术的不断发展,对等网络已被广泛应用于文件共享、即时通讯、流媒体传输等领域。 P2P 流量逐渐成为互联网流量的重要组成部分。 P2P 业务对 internet起巨大推动作用的同时,也带来了因资源过度占用而引起的网络拥塞以及安全隐患等问题。据调查表明, P2P 流量已占据整个互联网流量的 60%-70%。 P2P 流识别技术作为网络管理技术的重要组成部分,精确识别 P2P 流量对于有效的管理网络和合理的利用网络资源具有重要的意义。因而实现 P2P 流量 的有效识别已经成为急需解决的问题。本文介绍了 P2
2、P 流检测的主要方法,将当前几种典型的 P2P 流量检测技术根据其识别方法不同分为 端口识别技术、深层数据包检测技术( DPI) 、基于机器学习的流量识别技术、基于流量特征的识别技术。着重研究和比较了当前存在的几种 P2P 流识别方案的工作原理,以及其在 P2P 流识别过程中的特点和存在的问题。并针对现有 P2P 流量检测方案存在的不足,提出了基于向量机的 P2P 流量检测方法。 关键词: P2P;流量识别;深层数据包检测;支持向量机 前言 随着 P2P 应用的飞速发展, P2P 流量已经成为互 联网流量的主要流量,占用了大部分的网络带宽。 P2P 流量的快速发展一方面给网络带宽造成严重的负担
3、,而且还以其近乎对称的 流量模式加剧了网络的拥塞状况, 另一方面 ,基于 P2P 的恶意流量也频繁出现在互联网上 , 大量的非法连接加快了带宽的消耗 ,甚至导致拒绝服务攻击 .由此 ,对运营商和企业来说,简单的扩容无法满足容量增长的需要,对 P2P流量进行识别、管理和控制是解决目前网络状况的根本途径。 1 P2P 技术 简介 文 1中介绍了 P2P 先后经历了集中式 P2P、纯分布式 P2P 和混合式 P2P。目前向第四代P2P 转变。 第一代: 集中式 P2P。第一代 P2P 通常由中央服务器和对等实体组成,运行应用的对等实体的计算机拥有一个固定的 TCP 端口。所以,第一代 P2P 通过简
4、易的防火墙或端口号检测就可识别 P2P 流。 第二代:纯分布式 P2P。第二代不存在中央服务器,允许计算机无论何时何地直接连接到其他计算机,对等实体间直接共享文件。其采用了端口跳变技术(不再使用固定的端口号)使用专用端口(一些 P2P 应用使用 80端口来避免防火墙的限制从而访问互联网)和 HTTTP隧道技术( P2P 采用 HTTP 作为他的基础协议,以避免网络的认证)来避免检测。 第三代:混合 网络构架 P2P。混合网络可以获得较好的搜索效率、速度以及网络可扩展性。一些第三代 P2P 应用使用 SSL 加密数据。 第四代:修正的混合构架 P2P,典型的有动态端口选择( P2P 端口允许动态
5、选择传输端口)、双向下载(该项技术可以多路并行下载和上载一个文件或多路并行下载一个文件的一部分,这将大大加速文件分发速度)、智能结合弹性重叠网络(在路由器网络层上设置智能结点,用各种链路对等连接,构成网络应用层的弹性重叠网)。 随着互联网的发展, P2P 流量分析存在着越来越多的问题:许多 P2P 应用开始使用动态随机端口号, P2P 反识 别技术也在不断向前发展,加密手段的出现使得特征字符串匹配等技术也不能满足网络监测和管理的需要。 2 P2P 流检测主要方法的分析 从互联网兴起到 2000 年,大部分互联网流量由 WWW 应用产生,但在以后特别是近几年,P2P 应用变得越来越广泛。 P2P
6、 应用具有和传统的互联网应用( WWW、 FTP)不同的结构和属性 2。因此在分析互联网的流量特点时, P2P 应用和传统的互联网应用的特点都因该被考虑。 2.1 典型的 P2P 流量检测技术分析 P2P 流量识别根据识别粒度可分为粗粒度识别和细粒度识别 3。根据所采用的识别方法不 同, P2P 流量识别又可分为端口识别技术、深层数据包检测( DPI) 4 5 、基于机器学习的流量识别技术 6【 7】 、基于流量特征的识别技术 78等。 2.1.1 端口识别法 端口识别法 9是根据 TCP数据包或 UDP数据包首部的源端口号或目的端口号识别一些常见的业务流量,如 HTTP,SMTP,Telne
7、t, HTTPS 等。 最初的 P2P 流量可通过端口号进行识别,如早期的 Fasttrack 使用 1214 端口进行通信但很快出现了采用可变端口和伪装端口的 P2P 应用软件。 表 1 应用程序端口表范例 应用程序名 称 TCP UDP 代表端口 众所周知的端口 代表端口 众所周知的端口 MSN Messenger 1863 1863,6981-6990,14594 Yahoo Messenger 5101 5101,5050 AIM/ICQ 5190 5190 Soribada 22322 22322,7675,7676,7677 22321 22321,7674 eDonkey 466
8、1 4661,4662,6667 Shareshare 6399 6399 6777 6388,6733, 6777 这种方法的特点是简单快速,然而从上表可以看到一些 P2P 协议不使用固定端口,而是动态的使用端口。而 http 隧道、端口跳跃等技术的使用更是加大了识别、跟踪、控制的难度。可见,基于端口的 P2P 流量识别技术已不能满足当前需求。 2.1.2 深层数据包检测技术 在文献 10中介绍了 深层数据包检测技术是通过对数据包应用层协议的检测解析发现P2P 应用。它的主要原理是协议分析甚至逆向工程的方法来提取 P2P 应用的 Layer7 特征关键字串(或应用签名)并基于五元组(源 IP
9、、目的 IP、源端口、目的端口、协议类型 )的流对数据包净荷进行深层扫描,精确匹配特征关键字、协议包长或进行不同流之间的关联以实现流量识别。几乎每种 P2P 应用都基于自己的应用层协议,通过数据报报文捕获,分析报文特征,为每种 P2P 应用协议定义唯一的特征串。这种检测方法易于理解、升级方便、维护简单,是目前运用最普遍的。 但是 D PI 方式无法识别未知 P2P 应用的流量 ,也无法自动适应 P2P 演进所产生的协议版本升级和新应用的大量涌现 , 越来越多的 P2P 应用 (比如 Skype、 eMule等 ) 开始采用协议加密或传输分块机制 , 这使得分析关键字变得困难甚至 不可能 ;另外
10、 ,该方法需要检查用户数据部分 , 所以在某些地方可能会受到隐私保护方面的限制。 表 2 常见 P2P应用的 payload特征 8 P2P 协议 Payload 特征 eDonkey2000 0x3/oxc5 FastTrack “ Get/.hash” BitTorrent “ GET/torrents/”“0x13BitTorrent” Gnutella “ GNUTELLA”,“GIV”“X -Gnutel” MP2P GO!,MD5,SIZ0x20,STR0x20 Direct Connect “ $Send”,“$Search”,“$Connect” “ $MyNick”,“$Di
11、rection”,“$Hello” Ares “ GET hash:”,“PUSH” EarthStation “ GET/$/” 2.1.3 基于机器学习的流量识别技术 基于机器学习的流量识别技术一般不依赖于应用层负载信息,他利用流量统计特征建立机器学习分类模型识别 P2P 流量。 机器学习的过程通常由两部分组成 , 即分类模型的建立和分类。首先采用训练数 ( 样本 ) 建立分类模型 ; 然后基于该模型产 生一个分类器并对未知数据集进行分类。网络流量分类中所采用的机器学习方法是在 Flow-level 的层次上展开研究的 , 它认为不同的应用具有不同的传输数据的模式 , 因此根据这些模式可以
12、对流量进行分类。通常采用 Flow的统计信息如 IP包的平均大小、流的长度、 IP 包的总个数等描述流量的传输模式。 文献 7中介绍了三种不同的分类方法进行流量分类与应用识别,他们是有监督的 Naive Bayes分类方法、 autocalss方法和无监督的方法 Expectation Maximization。有监督的学习方法是在已知类 别的网络流量中进行训练 , 根据已有的准确的类别来判断其分类的准确性。这种方法无法发现新的应用模式 , 而只能在训练数据集已有的应用类型的基础上 , 对未知的流量进行分类。而无监督的方法就克服了有监督方法的劣势 , 它只根据网络流量的相似程度划分成不同的簇
13、, 从而新的应用被划分到不同的簇中而被识别出来 , 但是必须对该划分结果形成分类器 , 才能对未知流量判断其应用类型。目前的研究表明 , 采用两阶段的分析方法 ,即用聚类的方法进行离线学习和用分类的方法进行在线分类 ,将成为网络流量分类与应用识别的重要发展方向。 2.1.4 基于流量特征的检测技术 这类方法不需要检测包的载荷,而是通过对传输层数据包的包头进行分析,来挖掘 P2P流量所表现出来的行为特征,来对 P2P 流量进行识别,它在传输层表现出来的流量特征相对于其它应用,如 HTTP, FTP, DNS 等,有许多不同的地方。在文献 11中介绍了基于流量特征的检测技术就是利用传输层流量特征如
14、 IP 地址、端口数量、报文长度、上下行流量等信息,主要解决了端口识别和深层数据包检测的不足。基于 P2P 在传输层表现出来的特征,有如下的方法检测 P2P 流量。 1、 TCP/UDP 协议对分析技术 TCP/UDP 协议对分析技术利用了绝大多数 P2P 应用同时使用 TCP 和 UDP 协议的特点。分析结果表明, P2P 一般采用 UDP 协议来发送命令等控制信息,而采用 TCP 协议来传输数据。因此,可以利用 P2P 的这个特征来识别 P2P 流量。但是,如果P2P 应用采用 TCP 而不是 UDP 来完成控制功能的话,此方法将失效。 2、 (IP, PORT)分析技术 (IP, POR
15、T)分析技术是利用了 P2P 系统中节点角色多重性的特点。 (IP, PORT)分析技术的依据是,在 P2P 系统中,每个节点既是客户端,又是服务器,由于每个节点与另外一个节点建立连接时,不论 是源节点还是目的节点,都是随机选择端口,端口号各不相同,因此对于广播了目的地址端口对的节点来说,与自己建立了连接的源 IP地址数和源端口数应大致相同。在实现方法上,主要是统计某个主机所连接到的各个 IP、端口号、数据报大小和传送流量大小。如果连接到的 IP 地址个数和 PORT 个数相等,则认为是 P2P 流量。相反则认为是非 P2P 流量。 3、双向识别当某个方向的流 (五元组定义的流 )被识别为 P
16、2P 流,则其反方向的流必然也是 P2P 流 12。 基于流量行为特征的识别方法具有识别新的 P2P 应用和加密 P2P 应用的能力,但是,此方 法不能识别出具体的 P2P 应用,算法误判率比较高。 2.2 基于支持向量机的 P2P 流量检测方法 基于以上几种检测技术都具有一定的局限性,文献 13中介绍了基于 SVM 的 P2P 流量检测方法。 要实现基于 SVM 的 P2P 流量检测方法首先,对 P2P 网络流量特征进行分析,选择有针对性的特点作为区分 P2P 与非 P2P 的特征。并对采集的数据进行筛选及归一化处理,按选定的流量特征作为 SVM 的特征向量。然后根据历史数据形成训练和测试样
17、本。用训练数据集对支持向量机进行训练,求解并选取最优参数,最后通过测试数据对其进行 测试,并验证分类器的准确率。 图 2.1 训练学习机流程 图 2.2 测试流程 支持向量机是专门针对有限样本的情况,有效避免了利用大量样本给检测机制带来的负担;此方法从理论上说,得到的将是全局最优解,解决了在神经网络方法中无法避免的局部极值问题;算法将实际问题通过非线性变换转换到高维的特征空间,保证机器有较好的推广能力,同时它巧妙地解决了维数问题的 算法复杂度问题。 3 总结 本文介绍了几种典型的 P2P 流量检测技术并分析了其优缺点 ,在此基础上提出了基于向量机的 P2P 流量检测方法。此方法的中心思想是对
18、P2P 网络流量特征进行分析,选择有针对性的特点作为区分 P2P 与非 P2P 的特征。但是没有那一项检测技术能够识别出所有的 P2P流,如何把现有的技术有效的结合起来才使问题的关键。也是今后 P2P 流量识别技术发展的重点。 参考文献 1 王韬 .从 P2P 技术发展历程浅析 P2P 识别技术 J.出国与就业:就业教育, 训练数据集 SVM 流量检测分析引擎 数据分析模块 分析正确 训练结束 纠错模块 Y N 训练数据集 SVM 流量检测分析引擎 数据分析模块 输出分类结果 终止 2011,( 14): 164-164. 2陈宝刚,张 凌,许勇,胡金龙,黄松 .基于 P2P 应用的网络流量特
19、征分析 J. 计算机应用, 2007,3, 27( 3): 532-537. 3 un X, Torres R, Rao S. Preventing DDOS attacks on Internet servers exploiting P2P systems. Computer Networks, 2010,54(15): 27562774. doi: 10.1016/net.2010.05.021. 4 蒋海明,张剑英,王青青,彭娟 .P2P 流量检测与分析 J.计算机技术与发展, 2008,7,18( 7): 74-79. 5 高长喜,辛阳,钮心忻,杨义先 .基于行为特征分析的 P2P
20、流量识别技术的研究 C, 第一届中国高校通信类院系学术研讨会论文集,北京:中国通信学会青年工作委 2007:481-487. 6 鲁刚,张宏莉,叶麟 .P2P 流量识别 EB/OL,2011-10-12. www 点 jos 点 org 点 cn/1000-9825/3995 点 htm. 7 刘颖秋,李魏,李云春 .网络流量分类与应用识别的研究 J.计算机应用研究 , 2008,5,25( 5): 1493-1495. 8 李卿 .支持向量机在 P2P 网络流量检测中的应用 D.哈尔滨:哈尔滨理工大学, 2009,3. 9 余浩,徐明伟 .P2P 流检测技术研究综述 J.清华大学学报, 2009, ( 4) :616-620. 10 简光垚 .基于启发式识别的深层数据包检测 P2P 流的研究与实现 D.广州: 暨南大学,2008, 6. 11 王春枝,李涛 .基于双层特征的 P2P 流量检测 J.计算机技术与发展, 2009,( 7):238-241. 12 VAPNIK V Statistical Learning TheoryM New York: John Wiley andSonsInc,1998: 25-45 13 王孝伟 .P2P 流量的识别与检测技术的研究 D.重庆:重庆大学, 2008,6.