论文部分内容阅读
一个P2P资源共享系统中,需要解决两个方面的问题:资源搜索和资源传送。由于P2P系统本身的分布式存储特点,使得实现具有扩展性的资源传送机制变得相对容易。P2P技术的难点也在于如何发现拥有目标资源的对等点。当前的P2P系统,正在向参与系统的用户数目高速增加,参与的网络设备性能和操作环境差异不断加大的趋势上发展。根据这种趋势,应当使不同的设备根据性能承担不同的任务。混合P2P模式适应了这一趋势,因此研究混合P2P模式的搜索技术具有重要意义。本文在研究各种主流P2P搜索算法的基础之上,重点研究混合P2P网络的搜索。当前混合P2P网络搜索中出现的问题,主要是负载均衡问题、单点失效问题和超级节点(Super-peer)之间的请求转发问题。负载均衡问题是指多个客户节点(Client-peer)把资源索引存放到同一个超级节点上,造成这个超级节点负载过重,而有些超级节点负载过轻;当存放索引的超级节点退出网络时,客户节点就查找不到它所需要的资源的索引信息,出现单点失效;为了完成客户节点的查找情求,超级节点之间会通过洪泛的方式转发请求,容易造成网络拥塞,在P2P网络趋于稳定时,超级节点还是会重复网络不稳定时的查询转发策略,造成不必要的网络负载,出现超级节点之间的查询转发问题。为了解决混合P2P网络搜索中出现的问题,本文在混合P2P网络中引入分布式哈希表(Distributed Hash Table, DHT)、超级节点之间的冗余机制、超级节点之间的漫步机制和超级节点之间的索引调整机制。分布式哈希表利用散列函数,把客户节点资源的索引信息分布到不同的超级节点上,使索引信息尽量均匀分布到不同超级节点上,从而解决负载均衡问题;超级节点之间的冗余机制把客户节点资源的索引信息按照一定的规则,冗余存放到多个超级节点上,从而解决单点失效问题;超级节点之间的漫步机制控制超级节点之间请求转发的深度,避免网络拥塞,超级节点之间的索引调整机制能够在P2P网络趋于稳定时动态地调整资源索引信息的存放位置,减少超级节点之间不必要的查询转发,解决超级节点之间的查询转发问题。在此基础上,本文详细研究了SUN公司的通用P2P编程平台——JXTA,在JXTA平台上实现了本文设计的混合P2P网络搜索模型。通过实验表明,本文提出的改进方法,能有效地解决混合模式搜索中存在的问题。