首页 > 范文大全 > 正文

P2P网络资源发现方式探析

开篇:润墨网以专业的文秘视角,为您筛选了一篇P2P网络资源发现方式探析范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:p2p是一种依赖网络中参与者的计算能力和带宽而不把依赖都聚集在较少的几台服务器上的网络技术。简单介绍了集中式、混合式、无结构化分布和结构化分布四种体系结构下流行的P2P网络的资源发现方式,通过实例分析了各体系下的典型应用并总结了各自的优缺点。

关键词:P2P;体系结构;资源发现

中图分类号:TP 文献标识码:A 文章编号:1672-3198(2010)06-0274-01

P2P被称为“对等”技术,它依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络的目标是高效定位资源以实现节点信息的有效聚合与共享。其特征:(1)是建立在Internet 上的overlay网络,是分布式应用系统,节点间没有集中式的控制或者分层结构。(2)节点间能通过本层路由协议进行对等通信。(3)核心操作是资源的高效、准确发现。

P2P系统的资源发现方式和拓扑结构有密切关系。P2P系统按照其节点组织方式可以划分为以下四种体系结构。

1 集中式

集中式P2P网络中存在一或多台中央索引服务器负责提供目录索引和资源搜索服务。所有节点的信息都存储在中央索引服务器上,并靠它提供对资源的索引服务。节点加入P2P网络时,要先向中央索引服务器注册,建立索引。请求节点需要搜索资源时,向该服务器发送搜索请求。服务器根据请求查询索引,再将结果返回给请求节点。请求节点收到索引信息后,与索引指出的目标节点联系。中央服务器仅提供目录服务,系统的关键功能如文件下载或分布式计算则由分布的单独的节点完成。因此,这类系统并不是纯P2P系统,而是混合P2P系统。Napster就是这种网络的典型代表。

Napster由两部分组成,Napster网站和Napster节点。Napster网站是服务器机群,每个服务器保存部分用户共享文件索引信息,所有服务器整合起来对外面的用户提供服务。每个用户连接到机群中的一台服务器。服务器记录相连用户的共享文件信息和用户位置,并做成索引添加到索引表中。当用户想要查询某文件时,将query发送给与其相连的服务器,该服务器收到query后,与其它服务器协作处理,处理完成后将response返回给用户,response包含所有查到的匹配文件的索引,用户可以根据相应机制选择需要的文件,并根据索引中文件所对应的位置跟相应用户直接建立连接。

2 混合式

混合式P2P网络中节点被分成了超级节点和普通节点。超级节点由具有良好性能及网络带宽的计算机担任,而普通节点与超级节点相联接。超级节点之间形成纯粹的P2P网络,而普通节点围绕在作为主干的超级节点周围。普通节点加入P2P网络时,将选择一个超级节点作为Hub节点,并向超级节点注册自己的共享资源信息,而普通节点需要查找共享资源时,就向Hub节点提交请求,由Hub节点负责查找。典型代表就是KaZaa网络。

KaZaa网络中,选择性能较高的节点作为超级节点,各超级节点之间形成非结构化拓扑,每个超级节点与一些普通节点形成集中式拓扑,即每个超级节点采用“文件索引”将文件标识符映射其相应的位置,这些文件索引分布在KaZaa超级节点中,每个节点为其所有的子普通节点共享的文件保存本地索引。KaZaa超级节点很像一台Napster服务器,不同处在于KaZaa超级节点不恒定,非永久。搜索发现算法在超级节点间转发,超级节点再将查询信息转发给适当终端节点。

3 无结构化分布式

无结构化分布式P2P系统采用去中心化的全分布式资源索引管理结构和通信模式,用户和资源在系统中随机分布和组织,对共享资源的查找只能通过邻居转交的方式进行。各节点都要维护一定数量的邻节点信息,要查找资源时,给邻居发送查询消息,每个收到查询消息的节点首先自检共享内容,察看是否匹配,如存在匹配资源则返回结果,如无匹配资源则将查询消息转发给邻居,如此重复,直到找到所需的资源。其中Gnutella是最具代表性的。

