论文部分内容阅读
随着计算机网络的迅猛发展,Internet边缘上汇集了成千上万的计算资源、数据资源,传统的基于Client/Server结构的资源共享方式已经不能满足人们的新需求。人们希望利用对等网技术把物理互连的网络设备的计算能力、存储能力以及网络带宽等聚集起来,以实现资源共享、协同工作和联合计算。P2P网络使节点以更自由、更主动的方式加入和离开网络,共享信息资源。如何方便快捷地定位、检索这些资源,从而合理有效地利用它们,成为人们所关注的焦点问题。
首先,本文介绍了P2P网络的基本概念,体系结构以及具体应用,着重介绍了P2P网络的各种拓扑结构及其相应的搜索算法。在此基础上,本文分析了目前P2P网络拓扑存在的问题:无结构化网络通过设置状态变量来实现无重复发送,状态变量的维持会大大降低网络的性能,且无结构化网络在应用层组播时,存在节点分组和负载平衡的问题。而结构化网络需要频繁地哈希资源,网络负担很重,实用性不强。另外,结构化网络不支持模糊查询,存在内容/语义等查询复杂性较高的问题。
为了解决以上问题,本文提出了AVLNet网络的概念。AVLNet网络使用平衡二叉树作为P2P覆盖网络的拓扑结构。该网络中每个节点只需保存父节点和左、右子节点的信息,从而解决了无结构化网络因设置状态变量带来的一系列问题。同时,AVLNet网络又弱化了各节点之间的关系,解决了结构化网络频繁哈希资源所带来的问题。
本文首先设计AVLNet网络的节点加入、节点退出以及节点搜索等动作策略,提出了相应的算法,从理论上对AVLNet网络的可行性进行证明。接着,基于理论的研究成果,给出AVLNet网络的实现方案,并对报文格式及其交互进行设计。然后,使用JXTA开发平台,用Java语言实现AVLNet网络,并通过实验验证了AVLNet网络设计的正确性和可行性。最后,在此基础上,本文使用Matlab仿真比较Gnutella、Chord和AVLNet网络在模糊搜索方面的性能,展示了AVLNet网络的优越性。