Peer-T o-Peer 介绍
最近几年,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技术的特点体现在以下几个方面[1]:
∙非中心化:网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的
瓶颈。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[2]的下载排名中,前十名中有七个项目是基于P2P技术。其中eMule的下载量超过2亿次,Azureus的下载量超过1亿次。这个网站上的工程项目下载量,往往反映当今软件技术的前沿热点。令人瞩目的是,微软公司在新一代操作系统Windows Vista中也加入了P2P技术以用来加强协作和应用程序之间的通讯[3]。
图3 Sourceforge的工程下载排名
目前,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 等。
P2p拓扑结构
拓扑结构是指分布式系统中各个计算单元之间的物理或逻辑的互联关系,结点之间的拓扑结构一直是确定系统类型的重要依据。目前互联网络中广泛使用集中式、层次式等拓扑结构。Internet本身是世界
上最大的非集中式的互联网络,但是九十年代所建立的一些网络应用系统却是完全的集中式的系统,许多Web应用都是运行在集中式的服务器系统上。集中式拓扑结构系统目前面临着过量存储负载、DOS(Denial of Service,拒绝服务)攻击,网络带宽限制等一些难以解决的问题。Peer-to-Peer (简称P2P) 系统主要采用非集中式的拓扑结构,一般来说不存在上述这些难题。根据结构关系可以将P2P系统细分为四种拓扑形式:
∙中心化拓扑(Centralized Topology);
∙全分布式非结构化拓扑(Decentralized Unstructured Topology);
∙全分布式结构化拓扑(Decentralized Structured Topology,也称作DHT网络);
∙半分布式拓扑(Partially Decentralized Topology)。
其中,中心化拓扑最大的优点是维护简单,资源发现效率高。由于资源的发现依赖中心化的目录系统,发现算法灵活高效并能够实现复杂查询。最大的问题与传统客户机/服务器结构类似,容易造成单点故障,访问的“热点”现象和版权纠纷等相关问题,这是第一代P2P网络采用的结构模式,经典案例就是著名的MP3共享软件Napster[1].
Napster是最早出现的P2P系统之一,并在短期内迅速成长起来。它实质上并非是纯粹的P2P系统,而
是通过一个中央索引服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。它的工作原理如图1所示。当某个用户需要某个音乐文件时,首先连接到Napster中央索引服务器,在服务器上进行检索,服务器返回存有该文件的用户信息,再由请求者直接连到文件的所有者传输文件。Napster首先实现了文件查询与文件传输的分离,有效地节省了中央服务器的带宽消耗,减少了系统的文件传输延时。
peer图1 Napster的拓扑结构
然而,这种对等网络模型存在以下这些问题:
∙中央索引服务器的瘫痪容易导致整个网络的崩溃,因此可靠性和安全性较低。
∙随着网络规模的扩大,对中央索引服务器进行维护和更新的费用将急剧增加,所需成本较高。
∙中央索引服务器的存在常引起版权问题上的纠纷,服务提供商容易被追究法律责任。
综合上述优缺点,对小型网络而言,中心化拓扑模型在管理和控制方面占一定优势。但鉴于其存在的上述缺陷,该模型并不适合大型网络应用。
全分布式非结构化拓扑的P2P网络是在重叠网络(Overlay Network)(见标注1)采用了随机图的组织方式,结点度数服从Power-law规律(幂次法则)[2],从而能够较快发现目的结点,面对网络的动态变化体现了较好的容错能力,因此具有较好的可用性。同时可以支持复杂查询,如带有规则表达式的多关键词查询,模糊查询等,采用这种拓扑结构最典型的案例便是Gnutella(音译:纽特拉)。准确地说,Gnutella不是特指某一款软件,而是指遵守Gnutella协议[3]的网络以及客户端软件的统称。目前基于Gnutella网络的客户端软件非常多,著名的有Shareaza、LimeWire和BearShare等。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。