Gnutella网络中所有节点都是对等的,各节点间直接通信,一个新节点首先访问某特殊站点提供“主机缓存服务”得到活动地址将自己接入到Gnutella网络,之后该节点通过探测网络中其它对等机找到邻节点。查找时,该节点先向所有邻节点发送查询消息,其它节点接收到该消息后检查本地是否有符合查询请求的内容,如有则按查询消息发送的路径返回一个查询响应,无论本地是否有符合查询的内容,其它节点都会将查询包以洪泛的方式在网络中继续传递,直到TTL的值为0时才停止转发。

4 结构化分布式

由于非结构化P2P网络的拓扑图是随机图,资源分布没有很强的规律性,系统的可扩展性受到严重限制,后来提出了结构化P2P网络。结构化P2P网络基于确定的拓扑图,主要采用分布式哈希(DHT)路由技术,它通过分布式哈希函数将输入的关键字唯一映射到某节点上,然后通过某些路由算法同该节点建立连接。基于DHT的P2P网络称为结构化P2P网络。下面以Tapestry为例讨论:

在Tapestry网中每个结点都有自己的标识nodeID,每个数据对象也有其标识objectlD,每条消息也有其特定应用的AID(applicationID),通过AID可以区分应用类型。Tapestry中,由一个称之为对象的“root”结点来负责数据对象。理想情况下,找到一个nodeID与对象的objectID相等的结点,则有root(objectID)=nodeID,但这种情况很少发生,此时有root(objectID)=最接近objectID的nodeID。为提高对另面视前一篇情况可加可不加

作者简介:顾晨,襄樊职业技术学院经济管理学院,助理讲师。象的可用性和持久性,Tapestry可通过多个散列值给一个对象制定多个root结点。Tapestry的路由算法为,当前结点选择下一跳时,nodeID与objectID进行后缀匹配,最匹配的为下一跳,如:XXX3一>XX53一>X253一>7253(X表示任意数字)每个Tapestry结点都要维护一个层次结构的“路由表”以适应后缀匹配路由规则,路由表中每一层的结点都要与自身nodeID匹配一定位数后缀。通过上述路由表,Tapestry的后缀匹配路由策略变得高效、容错。一般路由的第m跳所到达的结点至少与目的结点ID的m位后缀相匹配。

P2P网络资源发现的每种方式都有自己的优缺点和应用场合。

集中式的优点是简单。因为资源发现可以由中央目录来实现,所以非常灵活、高效。但由于集中式P2P网络与传统的C/S结构类似,中心服务器成为整个系统的瓶颈,易造成单点失效、网络热点、诉讼、可扩展性差等问题,同时也易导致技术失效或成为恶意攻击的目标。如果服务器因为某些原因失效,则P2P网络可能全面崩溃。

混合式是在纯P2P网络基础上引入了一定程度的集中化处理,由于引入了局部中心的概念,混合式P2P网络也在一定程度上存在中心点问题,作为局部中心的超级节点易于受到攻击,容错性也受到影响,继而给树叶节点带来影响;另外普通节点需要定期更新在Hub节点上的共享资源信息,这些更新的开销也较大。

无结构化分布式容错性好能够较快发现目的节点,支持复杂的查询,抗“抖动”性强。洪泛方法请求、搜寻资源,具有较高的稳定性,但大部分情况下效率较低,定位稀疏资源困难,系统的扩展性差。

结构化分布式的最大优点是能在O(logN)( N为系统中节点的数目)的跳数之内完成文档的路由和定位,便于资源查找,减小开销。出于冗余度以及延时的考虑,大部分基于DHT的P2P系统总是在节点的虚拟标识与关键字最接近的节点上备份冗余信息,避免了单一节点失效的问题。但结构化的资源组织方式由于要维持严密的结构,其维护开销远高于无结构化P2P网络,节点退出网络或崩溃带来的危害也远高于无结构化P2P网络。为了对抗网络动态性,增强网络弹性,结构化P2P网络都设计了专门的方法来对付节点崩溃,但这些方法导致了更大的开销。DHT之后,P2P网络节点间相邻关系与实际物理网络并没有联系,产生了拓扑失配问题,从而导致资源发现性能降低。结构化P2P网络仅支持精确关键词匹配查询,无法支持内容/语义等复杂查询。

参考文献

[1]张文,赵子铭.P2P网络技术原理与C++开发案例[M].北京:人民邮电出版社,2008.