P2P技术与应用浅析

本文作者:admin       点击: 2009-07-09 00:00
前言:
一、引言

随着互联网的飞速发展与普及,网络规模越来越大、网络中的设备数量和种类也越来越多,然而这些资源并没有得到充分利用,如果能将这些处理器、存储设备、网络带宽等资源进行充分利用,将会有效缓解目前互联网所面临的一些问题。P2P就是在这种背景下提出的一种网络技术。许多著名的公司和科研机构认为P2P技术有着巨大的技术和商业价值,都投入了极大的人力和物力。随着像Napster、Gnutella、Freenet等采用P2P技术的应用系统的流行,P2P计算技术越来越受到人们的广泛关注。

二、P2P技

1.P2P的概念
P2P就是“peer to peer”的缩写。peer是“同等者、同事和伙伴”的意思,也可以理解成“伙伴对伙伴”,在计算机网络模式中表示“对等网络”。[1]在这种网络模式中,各节点具有平等的地位和能力,并协同完成各种任务。对等点之间直接互连,共享信息资源、处理器资源、存储资源甚至高速缓存资源,无须依赖服务器就可完成。
2.P2P的网络拓扑结构
所谓拓扑结构是指分布式系统中各个计算单元之间的物理或逻辑的互联关系,是确定系统类型的重要依据。根据网络中各个节点的连接情况,P2P网络拓扑结构可分为:纯P2P系统、中心文件目录/分布式系统、有中间服务器/分布式系统(是前两类系统的折衷)三种不同的形式,如图1所示。[2]
(1)纯P2P系统。在这种系统中,各个节点之间直接连接,构成一个分散式网络。由于网络中没有服务器,节点之间通过基于对等网协议的客户端软件,搜索网络中存在的对等节点,而不必通过服务器可直接建立连接。它的优点在于允许用户自行设定规则和建立网络环境,然而由于没有中心管理者,网络节点往往难以发现,造成网络很难进行安全管理、身份认证、流量控制等问题。
(2)中心文件目录/分布式系统。在这种分布式系统中,各个节点在交换数据时是通过中心文件目录来进行的。由于采用集中式目录管理,所以不可避免地存在单点瓶颈的问题。为了解决瓶颈问题,中间服务器/分布式系统结合以上两类系统的优点,是一种折衷方案。
(3)中间服务器/分布式系统。在这种系统中,文件目录是分布存在的。各个节点在建立连接时,通过中间服务器进行集中认证和建立索引机制,中间服务器仅用于辅助对等点之间建立连接,服务器的功能被弱化。通过分布式文件系统,对等节点之间直接进行通信,建立完全开放的可共享文件目录,运用相对的自由来兼顾安全和管理性。
3、P2P与C/S的区别
目前,互联网中主要的网络模式是C/S(Client/Server)模式。这种模式中服务器一般是一组或一台具有强大运算能力和带宽的高性能计算机,安装有多种服务器软件,能够处理海量数据,具有高速缓存,处理速度快,同时可向互联网的其它PC机提供服务。与服务器联机并接受服务的客户端性能要求相对低些。而P2P网络模式的主要特征就是弱化服务器的功能,甚至可以取消服务器,任意两台计算机互相连接,可以不通过服务器,也可以仅通过中间服务器进行辅助连接,既可以是服务器,同时又是客户机。
P2P技术使得网络用户可以很容易地加入到系统中,利用网络上其它对等节点的信息资源、处理器周期、高速缓存和磁盘空间等资源,但是对等节点通常没有固定的IP地址,并且常常从网络上断开,因此信息的存储及发布具有随意性,缺乏集中管理。P2P技术是基于内容的寻址方式,它会把用户的请求翻译成包含此信息的节点的实际地址,这个地址对用户来说是透明的。[3]

三、P2P的应用

