论文部分内容阅读
对等网络(peer to peer)是一种用于信息共享的网络架构,在这种架构中,各节点既是网络服务提供者-服务器,又是网络服务申请者-工作站,即每台计算机都具有相同的功能,无主从之分。由于P2P具有大规模性、动态性、分布性等特点,在这种环境中如何有效的查询资源就成了一个十分具有挑战性的问题。目前,流行的P2P中主要采用的网络结构大致可以分为三种:集中目录式的P2P系统查询,例如,Napster,eDonkey,BitTorrent,利用通过中央服务器保存所有的索引信息的方法共享信息资源;非结构化P2P系统的资源查询,例如,Gnutella和Freenet,采用的是一种flooding的查询方式;结构化P2P系统的资源查询,像Chord,CAN,Pastry和Tapestry使用一个分布式哈希表(DHT)作为系统的基础数据结构。本文研究的是采用环形拓扑结构的Chord系统,该系统提供了一个可扩展的查找协议来满足经常有节点加入、退出的动态P2P系统,它通过使用相容哈希函数把关键字存储在Chord中的相应节点上。相容哈希函数能够通过使每个节点存储数量大概相等的关键字来平衡负载,并且使得当节点加入或退出的时候关键字的相对移动比较小。而且每个在Chord中的节点仅仅需要知道其他少数节点的路由消息,就可以完成信息查询的任务。通过研究现有Chord算法,发现在有些情况下,节点所维护的路由表中会产生一些冗余的信息,这样的信息减慢了在大规模网络中的资源查询速度。因此本文提出了一种改进的方案,简单的说,就是先按照原来算法建立好节点的路由信息表,然后从中顺序扫描,找出这些冗余的路由信息,并删除这些信息,最后根据chord路由的特点,从这种环形拓扑结构中找出等量的新的路由信息,加入到路由表中,来改进这种不足。经过理论分析,这种方法保持了原有路由表的规模,在进行资源查询的时候,加快了查询的速度。但是同样也带来了一些缺陷,即在节点建立路由表时,需要找出冗余信息,并把它删除,然后找出新的信息来代替,这就增加了时间的损耗。