时间:2020-09-03 来源:深圳维创信息技术 1
本文从P2P网络的特点以及与传统的客户端/服务器(C/S)网络比较入手,着重分析了P2P在文件共享、即时通讯以及流媒体中的应用。
正文 字体大小:大 中 小 1前言 P2P,Peer to Peer(对等网络)的简称,是一种网络模型。
P2P网络中各节点在功能以及地位上是平等的,对等节点之间可以通过直接连接而共享、传递资源,并不需要通过集中式服务器中转。
与传统的客户端/服务器(C/S)网络模式相比较,它有能更好的利用网络资源、减轻服务器负担以及消除服务器瓶颈等优点。
基于以上优点,P2P模式越来越受到广泛的关注。
很多商业公司、研究部门都认为该技术蕴涵着巨大的商业和技术潜在价值,并从不同的角度应用和研究该技术。
目前主要的研究角度有:文件共享、即时通讯、流媒体、网络游戏以及对等计算等。
但是同时,P2P网络模式也有着诸如安全性能较差以及难以有效管理等传统C/S模式没有的缺点。
所以在利用P2P技术带来的优势的同时,也需要注意其带来的不可避免的负面影响。
2 P2P网络模式的特点 在P2P网络模型中,每个节点(peer)都同时具有资源的使用、资源的提供者以及通讯等三方面的功能,每个节点拥有的权利和义务是同等的。
在P2P的工作方式中,每个节点既是客户端又是服务器。
P2P网络弱化了服务器的功能,将信息数量、成本资源都向网络各节点均匀分布,消除了单个资源模式带来的网络瓶颈,从而实现网络各节点的负载均衡。
2.1 P2P结构模式 (1)集中式 集中式P2P网络由一个中心服务器记录共享信息以及反馈对共享信息的查询。
每个对等节点对它所需的共享信息以及通信负责,下载其它对等节点提供的信息。
集中式结果具有中心化的特点,但是不同于传统的C/S网络。
在C/S网络模式中,每个客户端只能被动的享受服务器提供的服务,客户端之间并不具有交互性能。
而集中式P2P网络中的中心服务器只有索引功能,对等节点之间具有交互性能。
(2)分布式 分布式P2P网络中每个节点功能是相似的,并不存在中心服务器的管理、控制。
对等节点之间直接通信,通过搜索它们所在的分布网络查询服务、定位其它对等节点。
(3)混合式 集中式P2P网络结构有利于资源的快速检索,但是容易遭到直接的攻击;分布式P2P网络抗攻击性能较强,但是缺乏快速检索以及可扩展性。
混合式P2P网络集中了二者优点,依赖中心服务器来完成某些功能。
目前从安全以及性能上考虑,使用较广泛的是混合式P2P网络模型。
2.2 P2P网络模式与C/S模式比较 2.2.1 C/S模式的特点 在传统的C/S模式中,资源完全集中在服务器端,用户之间的交流高度依赖于网络服务器,无法直接交互,服务器是网络的核心。
C/S结构具有以下特点: (1)计算方式集中,信息、资源均保存在服务器端。
服务器具有控制 管理功能,客户端只是高性能的I/O; (2)服务器性能以及带宽直接决定了服务的性能; (3)以Uniform Resource Locator(URL)方式来表示资源地址,URL并不 能很好体现资源内容,而且并不能提供可靠的地址; (4)被发布的资源的分布以及生存期很稳定,并且其存储以及管理也较为集中。
2.2.2 P2P模式相对于C/S模式的优点 P2P网络从其架构以及自身特点与C/S模式相比,特别是如今网络用户呈几 何增长而网络带宽有限的时代,在很多实际应用中有很大的优势: (1) P2P网络中,资源的利用率大大高于C/S网络。
P2P网络的资源由所 有对等节点的资源共同组成,而C/S模式下,纵然客户端的闲置资源再怎么丰富,也不能得到合理的利用。
(2) 随着用户的增加,C/S模式下的服务器负载越来越重,很容易造成系 统的瓶颈,服务器的崩溃将会造成整个网络的瘫痪;而P2P网络中,资源分布在各个对等节点,对等节点越多,网络性能反而越好。
(3) 基于内容的寻址方式,使得P2P网络成为一个更有效、精练的信息仓 库。
(4)资源在对等节点之间直接传递,高速、及时,降低中转成本。
在C/S模式下,网络的运行完全依赖于服务器,而P2P网络只要存在一个节点,网络仍是活动的,节点可以随意的发布自己的资源信息。
P2P网络在性能上具有传统C/S模式无可比拟的优势,在通信方式上,它的数据互动性、容错性、数据的发布、可扩展性、数据的更新以及即时性能都要优于C/S网络模式。
2.2.4 P2P技术的缺点 P2P网络模型消除了客户机与服务器的差别,使得各个计算机节点都处于对等的地位。
与传统的C/S模型相比较,它能有效利用网络上闲置的资源,避免服务器带来的瓶颈问题,降低服务器成本等方面都有明显的优势。
但是近期快速发展起来的P2P技术的存在许多问题,主要有:侵权盗版的问题、可管理性较差、安全性较差、吞噬网络带宽等。
这些问题造成P2P技术出现以来没有得到大规模的应用,并且还带了许多负面影响,诸如技术泄密、知识产权以及资源滥用等。
所以,对P2P网络实施有效的监控以期降低这些负面影响的危害程度。
所以从长远来看应当对如何建立安全可靠、Qos更好的P2P进行研究。
3 P2P技术的应用 传统的C/S模式使得资源、管理集中化,这种网络模式符合一对多的社会关系模式,如政府对个人、学校对学生、企业对个人等等关系,所以,它的存在符合一部分市场。
从这一点来看,P2P网络模式并不能完全取代C/S。
P2P网络使得信息、资源向各对等节点分布,符合一对一的模式,从其特点来看,有着相当大的应用市场,以下对P2P网络在大多数网络用户较为感兴趣的即时通讯、文件共享以及流媒体三个方面应用进行分析。
3.1 即时通讯 即时通讯是指能够即时发送和接受互联网消息等的业务。
作为P2P较早大应用,即时通讯领域中的竞争一直比较激烈。
在国外,用户较多的即时通讯软件是AOL、微软的MSN以及Yahoo;而国内,一直是OICQ的天下。
P2P即时通讯软件中,交流的双方完全是点对点进行的,并不依赖服务器的性能和网络的带宽。
尽管目前的即时通讯软件都具有中心服务器,但是中心服务器只是控制用户的认证等信息,完成节点之间的互连工作。
现今的主流即时通讯软件可从数据包上大致分为两类:ICQ和MSN。
这两类软件都是以TCP服务为基础,其中音频、视频则采用UDP协议。
下面主要对ICQ的协议的数据包结构进行分析: ICQ文本消息传输的应用层可分为节拍层和SNAC层[1]。
节拍就是客户端与服务器端交换一次数据包的过程。
节拍层是在TCP协议基础上封装的面向数据的底层协议,是为了方便高层协议的通讯。
SNAC是建立在节拍层之上的一个数据通信层,它是客户端与服务器端交互的基本通讯单元。
在ICQ中,客户服务器交换数据是按照“数据类型、数据长度、数据体”的方式来组织,简称“TLV”格式。
图一为客户端发送给服务器的数据包的格式: 节拍头 节拍净载荷 SNAC头 SNAC数据 用户信息 消息TLV数据 图一 ICQ客户端发送给服务器的数据包 从服务器端发送给客户端的数据包大体一致,只是增加了警告级别等一些功能。
与此对比的是MSN Messenger协议建立在TCP/IP之上,除了文件传输、音视频对话是直接的“点对点”通信,其他的通讯功能都是通过服务器进行。
从较初只是简单的文字即时通讯功能到现在的视频、音频通讯、文本传输以及品牌诞生一系列周边产品,OICQ在国内即时通讯领域一直独霸天下。
这主要归功于越来越完善的技术以及它友好的用户界面。
OICQ采用的协议主要是:文字聊天协议族(TCPF Text Chatting Protocol Family),建立在UDP协议之上,与其他客户端完成文字通讯;数据传输协议族(DTPF Data Transfer Protocol Family),只是传递QQ show 等个性化图片数据;视频、音频通讯采用的是UDP协议。
3.2文件共享 作为P2P较初的应用和功能之一,可以说是文件交换的需求直接引发了P2P技术热潮。
在传统的C/S网络模式中,实现文件交换需要服务器的大力参与,通过将文件上传到某个固定的网站服务器,用户再到网站搜索需要的文件,然后进行下载。
这种方式的不方便之处不言而喻。
Napster[2]抓住用户希望能够通过互联网共享MP3音乐文件的需要,以P2P的方式实现了文件交换系统,从而引发了P2P技术革命。
在P2P网络中,对等节点之间可以进行直接交换文件,而不需要服务器的中转。
从技术上分析,与P2P网络模式相对应,P2P文件交换系统也分为三类: (1) 中心文件目录/分布式文件系统。
这种文件系统交换数据时需要通过中心服务器进行目录管理,Napster以及现今国内较为流行的BT(Bit Torrent)就属于这一类。
以BT为例分析这类应用较广的文件共享系统:首先文件种子(静态的元文件,包含文件的分割信息等)的发布者,也就是文件上传者,把上传的文件分割成N个部分,A用户随机的在服务器下载了第X个部分,B用户下载了第Y个部分,A用户的BT客户端就会根据情况从B用户端下载B端已经下载完成的Y部分,而B则从A处下载X部分。
这种方式很明显能够减轻服务器的负担,提高下载速度。
传统C/S模式,随着用户数量的增多,网络很容易造成瓶颈。
而且BT中,随着用户数量的增多,下载的用户增多,下载的速度越快,服务质量反而越好。
但是,这类这种方式P2P文件系统,由于采用了集中式目录管理,不可避免的存在单个节点的瓶颈问题。
(2)完全分布式P2P文件系统。
这类系统没有中心服务器,接近绝对自由。
但是同时没有中心服务器,P2P网络很难进行诸如安全管理、身份认证以及流量管理等控制。
Gnutella和Freenet是这方面两个典型的应用。
Gnutella在搜索过程中采用的消息前递算法使得消息总数量成几何增长,从而存在Flooding(泛洪)问题。
Freenet使得用户可以匿名的索取和发布资源,它的文件加密以及通信加密做得比较完善,但是在资源的搜索以及可扩展性方面还需要加强。
(3)两类系统的折中,有中心服务器,但文件目录是分布的,如Workslink。
Workslink的中间服务器的作用是让两个对等节点建立初步的连接,也即握手,通过分布式文件系统,建立完全开放的可共享文件目录,通过相对的自由兼顾安全以及可靠性。
与传统的C/S模式相比较,P2P文件共享系统提供了快速的,高效率文件交换方式。
但是,也带来了相应的问题,其中较受关注的就是版权问题,在用户之间交换的资料中,有许多是受到版权保护的歌曲、电影以及软件等。
还有就是带宽占用以及安全、隐私等问题。
3.3 流媒体中的应用 3.3.1流媒体 流媒体(Streaming Media)指用户通过网络或者特定的数字信道边下载边播放多媒体数据的工作方式。
以前,用户如果想播放网络上的多媒体文件,必须将这个文件完全下载到本地计算机。
一般来说,多媒体文件比较大,下载整个文件需要耗费较长的时间。
流媒体应用的较大优点是用户不需要花费很长时间下载整个多媒体文件,只需要将起始的几秒时间的数据先下载到本地缓冲区内就可以开始播放。
现今,主流的流媒体技术提供商如微软、RealNetworks等提供的流媒体平台都是基于C/S模式的。
这种模式中,客户端必须连接到流媒体服务器接受多媒体数据流,服务器需要向每个用户发送多份相同的数据。
一般来说多媒体文件的数据量大,由于流媒体服务器带宽和处理能力的限制,在诸如现场直播等大量的客户端参与的情况下,媒体服务器会成为整个系统的瓶颈。
一旦流媒体服务器故障停止,那么整个系统的流媒体服务将中止,从而P2P从中可以得到发展。
P2P网络模式的对等化、去中心化的特点将能够很好的解决流媒体服务器负载过重的这一问题。
3.3.2 P2P流媒体系统 将P2P网络模式应用到流媒体系统服务的研究中,将会是很好的方向。
目前,日本以及欧美一些公司已经将P2P模式引入流媒体服务,并构建了基于P2P的流媒体直播系统。
在基于P2P技术的流媒体系统中,一个对等节点在接受、回放视频流的同时,并能将视频流复制并转发给其他对等节点,可以说是兼并了播放器和服务器两者角色,减轻了媒体源的负担。
根据源数据提供的方式,P2P流媒体系统可以分为单源和多源两种[3]。
单源P2P流媒体系统如图二所示,由一个节点向多个节点以组播方式发送数据,接受者有且只有一个数据源,所有节点组成组播树,组播树中间节点接受来自父节点的媒体数据,同时以组播方式将数据传送给其字节点。
由于每个节点的数据只能来源于单一的节点。
在传输视频数据时,由于视频数据量大,所以会经常出现缓冲时间过长的情况。
单点传输无法发挥出P2P技术参与的用户越多传输速度越快的优势,这种情况下结点多只意味着你选择较佳节点的空间大而已,一旦确定一个传输节点,速率可以认为就是固定的。
单源P2P流媒体系统中比较有代表的是Peercast[4]。
Peercast是非盈利站点PeerCast.org提供一款免费P2P流媒体软件。
从传输协议来看,Peercast只是简单地采用HTTP方式传送视频、音频数据流,并没有考虑到流媒体数据传输地特性,采用适合流传输的实时流放协议RTSP(Real Time Streaming Protocol)或者端对端协议RTP/RTCP。
诸如象PPLIVE、PPStream以及OICQ直播,这些在占国内流媒体市场高达59%的P2P流媒体平台流媒体系统都是以Peercast系统为基础,并对其算法、通信机制做了一定的优化。
而多源的P2P流媒体系统如图三所示,则是由多个节点以单播方式同时向一个接受者发送媒体数据。
在这种方式下,单个发送者提供的上行带宽不足以支持一个完整的流媒体回放时所需的带宽R,将多个发送者的能力聚合在一起,使其上行带宽总和大于R,就能够提供正常的流媒体服务。
这种方式适合于性能较低的节点,如PDA、手机ADSL用户。
GnuStream以及PROMISE就是比较有代表的多源P2P流媒体原型。
目前,P2P流媒体传输的研究起步不久,还有许多方面需要完善,如何在动态环境下保证流媒体的服务质量,建立合理的激励机制,鼓励参与的客户能较大地共享其资源,以及如何建立一个有效地安全机制,保证互不信任的用户之间的服务能够顺利完成等等这些都是P2P流媒体研究的方向。
估计,基于P2P技术的流媒体系统将会更加能够适应网络以及用户的要求,能成功的应用于商业系统中。
4 总结 目前,P2P技术除了在文件共享、流媒体系统以及即时通讯等方面之外,在网络游戏、搜索引擎以及协同工作等方面也都有广泛的应用和研究。
以上的这些应用和发展并不是P2P技术的全部研究方向,P2P技术的应用还有待探索和研究。
相信不久的将来,P2P技术的应用将层出不穷。
作为一个迅速发展的网络技术,P2P在在日益改善的网络环境下将会大有作为。