论文部分内容阅读
近年来,随着对等网(Peer-to-Peer)的迅速发展,P2P技术成为人们研究与关注的焦点,而搜索技术作为P2P应用中的核心问题则吸引了大量计算机相关领域科研人员的学习与研究。至今已有各种P2P结构被陆续的提出、实现并得到部署,而其中最为科研人员所熟知而且也是被应用与研究最多的两种结构,一个是结构化的P2P系统,另一个是非结构化的P2P系统。结构化的P2P系统同时也被称为分布式哈希表(distributed hashtable, DHT),在分布式哈希表结构中采用预先制定好的算法策略将数据空间分解并映射到具有唯一标识符节点的集合中,分布式哈希表中非常经典的结构有Chord、 Pastry、 CAN,这些分布式哈希表系统采用全局统一的网络协议使得每个节点对整个系统拓扑结构都具有完全的认知了解,从而表现出对网络中信息的传递很好的控制能力和对资源的管理能力。但是对拓扑结构的认识了解却是信息搜索效率提升的最大阻碍,同时由于采用哈希算法使得DHT天生就是为关键字的精准查询而设计的,而很难支持范围查询,模糊查询等复杂的查询。分布式非结构化的P2P网络不存在定义好的规则来规定数据该存储在哪里,谁与谁该是邻居节点,所以节点对拓扑结构没有任何的认知,例如Gnutella、 Freenet、 BitTorrent和eDonkey是以一种随机的方式组织成简单的层次结构或者图形结构,可以很好的支持模糊查询,范围查询等复杂查询,但是对数据的查询定位主要采用网络泛洪或者random walk方法,与分布式哈希表搜索算法相比、效率低、可靠性差、对网络带宽的消耗严重。本文以长时间深入研究P2P体系结构和结构之上的搜索算法为基础,提出了一种混合的CAN网络拓扑结构,该结构是以分布式哈希表CAN(content address network)为底层拓扑结构,利用CAN的区域概念将网络定义为兴趣域,节点以自己的兴趣爱好为向导加入到CAN层每个区域下的网格拓扑结构中。网格结构是整个P2P系统种的节点的实体结构,该结构是在二叉树上引入额外的链接构成的网状图形结构,使得节点可以通过多种路径到达网络中的其他任何节点,并利用Z-line路由算法在网格上进行信息路由,Z-line算法是在进行查询之前根据查询请求内容计算出网格中目的节点所在范围之后选择一条效率最高的路径将请求传递出去。由于目的节点的大体位置已经知道,这样在搜索相关兴趣资源时具有在最小的网络范围内利用最少的查询信息找到想要的资源。仿真实验的结果表明,该算法有效地约束了搜索范围,提高了P2P资源搜索的搜索成功率减少了搜索时间和网络流量。