P2P网络模型的比较与分析

2007-08-25 01:30
智能计算机与应用 2007年4期
关键词:通告节点服务器

陶 南

摘要:介绍了当今流行的P2P网络搜索模型。对各种模型的代表软件及其工作原理进行深入的剖析和比较。

关键词:P2P网络搜索JXTA

1P2P网络模型的分类与比较

目前,P2P网络的模式有很多种,主要分类如下:

(1)按系统中是否存在集中式服务器,P2P系统可分为纯粹的P2P系统和混杂式P2P系统(Hybrid P2P或Server-mediated P2P)。前者不存在任何功能的集中式服务器;后者的系统中存在特定功能的集中式服务器,但该服务器并不充当整个系统的核心。

(2)按系统中用户的行为方式,P2P系统可分为多对多、少对少和少对多三类结构。在第一类结构中,系统操作的双方用户人数基本相当,基于因特网的开放式文件共享系统多数属于此类,如GnuteUa、Freenet、Napster等;在第二类结构中,系统是封闭的,即系统的发起者构建一个系统,不允许他人加入,在系统运行期间,所有参与者的地位均等;第三类系统属于典型的开放式分布计算系统,系统中存在少量的中央服务器,为多数用户所使用。

(3)按成员标识管理方式,P2P计算系统可分为集中式和局部式。前者是最直接又比较普通的方式,它创建一个全局的名字空间,保证所有实体的名字都是惟一的;后者既不需要集中式授权机制,也无需求助于分层结构,于是也很自然地采用了公共密钥加密机制。

(4)按实体发现(Discovery)方式的不同,对等计算系统可分为客户/服务器务器模型、直接模型和中介模型。在第一种模型中,可访问实体的发现需要求助于特定的集中式服务器;在第二种模型中,系统中每个实体负责自身的标识功能,以保证能被其他实体所发现:第三种模型是最常见的方式,核心实现方法是请求转发、进行汇合。

2常见模型及其代表软件的工作原理

2.1集中索引模型

集中索引模型并不是一种严格意义上的P2P网络模型。在集中索引模型中,一台或多台有特殊用途的服务器为对等体提供目录服务。对等体向目录服务注册关于自身的信息(其名称、地址、资源和元数据),并根据对目录服务器中信息的查询来定位其他对等体。一旦发现其他对等体的位置信息,该对等体将直接与其建立联系。

P2P领域中集中索引模型的最佳示例是Napster。

Napster的工作原理如图1。目录服务器本身可是对等体(或对等体组成的网络),也可只担当目录而不作它用。

目录服务器位置必须配置到每个对等体中,这可以通过申请一个用户帐户来实现。在加入P2P网络时,对等体就已经将共享资源信息注册到目录服务器。结合图1,目录服务器中已经存放了每个对等体所拥有的资源信息。当对等体ml希望查找资源E时,它首先向目录服务器发送请求,然后,目录服务器根据注册表向ml返回资源E所在对等体m5的地址,接下来ml直接向m5发送关于E的请求,m5收到请求后发送资源E至ml。

这种模型的优点体现在:(1)易于维护索引,查询效率高;(2)由于只需接收返回的结果,客户对等体负载低。

这种模型的缺点有:(1)对目录服务器过于依赖易导致单点崩溃;(2)对目录服务器的性能和网络带宽要求过高,可扩展性差:(3)缺乏统一完善的授权及认证机制,安全性较低。

2.2分布式P2P模型

此类P2P系统既没有专门的中心目录服务器也不对网络拓扑和资源放置进行控制,因此也称之为分布式非结构化模型。网络由若干仅仅遵循某种协议的节点组成,虽然其网络拓扑也可能具有某些松散特性,但是资源的存放却并不依赖任何先验知识或结构模式,Gnutella是这种设计模式的一个典型例子。为了查找特定的资源,节点必须向它的邻居提出请求,这里使用了“洪泛”算法,通过IP多播技术让对等点定期发布资源和传播查询。所有的对等体在任何时候既是查询的发出者,又是搜索处理的执行者。

