论文部分内容阅读
Peer-to-Peer(P2P)是通过直接交换共享计算机资源和服务的一种网络体系结构。Gnutella作为一种典型的P2P网络通信协议,具有智能发现节点、完全分布式的特点,它能够有效的消除单点瓶颈,使网络具有很强的健壮性。与此同时,该协议也产生了以指数级增长的冗余消息,效率低下,使之只能在小规模的网络上使用,很难成为应用的主流。 本文从Gnutella协议的节点定位入手,提供了两种节点定位模型:网络模型和多播模型。这两种模型都基于Gnutella网络完全分布式和动态性的特点,能够实现节点之间的快速定位,从而获取有效的节点连接信息。我们详细解析了Gnutella网络的广播机制,划分了Gnutella协议中四种消息的优先级,分析了丢弃连接的必要性和可行性。在此基础上,我们提出了F-Measure算法。同时,考虑到Gnutella协议其下层的连接大多是基于TCP和PPP协议的,因此,本文还借鉴了当前Internet上广泛使用的数据流控制方法——ZigZag算法,并对其进行了改进,使其能够更好的辅助F-Measure算法进行Gnutella网络的连接管理。实验数据表明:我们的F-Measure算法及其辅助管理手段能够极大地减少消息的冗余量和极好地适应网络流量的动态变化。