论文部分内容阅读
相对于传统的客户端/服务器(Client/Server)模式,对等通信模式(Peer-to-Peer)具有不存在单点瓶颈、负载分散、自愈能力强、可扩展性好等特点,网络中每个节点既是内容的提供者也是内容的消费者,同时还负责路由、转发其它节点的消息。P2P能够充份利用每个节点的资源,实现有效的资源共享,并以此为基础实现各种大量节点参与的应用。按照节点的组织方式,P2P可分为松散组织的非结构化模型(UnstructuredP2P)和具有严格节点组织规则的结构化模型(Structured P2P),本文着重于研究结构化P2P网络中存在的问题并提出相应解决方案。结构化P2P网络中的规则规定了节点的组织方式,以及消息在P2P逻辑网络中的路由规则,节点收到消息后严格按照此规则执行,使得每条消息都有明确的下一跳,并可以在很短的跳数内到达目的节点。规则的制定使得结构化网络的可扩展性很好,并使得它获得广泛的研究和应用,但严格的规则同时也使P2P网络丧失了灵活性,并且应用于实际系统时存在一些问题。本文就影响结构化P2P应用有效性的两个方面(负载均衡、拓扑稳定性)和结构化P2P查询算法存在的两个问题(多关键字查询、模糊匹配)展开深入研究和探讨。论文主要贡献如下:负载均衡是P2P系统在设计时需要考虑的公平性问题之一,但在结构化P2P中,由于节点空间划分不均衡、文件在节点间分布不均衡、不同文件的热门程度以及不同节点的带宽处理能力不同,导致节点间负载不均衡。本文提出了一种基于树型结构的负载均衡方案,针对P2P网络中节点的性能差异和相同节点上文件的差异提出对于文件的负载度量准则,并根据此准则对一些热门文件按照树型结构复制方案进行分块复制,该复制方案具有维护简单、扩展性好、负载更分散的特点。仿真结果表明本方案大大改善了网络的性能,有效地进行了负载均衡。本文针对现有结构化P2P模型的查询算法处理多关键字查询不够高效的问题,在现有的结构化P2P模型基础上,提出一种新型的多关键字检索模型。在一个P2P节点上存储包含一个资源内容的多个关键字的信息,使用带有权重的多关键字向量代表资源信息,并把请求也表示成带有权重的多关键字向量,对请求和资源信息的向量进行匹配,选取符合要求的信息。仿真和分析表明此方案可以显著改善搜索结果的精确性和大大减少搜索所需的寻路跳数。除了对多关键字查询不够高效,现有结构化P2P系统也难于支持信息间的模糊匹配,结构化P2P的信息的查询是通过将关键字哈希成关键字ID,并通过ID查询得到结果的。这种方式使得查询和结果只能进行精确匹配。本文提出一种新的基于兴趣聚类的语义P2P模型ICLEM,使节点在语义概念空间按兴趣进行聚类,形成多个兴趣组,自动组织成一个P2P网络,并可以在该P2P网络中进行基于语义的文本检索,实现了查询和结果的模糊匹配。仿真结果验证了方案的可行性和有效性。本文给出了一个结构化P2P应用服务系统平台的实现,在实现过程中,针对结构化P2P系统由于节点频繁加入退出形成Churn现象,分别从路由表的组织方式、冗余备份、查询报文处理方式方面提出了一些简单易行的改进方案并实施,实验结果表明了方案的有效性。在功能上,系统平台提供了简单易用的API供上层P2P应用使用,实现了包括内容发布、检索、更新,服务发布、更新、取消、订阅、获取,以及事件通知等功能,以及分布式网络测量和路由优化功能,为网络运营商提供网络流量信息和路由优化指导。该系统的设计、实现对于本论文及其它研究者都有着较高的研究价值。