P2P技术浅析及其如何有效控制P2P软件、禁止P2P软件,限制P2P下载

P2P技术浅析及其如何有效控制P2P软件、禁止P2P软件,限制P2P下载
P2P技术浅析及其如何有效控制P2P软件、禁止P2P软件,限制P2P下载
【摘要】文章先将P2P模式与传统的C/S模式相比较,并论述了P2P技术应用的几个领域、技术分类及其存在的一些问题。

  【关键词】P2P;C/S模式;文件共享;路由算法  【中图分类号】TP393 【文献标识码】A 【文章编号】1008-1151(2006)04-0027-02  一、背景  20世纪70年代中期,源于局域网的文件共享P2P技术就开始流行起来了,目前大家所关注的P2P并非新技术,而是旧有技术的新的应用模式。

首开P2P之风较有名的计划是美国柏克莱大学开展的寻找外星生命的SETI@home研究计划。

1999年,SETI@home开始使用P2P计算方法来分析星际间无线电信号,寻找宇宙中可能存在的其他外星文明证据。

P2P技术串联所有参与研究计划者闲置的电脑来执行庞大复杂的运算,然后把结果传到SETI@home总部。

也正是SETI@home计划推动了较近的P2P技术热潮。

2000年用于共享MP3音乐的Napster软件与美国唱片界的一场官司将P2P技术重新带回人们的视线。

之后,各种基于对等网的应用风起云涌。

  二、P2P基本概念  P2P是英文peer-to-peer的缩写,peer在英语里有“(地位、能力等)同等者”、“同事”和“伙伴”等意义。

这样一来,P2P也就可以理解为“伙伴对伙伴”的意思,或称为对等联网或点对点技术。

它是一种网络模型,在这种网络中各节点是对等的具有相同的责任和能力并协同完成任务。

对等点之间通过直接互连共享信息资源、处理器资源、存储资源甚至高速缓存资源等,无需依赖集中式服务器资源就可以完成。

与传统的C/S模式形成鲜明对比。

P2P技术主要指有硬件形成网络连接后的信息控制技术,主要代表形式是在应用层上基于P2P网络协议的客户端软件。

IBM为P2P下了如下定义:P2P系统由若干互联协作的计算机构成,且至少具有如下特性之一:系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;系统中的成员同时扮演服务器与客户端的角色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。

P2P网络是互联网整体架构的基础,互联网较基本的TCP/IP协议并没有客户端和服务器的概念,在通讯过程中,所有的设备都是平等的一端。

    P2P模式与C/S模式的比较:由此可见两者的拓扑结构或说系统中节点的连接方式明显不同。

与传统的C/S模式相比P2P模式有明显的优点:  较早,资源利用率高。

这也是P2P较主要的优点。

  第二,随着节点的增多网络会越稳定,不存在瓶颈问题。

  第三,信息在对等节点间直接交换,高速及时,降低中转成本。

  第四,基于内容的寻址方式处于一个更高的语义层。

  当然P2P也有许多不足之处。

首先P2P缺乏管理机制,不象在C/S模式中只需要在中心点进行管理。

其次P2P网络中数据的安全性难以保证。

另外还存在吞噬网络带宽问题、版权问题。

还有就是目前还没有制定出一致的P2P标准,这对P2P技术进一步发展也是一个障碍。

  三、P2P网络分类  目前存在着多种不同特性的P2P网络,不存在唯一的分类标准,这里考虑2种分类方法。

  (一)依据P2P网络的请求机制和逻辑拓扑结构分  1.集中式的。

这是一种非纯的P2P系统,用中央服务器。

中心服务器保存着所有节点的地址和目标文件信息,这样节点只需要向服务器请求它想要信息所在的节点地址。

Napster采取的就是这种机制。

  2.分布且无结构式的。

这种结构中信息是分布存储的,并且P2P网络的逻辑拓扑是随机的。

请求通过网络一步步执行,直到成功(失败)或超时。

这种结构的效率会非常低。

Gnutella采取的就是这种结构,它的查寻机制用的是flooding算法。

  3.分布有结构的。

这种P2P网络中信息也是分布式存储的,但是P2P网络的逻辑拓扑具有一定的结构。

他们通常用DHT(distributed hash table)技术构建其拓扑结构。

在这种网络结构中请求也是一步步被执行的,在理想的情况下,经过一定的hops请求会被成功执行。

  (二)根据出现时间及目标分  1.较早代P2P系统。

早期的P2P系统如Napster和Gnutella,目标容易快速,但是他们过于简单以致度量性差并且请求效率低。

  2.第二代P2P系统。

第二代P2P系统一般采用DHT技术以实现更好的可度量性和请求效率,并实现负载平衡和保证查询的确定性。

但是第二代系统的网络健壮性和容错不是很好,特别是在有外来的恶意攻击的情况下。

  3.第三代P2P系统。

