论文部分内容阅读
随着网络计算机系统的飞速发展,信息量越来越庞大,用户对海量信息存储和数据交换、查询、检索等技术和方式的选择越来越重要。为了满足人们对各种类型敏感信息的需求,P2P(Peer–to-Peer)技术应运而生。P2P在对等计算、协同工作、搜索引擎、文件交换等领域有很好的应用前景。在目前的P2P应用模型中,非结构化p2p系统得到了非常广泛的应用。Gnutella是非结构化P2P的网络通信协议,基于Gnutella通信协议的网络叫做Gnutella网络。近年来Cnutella网络发展的非常迅速。但是由于Gnutella网络的资源查询机制采用洪泛策略,从而导致了查询速度慢与查询效果不佳等缺点,限制了P2P网络的进一步发展。如何管理网络连接、实施高效的搜索算法、减少冗余消息、增加搜索的查准率、解决Gnutella网络的可扩展性对该网络的进一步发展至关重要。Gnutella协议洪泛机制的最大问题是导致冗余消息的产生。节点将查询消息向其所有邻居节点转发,从而造成搜索消息被迅速复制,网络负载过重,查准率和查找效率不高。在以往改进的算法中,虽然在一定程度上减少了查询消息的转发量,但是在资源查准率和查找消息可达性方面仍有不足。本文在总结以往改进算法的基础上,对其不足进行改进,引入了一种基于索引机制的资源搜索改进算法。本文首先介绍了P2P的产生背景、主要应用领域及其目前的发展状况,重点分析了非结构化P2P代表协议Gnutella的搜索策略及其改进算法RWRI(Random Walk with Routing Index),并分析RWRI算法存在的不足。其次针对RWRI算法的不足提出了如下改进:通过在路由索引表中增加记录查询信息和当前节点到达资源目标节点的最小跳数信息来指导查询,从而弥补了原算法在指引查询时不能保证查询消息可达性的缺点;引入返回路径表与路由索引表互相呼应,采用缓存查询返回消息的策略来提高重复查询的效率。最后在NS2+Cygwin平台下对本文提出的改进算法进行了验证,将改进算法和改进前算法进行了比较。实验结果表明:改进后的算法在一定程度上提高了资源搜索的查准率,减少了资源搜索的盲目性。