对等计算
P2P是一种利用位于Internet边缘的各种可用资源(如存储空间、计算能力、媒体内容)的应用,其具有五个关键特性:(1)网络提供节点间实时的数据传输或者消息传递。(2)节点既是客户端又是服务器。(3)网络的内容是由分布的节点提供。(4)节点具有网络控制权和自治权。(5)并不总是连接的节点和可能没有永久IP地址的节点参与。P2P计算主要包括三种资源管理模式:集中式资源管理模式;分布式泛滥资源管理模式;分布式哈希表(DHT,DistributedHashTable)资源管理模式。
1、对等计算定义
P2P(Peer-to-Peer,对等计算)正处于不断发展的阶段,因而并不存在一个精确的定义。当前给出的许多定义都是试图反映了P2P系统发展过程中的某阶段的新特征。下面是P2P系统文献给出的一些定义。
ClayShirkey定义如下:P2P是一种利用位于Internet边缘的各种可用资源(如存储空间、计算能力、媒体内容)的应用。访问这些分散的资源,就意味着要在连接不稳定和IP地址不可预见的环境里工作。由于网络上大量的节点工作在DNS系统之外,这些分散的资源具有不稳定的连通性和未知的IP地址。因此,P2P节点必须能够独立于DNS系统且高度自治。
MikeMiler定义如下:P2P是一个网络体系,其中每个计算机有同等能力和责任。
Miler定义了五个关键特性:
(1)网络提供节点间实时的数据传输或者消息传递。
(2)节点既是客户端又是服务器。
(3)网络的内容是由分布的节点提供。
(4)节点具有网络控制权和自治权。
(5)并不总是连接的节点和可能没有永久IP地址的节点参与。
P2P工作组给出的定义如下:P2P是通过在系统之间直接交换来共享计算机资源和服务。这些资源和服务包括信息交换、高速缓存、处理能力、存储空间。P2P可以整合这些经济的PC机上计算力和网络连接,从而提供企业级的计算平台。
2、P2P的特性
P2P技术从出现到各个领域的应用展开,仅用了几年的时间。从而证明了P2P技术具有非常广阔的应用前景。P2P技术的特点体现在以下几个方面。
(1)非中心化(Decentralization):网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。
(2)可扩展性:在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。
(3)健壮性:P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的,部分结点或网络遭到破坏对其它部分的影响很小。
(4)高性能/价格比:采用P2P架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。
(5)隐私保护:在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。
(6)负载均衡:P2P网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,更好的实现了整个网络的负载均衡。
3、对等计算主要资源管理模式
在P2P系统中,资源管理协议比较成熟,它采用的是主动报告策略,每一个结点周期性地向网络中的其它结点报告它的资源现状,同时发现其邻居结点的相应信息。下面主要来阐述P2P环境中的三种资源管理模式。
集中式资源管理模式
Napster体系结构示意图
分布式泛滥资源管理模式
Gnutella体系结构示意图
随着联网节点的不断增多,网络规模不断扩大,通过这种洪泛方式定位对等点的方法将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。由于没有确定拓扑结构的支持,该模式下无法保证资源发现的效率。即使需要查找的目的结点存在发现也有可能失败。而且采用TTL、洪泛、随机漫步或有选择转发算法,导致直径不可控,可扩展性较差。因此发现的准确性和可扩展性是其面临的两个重要问题。目前对此类模式的研究主要集中于改进发现算法和复制策略以提高发现的准确率和性能。
分布式哈希表资源管理模式
分布式哈希表体系结构示意图
DHT实际上是一个由广域范围大量结点共同维护的巨大哈希表。哈希表被分割成不连续的块,每个结点被分配给一个属于自己的哈希块,并成为这个哈希块的管理者。DHT的结点既是动态的结点数量也是巨大的,因此非中心化和原子自组织成为两个设计的重要目标。通过加密哈希函数,一个对象的名字或关键词被映射为128位或160位的哈希值。该定位机制改变了现有网络中以服务器为中心的模型,使任意两个主机之间可以交换数据、共享信息,具有良好的扩展性、负载平衡。
4、对等计算的研究现状
国外开展P2P研究较为著名的大学和科研机构主要包括UCBerkeley、MIT和AT&T互联网研究中心(ACIRI)。国外开展P2P研究的学术团体主要包括P2P工作组(P2PWG)、全球网格论坛(GlobalGridForum,GGF)。P2P工作组成立的主要目的是希望加速P2P计算基础设施的建立和相应的标准化工作。P2PWG成立之后,对P2P计算中的术语进行了统一,也形成相关的草案,但是在标准化工作方面工作进展缓慢。目前P2PWG已经和GGF合并,由该论坛管理P2P计算相关的工作。GGF负责网格计算和P2P计算等相关的标准化工作。
从国外公司对P2P计算的支持力度来看,Microsoft公司、Sun公司和Intel公司投入较大。Microsoft公司成立了Pastry项目组,主要负责P2P计算技术的研究和开发工作。Sun公司以Java技术为背景,开展了JXTA项目。JXTA是基于Java的开源P2P平台,任何个人和组织均可以加入该项目。因此,该项目不仅吸引了大批P2P研究人员和开发人员。在2000年8月,Intel公司宣布成立P2P工作组,正式开展P2P的研究。工作组成立以后,积极与应用开发商合作,开发P2P应用平台。除了大学、学术团体和IT公司积极参与P2P的研究之外,许多个人和开源爱好者也积极开展P2P研究,其中较为知名的是Freenet系统和Gnutella系统。
国外P2P研究中,JXTA项目最负盛名。Sun公司以Java技术为背景,开展了JXTA项目。JXTA是基于Java的开源P2P平台,任何个人和组织均可以加入该项目。因此,该项目不仅吸引了大批P2P研究人员和开发人员,而且已经发布了基于JXTA的即时聊天软件包。JXTA定义了一组核心业务:认证、资源发现和管理。在安全方面,JXTA加入了加密软件包,允许使用该加密包进行数据加密,从而保证消息的隐私、可认证性和完整性。在JXTA核心之上,还定义了包括内容管理、信息搜索以及服务管理在内的各种其它可选JXTA服务。在核心服务和可选服务基础上,用户可以开发各种JXTA平台上的P2P应用。
国内P2P研究项目主要包括如下:(1)北京大学—Maze:Maze是北京大学网络实验室开发的一个中心控制与对等连接相融合的对等计算文件共享系统,在结构上类似Napster,对等计算搜索方法类似于Gnutella。网络上的一台计算机,不论是在内网还是外网,可以通过安装运行Maze的客户端软件*加入和退出Maze系统。每个节点可以将自己的一个或多个目录下的文件共享给系统的其他成员,也可以分享其他成员的资源。Maze支持基于关键字的资源检索,也可以通过好友关系直接获得。(2)清华大学—Granary:Granary是清华大学自主开发的对等计算存储服务系统。它以对象格式存储数据。另外,Granary设计了专门的结点信息收集算法PeerWindow的结构化覆盖网络路由协议Tourist。(3)华中科技大学—AnySee:AnySee是华中科大设计研发的视频直播系统。它采用了一对多的服务模式,支持部分NAT和防火墙的穿越,提高了视频直播系统的可扩展性;同时,它利用近播原则、分域调度的思想,使用Landmark路标算法直接建树的方式构建应用层上的组播树,克服了ESM等一对多模式系统由联接图的构造和维护带来的负载影响。
5、对等计算的应用现状
P2P实际的应用主要体现在以下几个方面:
(1)P2P分布式存储。P2P分布式存储系统是一个用于对等网络的数据存储系统,它可以提供高效率的、健壮的和负载平衡的文件存取功能。这些研究包括:OceanStore,Farsite等。其中,基于超级点结构的半分布式P2P应用如Kazza、Edonkey、Morpheus、Bittorrent等也是属于分布式存储的范畴,并且用户数量急剧增加。
(2)计算能力的共享。加入对等网络的结点除了可以共享存储能力之外,还可以共享CPU处理能力。目前已经有了一些基于对等网络的计算能力共享系统。比如SETI@Home。这种计算能力共享系统可以用于进行基因数据库检索和密码破解等需要大规模计算能力的应用。
(3)P2P应用层组播。应用层组播,就是在应用层实现组播功能而不需要网络层的支持。这样就可以避免出现由于网络层迟迟不能部署对组播的支持而使组播应用难以进行的情况。应用层组播需要在参加的应用结点之间实现一个可扩展的,支持容错能力的重叠网络,而基于DHT的发现机制正好为应用层组播的实现提供了良好的基础平台。
与传统的分布式系统相比,P2P技术具有无可比拟的优势。同时,P2P技术具有广阔的应用前景。Internt上各种P2P应用软件层出不穷,用户数量急剧增加。根据具体应用不同,可以把P2P分为以下这些类型:
(1)提供文件和其它内容共享的P2P网络,例如Napster、Gnutella、eDonkey、emule、BitTorrent等;
(2)挖掘P2P对等计算能力和存储共享能力,例如SETI@Home、Avaki等;
(3)基于P2P方式的协同处理与服务共享平台,例如JXTA、Groove等;
(4)即时通讯交流,包括ICQ、YahooMessenger等;
(5)安全的P2P通讯与信息共享,例如Skype等。
推荐阅读