找回密码
 注册
查看: 1858|回复: 2

[转帖]P2P计算深入底层与边缘

[复制链接]
发表于 2003-4-3 19:21:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
清华大学杨广文/国防科技大学黄大正肖侬
    尽管P2P被许多人视为21世纪的技术热点之一,但它并不是一个新概念。早在30年前,就有公司推出了一些具有典型P2P特征的产品。事实上,因特网最初的设计目标就是让网络上的计算机互相之间可以直接通信而不需要中介,只是随后由于网络规模的扩大,“客户/服务器”模型才逐渐成为因特网上占统治地位的计算模型。从这个意义上看,最近两年才开始成为热点的P2P计算实际上是一种“向传统的回归”。
  发展虽然P2P的概念早已有之,但其快速发展却源于因特网的快速崛起。
  第一代因特网通过全局共享的通信媒介来动态地访问远程信息。通过在文本档案中建立指向其他信息源的链接,构成一个信息网络,通过HTTP、FTP、WAIS等标准协议,使人们可以访问动态信息。但在这种模型中,信息网络是分片结构的,存在着许多信息孤岛。
  随着第一个网络浏览器Mosaic的诞生,因特网进入了第二个发展阶段。Mosaic首次提供了一个综合的图形化浏览器,通过HTML和HTTP的结合,屏蔽了信息获取的具体过程和细节,促进了WWW的形成。WWW是一个包括了网络服务器、网络门户和入口以及搜索引擎的信息基础架构。
  在第二代模型中,内容驻存在服务器上,而不是在创建它们的设备上,这使得可用信息源的覆盖范围无论是在质量还是数量上都下降了,与此形成对比的却是Web上信息量的指数增长。
  “资源在哪里创建,就到哪里访问”的愿望促进了因特网进入第三个发展阶段——分布式计算。比如,100万人要同时访问一个站点,是不是意味着必须构建一个高配置的服务器来满足所有人的需求?WWW模型会给一个肯定的回答,而分布式计算模型的答案是可以将此站点分解到100万台PC上,通过Internet上的协作来进行。这一答案隐含着两个显著的改变:搜索分布在网络上进行,内容驻留在边缘(而非中心服务器)。
  正是因为因特网的演变导致了P2P计算的流行。
  Intel将P2P计算定义为“通过系统间的直接交换所达成的计算机资源与信息的共享”,这些资源与服务包括信息交换、处理器时钟、缓存和磁盘空间等。Roku Technologies公司将P2P定义成“使个人与个人之间直接通信成为可能且更便捷的网络结构”。IBM则给P2P赋予更广阔的定义,把它看成是由若干互联协作的计算机构成的系统并具备若干特性。
  总体来讲,P2P计算系统是分布式的,有别于集中式的结构,也有别于基于服务器的结构。纯粹的P2P计算系统不存在不可或缺的服务器(某些混杂系统存在中央服务器,比如Napster),在P2P计算系统中的实体一般同时扮演两种角色:客户和服务器。
  分类典型的P2P计算应用系统的目标主要有以下几类:
  1.资源、信息、服务的共享与管理作为网络系统,“共享”永远是最基本的目标,包括文件、CPU时钟、应用服务等,以文件共享最为常见。文件共享有两种基本方式:基于目录服务的文件共享和对等式文件共享。前者典型的例子为Napster,用户在一个目录服务器中注册文件条目,搜索通过查询该服务器进行以寻找一个匹配的文件拷贝。文件的操作在成员之间直接进行,这种混杂式P2P计算系统结构如图1所示。
  

 楼主| 发表于 2003-4-3 19:22:59 | 显示全部楼层