图2说明了Gnutella的工作原理。假定ml已经通过发送Ping/Pong消息得知邻居是m2和m3,m3的邻居是m4和m5。当对等体ml希望查找资源E时,它首先向其邻居m2和m3发送请求,然后,若m2和m3没有资源E,则分别向各自的邻居转发该请求,如m3向m4和m5转发关于E的请求,如果m5发现符合此请求的资源E,则根据数据包内的信息将资源E直接发送至ml。

这种模型具有的优点包括:(1)完全的分布性使之具有最大的容错性,不会出现单点崩溃现象;(2)能潜在地获得最多的查询结果。

这种模型的缺点主要有:(1)随着对等体数量的增加,网络可能因过多的查询消息而发生拥塞;(2)无法预知网络的拓扑结构;(3)查询的有效期和正确性都不能保证:(4)能力有限的对等体易成为系统瓶颈。

2.3混合P2P模型

在混合P2P模型中,P2P网络由提供查询服务的su—per-peer(超级对等体)和其他客户对等体组成。在资源共享方面,所有对等体的地位相同。这样就形成了一个个以super-peer为中心的自治系统,每个对等体在加入此类网络时都需要连接到某个特定的super-peer上。

JXTA网络就是这种模型的典型代表。它推出了聚集超级节点网络的概念,动态而自适应地将P2P网络成员划分为边缘节点和汇聚节点。边缘节点存放实际的资源通告,而通告的索引则存于汇聚节点中,这使得聚集超级节点网络具有更强的扩展性,也避免了汇聚节点存放过期通告带来的问题。传播查询只发生在更稳定且数量更少的汇聚点中。这大大增强了网络的伸缩性。并降低了广播风暴的可能性。此外,JXTA的默认解析策略也是基于汇聚节点的,这是一种基础的、最小化的发现机制,在发现通告的同时还可以提供hook以使高层发现服务(通常都是基于结构化模型的)如CAN、Chord等来参与发现过程。

JXTA2网络的查询过程如图3所示。每个边缘节点在发布通告的同时将其索引至汇聚节点,这可以在发布通告时同步发送,也可以使用共享资源分布式索引(Shared-Resource Distributed Index SRDI)服务的后台进程定期发送。图3中PeerA和PeerB将各自的通告索引发送至直接相连的汇聚对等体Rdvl和Rdv2。当PeerA查询位于PeerB的资源通告时,首先将查询提交给RdvI,Rdvl查看是否有关于此通告的索引,若没有则将此查询转发给与其相连的Rdv2。Rdv2发现了此通告的索引并将查询传至索引所指向的PeerB。现在PeerB只须把相应的资源通告发送给PeerA了。需要指出的是不论所处的网络类型如何,任何节点都可以作为汇聚节点,如图3中Peer2位于NAT后,仍然可以成为汇聚节点。

这种模型优点主要体现在对网络扩展性的良好支持上,主要表现为:(1)根据对等体的能力合理分担负载;(2)与分布式P2P模型相比,大量减少查询消息传播的数量;(3)与集中索引模型相比,降低了单点崩溃的可能性。

这种模型不足在于实现时缺乏高效完善的网络组织模式,包括:(1)super-peer间的组织模式;(2)客户对等体与super-peer间的组织模式;(3)super-peer间的负载平衡。

3结束语

本文介绍了P2P的定义及网络搜索模型的分类,并对各种模型的代表软件及其工作原理进行深入的剖析和比较,对P2P网络的经营和开发有一定的借鉴作用。

猜你喜欢
通告节点服务器
基于移动汇聚节点和分簇的改进节能路由算法
CAE软件操作小百科(48)
基于点权的混合K-shell关键节点识别方法
2018年全球服务器市场将保持温和增长
取消航行通告(NOTAMC)在航行通告(NOTAM)中的应用
一则通告
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵
浅谈基于P2P的网络教学系统节点信息收集算法
“罚款通告”与“收款指南”