论文部分内容阅读
随着P2P(Peer-to-Peer)技术的发展,P2P应用在互联网中迅速蔓延,由于其在文件共享、资源搜索、分布式计算等方面的优点,使得其成为网络中最重要的组成部分。但是在P2P技术对互联网带来巨大推动作用的同时,其也造成了网络带宽的巨大损耗,甚至引起了网络拥塞,从而导致其他非P2P技术的业务性能的降低,并为网络安全带来了隐患。因此,对P2P流量和网络行为进行有效地监控和管理成为网络运营的重要课题。而如何识别出P2P网络应用产生的网络流量,是对网络流量进行有效监控和管理的关键技术。本文研究了目前已有的P2P流量识别技术,并分析了其原理和特点。基于端口的识别技术使用端口号来识别,但P2P网络应用早已能够通过使用动态端口和伪装端口来躲避检测;基于负载信息的识别技术通过匹配数据包的载荷来识别,该技术准确性高,并能分类P2P应用,但是其对于加密的流量很难检测;基于流量特征的识别技术根据P2P不同于其他网络协议的流量特征检测流量,该技术无需对数据包的具体内容进行分析,无需解析和还原网络协议,因此能够很好地识别加密流量,但其需要大量的离线分析。因此,需要找到一种准确而高效的识别P2P流量的方法。本文研究了能够应用于P2P流量识别的数据挖掘技术,并利用便捷的网络流量采集工具和机器学习平台,对常见的聚类挖掘算法进行了仿真,对各个算法的性能进行了分析。在此基础上,提出了一种改进的P2P流量识别系统,包含客户端和服务器模块。(1)客户端主要负责系统的P2P流量识别功能。结合基于特征进程和基于数据挖掘的两种P2P识别技术,对网络中P2P流量进行实时检测。利用基于特征进程的识别技术检测操作系统的P2P进程,具有很高的准确性;使用无监督的机器学习方法识别未知的P2P流量,具有较高的识别效率。(2)服务器负责接收P2P识别消息,更新和管理网络的P2P进程库。