论文部分内容阅读
进入二十一世纪,P2P技术发展十分迅速,各种新的P2P (Peer to Peer)应用软件层出不穷,它改变了传统的C/S (Client/Server)模式,所有节点地位都是对等的,弱化甚至取消了中心服务器,这就对定位资源机制提出了新的挑战,如何快速、高效地定位资源,成为当前P2P研究的一个重点。与结构化P2P系统相比,在非结构化P2P系统中,由于节点异构性和动态性,拓扑结构随意性比较大,传统的搜索算法会导致大量的冗余路由消息,搜索效率较低。因此,研究高效的基于非结构化P2P系统的搜索算法具有重要意义。本文对现有的非结构化P2P系统的搜索算法进行研究,针对SmartSearch算法的缺点,引入在随机图网络中应用的One-hop副本机制,提出一种新的基于非结构化P2P系统的搜索算法,即基于节点连接划分的非结构化P2P搜索算法(CPLA).该算法采用分段消息生存时间TTL(Time To Live),考虑底层物理网络结构,将搜索分为两个阶段,不同的阶段采用不同的搜索算法。该算法旨在保证节点覆盖率的基础上,尽量将搜索控制在本地范围内,减少冗余路由消息。基于CPLA算法,考虑节点近邻密集度,本文还提出基于节点近邻密集度的非结构化P2P搜索算法(PNDA)。该算法旨在以一定的资源开销为代价,进一步将搜索控制在本地范围内,减少冗余路由消息和节点响应时间。最后,基于仿真工具PeerSim,将本文提出的两种算法与SmartSearch算法分别从节点覆盖率、搜索平均跳数和流量开销三个方面进行对比研究。实验结果表明,在相同时间下,CPLA算法和PNDA算法的节点覆盖率较高;CPLA算法和PNDA算法的平均搜索跳数较少;当节点覆盖率相同时,CPLA算法和PNDA算法的流量开销较小。