论文部分内容阅读
P2P(Peer-to-peer)作为以文件共享为初始目的的应用,允许任意终端用户对等体(Peer)间通过Internet完成文件交换。在短短几年发展时间里,P2P应用已成为占用Internet流量的主要应用类型。P2P系统支持大量用户的能力,使其能够以较低的成本快速地部署强大的、大规模分布式应用。为充分利用P2P网络中的各种资源,首先要能够有效地发现资源,即搜索到这些资源,但由于P2P网络的动态性以及可扩展性,设计一个好的P2P搜索算法是比较困难的。谣言(Rumor)传播算法,是一种用于消息传递的算法,也称闲聊(Gossip)算法或流行病(Epidemiological)算法,因为消息在网络中的传播很像疾病在易感人群中的传播,即每个节点转发消息的邻居是随机选择的。谣言传播算法同泛洪算法相比,能够大量地减少花销,但由于其消息转发时的随机性,使得该算法不能保证传播的覆盖率,并且增加了完成消息传播的时间。为了克服谣言传播算法的不足,笔者利用Gnutella的幂规律特性,对Rumor算法进行改进。改进算法不再随机选择邻居节点进行转发,而是基于节点的度进行转发。这就克服了消息转发的邻居网随机性带来的局限,从而优化Rumor算法的性能。并运用Gnutella网络模拟软件Gnutellasim对改进算法及原算法进行仿真,证明算法的可行性和有效性。本文的研究工作包括以下3个方面:(1)阐述P2P的一些基本概念和基础知识,包括P2P网络的定义、发展阶段、P2P网络与现在的C/S网络的优缺点分析、P2P的应用以及国内外发展现状。(2)归纳了P2P搜索技术的评价标准,分析了现在P2P采用的泛洪搜索方法,介绍了几种主要的P2P搜索方法,如迭代泛洪、定向广度优先、本地索引等。(3)结合现有的搜索方法,对现有的基于谣言传播机制的搜索算法提出了改进。对改进算法进行了详细的阐述,给出了具体的实现步骤,证明了该方法的正确性。并通过仿真,对改进算法的可行性和有效性进行了验证。