辅导:解析,第1张

辅导:解析,第2张

对等网络(P2P)是近年来出现的一种新的网络应用,它开放了网络边缘未被利用的资源。目前随着硬件价格的不断下降,作为客户端的PC拥有相当大的处理能力和存储空,但是这些资源大部分时间都是闲置的。比如在目前互联网流行的C/S配置模式下,用户的PC只是作为展示网页的工具。P2P架构可以使用这些PC来分担网络中心的任务。数百万互联网用户的综合处理能力将远远高于任何一台中央服务器。此外,P2P架构具有开放性和可扩展性。这些都使得P2P应用在短短几年内发展迅速,其架构经历了从集中式服务器(Napster)到纯分布式文件共享系统(Gnutella),再到部分分布式架构(KazaA)。从固定端口到动态端口的数据传输;使用唯一端口连接到与其他应用程序共享的端口(例如使用Web应用程序的80端口等。);从明文传输到加密数据传输。
研究表明,尽管存在版权的问题,但当前的P2P应用仍然呈现出快速增长的趋势,并且变得越来越隐蔽[3]。P2P的快速发展一方面丰富了网络中的应用形式,但另一方面也带来了许多负面问题。比如P2P文件共享过程中的版权问题;P2P应用占用大量网络带宽;以及P2P流量模式给传统网络设计带来的挑战等。其中后者尤其受到网络设计者和管理者的关注。我们知道,当Web应用流量占网络流量的主体部分时,由于Web流量的高度非对称性(用户链路的下行流量远高于上行流量),ADSL、Cable modem等大多数用户接入方式的设计都使得下行带宽远高于上行带宽。在P2P应用中,因为所有主机都是对等的,所以它们的流量具有很大的对称性。研究表明,P2P应用和Web应用的上游流量与下游流量之比分别为1:1.25和1:7,两者相差近6倍[5]。因此,上述设计理念已经不适合当前以P2P流量为主体的网络情况。
可见P2P应用对网络性能的影响是很大的。例如,对于一些ISP,文件共享流量约占其总流量的60%。此外,企业网络中大量的P2P流量也会极大地影响网络性能。因此,无论是从ISP的角度,还是从企业网络管理者的角度,都希望能够有效地识别P2P流量,从而方便网络规划和管理。对于一个企业来说,可以将P2P流量限制在一定的阈值,这样可以为其他重要的应用提供一定程度的QoS保证。或者出于网络管理的需要,直接在内部过滤P2P流量。至于ISP,可以在此基础上控制服务,管理用户。然而,目前P2P识别的主要挑战之一是以可扩展的方式识别P2P流量,同时不需要对所有数据包进行DPI,即深度数据包检测(DPI)。
1 P2P流量识别技术概述
为了控制网络P2P应用占用的带宽,首先必须对P2P流量进行有效的监控,这涉及到以下几个方面:流量采集、流量识别和流量控制。其中,流量采集的技术与其他网络监控方式完全一致,流量控制依赖于不同的网络管理策略,由网络管理者设定,如限制P2P流量或完全过滤P2P流量。所以这里的关键部分是流量识别操作。根据实现思路的不同,可以分为很多类型,如基于包的分析、基于流的分析等。其实现方式直接关系到整个监控系统的执行效率和系统的可用性。
P2P应用已经从固定端口发展到可变端口甚至其他端口进行数据传输,传输的具体内容也从明文传输发展到对传输的数据进行加密。因此,P2P流量识别的技术也经历了相应的变化。本文主要讨论了四种典型的识别方法,包括端口识别、应用层特征识别、流量模式识别和连接模式识别。对于这些技术,我们将在第二节中详细讨论。
2典型的P2P流量识别技术
2.1端口识别方法
在P2P应用的早期,大部分应用使用固定端口,例如Gnutella使用端口6346-6347,BitTorrent使用端口6881-6889等。在这种情况下,识别其流量的方式与识别普通应用包的方式完全相同:被动收集被监控网络中的包,然后检查包的传输层头信息。如果端口号与某些特定的端口号相匹配,则说明该数据包是P2P流量数据包,可以按照预设的动作进行处理。这种识别方法的优点是简单易行,不需要复杂的分组处理就能得出结论。P2P应用之初,非常简单有效,但随着P2P技术的发展,这种方式逐渐不适应,于是后来出现了一些新的技术方案。
2.2应用层特征识别方法
不同于第一代使用固定端口进行数据传输的P2P应用。目前,许多P2P应用可以通过使用随机端口来隐藏自己的存在,其中一些应用甚至可以使用HTTP,SMTP等一些协议使用的知名端口,这使得识别P2P流量变得更加困难:简单地分析包头的端口信息已经无法识别此类应用的存在。
但是,每个应用程序包都携带了特定的消息信息,比如HTTP协议消息中会出现GET、PUT、POST等字样。同样,在各种P2P应用协议中也有类似的信息。因此,人们提出了一种通过检查数据包中携带的负载信息来识别数据包的方法。文献[2]提出了一种利用应用层特征识别P2P流量的方法。在[2]中,作者首先分析了五种常见的P2P协议(Kazaa、Gnutella、Edonkey、Direct Connect和BitTorrent)的特征,提取了它们的特征信息,然后根据特征信息对收集到的数据包进行模式匹配,从而确定这些数据包是否属于某一类P2P应用数据包。例如,Gnutella的连接建立消息具有以下格式
Gnutella Connect/\ n \ n
,响应消息具有以下格式
GNUTELLA OK\n\n
。根据这些和其他类似特征,可以确定对应的消息是否是P2P应用消息,从而确定某个流是否是P2P流。
文献[2]中的实测结果表明,在大多数情况下,该方法可以识别出错误概率小于5%的数据包。
与第一种方法相比,上述方法可以使用可变端口识别P2P流量(这是当前P2P应用发展的一个趋势),并提高其结果的准确性。例如,在相同的情况下,用户数据特征识别方法识别的P2P流量是仅使用端口的方法的三倍[2]。但是,我们不难发现这种方法存在以下问题:
它只能识别已知数据格式的P2P应用,导致每次出现新的P2P应用时都需要修改上述实现,导致可扩展性差;
查用户资料不符合互联网的基本原则,很多情况下由于法律、个人隐私等原因几乎无法查用户资料;
由于需要对数据包内部的数据进行全面的检查和分析,其实现效率并不是很高;
随着技术的发展,一些P2P应用开始使用密文来传输数据。面对这种情况,用户数据识别方法完全无能为力。
以上种种原因导致用户数据识别方法的通用性有限。而且随着P2P技术的发展,这种识别方式也会类似于通过固定端口进行识别的方式,会逐渐不符合实际需要。因此,有必要寻找其他方法来更准确地识别P2P流量。
通过分析端口识别方法和应用层特征识别方法可以发现,虽然它们的实现机制完全不同,但是它们的基本思想都是基于P2P应用的一些外部特征,而这些外部特征是可以隐藏的。一旦出现上述情况,这些识别方法就不再适用。而且以上两种方法只能识别已知P2P协议的流量。一旦有新的P2P应用出现,必须对上述识别方法进行修改才能识别,这就限制了它们的应用范围。因此,为了从根本上解决这些问题,有必要分析P2P应用与Web等其他应用的根本区别,然后利用这些本质特征来识别它们。下面两种方法分别分析P2P应用的流量特征和P2P网络的连接模式特征。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 辅导:解析

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情