1.资源共享
资源共享是计算机网络技术的重要特征。当前,信息资源主要是采用Web技术来实现。在基于Web方式进行信息资源共享时,大量的客户给Web服务器提出请求,Web服务器能够提供及时、有效的响应,但Web服务器的性能是有限的,因此经常成为这类系统的性能瓶颈。P2P实现全面数据共享,使用者不是从服务器上检索共享资源,而是从和它连接的PC上获得所需要的资源,用户能够自己发现最新的文件列表,而不必担心发布的问题,这是P2P技术最典型的应用。Napster系统就是P2P技术在互联网上共享MP3音乐文件的具体应用,该系统把音乐文件存储在客户节点上而不是服务器节点上,中心服务器上仅存储文件的索引信息,用户之间可以直接共享、传输音乐文件。采用这种方式来共享信息资源可以更充分地利用网络中的带宽资源、提高系统数据通信的效率。[2]
2.对等计算
自从计算机网络出现以后,人们希望通过并行技术、分布式技术把多个网络节点联合起来,利用空闲的计算资源来完成大规模计算任务,随着通信技术和网络技术的快速发展,为P2P技术实现这种计算任务提供了契机。P2P技术在用于对等计算中,每个对等节点不再只是单纯地接受计算任务,它还可以根据自身的情况(比如分到的任务太多),再搜索其它空闲节点,把接受的任务分发下去,中间结果层层上传,最后到达任务分发节点;对等点之间还可以直接交换中间结果,协作计算。利用这种方式,闲散的计算能力和资源得到合理整合,使总体计算能力大规模提升,获得非常可观的计算性能、价格比。这是基于C/S模式的分布式计算技术所无法达到的。[4]
3、搜索引擎
P2P文件搜索技术的出现,成为传统搜索引擎系统强大的搜索工具。利用P2P技术进行搜索时,不经过Web服务器,也不受文档格式和宿主设备的限制,能够进行深度搜索文档,达到传统目录式搜索无可比拟的深度。其搜索范围可在短时间内以几何级数迅速增长,采集到的信息将有更强的实时性和有效性。理论上来讲,最终将包括网络上所有开放的信息资源,但是,由于网络带宽以及路由优化等方面的问题,它的实时性和有效性受到了约束。P2P技术为互联网的信息搜索提供了一个全新的解决方法。
4、协同工作
协同工作是指多个用户之间利用网络中的协同计算平台互相协同来共同完成计算任务、共享信息资源等。P2P的协同工作在通信、共享企业以及在线游戏方面有充分的应用,基于该技术的即时通信软件有早期的ICQ、国内很流行的QQ和微软后来开发的MSN以及目前盛行的网络电话软件Skype等。在共享企业应用中Groove、Magic很好地实现了企业间协同完成任务以及内容共享。协同工作使得在不同地点的参与者可以在一起工作,保证系统中的每个人所获得的信息总是最新的,降低了对服务器存储及性能的要求,网络的吞吐量和快速反应得到大幅度提高,节约了成本,提高了效率。[5]
5、实时通信
实时通信技术是网络中重要的通信技术。所谓实时通信是指诸如OICQ、ICQ等称为“在线聊天”的软件。它的特点是当一个节点申请与另一个节点通信时,首先从主服务器中读取另一节点相应信息,在与另一节点建立起连接后,这两个节点间的通信就不再依赖主服务器,只有当两个节点之间连接不稳定时才通过主服务器中转。P2P的实时通信软件不仅可以随时知道对方是否在线,而且交流双方完全基于点对点通信,不依赖服务器的性能和网络带宽。只是用来控制用户的鉴权、认证等基本信息,并帮助节点之间完成初始连接。[6]
6、网络游戏
目前,基于P2P技术的互联网游戏有很多,它们采用P2P技术建立分布式小组服务模型,配以动态分配技术,使每个服务器的承载人数将在数量级上超过传统的服务器模式,这将大大提高目前多人在线交互游戏的性能,同时每个游戏用户成为一个对等节点,各个节点可以进行大量的点对点通信,从而减少服务器的通信任务、提高性能。

四、结论

P2P技术消除了客户机与服务器的差别,使得网络上所有的计算机都拥有了平等的地位,它们之间可以直接共享信息、计算、空间等资源,而不必通过服务器中转,在避免服务器带来的瓶颈问题和降低服务器成本等方面有明显的优势。然而也仍然存在许多问题,P2P网络中节点的状态、信息的搜索策略、数据索引定位策略等问题都需要进一步的解决。目前人们研究的重点是如何有效地查找信息上,最新的成果都是基于DHT(distributed hash table)的分布式查找和路由算法。现在又提出语义对等网,用语义进行聚簇,来提高搜索效率。