论文部分内容阅读
P2P是Peer To Peer的缩写,peer在字典中的解释为:“同等者(指地位、能力等)”、“同事”或“伙伴”等。在此词义下,P2P也就可以理解为对等连接或对等网络。简单地说,P2P技术是一种用于不同用户PC机之间、共享他们所拥有的空闲软、硬件资源(处理能力、存储能力、网络连接能力、可共享文件等),可以不经过中继设备直接互相访问和交换信息的技术。它打破了传统的c/s服务模式,在对等网络中每个节点的地位都是相同的,具备客户机和服务器的双重特性,可以同时作为服务使用者和服务提供者。随着P2P技术的飞速发展,互联网的服务模式将由目前的“信息位于中心”的以网站为中心的状态,重返“信息位于边缘”,将权力交还给用户。
与其它网络模型相比较,P2P网络具有分散化、可扩展性、健壮性、高性能等优点,使得P2P技术及其应用备受关注。
与c/s服务模式相对照,P2P服务模式具有以下特点:(1)在P2P网络中的每一个对等节点具有相同的地位,即同时是客户机也是服务器,同时还具有应用层路由器和篼速缓冲存储器的功能;(2)每个对等节点都可以充分利用P2P网络中其它对等节点的处理能力、存储空间、磁盘空间、共享资源(服务与内容)等;(3)区别于网络层按lP地址进行寻址的方式,P2P采取了在应用层按内容进行寻址的方式,其搜索方式目前主要有洪泛和DHT两种搜索方式。
随着互联网的发展和Pc机能力的增强,边缘网络的信息不断丰富,许多人开始用自己的Pc机来对外提供一些特定的服务,但无论从计算能力还是网络的资源,用户Pc机毕竟不具备提供大规模服务的能力,但是,如果把互联网上众多的PC机作为一个整体联系起来,就可以提供任何服务器都难以比拟的丰富的资源和强大的计算能力。基于这种思想,c/s服务模式在互联网中的统治地位受到了冲击,出现了越来越多的对等(P2P)的服务模式。P2P技术已被业界认为是推动互联网发展的四大新技术之一。
网络模型
P2P网络最大的特点是用户之间直接共享资源,其核心技术为分布式的资源定位机制,呃也是提篼网络的可扩展性、解决网络带宽被吞噬的关键所有。胗着P2P网络搜索机制的不断创新,已经历了三代不同的网络模型。
1.集中式对等网络(第一代P2P网络)
在集中式P2P中,所有网上提供的共享资源都存放在提供该资源的客户机上,服务器上只保留目录信息,此外服务器与客户机之间以及客户机与客户机之间都具有交互能力。这种形式具有中心化的特点,但是它不同于传统意义上的c/s服务模式。因为c/s服务模式所有资源都存放在服务器上,客户机只能被动地从服务器上读取信息,且客户机之间不具有交互能力。集中式P2P主要缺点为:服务器具有接入带宽的瓶颈,一旦中央服务器的瘫痪容易导致整个网络的崩溃。
2.分布式对等网络(第二代P2P网络)
在分布式的P2P中,采用洪泛查找机制。可以将呃种完全分布的网络看成是一组对等节点之间的自组织网络。节点在进行资源查找时,首先将需要搜索的信息广播到它所有的相邻节点,然后再广播到所有相邻节点的相邻节点,直到找到需要查找的资源。这种查讯机制存在网络负荷过重、难以管理、稳定性差、扩展困难等缺陷。
3.混合式P2P网络(第三代P2P网络)
由第一、二代网络的分析中可以看出,P2P的网络模型由中央集权式的目录服务器机制,发展到非中央集权式的非结构化拓扑结构网络。由于自由连接的胗意性,使得资源的定位必须依靠广播方式来完成,耗费了大量的网络开销。于是近年来出现了第三代的P2P网络——混合式P2P网络。
在混合式P2P网络中,多数采用分组或/和分级的结构化覆盖网络(SON,Structured Overlay Network)以及基于SON的分布式散例表(DHT,Distributed Hash Table算法。其中的DHT算法利用杂凑(hashing)法,将两个互不相关的 “内容”与“地址”映射成互相关联的哈希值,并利用其哈希值的关联性进行基于内容的寻址。采用DHT算法给资源定位的基本方法如下:
(1)对P2P网络中的节点IP地址进行哈希运算,得到该节点唯一的标志(ID)值,节点的ID值为P2P网络中节点的逻辑地址,可将该节点称为ID节点;
(2)每个节点对其可提供的共享文档的标识(一般为文件名)进行哈希运算,得到该文档的关键字(Key值);
(3)每个节点将其Key、Vid二元组(又称K、V对)进行发布(Advertisement)其中的虚拟地址(Vid)指出了文档的存储位置(还包括TCP层的端口号);
(4)由(1)、(2)可知ID与Key两者处于统一命名空间,从ID序列中找到与Key值最接近的节点ID值,并将所发布的K、V对存储在该ID节点(严格说是Key的后续ID节点)之中;
(5)在搜索某一文档时,要求将查询请求路由到与该文挡Key值最接近的ID节点上,则该节点所保存的目标K、V对中的Vid值指明了文档所在的位置。
(6)根据Key值查找其后续ID节点时,利用了节点中位于应用层的路由表(又称DHT),与网络层的路由查找相类似,可以采用最长前缀匹配查找的方法,一般需经过数跳达到目标ID节点。
在应用层上节点路由的每一跳,使Key值逐步向目标节点的ID值逼近。但是在实际物理网络中,可能会是第一跳从北京到上海,第二跳到广州,最后一跳却经过绕道到了天津的目标节点,造成了搜索过程中不必要的时延。为了减少搜索的时延和篼效利用网络资源,在实用中往往将P2P网络进行分组或/和分级。分组是让物理位置上接近的节点组成小网络,先在本节点所在小网络中搜索再扩展至其它网络搜索;分级是让物理位置接近的一群节点,按节点处理能力不同自行选举进行分级,形成一个类似塔松的树状结构,塔尖为处理能力最强的节点,向下依次减弱。可由篼级节点提供下级节点的目录服务,这样资源查找只需在篼级节点间进行搜索就可以了。
应用
目前,P2P技术主要应用包括以下几个方面:
1.文件共享
P2P技术使在互联网上的任意两台Pc机之间,可直接共享文本、音乐、影视或多媒体等文件。利用P2P技术,网上计算机之间可以进行直接交互文件,而不需要使用任何一台中央服务器。在传统的Web方式中,要实现文件交换需要将文件上传到某个特定的网站,用户再到某个网站搜索需要的文件,然后下载。这种方式对用户而言非常不方便。在P2P网络中,用户通过不同的查询机制定位含有所需资源的其它Pc机后,将直接与其建立连接,并下载所需文件。
2.分布式计算
分布式计算也被称为“网格计算(Grid Computing)”。 分布式计算收集处于工作间隙的Pc的闲置计算能力,通过集群技术产生超级计算机的处理能力。其中一个成功典范是1999年的SETI@HOME项目。在该项目中分布于世界各地的200万台个人电脑组成计算机阵列,搜索射电天文望远镜信号中的外星文明迹象。据统计,在不到两年的时间里, 这种计算方法已经完成了单台计算机345000年的计算量。
3.搜索引擎
P2P技术使用户能够深度搜索信息资源,而且这种搜索无需通过Web服务器,也可以不受信息文件格式和宿主设备的限制。传统目录式搜索引擎只能搜索到20%—30%的网络资源,而基于P2P技术的搜索引擎理论上将包括网络上的所有开放的信息资源。以Gnutella搜索原理为例:一台Pc上的Gnutella软件可将用户的搜索请求同时发给网络上另外多台Pc机,如果搜索请求未得到满足,这多台Pc机中的每一台又会把该搜索请求转发给另外多台Pc机,这样,搜索范围将在几秒钟内以几何级数增长,几分钟内就可搜遍几百万台Pc上的信息资源。著名的搜索引擎公司Google宣称也要采用P2P技术来改进其搜索引擎。
4.即时通信
(1)IPTV
在c/s服务模式下,一台高性能的服务器只能支持1000余名用户同时在线观看速率为50~60kbit/s的低质量电影。在P2P模式下,可以采用BT技术每人下载一小段,然后互相交换的方法来观看电影。这样,一台服务器可以同时支持上万个用户同时观看电影。
最近流行的BT(Bit Torten)把一份大文件切割成碎片,为每一个碎片标上特殊标识,用户无需到一个固定地点(例如中央服务器)去下载完整的文件,系统会自动寻找、随机下载具有相同标识的文件碎片,将其加以整合成为完整的文件。
类似于碟片交换。在P2P网络中,如果每个成员都能提供共享的电影或电视剧,则成员之间可以不经过服务器,通过文件共享直接从对等节点中搜索与下载自己所需的节目。
(2)VoIP
P2P技术运用到VolP的典型代表为Skype软件。2005年,具备强大通话功能的Skype迅猛发展,使固网运营商感到这一颠覆性技术的威胁。用户在网上下载Skype软件后,则可以通过互联网实现Pc to Pc的免费通话。Skype公司宣称,该技术具有很强的防火墙和NAT(网络地址翻译)穿透能力;在用户宽带上网情况下,话音质量清晰、自然(其带宽宽于300~3400Hz),还支持最多5人同时参加的电话会议。到2005年3月底其用户数已达2900万,预计到2008年其用户数可达2亿左右。目前Skype公司已与固话运营商合作,提供PC to Phone和Phone to PC的呼叫方式。
5.协同工作
公司机构日益分散情况下,给员工和客户提供轻松、方便的消息和协作的工具,变得日益重要。但按传统的Web方式实现协同工作,会给服务器带来了极大的负担。P2P技术的出现,使得互联网上任意两台Pc机都可建立实时的联系,建立了这样一个安全、共享的虚拟空间,人们可以进行各种各样的活动,这些活动可以是同时进行,也可以交互进行。P2P技术可以帮助企业和关键客户,以及合作伙伴之间提供一种安全的网上工作联系方式,因此基于P2P技术的协同工作也受到了极大的重视。Lotus公司开发的协同工作Groove就是P2P技术在该领域最具有代表性的应用之一。
6.网络游戏
网络游戏可以采用P2P技术建立起分布式小组服务模型,配以动态分配的技术,每个服务器的承载人数将远超过传统的c/s服务模式,这将极大提高目前多人在线交互游戏的性能;与此同时,每个游戏用户成为一个对等节点,各个节点间可以进行大量的点对点通信(例如:下棋、打扑克等),从而减少服务器的通信任务提高性能,由此可见其发展潜力是不可估量的。
随着P2P技术研究的不断深入,P2P的应用范围将不断拓宽。从长远看,P2P有可能成为目前应用层c/s服务模式Web的替代者。但这需要一个漫长的过渡阶段,在这个阶段中会出现P2P与c/s两种服务模式互相竞争与联合的新格局。
编辑/京生 [email protected]
与其它网络模型相比较,P2P网络具有分散化、可扩展性、健壮性、高性能等优点,使得P2P技术及其应用备受关注。
与c/s服务模式相对照,P2P服务模式具有以下特点:(1)在P2P网络中的每一个对等节点具有相同的地位,即同时是客户机也是服务器,同时还具有应用层路由器和篼速缓冲存储器的功能;(2)每个对等节点都可以充分利用P2P网络中其它对等节点的处理能力、存储空间、磁盘空间、共享资源(服务与内容)等;(3)区别于网络层按lP地址进行寻址的方式,P2P采取了在应用层按内容进行寻址的方式,其搜索方式目前主要有洪泛和DHT两种搜索方式。
随着互联网的发展和Pc机能力的增强,边缘网络的信息不断丰富,许多人开始用自己的Pc机来对外提供一些特定的服务,但无论从计算能力还是网络的资源,用户Pc机毕竟不具备提供大规模服务的能力,但是,如果把互联网上众多的PC机作为一个整体联系起来,就可以提供任何服务器都难以比拟的丰富的资源和强大的计算能力。基于这种思想,c/s服务模式在互联网中的统治地位受到了冲击,出现了越来越多的对等(P2P)的服务模式。P2P技术已被业界认为是推动互联网发展的四大新技术之一。
网络模型
P2P网络最大的特点是用户之间直接共享资源,其核心技术为分布式的资源定位机制,呃也是提篼网络的可扩展性、解决网络带宽被吞噬的关键所有。胗着P2P网络搜索机制的不断创新,已经历了三代不同的网络模型。
1.集中式对等网络(第一代P2P网络)
在集中式P2P中,所有网上提供的共享资源都存放在提供该资源的客户机上,服务器上只保留目录信息,此外服务器与客户机之间以及客户机与客户机之间都具有交互能力。这种形式具有中心化的特点,但是它不同于传统意义上的c/s服务模式。因为c/s服务模式所有资源都存放在服务器上,客户机只能被动地从服务器上读取信息,且客户机之间不具有交互能力。集中式P2P主要缺点为:服务器具有接入带宽的瓶颈,一旦中央服务器的瘫痪容易导致整个网络的崩溃。
2.分布式对等网络(第二代P2P网络)
在分布式的P2P中,采用洪泛查找机制。可以将呃种完全分布的网络看成是一组对等节点之间的自组织网络。节点在进行资源查找时,首先将需要搜索的信息广播到它所有的相邻节点,然后再广播到所有相邻节点的相邻节点,直到找到需要查找的资源。这种查讯机制存在网络负荷过重、难以管理、稳定性差、扩展困难等缺陷。
3.混合式P2P网络(第三代P2P网络)
由第一、二代网络的分析中可以看出,P2P的网络模型由中央集权式的目录服务器机制,发展到非中央集权式的非结构化拓扑结构网络。由于自由连接的胗意性,使得资源的定位必须依靠广播方式来完成,耗费了大量的网络开销。于是近年来出现了第三代的P2P网络——混合式P2P网络。
在混合式P2P网络中,多数采用分组或/和分级的结构化覆盖网络(SON,Structured Overlay Network)以及基于SON的分布式散例表(DHT,Distributed Hash Table算法。其中的DHT算法利用杂凑(hashing)法,将两个互不相关的 “内容”与“地址”映射成互相关联的哈希值,并利用其哈希值的关联性进行基于内容的寻址。采用DHT算法给资源定位的基本方法如下:
(1)对P2P网络中的节点IP地址进行哈希运算,得到该节点唯一的标志(ID)值,节点的ID值为P2P网络中节点的逻辑地址,可将该节点称为ID节点;
(2)每个节点对其可提供的共享文档的标识(一般为文件名)进行哈希运算,得到该文档的关键字(Key值);
(3)每个节点将其Key、Vid二元组(又称K、V对)进行发布(Advertisement)其中的虚拟地址(Vid)指出了文档的存储位置(还包括TCP层的端口号);
(4)由(1)、(2)可知ID与Key两者处于统一命名空间,从ID序列中找到与Key值最接近的节点ID值,并将所发布的K、V对存储在该ID节点(严格说是Key的后续ID节点)之中;
(5)在搜索某一文档时,要求将查询请求路由到与该文挡Key值最接近的ID节点上,则该节点所保存的目标K、V对中的Vid值指明了文档所在的位置。
(6)根据Key值查找其后续ID节点时,利用了节点中位于应用层的路由表(又称DHT),与网络层的路由查找相类似,可以采用最长前缀匹配查找的方法,一般需经过数跳达到目标ID节点。
在应用层上节点路由的每一跳,使Key值逐步向目标节点的ID值逼近。但是在实际物理网络中,可能会是第一跳从北京到上海,第二跳到广州,最后一跳却经过绕道到了天津的目标节点,造成了搜索过程中不必要的时延。为了减少搜索的时延和篼效利用网络资源,在实用中往往将P2P网络进行分组或/和分级。分组是让物理位置上接近的节点组成小网络,先在本节点所在小网络中搜索再扩展至其它网络搜索;分级是让物理位置接近的一群节点,按节点处理能力不同自行选举进行分级,形成一个类似塔松的树状结构,塔尖为处理能力最强的节点,向下依次减弱。可由篼级节点提供下级节点的目录服务,这样资源查找只需在篼级节点间进行搜索就可以了。
应用
目前,P2P技术主要应用包括以下几个方面:
1.文件共享
P2P技术使在互联网上的任意两台Pc机之间,可直接共享文本、音乐、影视或多媒体等文件。利用P2P技术,网上计算机之间可以进行直接交互文件,而不需要使用任何一台中央服务器。在传统的Web方式中,要实现文件交换需要将文件上传到某个特定的网站,用户再到某个网站搜索需要的文件,然后下载。这种方式对用户而言非常不方便。在P2P网络中,用户通过不同的查询机制定位含有所需资源的其它Pc机后,将直接与其建立连接,并下载所需文件。
2.分布式计算
分布式计算也被称为“网格计算(Grid Computing)”。 分布式计算收集处于工作间隙的Pc的闲置计算能力,通过集群技术产生超级计算机的处理能力。其中一个成功典范是1999年的SETI@HOME项目。在该项目中分布于世界各地的200万台个人电脑组成计算机阵列,搜索射电天文望远镜信号中的外星文明迹象。据统计,在不到两年的时间里, 这种计算方法已经完成了单台计算机345000年的计算量。
3.搜索引擎
P2P技术使用户能够深度搜索信息资源,而且这种搜索无需通过Web服务器,也可以不受信息文件格式和宿主设备的限制。传统目录式搜索引擎只能搜索到20%—30%的网络资源,而基于P2P技术的搜索引擎理论上将包括网络上的所有开放的信息资源。以Gnutella搜索原理为例:一台Pc上的Gnutella软件可将用户的搜索请求同时发给网络上另外多台Pc机,如果搜索请求未得到满足,这多台Pc机中的每一台又会把该搜索请求转发给另外多台Pc机,这样,搜索范围将在几秒钟内以几何级数增长,几分钟内就可搜遍几百万台Pc上的信息资源。著名的搜索引擎公司Google宣称也要采用P2P技术来改进其搜索引擎。
4.即时通信
(1)IPTV
在c/s服务模式下,一台高性能的服务器只能支持1000余名用户同时在线观看速率为50~60kbit/s的低质量电影。在P2P模式下,可以采用BT技术每人下载一小段,然后互相交换的方法来观看电影。这样,一台服务器可以同时支持上万个用户同时观看电影。
最近流行的BT(Bit Torten)把一份大文件切割成碎片,为每一个碎片标上特殊标识,用户无需到一个固定地点(例如中央服务器)去下载完整的文件,系统会自动寻找、随机下载具有相同标识的文件碎片,将其加以整合成为完整的文件。
类似于碟片交换。在P2P网络中,如果每个成员都能提供共享的电影或电视剧,则成员之间可以不经过服务器,通过文件共享直接从对等节点中搜索与下载自己所需的节目。
(2)VoIP
P2P技术运用到VolP的典型代表为Skype软件。2005年,具备强大通话功能的Skype迅猛发展,使固网运营商感到这一颠覆性技术的威胁。用户在网上下载Skype软件后,则可以通过互联网实现Pc to Pc的免费通话。Skype公司宣称,该技术具有很强的防火墙和NAT(网络地址翻译)穿透能力;在用户宽带上网情况下,话音质量清晰、自然(其带宽宽于300~3400Hz),还支持最多5人同时参加的电话会议。到2005年3月底其用户数已达2900万,预计到2008年其用户数可达2亿左右。目前Skype公司已与固话运营商合作,提供PC to Phone和Phone to PC的呼叫方式。
5.协同工作
公司机构日益分散情况下,给员工和客户提供轻松、方便的消息和协作的工具,变得日益重要。但按传统的Web方式实现协同工作,会给服务器带来了极大的负担。P2P技术的出现,使得互联网上任意两台Pc机都可建立实时的联系,建立了这样一个安全、共享的虚拟空间,人们可以进行各种各样的活动,这些活动可以是同时进行,也可以交互进行。P2P技术可以帮助企业和关键客户,以及合作伙伴之间提供一种安全的网上工作联系方式,因此基于P2P技术的协同工作也受到了极大的重视。Lotus公司开发的协同工作Groove就是P2P技术在该领域最具有代表性的应用之一。
6.网络游戏
网络游戏可以采用P2P技术建立起分布式小组服务模型,配以动态分配的技术,每个服务器的承载人数将远超过传统的c/s服务模式,这将极大提高目前多人在线交互游戏的性能;与此同时,每个游戏用户成为一个对等节点,各个节点间可以进行大量的点对点通信(例如:下棋、打扑克等),从而减少服务器的通信任务提高性能,由此可见其发展潜力是不可估量的。
随着P2P技术研究的不断深入,P2P的应用范围将不断拓宽。从长远看,P2P有可能成为目前应用层c/s服务模式Web的替代者。但这需要一个漫长的过渡阶段,在这个阶段中会出现P2P与c/s两种服务模式互相竞争与联合的新格局。
编辑/京生 [email protected]