[转帖]P2P计算深入底层与边缘

    而在对等式文件共享系统中,用户通过系统网络邻居来注册文件,通过网络来搜索文件拷贝,不需要一个集中式的目录服务器,典型例子是Freenet。
  以CPU时钟共享为目标的P2P系统也不少,如SETI@Home、Distributed.net等。大致的实现方式是:系统某个成员要运行一个计算任务,就将它在系统中公告出来,其他成员在认为自身CPU足够空闲的情况下,与该成员联系,下载计算代码在自身上运行,计算结果返回给该成员。在这一过程中,执行任务的成员可根据自身负载变化而主动中止或迁移计算任务。
  2.协作P2P计算系统中的协作分为两个层次:底层为应用程序之间的协作,高层为用户行为的协作。对于特定应用,共享CPU时钟就可实现应用程序之间的协作;但高层用户行为之间的协作一般需借助即时通信来实现。比如时下风行的ICQ和用IBM Lotus软件开发的Groove Networks等。以协作为目标的P2P计算系统对传统的群件是一个挑战,就应用范围来说,前者足以覆盖后者的功能。除即时通信外,协作型对等计算系统也适用于工业系统中,用于控制生产流水线之间的协调与决策过程,如Oculus Tech.、24Link、Engenia、iKimbo等。
  3.构建充当基层架构的互联系统这一目标下的计算系统以共享和协作为基础,不少公司已推出了一些试验性的产品。例如,用于连接不同技术平台或者把分布的设备连接成一个整体的Cytyq’s和Proksim;通过可复用组件编程的OpenDesign;能在不可信的网络上安全地传输数据的WareOnEarth’s;为下一代因特网计算模型提供基层架构的XDegrees等。
  商机与挑战三类P2P计算系统孕育着巨大的商业机会,这也是为什么绝大多数P2P系统产生于商业公司而不是大学等研究机构的主要原因。据IDC估计,2002年将有23.6%的大型公司会安装即时通信系统。Gartner认为,2002年年底前,半数以上的因特网用户会经常登录至少两个基于因特网的P2P应用。Forrester宣称:2002年年底前,300万个家庭会使用P2P程序来和亲友共享数码照片;2004年前33%的在线用户会使用P2P服务来存取数据;2005年前P2P服务会被集成到Adobe、Palm、AOL等公司提供宽带接入服务和个人信息共享的程序中去。另据估计,到2004年,在B2B领域,由于通过P2P系统构造可信的支付机制简化了网上交易过程,会产生5.7万亿美元的收入。
  在迄今的P2P计算系统实现过程中,除一般的技术课题之外,还需要解决以下问题:
  ●制定标准通信协议这类协议都位于应用层,Gnutella的协议在带宽利用、实体标识、安全等方面还存在严重的限制。
  ●匿名机制对等计算系统中一般都有匿名的需求。例如在文件共享应用中,共享文件的创建者不希望他人知道是谁共享了该文件,也不希望暴露这个文件的实际存放位置;下载该文件的用户也不希望他人知道是谁在下载文件;或者,某个用户可能将一个文件存放在他处,此时他不希望提供存储空间的节点知道该文件来自何处。然而,真正的匿名是不可能实现的,因为对等计算系统都定义了不同的名字空间,系统里的所有实体(节点、用户、文件、进程、消息等)都有一个全局或局部惟一的标识符,因此,所谓的匿名机制就是在名字空间之上对使用者屏蔽掉系统或用户要求的身份信息。
  ●系统必须是安全的安全是所有计算机系统的基本需求,尤其是基于因特网的系统,包括资源(软硬件)安全、数据安全和通信安全。针对不同的安全机制,需要实现不同的加密、授权、认证等机制。同时,P2P计算系统有一些不同于传统“客户/服务器”模型的安全需求。
  ●防火墙与NAT 出于安全的考虑,防火墙和NAT(Network Address Translation)的存在严重地降低了因特网的透明性,如果不进行处理,许多P2P系统传输的数据包就不能通过这些设备。
  ●智能代理现代计算机系统对智能性的专注与需求越来越强烈,在对等计算系统中,代理(Agent)的主要工作是提供任务执行、流控、病毒与恶意攻击的防范以及自我恢复等功能。
  结构 Intel提出了一个通用的对等计算系统栈结构(图2):
  
 楼主| 发表于 2003-4-3 19:24:23 | 显示全部楼层

[转帖]P2P计算深入底层与边缘

按系统中是否存在集中式服务器,P2P系统可分为纯粹的P2P系统和混杂式P2P系统(Hybrid P2P或Server-mediated P2P)。前者不存在任何功能的集中式服务器;后者的系统中存在特定功能的集中式服务器,但该服务器并不充当整个系统的核心。
  按系统中用户的行为方式,P2P系统可以分为多对多结构、少对少结构和少对多结构三类。在第一类结构中,系统操作的双方用户人数基本相当,基于因特网的开放式文件共享系统多数属于此类,如Gnutella、Freenet、Napster等;在第二类结构中,系统是封闭的,即系统的发起者构建一个系统,不允许他人加入,在系统运行期间,所有参与者的地位均等;第三类系统属于典型的开放式分布计算系统,系统中存在少量的中央服务器,为多数用户所使用。
  按成员标识管理方式,P2P计算系统可分为集中式和局部式。前者是最直接又比较普通的方式,它创建一个全局的名字空间,保证所有实体的名字都是惟一的;后者既不需要集中式授权机制,也无需求助于分层结构,于是也很自然地采用了公共密钥加密机制。
  按实体发现(Discovery)方式的不同,对等计算系统可分为客户/服务器模型、直接模型和中介模型。在第一种模型中,可访问实体的发现需要求助于特定的集中式服务器;在第二种模型中,系统中每个实体负责自身的标识功能,以保证能被其他实体所发现;第三种模型是最常见的方式,核心实现方法是请求转发。
  现状与未来目前已经有相当多的商品化P2P产品。
  在共享CPU时钟方面,有Applied Metacomputing、Centrata、Datasynapse、Distributed.net、Mithral、Parabon等产品。需要注意的是,这一类产品与网格计算在理念、技术与功能上有许多的重合之处;在文件共享方面,有Free Haven、Freenet、Gnutella、KaZaA、Mojo Nation、Napster、Ohaha、Opennap、Mango等;在文件搜索方面,有InfraSearch、OpenCOLA、Plebio、Thinkstream等产品;在协同工作方面,有24Link、Enginia、eZ、Groove、Interbind等产品。另外,在即时通信、商业营销、P2P式服务器、设备代理和应用平台,甚至多媒体游戏方面,都有许多产品出现。
  这些产品都是针对于某个特定应用设计的特有模型,Sun公司提出的JXTA则致力于创建一个通用的平台,以简单而有效的方式构建特定的对等式和分布式服务与应用,使得开发者不需要过多考虑如何解决对等计算的技术问题,而可以专注于如何实现与完善可扩展、互操作性强且具有高可用性的高层应用。可以说,JXTA是P2P发展史上一个里程碑式的标志。同时,P2P的推出,对Sun来说也具有一定的战略意义——JXTA是Sun用以对抗微软的重要利器之一,这从一个侧面反映出P2P在产业界受到的重视程度。
  从技术角度看,P2P计算并未激发出任何重大的创新,而更多的是改变了人们对因特网的理解与认识。正是由于这个原因,IBM宣称P2P不是一个技术概念,而是一个社会和经济现象。可以说,P2P的出现与第一个浏览器Mosaic的产生很类似,同样的原因,使得P2P在产业界受到注视的程度远远高于学术界。
  从未来看,P2P很可能成为目前基于“客户/服务器”模型的Web的取代者。现在已经有120多家以P2P为主要产品的公司开始起步,这其中还不包括IBM、微软、Intel、Sun等大公司。
转自全国计算机网络计算大赛
http://www.hpc-contest.edu.cn/
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表