第三代P2P系统主要提高系统的健壮性,在一些节点存在错误的情况下希望仍能保证下载的顺利进行。

主要的技术有信息的多源复制、增多节点间的联系数目、采用特殊结构拓扑。

  随着P2P技术与其他技术的结合和其自身结构的改进,新的P2P系统的性能将会逐步提高,会在更广阔的领域里得到应用。

  四、P2P技术应用  目前主要包括以下方面:  (一)文件共享  P2P技术使得任意2台相连的计算机间共享文档、多媒体和其他文件成为可能。

Napster和Gnutella就是将P2P文件共享技术投入应用的较好例子。

还有电驴,BT。

  (二)分布式计算  就是将原来需要超型计算机来计算的大型任务进行分块,并通过系统控制中心的调度软件进行调度和管理,分发给普通计算机来执行具体运算操作,完成后返回给控制中心。

自1999年起,美国柏克莱大学的SETI@home研究计划就一直在使用P2P计算方法来分析星际间无线电信号,也正是SETI@home计划推动了较近的P2P技术热潮。

  (三)协作系统  它是另一种类型的P2P网络:一群一起工作的用户相互之间共享着不同的因特网资源,但他们通过协同工作完成一项共同任务。

和文件共享不同,协作系统中的一个用户可在同一时刻将一个信息多点传送到若干个用户。

美国lotus公司创办的Groove Network(www.groove.net)就是较为著名的P2P协作系统应用研究组织之一。

它是运用中继服务器来完成P2P多点传送。

  (四)电子商务  基于P2P技术的直接性和易扩展性,该模式很适用于用户之间的商品交换。

目前主要可用于金融服务、电子商务集市、广告行销、IP电话、购物行为分析等。

  (五)以P2P为基础的深度搜索引擎  P2P技术使用户能够深度搜索文档,而且这种搜索无需通过web服务器,也可以不受信息文档格式和宿主设备的限制,可达到传统目录试搜索引擎(只能搜索到20%~30%的网络资源)无可比拟的深度。

  除了以上几种应用外,还有一些无法预见或无法定论归类的应用模式。

现在人们对P2P的认识还很不完整,应该说在很大程度上P2P的吸引力来源于它的零成本、病毒式传播方式。

  五、存在问题  (一)版权问题  就像Napster的出现冲击着唱片公司的利益一样,大多数P2P服务都将不可避免地和知识产权发生冲突。

  (二)管理困难  P2P网络的精髓在于其“乌托邦”式的管理方式,这种方式给了用户更多的自由,但是这也陷入了“无政府主义”的困境。

可以想象,缺乏管理的P2P网络将会成为病毒、色情内容以及非法交易的温床。

许多P2P公司打算通过P2P网络开展电子商务,但是付费问题、流量计算、商品价值的验证等等都是一时很难克服的困难。

  (三)吞噬网络带宽  P2P使网络变得空前活跃,大多数用户愿意利用P2P网络在计算机之间传送文件,这将大量吞噬网络带宽,特别是在大多数用户更喜欢传送大体积的MP3文件、视频文件的时候,这个问题更加不容忽视。

在我国,网络带宽较窄成了P2P应用难以逾越的障碍。

  (四)安全问题  一个拥有众多用户的P2P网络可能会成为黑客的新的攻击目标,而且分散式结构的P2P网络有利于木马、病毒等破坏性程序的传播,这将极大地威胁P2P网络的安全。

  (五)垃圾信息  由于P2P网络的用户众多,当某个用户进行搜索时,自然会得到大量的搜索结果。

而除了少数有用的信息以外,其他大多数的信息可能都属于垃圾信息。

在缺乏统一的管理的情况下,P2P网络很难对搜索结果进行排序,用户将不可避免地陷入垃圾信息的汪洋大海。

  (六)标准之争  各大公司利益分歧导致开发标准难以统一,这将成为目前P2P发展的主要困难之一。

  六、小结  虽然仍然存在许多问题,但P2P技术正在日趋成熟。

虽然P2P有许多应用,文件共享是较重要的一个应用。

随着加入文件共享网络用户的急剧增加,可扩展性是一个P2P系统成功与否的关键。

由于P2P网络的分布式特点,数据存储和数据传输是内在可扩展的,关键问题是文件定位和查询解析是否可扩展。

目前人们把研究的重点放在了如何有效地查找信息上,较新的成果都是基于DHT(distributed hash table)的分布式查找和路由算法。

现在又提出语义对等网,用语义进行聚簇,来提高搜索效率。

  【参考文献】  [1]吕向辰.P2P技术与应用[J].计算机世界,2001,(28).  [2]宋建涛,沙朝锋,杨智应,朱洪.语义对等网构造及搜索机制研究[J].计算机研究与发展,2004,(4).

未经允许不得转载: 深圳维创信息技术有限公司 » P2P技术浅析及其如何有效控制P2P软件、禁止P2P软件,限制P2P下载

赞 ()
'); })();