最近几年,Peer-to-Peer (对等计算,简称P2P) 迅速成为计算机界关注的热门话题之一,财富杂志更将P2P列为影响Internet未来的四项科技之一。
“Peer”在英语里有“对等者”和“伙伴”的意义,因此,从字面上,P2P可以理解为对等互联网。国内的媒体一般将P2P翻译成“点对点”或者“端对端”,学术界则统一称为对等计算。P2P可以定义为:网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源获取者(Client)。
客观地说,这种计算模式并不是什么新技术,自从上个世纪70年代网络产生以来就存在了,只不过当时的网络带宽和传播速度限制了这种计算模式的发展。90年代末,随着高速互联网的普及、个人计算机计算和存储能力的提升,P2P技术重新登上历史舞台并且带来了一场技术上的革命。许多基于P2P技术的杀手级应用应运而生,给人们的生活带来了极大的便利。
从计算模式上来说,P2P打破了传统的Client/Server (C/S)模式,在网络中的每个节点的地位都是对等的。每个节点既充当服务器,为其他节点提供服务,同时也享用其他节点提供的服务。P2P与C/S模式的对比如下图所示:
图1 Client/Server模式
图2 Peer to Peer 模式
P2P技术的特点体现在以下几个方面:
▲ 非中心化:网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。P2P的非中心化基本特点,带来了其在可扩展性、健壮性等方面的优势。
▲ 可扩展性:在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能比较容易地满足用户的需要。理论上其可扩展性几乎可以认为是无限的,例如:在传统的通过FTP的文件下载方式中,当下载用户增加之后,下载速度会变得越来越慢,然而P2P网络正好相反,加入的用户越多,P2P网络中提供的资源就越多,下载的速度反而越快。
▲ 健壮性:P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分节点失效时能够自动调整整体拓扑,保持其它节点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许节点自由地加入和离开。
▲ 高性价比:性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上,利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。目前,P2P在这方面的应用多在学术研究方面,一旦技术成熟,能够在工业领域推广,则可以为许多企业节省购买大型服务器的成本。
▲ 隐私保护: 在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。
▲ 负载均衡: P2P 网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好地实现了整个网络的负载均衡。
与传统的分布式系统相比,P2P技术具有无可比拟的优势,同时,P2P技术具有广阔的应用前景。目前,Internet上各种P2P应用软件层出不穷,用户数量急剧增加。据统计,自2001年以来,大量P2P软件的用户使用数量从几十万、几百万到上千万急剧增加,给Internet带宽带来巨大冲击。如图3所示,在全球最大的开源网站Sourceforge的下载排名中,前十名中有七个项目是基于P2P技术。其中eMule的下载量超过2亿次,Azureus的下载量超过1亿次。这个网站上的工程项目下载量,往往反映当今软件技术的前沿热点。令人瞩目的是,微软公司在新一代操作系统Windows Vista中也加入了P2P技术,以用来加强协作和应用程序之间的通讯。
目前,P2P计算技术正不断应用到军事、商业、政府信息、通讯等领域。根据具体应用不同,可以
把P2P分为大致以下这些类型:
▲ 文件内容共享和下载,例如Napster、Gnutella、eDonkey、eMule、Maze、BT等;
▲ 计算能力和存储共享,例如SETI@home、Avaki、Popular Power等;
▲ 基于P2P技术的协同与服务共享平台,例如JXTA、Magi、Groove等;
▲ 即时通讯工具,包括ICQ、QQ、Yahoo Messenger、MSN Messenger等;
▲ P2P通讯与信息共享,例如Skype、Crowds、Onion Routing等;
▲ 基于P2P技术的网络电视:沸点、PPStream、 PPLive、 QQLive、 SopCast等。