论文部分内容阅读
P2P (Peer-to-Peer)技术目前已广泛应用于资源共享和内容分发服务,在工程和理论方面都成为了最活跃的研究领域之一。随着各种P2P内容共享网络规模的逐渐增大,节点扰动现象越来越严重。单个节点难以获取和维护网络中大部分节点的信息,节点的邻居数量相对于网络规模越来越小。因此,在节点仅掌握局部网络信息的情况下,如何使用贪婪式的定位技术帮助用户快速找到所需要的资源,成为了一个具有挑战性的研究课题。P2P网络资源定位的性能评价标准不仅包括搜索命中率,还涵盖了网络开销、存储开销、路由维护开销、负载均衡等多个方面,而性能的影响因素也涉及到搜索算法、网络结构、复制机制、路由构造机制等多个方面。提高P2P网络的资源定位性能,需要从多种技术角度来进行研究。P2P网络可分为非结构化和结构化两种类型。在节点仅掌握局部网络信息的情况下,非结构化P2P网络的搜索具有严重的盲目性。贪婪式定位方法在网络扰动比较严重、资源变化比较频繁时,各种性能急剧下降。本文针对该问题,从搜索机制、网络结构和复制机制三个方面进行了研究,提出了不同的解决方法,从而使网络能够在节点扰动频繁的环境中,保持较高的资源定位性能。在节点仅掌握局部网络信息的情况下,结构化P2P网络面临的主要问题是如何构造可提高贪婪式定位性能的路由表,以及降低贪婪式多关键字搜索造成的过高的通信量。本文针对当前的主流DHT (Distributed Hash Table)型结构化P2P网络进行了研究,形式化描述了构造路由表规律,并分析其缺点,给出了改进方法。对常见的Kademlia型结构化P2P网络给出了降低多关键字搜索通信量的实现方法。本文主要研究成果如下:(1)在非结构化P2P网络中,贪婪式搜索通常利用节点存储的历史搜索记录作为消息转发的重要依据。在节点仅掌握局部网络信息的情况下,节点频繁的加入和退出以及资源分布变化会导致历史搜索记录失效,降低搜索命中率。本文针对该问题,形式化地分析了随机漫步搜索易转向高度数节点的特性,逆向随机漫步的性质和单独使用逆向随机漫步的缺点,并提出了一种面向非结构化P2P网络的双向随机漫步搜索机制。这种机制采用Piggybacks方式,在正向搜索转发消息的过程中同时执行逆向搜索,将资源的存储信息、请求信息、更新信息嵌入到转发包中,并与转发过程中访问过的节点进行信息交换,沿搜索路径依次传递。本文对该机制的性能进行了理论分析,实验结果表明该方法能够以较低的开销,提高各种资源包括稀有资源的搜索命中率。(2) Q-learning型搜索是一种应用于非结构化P2P网络的典型的贪婪式搜索机制。尽管双向随机漫步搜索机制可以有效地提高搜索命中率,但转发包中嵌入了大量的额外信息,当资源ID及其状态标志等信息占用的字节数比较多时,容易造成过高的通信量。因此,本文提出了基于节点差异化的Q-learning搜索机制。该机制根据节点的在线时长记录和所存储的资源种类,将节点分成三种类型:服务节点、稳定节点(代理节点)、普通节点。这三种类型的节点分别组成核心服务区、代理区和普通区。节点包括两种偏好:本地偏好和服务偏好。不同类型的节点按照服务偏好进行连接,相同类型的节点按照本地偏好进行连接。Q-learning模型根据资源的种类而不是资源本身来建立且仅在核心服务区内执行Q-learning搜索和模型的更新。普通节点或代理节点需要间接或直接选择合适的服务节点来执行Q-learning搜索。本文从多个方面分析了影响Q-learning搜索性能的各种因素。模拟实验结果表明,当网络扰动比较频繁时,在节点差异化的网络结构中,Q-learning型搜索仍然可以保持较高的命中率。(3)当资源的副本数量和资源的请求数量都比较少时,在节点仅掌握局部网络信息的情况下,对该资源副本和资源请求同时进行Flooding式主动复制是提高搜索性能的一种重要方式,然而这种方式很难控制资源副本和请求副本的数量。针对该问题,本文在对多种P2P网络拓扑结构的行为传播进行了分析,并提出了一种分布感知的协同主动复制机制。该机制执行受限的Flooding式主动复制,节点根据网络局部范围内的资源副本和请求副本分布情况,决定是否执行复制和继续进行传播。本文在模拟网络环境中实现了该方法,并对比和分析了不同网络拓扑结构中,影响副本传播范围和数量的各种因素。(4)在DHT型结构化P2P网络中,资源的索引通常发布到一组特殊节点上,这些节点的ID与资源Key值比较接近。使用基于局部网络信息的贪婪式定位时,每个节点寻找或发布同一个资源,最终发现的目标节点集合并不完全相同。因此,提高搜索命中率,就需要最大化相同目标节点数量,而路由表的构造机制起到了至关重要的作用。本文对该情况下的结构化P2P网络路由表构造机制进行了研究。首先假定网络节点数与ID空间大小相等,网络不存在扰动,对路由构造问题给出了形式化描述方法,并将该问题转化为等价的Change-making问题,基于Canonical原则,得出了2k系统为该假定条件下的最优的路由构造方式。然后延伸到实际的网络环境,并得出2k系统依然是合理的构造方式。最后对ID空间过大的2k路由表结构的缺点进行了分析,提出了一种ID冲突允许的路由表构造方法,并通过实验从多个角度对比和分析了这种网络与典型的Kademlia型网络之间的资源定位性能,结果表明这种方法在节点仅掌握少量网络节点信息的情况下,仍保持较高的搜索命中率。(5)由于寻找或发布相同资源,使用基于局部网络信息的贪婪式定位最终发现的目标节点集合不完全相同,为提高搜索命中率,相同的索引信息会分散存储在多个不同节点上。使用多个关键字寻找资源时,需要寻找每个关键字对应的资源,并将每个关键字分散存储在多个节点上的资源信息进行并集操作,然后再将不同关键字的结果信息进行交集操作。由于单个关键字对应的资源数量比较多,并集和交集操作过程会造成巨大的通信量。本文提出通过优化的布隆过滤器进行搜索结果合并,来降低Kademlia型网络多关键字搜索通信量。这种方法利用通信代价和丢失率评估模型,仅根据集合的大小就可获得优化的布隆过滤器参数。实验结果表明,该方法在允许的丢失率范围内,可以极大地降低网络通信量。