关于底层P2P网络底层通信协议节点通信,INVE互联价值有哪些技术创新?

为什么有的p2p平台使用双系统并行模式_百度知道
为什么有的p2p平台使用双系统并行模式
我有更好的答案
1P2P技术原理什么是对等网络(P2P)技术?P2P技术属于覆盖层网络(OverlayNetwork)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是:数据的一致性容易控制,系统也容易管理。但是此种模式的缺点是:因为服务器的个数只有一个(即便有多个也非常有限),系统容易出现单一失效点;单一服务器面对众多的客户端,由于CPU能力、内存大小、网络带宽的限制,可同时服务的客户端非常有限,可扩展性差。P2P技术正是为了解决这些问题而提出来的一种对等网络结构。在P2P网络中,每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。这样,庞大的终端资源被利用起来,一举解决了C/S模式中的两个弊端。P2P网络有3种比较流行的组织结构,被应用在不同的P2P应用中。(1)DHT结构分布式哈希表(DHT)[1]是一种功能强大的工具,它的提出引起了学术界一股研究DHT的热潮。虽然DHT具有各种各样的实现方式,但是具有共同的特征,即都是一个环行拓扑结构,在这个结构里每个节点具有一个唯一的节点标识(ID),节点ID是一个128位的哈希值。每个节点都在路由表里保存了其他前驱、后继节点的ID。如图1(a)所示。通过这些路由信息,可以方便地找到其他节点。这种结构多用于文件共享和作为底层结构用于流媒体传输[2]。(2)树形结构P2P网络树形结构如图1(b)所示。在这种结构中,所有的节点都被组织在一棵树中,树根只有子节点,树叶只有父节点,其他节点既有子节点也有父节点。信息的流向沿着树枝流动。最初的树形结构多用于P2P流媒体直播[3-4]。(3)网状结构网状结构如图1(c)所示,又叫无结构。顾名思义,这种结构中,所有的节点无规则地连在一起,没有稳定的关系,没有父子关系。网状结构[5]为P2P提供了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。当网络变得很大时,常常会引入超级节点的概念,超级节点可以和任何一种以上结构结合起来组成新的结构,如KaZaA[6]。2P2P技术应用现状由于能够极大缓解传统架构中服务器端的压力过大、单一失效点等问题,又能充分利用终端的丰富资源,所以P2P技术被广泛应用于计算机网络的各个应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在线游戏支撑平台等方面。(1)分布式科学计算我们知道,许多计算机的CPU资源并不是时刻保持峰值运转的,甚至很多时候计算机处于“空闲”状态,比如使用者暂时离开等情况。而P2P技术可以使得众多终端的CPU资源联合起来,服务于一个共同的计算。这种计算一般是计算量巨大、数据极多、耗时很长的科学计算。在每次计算过程中,任务(包括逻辑与数据等)被划分成多个片,被分配到参与科学计算的P2P节点机器上。在不影响原有计算机使用的前提下,人们利用分散的CPU资源完成计算任务,并将结果返回给一个或多个服务器,将众多结果进行整合,以得到最终结果。世界最著名的P2P分布式科学计算系统非“SETI@home”项目莫属。SETI@home项目(简称为S@H或SETI),由美国加利福尼亚大学伯克利分校在1999年发起,是至今最成功的分布式计算项目。SETI@home通过分析从射电望远镜传来的数据来搜寻地外文明,这在不少科幻迷甚至是很多普通大众眼里都是一个“很酷”的应用。SETI的早期版本截至2005年已经吸引了543万用户,分析了大量积压数据。正如宇宙的浩瀚一般,需要计算的数据(即存在宇宙空间的无数无线电信号)也是海量的。可以说,这几百万台终端组成了一个目前最快的高性能计算机都望尘莫及的“超级计算机”。(2)文件共享要问一百个网友目前中国最流行的文件下载方式,恐怕99个都会回答是“BT”。“BT”是BitTorrent[7]的简称,是一种依赖P2P方式将文件在大量互联网用户之间进行共享与传输的协议,对应的客户端软件有BitTorrent、BitComet和BitSpirit等。由于其实现简单、使用方便,在中国用户之间被广泛使用。BitTorrent中的节点在共享一个文件时,首先将文件分片并将文件和分片信息保存在一个流(Torrent)类型文件中,这种节点被形象地称作“种子”节点。其他用户在下载该文件时根据Torrent文件的信息,将文件的部分分片下载下来,然后在其他下载该文件的节点之间共享自己已经下载的分片,互通有无,从而实现文件的快速分发。由于每个节点在下载文件的同时也在为其他用户上传该文件的分片,所以整体来看,不会随着用户数的增加而降低下载速度,反而下载的人越多,速度越快。BitTorrent是一种无结构的网络协议。除了BitTorrent之外,还有不少著名的无结构化的P2P文件共享协议,典型的有Gnutella[8]和KaZaA[6]。Gnutella协议是一种最典型的完全分布式、无等级结构的P2P网络模型。网络中的节点随机连接若干个其他节点,称之为“邻居”。这种结构能够很好地适应P2P网络中节点频繁加入与离开的动态特性,因为任意一个节点都可以被新加入的节点作为“邻居”而连接,任意一个“邻居”也可以随意地离开网络。同时,这种加入节点和离开节点的选择是节点间的独立行为,随机分布于网络之中。所以说Gnutella的网络具有健壮性、实时性、可靠性、负载平衡等优势。在Gnutella网络中存在以下问题:冗余消息多,对带宽的消耗存在一定的浪费。Gnutella网络协议采用泛洪式(Flooding)消息传播机制,这种消息传播机制产生了呈指数级增长的冗余消息。据统计,P2P软件白天占Internet上运行带宽的40%~70%,晚上有时能达到80%。搜索效率低,可扩展性差。Gnutella网络的搜索协议将所有资源与节点统一对待,没有考虑节点的性能差异,也没有利用查询成功的历史经验,使得搜索效率低下。KaZaA协议中节点大体上也是无结构连接的。但是在KaZaA协议中存在一种“超级节点”。这种“超级节点”其实是来源于各个普通的客户端节点,但它们一般具有计算能力强、接入带宽大、在线时间稳定等特点。在KaZaA协议中,超级节点承担着部分服务器的任务,如管理部分普通节点,负责搜索消息的转发等。每一个节点上线后会寻找一个超级节点挂靠,并和原先挂靠在该超级节点下的其他普通节点随机相连,组成一个小的无结构网络。普通节点的共享文件索引汇报给所挂靠的超级节点。因而,KaZaA网络大体上可以看作是两层的无结构网络,上层是超级节点组成的无结构网络;下层是普通节点组成的多个无结构网络,按所挂靠的超级节点分成多个簇。当普通节点发起文件搜索请求时,将请求消息发给所挂靠的超级节点,超级节点从自己存储的共享文件索引信息中查找区域内符合条件的文件,同时将搜索请求转发给若干个其他超级节点,由它们返回其区域内搜索结果。如果需要,这个转发过程可以执行多步以获得更大范围内的搜索结果。这样的混合式结构对异构的终端节点“分而治之”,可以充分利用一些能力较强的终端节点来担任“小”服务器的角色,可谓是“人尽其才,物尽其用”。除了这些无结构的P2P文件共享协议之外,几乎所有的DHT网络都可以并已经用来实现文件共享的应用,如Chord、Pastry、KAD、CAN等应用。(3)流媒体直播曾经人们以为P2P做文件共享最合适,但现在大家发现P2P模式是如此适合于流媒体直播,以至于研究热点在很短的时间内迅速转移到P2P的流媒体上来。中国最早的P2P流媒体直播软件应该算香港科技大学计算机系研究的Coolstreaming[5]、华中科技大学集群与网格计算湖北省实验室研究的AnySee[9]以及清华大学的Gridmedia等系统。Coolstreaming是一款基于网状无结构网络拓扑的流媒体直播软件,中文名叫做“酷流”。在Coolstreaming中,每个节点通过登录服务器(BS)进入网络,并得到一些邻居列表。每个节点和邻居之间共享媒体数据。Coolstreaming中节点共享媒体数据是基于一种称作“数据驱动”的机制。首先,对于节点缓冲区内所拥有的数据,使用一种“缓冲映射表”(BufferMap)来进行标记:对于每一秒的媒体内容,如果节点已经从节目源或邻居处获取,则标记该秒数据为“1”,否则标记为“0”。这样,一个80秒长度的缓冲区就对应一个80位长度的缓冲映射表。其次,节点之间以“心跳”(Heartbeat)方式定期交换各自的缓冲映射表,通过比对得到自己没有而邻居拥有的数据位,然后根据数据调度算法,选择合适的邻居,请求得到相应的数据。Coolstreaming采取全网状结构组织网络中的节点,每个节点连接20个左右的邻居,在定期交换缓冲映射表的同时,还要交换自己的邻居列表。这样,在一个邻居离开时,可以从它最近提供的邻居列表中选择一个连接数没有达到上限的邻居作为“替补”邻居进行连接。最早期的Coolstreaming是采取随机选取邻居的策略,即从BS上随机返回一些当前在线的节点列表,然后随机从中选择一些节点进行连接,在选择“替补”邻居时也是随机的。这样做同时又可以达到一定程度的负载平衡效果,因为每个节点连接的邻居数基本是均匀的。但是这样做的缺点也是明显的,两个距离很远、连接很差的节点也可能被调度成为邻居,大大影响的系统的服务质量。华中科技大学集群与网格计算湖北省重点实验室是中国最早研究P2P流媒体直播的小组之一,它所研发的AnySee软件期望能够使得用户在网上任何时候任何地点都能观看多媒体直播节目。AnySee的第一个版本基于树状结构:节目源是一个多播树的根节点,之后的节点被调度为其“儿子”或子树。每个节点向其父节点索要数据,并将数据提供给多个子节点。这样的结构可以使得节点快速加入到网络中,并且可以根据IP邻近原则构建起一棵IP多播树,使得节点加入位置都是和自己IP邻近的节点,从而优化服务质量。之后AnySee推出第二个版本,结合了原有的树状结构和流行的网状结构,使得“控制数据走树,媒体数据走网”,既能帮助节点快速定位到加入点,又能实现一定程度的负载均衡,并缓解了原有纯树状结构中底层节点和顶层节点之间播放时差较大的问题。最近的AnySee版本已经取消了树的结构,演化成了优化的网状结构(如图2所示),即每个节点维护一定数量的邻居成员,并从中选出最合适的“伙伴”节点与之交换数据。伙伴的数量既有上限又有下限,在不满足下限时,节点会不断寻找新的合适节点加入伙伴列表;在达到下限时,节点停止主动寻找伙伴的过程,但可以接受其他节点将其加入伙伴列表的请求;在达到上限时,节点不再和新的节点建立伙伴关系。除了学术界对P2P流媒体直播的研究外,中国还涌现了很多成功的P2P流媒体直播商业产品,如PPLive、PPStream、沸点和TVAnts等,其中以PPLive最为有名。PPLive目前拥有数百个频道,在2006年“超级女声”决赛期间,频道观看人数达到十万人,可以说是把P2P发挥到了极限。此外,国外也有不少对P2P流媒体直播的研究,如SplitStream[10]等。(4)流媒体点播由于观看直播节目时用户不能选择观看指定片段,所以在人们热烈研究P2P流媒体直播时,已有人开始将目光转向P2P流媒体点播服务。目前成功推出P2P流媒体点播的机构还不多,典型的有GridCast[11]系统、PPStream点播系统。GridCast也是一款由华中科技大学集群与网格计算湖北省重点实验室于2005年12月份成功研发并投入使用的对等视频点播系统,具有支持多人共享点播片段、跟踪(Tracker)服务器用户引导、环状结构内容组织等特点。由于一个点播频道的人数往往不会太多,所以在用户进行视频录放(VCR)操作时(即前后拖动播放点、暂停/继续播放等操作),能否快速将用户定位到观看该点节目的其他用户处就成了P2P点播技术的关键。为了实现快速定位,GridCast中采取了一种同心圆环的媒体内容组织结构。在每一个节目频道里,媒体内容按指数递增的区间进行划分,例如一个一个半小时的电影节目,可划分成[0,5]、(5,15]、(15,35]、(35,75]和(75,END=90]几段,其单位为分钟。每个节点记录几个正在观看各个段之间内容的节点。这样,在和AnySee类似的网状结构中,可以定期交换这种分段记录,从而,在某个用户拖动观看点时,可以快速定位到相应段的记录节点处,并从这些节点当时所观看的区间内得到大量备用记录以请求该区间媒体数据。此外,GridCast还根据用户习惯对数据调度策略进行优化。(5)IP层语音通信IP层语音通信(VoIP)是一种全新的网络电话通信业务,它和传统的PSTN电话业务相比有着扩展性好、部署方便、价格低廉等明显的优点。在全球范围内的VoIP应用中,由于通信各方可能处于不同的网络状况下,所以采取少数几个服务器来进行话音包中转不仅存在压力过大的问题,还可能无法为指定通信双方提供满意的通话质量保证。所以采取P2P技术动态自适应地根据通信双方网络进行链路控制与消息转发是可行的解决方案。目前风靡全球的Skype[12]即是一款典型的P2PVoIP软件。Skype由于能够提供清晰的语音质量和免费的服务,使用起来又方便快捷,所以吸引了全球数千万的用户,每天在线用户达500万人,并且注册用户数每天增加15万。基本上,Skype采取类似KaZaA的拓扑结构,在网络中选取一些超级节点。在通信双方直连效果不好时,一些合适的超级节点则担当起其中转节点的角色,为通信双方创建中转连接,并转发相应的语音通信包。(6)网络游戏平台大型网络在线游戏和网络对战游戏是不少“网虫”的至爱。但由于服务器能力有限,大型网络在线游戏往往需要限制场景人数或者不断增加服务器,而网络对战游戏也必须局限在局域网内进行或者依赖独立的服务器端程序及机器实现Internet上的电子竞技。目前,已有研究人员将P2P技术引入网络游戏和网络游戏支撑平台中。目前较为成功的P2P游戏平台是华中科技大学集群与网格计算湖北省重点实验室推出的PKTown[13]系统。PKTown系统是一个支持多种网络对战游戏的P2P平台。P2P网络对战游戏平台的难点在于将严格延时约束的节点聚集在一起,这由对战游戏本身要求所决定:延时是影响对战游戏用户体验的关键因素。在众多在线用户中,如何将新加入用户调度到周围都是延时邻近的环境中去呢?PKTown也是采取GridCast中出现过的指数增长的同心圆环方式,很好地解决了这个问题。PKTown不需要改变游戏本身的代码,而是将用户和Internet邻居组建成一个虚拟局域网,将游戏发出的通信包截获后负载上虚拟局域网的地址,转发出去,游戏进程接收到之后认为是来自同一局域网的游戏包,则可以正常进行游戏。目前PKTown支持魔兽争霸、星际争霸和反恐精英几款游戏,已经在高校范围内进行公测,并成功举华中科技大学第三届RaceWar游戏大赛,用户反应良好。3结束语自P2P技术从1999年出现之后,现在已经发展繁荣起来。前文中提到的很多技术都已经趋近成熟,如拓扑构建和内容分发等相关技术。由于P2P架构灵活,适用面广阔,所以将P2P应用到新领域的现象层出不穷,P2P的软件产品也如雨后春笋一般爆炸性增长。通过本文的描述可以看出,P2P蹬基本原理是容易实现的,人们的研究方向也由基础架构的构建和维护及优化算法等桎梏中摆脱出来,开始深入到P2P技术的根本性问题中去。最新的研究成果表明,不少研究人员已经开始将重心转入到覆盖层网络的节点延时聚集研究、覆盖网之间(Inter-Overlay)优化研究、P2P支撑平台研究以及P2P安全方面的研究等方面。相信随着对P2P技术研究的不断深入,人们能够对P2P计算有一个更深入的认识并解决目前P2P领域中大部分科学问题。可以预见,P2P所带来的技术创新和应用创新还将继续。
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客访问: 354398
博文数量: 103
博客积分: 0
博客等级: 民兵
技术积分: 2699
注册时间:
其实,我只是个研究生。在这里,我能感觉到自己的存在。
分类: 其他平台 21:55:36
参考文献:BitTorrent系统中文件传输算法与优化_杨祝林
1. 移动P2P社交网络的系统架构中:
移动客户端具有情景感知、自动聚合、社交发现、社交维护等功能;
服务器端具有注册管理、隐私控制、行为记录、用户偏好等功能。
2. 在移动社交网络中,由于节点的移动性、无线信号不稳定及外界的干扰,都可能造成节点失效或者退出系统。
3. 情境感知的目的是利用人机交互或传感器提供给计算机设备关于人和环境的信息,并让计算设备给出相应的决策。
4. 自从p2p网络的出现,互联网的存储形式,将由现在的“内容位于中心”模式转变为“内容位于边缘”模式。
5. P2P网络的优势:
(1)有效地利用了网络中闲散的存储空间,降低了成本;
(2)可以充分的利用网络中的带宽资源,从而提高了系统的数据通信的效率;
6. P2P网络面临的挑战:
(1)版权问题&&&&&&&&&&&&&&&& (2)管理困难&&&&&&&&&&&&&&&&&&&& (3)安全性差&&&&&&&&&&&&&&&&&&&&&&&&&&& (4)带宽占用
(5)垃圾信息&&&&&&&&&&&&&&&& (6)标准之争&&&&&&&&&&&&&&&&&&&& (7)正确发展
7. P2P发展中相关的软件:
(1)Napster是一个专门用于交换MP3文件的平台
· 存在严重的单点故障;
· 系统的可扩展性差;
· 安全性差;
(2)Gnutella的搜索机制是基于完全随机图的洪泛算法和随机转发机制,其最大问题是搜索的不可扩展性,搜索带来的冗余信息太多。
(3)kazaa模型是P2P混合模型的代表,它在Gnutella模型基础上引入了超级节点的概念。其主要特点是它的分层结构。
8. 2005年,NewBay公司推出了一款手机对等(P2P)软件:nttFoneShare。
对智能手机上的P2P网络,目前的技术可以成功与其他用户共享图片和文本文件,下一步的研究目标在于更大文件资源的分享,比如数字音乐、视频文件和大量游戏等。
目前移动P2P的研究正处于发展阶段,这为新兴的移动P2P技术创新提供了良好的氛围和契机。
9. 无线网络环境和移动设备的新特点:拓扑的频繁变化、资源的有效性、网络孤岛等问题。
10. 当前大多P2P应用中,主流应用扔是基于P2P文件共享和利用P2P技术实现流媒体的在线播放。比如:迅雷下载、BT下载、PPS和PPLive。
硬件资源:处理能力、存储能力、网络连接能力。
11. P2P技术的发展历程、未来和研究热点:
(1)ad hoc网络;
(2)服务器集群;
(3)核心网业务;
核心网演进的最终目的是:真正实现一种可管可控的开放系统平台。
(4)P2P+SNS;
欧式已经成为发展的主要趋势和核心竞争模式,P2P+SNS将是未来应用前景非常良好的业务之一。
12. 移动P2P网络,为叠加在移动网络环境中网络层上的会话层覆盖网络,能够利用多种宽带和服务质量的底层接入技术,其主要目的是以直接交换的方式来实现可移动设备之间数据资源与服务的协同。
13. 移动P2P网络的特点:
(1)网络拓扑的结构动态化;
(2)移动设备自身限制;
(3)带宽限制;
(4)网络连接不可靠性;
(5)移动设备的异构性;
14. P2P应用中即时共享范例:
SpotMe是用于会议、座谈会和公司会议的一种非常高级的协作系统和工具。
15. P2P的主要应用和研究领域分布在:
(1)文件共享:BitTorrent、Bitcomet、BitSpirit;
(2)分布式科学计算;
(3)协同工作;
(4)即时通讯:SpotMe;
(5)搜索引擎;
(6)网络游戏;
(7)基于Internet文件存储系统;
(8)基于P2P的流媒体直播、点播系统;
16. P2P网络中的内容异构性:
在BT系统中,节点之间含有的片段相异性越大,网络的存活率越高。如果片段之间的被拥有的量相差很大,则片段在网络中不平衡,影响网络的健康和稳定性。
17. BitTorrent协议中tracker查询和相应:
(1)Info_hash
(2)Peer_Id
(5)Upload
(6)Download
(8)event
18. 自从BitTorrent协议采用固定端口()通信以及简易的数据编码格式以来,各种形式的BT流量“封杀/限制”设备应运而生。后果是:限制下载/上传速度虽然降低了跨ISP的通信速率,增加了BT用户文件交换的时间,但并没能从根本上减少总的通信流量。
原因是:一个节点在选择他的邻居节点时,它们不是在所有节点中集中随机进行的,并非有约束性地选择,这就是跨ISP通信流量居高不下的根本原因。
19. 为了提高用户访问内容和服务相应的速度,优化现有Internet中的信息流动,提高内容和服务提供者的安全性和可用性,对各式各样网络的发送方式进行优化,已成为广大ICP和ASP的一个重要目标。
20. 现存的BitTorrent下载存在的问题:
(1)在Torrent生命周期的后期,由于节点的加入呈现指数递减趋势和种子节点有限的供种时间,导致系统的服务性能快速下降,最终系统中的节点缺少片段都无法完成下载;
(2)客户端程序的表现很不稳定,随在线节点数有明显的波动;
(3)现行的系统可能对节点提供的服务不公平,下载速度快的节点,大都是下载的多而上传的少。
21. 一个完整的BT文件分发系统由下列实体组成:
(1)Web服务器
(2)静态的“元信息”文件;
(3)Tracker服务器;
(4)终端用户的web浏览器;
(5)客户端下载者;
22. 片段选择算法中常见的策略是:
(1)严格的优先级;
(2)最少优先;
(3)随机的第一个分片;
(4)最后阶段模式;
23. 帕累托效应:
指资源配置已经达到这样一种境地,即任何重新改变资源配置的方式,都不可能使一部分人在没有其他人受损的情况下受益。
24. BT协议的三部分:Torrent文件格式、节点与追踪器的通信协议、节点之间的通信协议。
阅读(1448) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~
请登录后评论。什么是p2p技术,版权谁所有_百度知道
什么是p2p技术,版权谁所有
我有更好的答案
点对点。这个好像无版权的。
采纳率:30%
摘要 P2P(Peer to Peer)网络结构区别于Client/Server结构或Browser/Server结构最显著的特点是整个网络不存在中心节点(或中心服务器),其中的每一个节点(peer)大都同时具有信息消费者、信息提供者和信息通讯等三方面的功能。随着各类数字终端、服务器资源、网络带宽等资源持续保持类摩尔定律式的增长,通过更直接的共享方式来提高沟通效率、减少资源浪费并保障信息服务安全将为信息社会带来新一轮的发展高潮。P2P正是这种新共享方式的主要候选者之一。目前看来,P2P技术为服务共享、分布式计算和信息交流提供了更灵活高效的模式,也为信息安全带来了新挑战和新的安全保障手段。本文将对此作简要介绍。 P2P简介
P2P(Peer-to-Peer,即对等网络)是近年来广受IT业界关注的一个概念。由于广大的网络终端节点(普通用户拥有的节点,即通常意义上的终端设备)的计算和存储能力以及连接带宽随着摩尔定理不断地增长,使用P2P技术将大大提高这些节点的利用率,从而进一步提升网络、设备和信息服务的效能。
P2P之所以吸引人主要在于其在以下两个方面的突出表现:• 低成本、高可用的超大规模计算和存储资源共享; • 强大的网络联通性,更直接、更灵活的信息沟通。
目前P2P在加强网络上人的交流、文件交换、分布式计算、服务共享等方面已经充分显示出了其强大的技术优势。
1.1 什么是P2P
大多数人最初是从Napster的品牌中知道P2P网络的。在这种应用中,P2P网络概念用于共享文件。但是,P2P不仅仅是用于文件共享,它还包括建立基于P2P形式的通讯网络、P2P计算或其它资源的共享等很多方面。P2P最根本的思想,同时也是它与C/S最显著的区别在于网络中的节点(peer)既可以获取其它节点的资源或服务同时又是资源或服务的提供者,即兼具Client和Server的双重身份。一般P2P网络中每一个节点所拥有的权利和义务都是对等的,包括通讯、服务和资源消费。
P2P是这样一种分布式网络,其中的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机……),这些共享资源需要由网络提供服务和内容,能被其他peer直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者,又是资源(服务和内容)获取者。
可以将P2P分为纯(Pure)P2P和混合(Hybrid)P2P两种模式。纯P2P网络中不存在中心实体或服务器,从网络中移去任何一个单独的、任意的终端实体,都不会给网络中的服务带来大的损失。而混合P2P网络中则需要有中心实体来提供部分必要的网络服务,如保存元信息、提供索引或路由、提供安全检验等。1.2 P2P发展历史
从网络P屠纯矗琍2P并不是新概念,它可以说是互联网整体架构的基础。互联网最基本的协议TCP/IP并没有客户机和服务器的概念,所有的设备都是通讯的平等的一端。在十几年前,所有的互联网上的系统都同时具有服务器和客户机的功能。然而,由于受早期计算机性能、资源等因素的限制,随着互联网规模的迅速扩大,大多数连接到互联网上的普通用户并没有能力提供网络服务,从而逐步形成了以少数服务器为中心的客户机/服务器(Client/Server)架构。WWW的风靡,正是这一应用潮流的体现。在客户机/服务器架构下,对客户机的资源要求非常少,因而可以使用户以非常低廉的成本方便地连接互联网,推动了互联网的快速普及。
但是,随着互联网对人们生活的联系日益紧密和深入,人们需要更直接、更广泛的信息交流。普通用户希望能够更全面地参与到互联网的信息交互中,而计算机和网络性能的提升也使其具有了现实的可能性。在此背景下,P2P再一次受到了广泛的关注。
将P2P带入了网络世界的一个著名例子是Napster。该公司成立于1999年,它提供服务允许音乐迷们交流MP3文件。它与提供免费音乐下载MP3.com的不同就是在Napster服务器没有一首歌曲,Napster提供了一个新的软件供音乐迷在自己的硬盘上共享歌曲文件,搜索其他用户共享的歌曲文件,并到其他也使用Napster服务的用户硬盘上去下载歌曲。Napster在短时间里吸引了5000万用户。最终,它被五大唱片商以侵犯版权推上被告席而成为世界的焦点。Napster的成功促使人们认识到把P2P拓展到整个互联网范围的可能性。
另一个采用P2P方式实现计算资源共享的例子是SETI@home。这是一个寻找外星球文明的大型科研工程。为了快速处理大规模天文数据,该工程将互联网上300万台以上的计算机通过P2P方式组织起来,充分共享这些节点的空闲计算资源(CPU),从而达到了甘瓯Flops的计算能力。
事实上,网络上现有的许多服务可以归入P2P的行列。即时通信系统如ICQ、Yahoo Messenger、MSN Messenger以及OICQ等是都最流行的P2P应用。它们允许用户互相沟通和交换信息、交换文件。但这些系统缺少对于大量信息共享非常重要的一些功能,如搜索。这可能正是为什么即时通讯出现很久但是并没有能够产生如Napster这样的影响的原因之一。1.3 P2P网络的特点与其它网络模型相比,P2P具有以下特点:1.3.1 分散化(Decentralization)
网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。
即使是在混合P2P中,虽然在查找资源、定位服务或安全检验等环节需要集中式服务器的参与,但主要的信息交换最终仍然在节点中间直接完成。这样就大大降低了对集中式服务器的资源和性能要求。
分散化是P2P的基本特点,由此带来了其在可扩展性、健壮性等方面的优势。1.3.2 可扩展性
在传统的C/S架构中,系统能够容纳的用户数量和提供服务的能力主要受服务器的资源限制。为支持互联网上的大量用户,需要在服务器端使用大量高性能的计算机,铺设大带宽的网络。为此机群、cluster等技术纷纷上阵。在此结构下,集中式服务器之间的同步、协同等处理产生了大量的开销,限制了系统规模的扩展。
而在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。即使在诸如Napster等混合型架构中,由于大部分处理直接在节点之间进行,大大减少了对服务器的依赖,因而能够方便地扩展到数百万个以上的用户。而对于纯P2P来说,整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为是无限的。
P2P可扩展性好这一优点已经在一些得到应用的实例中得以证明,如Napster,Gnutella,Freenet等。1.3.3 健壮性
在互联网上随时可能出现异常情况,网络中断、网络拥塞、节点失效等各种异常事件都会给系统的稳定性和服务持续性带来影响。在传统的集中式服务模式中,集中式服务器成为整个系统的要害所在,一旦发生异常就会影响到所有用户的使用。
而P2P架构则天生具有耐攻击、高容错的优点。由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其它部分的影响很小。而且P2P模型一般在部分节点失效时能够自动调整整体拓扑,保持其它节点的连通性。事实上,P2P网络通常都是以自组织的方式建立起来的,并允许节点自由地加入和离开。一些P2P模型还能够根据网络带宽、节点数、负载等变化不断地做自适应式的调整。1.3.4 隐私性
随着互联网的普及和计算/存储能力飞速增长,收集隐私信息正在变得越来越容易。隐私的保护作为网络安全性的一个方面越来越被大家所关注。目前的Internet通用协议不支持隐藏通信端地址的功能。攻击者可以监控用户的流量特征,获得IP地址。甚至可以使用一些跟踪软件直接从IP地址追踪到个人用户。
在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。1.3.5 高性能
性能优势是P2P被广泛关注的一个重要原因。
随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。而在目前的互联网上,这些普通用户拥有的节点只是以客户机的方式连接到网络中,仅仅作为信息和服务的消费者,游离于互联网的边缘。对于这些边际节点的能力来说,存在极大的浪费。
采用P2P架构可以有效地利用互联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。这与当前高性能计算机中普遍采用的分布式计算的思想是一致的。但通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。2.P2P技术研究现状2.1 P2P分类
P2P是一个相对底层的技术,一些共性的问题如节点表示、资源路由、可扩展性、安全性等受到人们的普遍关注。但是,由于应用需求不同,相关的研究侧重点还是有所不同的。从应用角度来看,目前P2P技术研究主要涉及到以下几个领域:• 提供文件和其它内容共享的P2P网络,例如Napster、Gnutella、CAN、eDonkey、BitTorrent等;• 挖掘P2P对等计算能力和存储共享能力,例如SETI@home、Avaki、Popular Power等;• 基于P2P方式的协同处理与服务共享平台,例如JXTA、Magi、Groove、.NET My Service等;• 即时通讯交流,包括ICQ、OICQ、Yahoo Messenger等;• 安全的P2P通讯与信息共享,例如CliqueNet、Crowds、Onion Routing等。
上述的分类并不是绝对的。一些系统兼顾了多类功能。惠普实验室的一篇技术报告[1]中提到的针对P2P研究体系的分类方法也有较好的参考价值。具体如下:图1. P2P分类参考体系2.2 P2P网络的共性问题2.2.1 资源的定位 P2P网络中进行资源定位是首先要解决问题。一般采用三种方式:• 集中方式索引:每一个节点将自身能够提供共享的内容注册到一个或几个集中式的目录服务器中。查找资源时首先通过服务器定位,然后两个节点之间再直接通讯。例如早期的Napster;这类网络实现简单,但往往需要大的目录服务器的支持,并且系统的健壮性不好。• 广播方式:没有任何索引信息,内容提交与内容查找都通过相邻接节点直接广播传递。例如Gnutella。一般情况下,采取这种方式的P2P网络对参与节点的带宽要求比较高;• 动态哈希表的方式: 动态哈希表(Distributed Hash Table, DHT)是大多数P2P网络所采取的资源定位方式。首先将网络中的每一个节点分配虚拟地址(VID),同时用一个关键字(KEY)来表示其可提供的共享内容。取一个哈希函数,这个函数可以将KEY转换成一个哈希值H(KEY)。网络中节点相邻的定义是哈希值相邻。发布信息的时候就把(KEY, VID)二元组发布到具有和H(KEY)相近地址的节点上去,其中VID指出了文档的存储位置。资源定位的时候,就可以快速根据H(KEY)到相近的节点上获取二元组(KEY, VID),从而获得文档的存储位置。不同的DHT算法决定了P2P网络的逻辑拓扑,比如CAN就是一个N维向量空间,而CHORD是一个环形拓扑,TAPESTRY则是一个网状的拓扑。
上述的资源定位方式可以依据不同的P2P应用环境中进行选择,但是人们普遍看好DHT方法。基于DHT的P2P网络在一定程度上可以直接实现内容的定位。一个矛盾的问题是:如果一个节点提供共享的内容表示越复杂,则哈希函数越不好选择,相应的,网络的拓扑结构就越复杂。而如果内容表示简单,则又达不到真正实现依据内容定位的能力。目前大多数DHT方式的P2P网络对节点所提供共享内容的表示都很简单,一般仅仅为文件名。2.2.2 P2P网络与小世界现象
统计发现,动态更新的P2P网络拓扑结构在一定程度上满足某种规律。如果把握好这种规律,则对P2P网络的健壮性、快速查询及可扩展性都将有非常大的帮助。这种规律近年来在生物学、社会学、生态学等领域也同时存在。很多科学家将这种规律称之为“小世界现象”(SMALL WORLD)[21]。
基于已有的经验和理论成果,可把复杂的网络分成两类,其依据是网络的连通性分布P(k)。P(k)是指网络中一个节点与其他k个节点连通的概率。第一类称为指数网络(exponential networks),是指P(k)成指数分布,例如Watts和Strogatz建议的small world模型。这类网络节点的连接度比较均匀,即基本上每个节点的联结数都近似相等。在这种网络内,网络的分离度(degree of separation)都很小,即任意两个节点之间建立连接的长度都很小;第二类称为可扩展网络(scale-free networks),是指P(k)呈幂数分布(power law)。很多网络,如World-Wide Web,Internet,Gnutella等都属于这一类。这类网络中大多数节点的连接度都不高,少数节点的连接度很高。可以将这些少数节点看成中心节点。这类网络连通性和可扩展性很好,而且非常健壮和可靠,即使有部分节点失效,也不会对整个网络造成过大的影响。但是,它的抗攻击性并不好。攻击者只需对连接度很高的少数节点攻击,就能造成网络的瘫痪。不过,这种攻击的代价很大。小世界现象的另外一个规律是,网络结构与系统性质来自于自组织、成长与竞争。
分离度与幂数分布对P2P网络拓扑结构的构建与发现、动态更新、资源定位(Content Routing)等都有很好的利用价值。2.2.3 P2P的安全问题
P2P网络系统的开发,除了涉及传统的安全性的领域:身份识别认证、授权、数据完整性、保密性和不可否认性,还有一系列特殊问题亟待解决: • 在P2P共享网络中普遍存在的知识产权保护问题。n 在一个无中心的环境中如何选择可靠的资源,即如何建立节点之间的信誉问题;• P2P带来的新型网络病毒传播模式防阻断问题;• 基于P2P的隐蔽通讯与隐私保护问题;• P2P网络服务健壮性与抗毁能力等等。相关问题的具体论述在后面给出。2.3 P2P文件共享、存储及检索
内容共享和文件交换是到目前为止最引人注目的P2P应用。高效的大规模内容共享直接推动了P2P技术研究的热潮。基于P2P的内容共享包括P2P文件共享与检索、高速下载、P2P存储等。2.3.1 P2P文件共享
这一类应用中,每个对等的节点都提供文件内容的共享,同时也可以在整个点对点网络中检索获得其他的节点上存储的资源。这类系统可以分为三类:• 非结构化P2P系统:这类系统的特点是文件的发布和网络拓扑松散相关。该类方法包括Napster,KaZaA,Morpheus,Gnutella。Napster是包含有中心索引服务器的最早的P2P文件共享系统,存在扩展性和单点失败问题。 Gnutella、Morpheus是纯P2P文件共享系统,后者如今并入前者中;KaZaA是包含有超级节点的混合型P2P文件共享系统。KaZaA、Morpheus、Gnutella等系统采用广播或者受限广播来进行资源定位,具有较好的自组织性和扩展性,适用于互联网个人信息共享。缺点是稀疏资源的召回率低。• 结构化P2P系统:这类系统的特点是文件的发布和网络拓扑紧密相关。文件按照P2P拓扑中的逻辑地址精确的分布在网络中。这类系统包括CAN、TAPESTRY、CHORD、PASTRY,以及基于这些系统的一些其它文件共享和检索方面的研究实验系统。在这类系统中每个节点都具有虚拟的逻辑地址,并根据地址使所有节点构成一个相对稳定而紧致的拓扑结构。在此拓扑上构造一个存储文件的分布式哈希表DHT,文件根据自身的索引存储到哈希表中。每次检索也是根据文件的索引在DHT中搜索相应的文件。生成文件的索引的方法有三种:根据文件的信息生成的哈希值(HASH),如CFS,OCEANSTORE,PAST,Mnemosyne等;根据文件包含的关键字生成关键字索引;还有根据文件的内容向量索引,如PSearch。• 松散结构化P2P系统:此类系统介乎结构化和非结构化之间。系统中的每个节点都有分配有虚拟的逻辑地址,但整个系统仍然是松散的网络结构。文件的分布根据文件的索引分配到相近地址的节点上。随着系统的使用,文件被多个检索路径上的节点加以缓存。类似的系统包括Freenet,Freehaven等。相关系统非常强调共享服务的健壮性(安全性)。2.3.2 P2P分布式存储
P2P分布式存储系统具有类似于上一类系统的功能和构造,但侧重于分布式系统中文件系统管理。此类系统主要包括两个类型:• 非结构化P2P系统:例如Farsite就属于此类系统。Farsite通过使用密钥加密文件的内容,并把密文的备份发布到可信任的节点上。每个节点根据获得的文件内容,组织成编目的文件系统。• 结构化P2P系统。此类分布式文件系统基于DHT的思想,将文件发布到DHT上,并组织成树状的文件系统。每个目录都组织成一个描述块的形式,每个描述块都对应一个块的Hash值,每个块中包含有所有子目录描述块的hash值,叶子节点是文件的描述块,所有这些描述块分布在DHT中以供检索。此类系统包括基于CHORD的CFS、基于Tapestry的Oceanstore等。2.3.3 P2P搜索技术
P2P文件共享首先要解决文件定位的问题。但是基于P2P的文件搜索技术可以独立出来,成为传统的搜索引擎等系统强大的搜索工具。P2P搜索技术使用户能够深度搜索文档。而且这种搜索无需通过Web服务器,也可以不受信息文档格式和宿主设备的限制,可达到传统目录式搜索引擎(只能搜索到20%-30%的网络资源)无可比拟的深度(理论上将包括网络上的所有开放的信息资源)。以P2P技术发展的另一先锋Gnutella进行的搜索为例:一台PC上的Gnutella软件可将用户的搜索请求同时发给网络上另外10台PC。如果搜索请求未得到满足,这10台PC中的每一台都会把该搜索请求转发给另外10台PC。理论上,搜索范围将在几秒钟内以几何级数增长,几分钟内就可搜遍几百万台PC上的信息资源。当然实际环境中还需要考虑网络带宽以及路由优化方面的问题。P2P为互联网的信息搜索提供了一个全新的解决之道。2.3.4 资源共享的新境界
采用P2P方式实现信息的共享和高速下载蕴含着巨大的商机。Napster由于一开始的知识产权问题而暂时陷入低谷之后,Gnutella紧随其后推出了更具有P2P架构的文件服务模式。为了激发更多的人来提供内容,随后的eDonkey和eMule定义了更方便的交互协议。为了充分利用分布在全球的网络带宽,实现大数据量的信息能够快速大面积下载,由美国旧金山的软件工程师布莱姆•科亨(Bram Cohen)开发的BT(BitTorrent,比特涡流)系统2003年一经推出就产生了很大影响。有人预言BT将领导P2P资源共享的新潮流。
P2P文件共享技术自身在快速发展的同时,相关的应用机会将越来越大。包括基于各种目的的网络内容分发、在线流媒体服务、游戏或其它软件分发等等都开始引入这种新的技术。同时,新应用的引入也将进一步推进P2P文件共享技术的创新步伐。2.4 对等计算
对等计算是分布式计算的思想在广域网上的延伸,目的是将网络上的CPU资源共享,把网络中众多的普通计算机中暂时不用的计算能力累计起来,用以执行以往需要超级计算机来完成的任务。
在对等计算中,大型的计算任务被分解成很多个小的分片,分别分配给网络中的节点独立执行。实际上可以将P2P看作一个松耦合的分布式计算系统,可以有集中控制节点,也可以是纯P2P架构。受互联网的限制,其子任务之间的同步和数据交换比较少,基本是相互独立的。因而对于那些可以分解的计算密集性任务来说,对等计算是再适合不过的了。在2002年9月破解了RSA公司悬赏的RC5-64密码的组织,正是利用对等计算技术集合了互联网上的331252台计算机才完成了这一巨大的计算量。对等计算的威力由此可见一斑。
许多需要大量数据处理的行业都可以从对等计算中获利,如天气预报、动画制作、基因组的研究等。有了对等计算之后,很多时候就不再需要配备专门的超级计算机了,可以大大降低计算成本。Intel也采用对等计算技术、利用其办公室内的数百台PC机来完成CPU设计的工作,节省了大量的费用。同时对等计算的发展是以PC机资源的有效利用为出发点,自然也受到Intel的极力推崇。SETI@Home利用对等计算技术完成天文方面的运算,也是一个成功的范例。2.5 协同工作与在线交流
协同工作依托在网络之上。但以传统的WEB方式实现,往往给服务器带来极大的负担,并造成了昂贵的成本支出。而采用P2P技术,可以在互联网上任意两个用户之间建立实时的联系和信息传输,避免了中央服务器产生的网络和处理延迟及性能瓶颈,因而能够更方便、高效地实现用户之间的协同。
最近几年方兴未艾的即时通(Instant Messaging,简称IM)正是实现了用户之间的直接交流,受到了互联网用户的极大欢迎,可以说已经是无处不在。目前很多公司正努力将这种方式应用到企业级的协同工作平台中来,已经推出了一些产品。由于其具有成本低廉、平均事务处理能力较高、可动态扩展等优良品性,并能够有效地提高信息交流和沟通效率,未来P2P技术在企业级协同工作领域有着很好的应用前景。
另外一个很有前景的应用就是基于P2P方式的网络游戏。目前已经有一些公司开始关注这方面的研发工作。3 与P2P相关的几个信息安全问题3.1 P2P信息共享与知识产权保护
在P2P共享网络中普遍存在着知识产权保护问题。尽管目前Gnutella、Kazaa等P2P共享软件宣传其骨干服务器上并没有存储任何涉及产权保护的内容的备份,而仅仅是保存了各个内容在互联网上的存储索引。但无疑的是,P2P共享软件的繁荣加速了盗版媒体的分发,提高了知识产权保护的难点。美国唱片工业协会RIAA(Recording Industry Association of America)与这些共享软件公司展开了漫长的官司拉锯战,著名的Napster便是这场战争的第一个牺牲者。另一个涉及面很关的战场则是RIAA和使用P2P来交换正版音乐的平民。从2004年1月至今RIAA已提交了1000份有关方面的诉讼。尽管如此,至今每个月仍然有超过150,000,000的歌曲在网络上被自由下载。后Napster时代的P2P共享软件较Napster更具有分散性,也更难加以控制。即使P2P共享软件的运营公司被判违法而关闭,整个网络仍然会存活,至少会正常工作一段时间。
另一方面,Napster以后的P2P共享软件也在迫切寻找一个和媒体发布厂商的共生互利之道。如何更加合法合理的应用这些共享软件,是一个新时代的课题。毕竟P2P除了共享盗版软件,还可以共享相当多的有益的信息。
网络社会与自然社会一样,其自身具有一种自发地在无序和有序之间寻找平衡的趋势。P2P技术为网络信息共享带来了革命性的改进,而这种改进如果想要持续长期地为广大用户带来好处,必须以不损害内容提供商的基本利益为前提。这就要求在不影响现有P2P共享软件性能的前提下,一定程度上实现知识产权保护机制。目前,已经有些P2P厂商和其它公司一起在研究这样的问题。这也许将是下一代P2P共享软件面临的挑战性技术问题之一。3.2 对等诚信
为使得P2P技术在更多的商业环境里发挥作用,必须考虑到网络节点之间的信任问题。集中式的节点信任管理既复杂又不一定可靠。所以在P2P网络中应该考虑对等诚信模型。实际上,对等诚信由于具有灵活性、针对性并且不需要复杂的集中管理,可能是未来各种网络加强信任管理的必然选择,而不仅仅局限于对等网络。
对等诚信的一个关键是量化节点的信誉度。或者说需要建立一个基于P2P的信誉度模型。信誉度模型通过预测网络的状态来提高分布式系统的可靠性。一个比较成功的信誉度应用例子是在线拍卖系统eBay。在eBay的信誉度模型中,买卖双方在每次交易以后可以相互提升信誉度;一名用户的总的信誉度为过去6个月中这些信誉度的总和。eBay依靠一个中心来管理和存储信誉度。同样,在一个分布式系统中,对等点也可以在每次交易以后相互提升信誉度,就象在eBay中一样。例如,对等点i每次从j下载文件时,它的信誉度就提升(+1)或降低(-1)。如果被下载的文件是不可信的,或是被篡改过的,或者下载被中断等,则对等点i会把本次交易的信誉度记为负值(-1)。就象在eBay中一样,我们可以把局部信誉度 定义为对等点i从对等点j下载文件的所有交易的信誉度之和。
每个对等点i可以存贮它自身与对等点j的满意的交易数 ,以及不满意的交易数 ,则 可定义为: =
文献[2][3]对P2P系统的信誉度讨论所采用的方法类似于局部信誉度方法。文献[4]对信誉度信息进行了更为综合的考虑,然而并没有给出任何具体的算法以计算每个对等点的信誉度值。文献[5]讨论了在P2P匿名系统中如何采用信誉度模型以选择可靠的资源,并对匿名环境中如何应用信誉度模型给出了一些建议。对分布式环境中信誉度机制的挑战是如何在无中央管理的情况下对局部信誉度 进行聚合。在聚合过程中经常出现的两个问题,一是如果对对等节点的信誉度聚合仅限于某个局部范围内,就不能得到节点的更为全面的信誉度值;二是如果在全局范围内聚合,由于要查询每个对等点的局部信誉度会导致网络拥塞。3.3 P2P带来的新型网络病毒传播问题
随着计算机网络应用的深入发展,计算机病毒对信息安全的威胁日益增加。特别是在P2P环境下,方便的共享和快速的选路机制,为某些网络病毒提供了更好的入侵机会。
为您推荐:
其他类似问题
您可能关注的内容
p2p的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 thrift底层通信协议 的文章

 

随机推荐