论文部分内容阅读
Napster的兴起促使人们开始研究Peer-to-Peer技术。在短短的时间内,Peer-to-Peer已广泛应用于分布式计算、即时通讯、协同工作、文件共享等领域,财富杂志更将Peer-to-Peer列为影响Internet未来的四项科技之一。
Gnutella是一个基于Peer-to-Peer文件共享应用系统,同时它也被扩充成协议。Gnutella协议不仅具有简单、开放性等特点,更重要的是已经有基于Gnutella协议的应用系统被广泛应用。虽然Gnutella协议同样具备Peer-to-Peer技术的优势,但是它以洪泛(Flooding)机制转发查询消息来搜索文档资源肯定可扩展性不好。本文针对这一问题来展开研究的。
在深入地研究了Gnutella协议的基础上,同时还对目前国内外学者对于Gnutella文档资源搜索机制的改进进行了总结。本文提出了一种新的消息路由转发机制一I-Flooding法,该方法主要的思想是:冗余链接是造成网络中冗余消息产生的根源,而利用局部的网络拓扑结构信息可以删除冗余链接而减少冗余消息的产生,并且还给出了冗余链接的定义和删除冗余链接的算法;与此同时,把Gnutella网络中的节点组织成各种簇(Cluster),在每一个簇中,节点主要根据其共享文件数作为指标被分为四种类型,即簇头(ClusterLeader)、簇成员(ClusterMember)、簇头/成员(ClusterLeader/Member)和独立的Servent,簇头和簇头/成员类的节点还要构建维护其簇成员的文件索引,查询消息的转发采用了在删除冗余链接的基础上的两阶段法,第一阶段即跳数在4跳以内采用删除冗余链接的洪泛机制,第二阶段即4跳(不包括4跳)以外采取优先向簇头或者簇头/成员类的节点转发查询消息。
通过NS模拟结果显示,I-Flooding可以有效地减少网络中冗余消息的数量;在对两阶段法的查询消息转发机制和Gnutella的洪泛机制模拟对比显示,前者的查询返回结果数比后者多。
最后,在.Net开发平台下实现了一个基于Gnutella协议的文件共享系统,不仅具有一定的实用价值,而且也可以作为进一步研究的软件平台。