1、2018/9/22,李之棠 HUST 1,P2P原理与技术,Firewall,因特网洲际主干,洲际主干,ISP,消费者用户,第三方内容,Web 服务器,应用服务器,因特网主干,地区网络,企业网提供商,ISP,专业提供商,本地 ISP,T1,社团用户,社团网络,数据库,Slide source: ,Slide source: ,消费者用户,Peer,Peer,Peer,Peer,李之棠华中科技大学计算机学院CERNET华中地区网络中心,2018/9/22,李之棠 HUST 2,P2P原理与技术,概述分类构件与算法关键技术特性P2P分析与比较研究与未来,2018/9/22,李之棠 HUST 3,1
2、.1 什么是P2P,P2P:Peer-to-Peer对等(网络,计算);端到端以非集中方式使用分布式资源来完成关键任务的一类系统和应用资源包括计算能力、数据(存储和内容)、网络带宽和场景(计算机、人和其它资源)关键任务可能是分布式计算、数据/内容共享,通信和协同、或平台服务典型位置:因特网边界或ad-hoc网内,2018/9/22,李之棠 HUST 4,Sarnoff law:效益规模是O(n):网络是广播媒介,任1发送者(设备)和多个(n-1)接收者(设备)。,Metcalfe law:效益规模是O(n2)网络是全互连媒介,任何1个设备可与其它n-1个交互,同时存在n(n-1)=n2-n个并
3、发执行的事务,Reed law:效益规模是O(2n):网络是群组媒介。网络可建立Cn2+Cn3+Cnn-1+Cnn = 2n-n-1 个小组,网络服务规模三法则,2018/9/22,李之棠 HUST 5,P2P的效果,巨大的扩展力通过低成本交互来聚合资源,导致整体大于部分之和。低成本的所有权和共享使用现存的基础设施、削减和分布成本匿名和隐私允许对等端在其数据和资源上很大的自治控制,2018/9/22,李之棠 HUST 6,P2P Network,Linux,NAT,TCP/IP,Bluetooth,HTTP,Firewall,TCP/IP,TCP/IP,Application,XP,P2P的网
4、络基本构成,2018/9/22,李之棠 HUST 7,P2P 今天的影响,P2P文件共享产生的流量可能是今天因特网最大的单项流量,Source: www.internet2.edu, July 04,Source: Eurpoean Tier I ISP Feb 04,BT,HTTP,eDonkey,Internet2 traffic statistics,Eurpoean traffic by Protocol,2018/9/22,李之棠 HUST 8,不同共享P2P的下载率和使用率,2018/9/22,李之棠 HUST 9,Deflection capabilitiesResponsive
5、ness,全系统仿真由许多子系统仿真构成,Lift CapabilitiesDrag CapabilitiesResponsiveness,Thrust performanceReverse Thrust performanceResponsivenessFuel Consumption,Braking performanceSteering capabilitiesTractionDampening capabilities,Crew Capabilities- accuracy- perception- stamina- re-action times- SOPs,引擎模块,机身模块,翅膀
6、模块,起落架装置模块,水平尾翼模块,分布式 P2P 仿真,2018/9/22,李之棠 HUST 10,Foldinghome/蛋白质折叠和药物设计,虚拟超级计算机 peer-to-peer technology 产生空前大量的计算能力使医疗研究者能加速治疗方法的改进和药物的设计加快癌研究的新发现,http:/www.stanford.edu/group/pandegroup/Cosm/http:/ HUST 11,1.2 P2P的定义,Intel 工作组:通过在系统之间直接交换来共享计算机资源和服务的一种应用模式A.Weytsel:在因特网周边以非客户地位使用的设备R.l.Granham: 通
7、过3个关键条件定义具有服务器质量的可运行计算机具有独立于DNS的寻址系统具有与可变连接合作的能力C.Shirky:利用因特网边界的存储/CPU/内容/现场等资源的一种应访问这些非集中资源意味着运行在不稳定连接和不可预知IP地址环境下,P2P节点必须运行在DNS系统外边具备有效或全部的自治,2018/9/22,李之棠 HUST 12,Kindberg:独立生存的的系统D.J.Milojicic:给对等组提供或从对等组获得共享对等端向组给出某些资源,并从组获得某些资源Napster:把音乐供给组内其他人,并从其他人获得音乐捐赠计算资源用于外星生命的搜索或战胜癌症,获得帮助其他人的满足另一种应用模式
8、选择:相对集中式、和C/S模式纯P2P:没有服务器的概念,所有成员都是对等端并不是全新的概念早期分布式系统:如UUCP和交换网络电话通信计算机网络中的通信、网络游戏中的诸玩家自助餐,志愿组活动,2018/9/22,李之棠 HUST 13,1.3 P2P 与 C/S,二者在结构和构成上有很大区别管理能力、构态能力、功能(查找或发现)、组织(分层与网孔)、元素(DNS)和协议(IP)但又无明显边界都能运行在不同的(Internet / Intranet)平台上都能服务传统或新的应用:eBusiness eServuices ,2018/9/22,李之棠 HUST 14,有管理自组织,预构-Ad-h
9、oc,查找发现,分层Mesh,静态移动,依赖服务器独立生存,以IP为中心不以IP为中心,基于DNS客户命名,RPC异步,.NET,JXTA,C/S模式,P2P模式,CORBA,CORBA,Gnutella,Napster,eBusiness,Web apps,eServices,Distr.apps,Ad-hoc NW,Clusters,Internet Intranet,WANs,Grids,P2P与C/S,2018/9/22,李之棠 HUST 15,1.4 P2P 相关背景,一般计算和因特网特殊计算的历史演进:因特网边界计算:如SETIhome和其它分布式计算系统内容共享的社会方面:如Na
10、pster音乐和其他文件/内容共享系统计算机、网络通信技术的进步和改进大型机桌面PC 便携机手持设备(手机)使通信和协同变得更方便P2P软件结构:如JXTA,.NET开发的P2P算法:如Gnutella,FreeNet,2018/9/22,李之棠 HUST 16,1.5 P2P之目标:满足应用需要,共享/削减成本:Napster 共享文件空间,SETIhome聚合未用资源改进可扩展性/可靠性:对缺乏很强中心授权的自治对等端这点尤为重要资源聚合与互操作能力增加自治匿名/隐私:自治的理念和结果。用户不希望任何人或ISP知道其包含在系统中动态性;资源动态进入或离开系统实现Ad-hoc通信和协同,动态
11、的理念和结果,2018/9/22,李之棠 HUST 17,P2P解决方案,2018/9/22,李之棠 HUST 18,2 P2P分类,所有的计算机系统可分为集中式和分布式两类分布式可进一步划分为C/S和P2P模式C/S模式可划分为扁平:所有的客户端仅仅和单个服务器(含重复服务器)通信,如传统的中间件分层:提高可扩展性,某层的服务器又作为更高层的客户端:如DNS服务器和文件系统,2018/9/22,李之棠 HUST 19,纯P2P系统:如Gnutella 和 Freenet混合P2P系统:首先从服务器获得元数据或索引信息,如存储某些信息的对等端的标识符,或安全信誉的验证,以后P2P通信直接和对等
12、端进行,典型系统有:Napster,Groove , Aimster , Magi , Softwax ,iMesh 以及华中科技大学的5Q;Anysee某些有SuperPeers的中间形式:如Kazaa,超级Peers拥有其他Peers没有的信息,它们常常在不能发现时查找这些超级Peers,混合P2P的资源寻找过程,2018/9/22,李之棠 HUST 20,2.1 P2P系统的分类,SETIhomeAvbaki,Entropia,NapsterGnutellaFreenetPubliusFree Haven,MagiGrooveJabber,JXTA.NET.NETMyServices,2
13、018/9/22,李之棠 HUST 21,P2P 多维视图,2018/9/22,李之棠 HUST 22,2.2 P2P 应用分类,2018/9/22,李之棠 HUST 23,可并行化P2P应用,计算密集型:把一个大的任务分解成许多可在大量独立对等端省并行执行的子任务。基本思想是:利用连接在因特网上的诸多计算机的空闲周期来解那些需要大量计算的不同问题。通常是那些使用不同参数的相同计算任务:如外星生命搜索 SETIhome,密码破解,风险预测,市场和信誉评估,人口统计分析构件化应用:还没有广泛认着为P2P应用在许多对等端上运行不同的构件如Workflow , JavaBean, Web Servi
14、ces,2018/9/22,李之棠 HUST 24,内容和文件管理,集中应用信息存储信息查询(来自网络上各种Peers)大众模式:内容交换2001年:Napster和Gnutella让Peers搜速和下载文件当前重点是提供可靠性:用户下载文件时的智能选择,重复DB协同过虑和挖掘开始出现,2018/9/22,李之棠 HUST 25,协同,什么是协同应用?允许用户实时协同不依赖中心服务器去搜集和转发消息应用实例实时消息:Yahoo!、AOL和Jabber已在各种计算机用户之间广泛使用同行共享:Buzzpad,分布式Power Point异地同时互动评审、编辑同一信息P2P游戏:NetZ 1.0 ,
15、Scour Exchange,Cybiko游戏运行在所有Peer的计算机上,更新也分布在所有Peer端,不需要中心服务器,2018/9/22,李之棠 HUST 26,P2P 平台环境,P2P平台由Internet、Intranet和Ad-hoc网构成从拨号线到宽带都可支持P2P当前结构多是个人家庭主机、单位桌面机和个人移动计算机(便携和手持)历史与现状早期P2P系统多用家庭机进行内容共享,Napster,Gnutella Aimster分布式计算多基于桌面机,SETIhomeAd-hoc手持网络最近可用,专于协同计算,如Endeavors, Technologies Magi。发展:更大的场景
16、单位桌面机支持内容共享、IDC与手持机资源聚合、NGI/Inernet2 支持P2P系统和应用,2018/9/22,李之棠 HUST 27,2.3 P2P 市场分类,2018/9/22,李之棠 HUST 28,消费空间个人:音乐和内容共享,及时消息,email 和游戏团体:Napster Gnutella方式:内容交换和通信企业空间单个应用:生物、金融、传统IT解决方案(B2B)联合应用:Data Synapse/Information Architects WorldStreet公用空间信息共享数字版权管理娱乐CenterSpan,AIM,Scour音乐和视频交付都在宽带上使用了P2P技术,
17、2018/9/22,李之棠 HUST 29,P2P 市场与 P2P应用,2018/9/22,李之棠 HUST 30,3 构件与算法,P2P结构抽象:由许多构件组成(非正式划分),2018/9/22,李之棠 HUST 31,3.1 基础设施构件,通信P2P模式覆盖广泛的通信方式是通过高速稳定链路连接到因特网的桌面机可是小型无线设备PDA甚至通过无线媒质连接到Ad-hoc网的基于传感的装置P2P群体通信的根本挑战:和对等端动态特点配合的问题有意(关机)或无意(拨号或网络断开)使P2P群体组发生频繁变化在这种环境下维持应用层的连接是P2P开发者面临的最大 的挑战,2018/9/22,李之棠 HUST
18、 32,组管理,组管理的内容发现本群组中其他Peers :Napster:高度集中式发现Peers,Gnutella:高度分布式发现,有时在集中与分布之间定位及Peers之间的路由影响发现算法设计的原因移动、无线设备的发现必须是其他Peers在通信范围内桌面机运行的协议大多用于集中化目录定位及路由算法:从某Peer到另一个之间的消息传送路径的优化已开发的Napster Gnutella主要优化现行网络的延时,2018/9/22,李之棠 HUST 33,健壮性,基本构成安全、资源聚合、可靠性安全是最大挑战P2P的好处是让节点同时具有客户和服务器的功能但从客户端转变成服务器角色就把大量风险带进到系
19、统:仅可信和授权的资源才可提供然而:安全需求或要求来自用户潜在而烦琐的干预,或同可信第三方交互集中式的安全问题避开了分布的风险,可这却是P2P的潜在好处,2018/9/22,李之棠 HUST 34,资源聚合,P2P通过提供Peers间基本的交互来聚合其系统上可用的资源资源范围广泛文件和其他常驻在计算机内的内容,大量的文件共享系统解决了这类资源的聚合问题但资源可定义为:在给定Peer设备上可用东西。如CPU处理能力,带宽,能量和磁盘空间等等,2018/9/22,李之棠 HUST 35,可靠性,P2P系统中困难的问题固有的分布式特点使保障可靠性很困难通常解是:冗余计算密集模式中,当检测到某机失效,
20、则该任务可启动其它可用计算机相同的任务可分配到多个Peers上在文件共享系统,可在许多Peers上部署重复DB丢失的消息可重发或沿着多个通路同时发送,2018/9/22,李之棠 HUST 36,类说明,两类构件前面所讨论的构件是可应用到P2P结构应用类说明是构件每类P2P应用的功能抽象或概要类说明调度:应用于可并行化或计算密集类(任务分块调度给Peers)元数据:应用于内容和文件管理,描述存储在各Peers上的内容,并可被查阅以决定所求信息的位置消息:应用于协同,在各Peers间发送以完成通信管理:支持先行P2P基础设施的管理,2018/9/22,李之棠 HUST 37,应用说明,构成与功能工
21、具、例程和服务详细描述应用,以协调现行P2P设施上的某些应用适应于分布式调度(科学、金融、生物计算)内容和文件共享(音乐MP3文件交换)运行在协同和通信系统上面的特别应用,如日历、笔记、消息和聊天,2018/9/22,李之棠 HUST 38,3.2 模式与算法,集中目录模式最流行,Napster使用群组的Peers连接到发布其能提供共享内容的中心目录上,匹配请求与索引文件直接交换在两个Peers间进行需要一些可管理的设施(目录服务器:记载群组所有参加者的信息)限制了规模的扩大:大量用户增加大量请求-大服务器-存储器然Napster经验表明,除开法律问题外,该模式还很有效和强大,2018/9/2
22、2,李之棠 HUST 39,Napster原理,I have X!,insert(X, 1.2.3.4).,1.2.3.4,2018/9/22,李之棠 HUST 40,Napster原理,Where is file A?,search(A)-4.3.2.1,4.3.2.1,2018/9/22,李之棠 HUST 41,洪泛请求模式,过程每个Peer的请求直接广播到连接的Peers各Peers又广播到各自的Peers直到收到应答或 达到最大洪泛步数(典型5-9)特点无广告性共享资源Gnutella 使用该算法,限于公司内通信有效大量请求占用网络带宽,可扩展性并不一定最好改进Kazaa 设立Supe
23、r-Peer客户软件,以集中大量请求BT 文件分块Cache最近请求,2018/9/22,李之棠 HUST 42,Gnutella原理,Where is file A?,2018/9/22,李之棠 HUST 43,KaZaA原理,I have X!,insert(X, 123.2.21.23).,123.2.21.23,2018/9/22,李之棠 HUST 44,KaZaA原理,Where is file A?,2018/9/22,李之棠 HUST 45,BitTorrent原理,Tracker,A,D,C,B,2018/9/22,李之棠 HUST 46,BitTorrent原理,A,C,B,
24、D,2018/9/22,李之棠 HUST 47,文件路由模式,过程每个网上Peer分配一个随机ID,并知道其他Peers的给定号码当共享文件发布到系统上时,根据文件名字和内容Hash成为ID每个Peer将根据该ID向该文件路由该过程重复执行,直到最近的PeerID是现行Peer的ID每个路由操作还保持文件副本在本地当Peer请求某文件时,该请求将用该文件的ID到达Peer,过程重复直到发现文件副本,最终文件下载到请求源端,2018/9/22,李之棠 HUST 48,4个算法实现文件路由,Chord/CAN/Tapestry/Pastry目标相同减少路由到指定文件的P2P跳数减少每个Peer必须
25、保持的路由状态算法异同都保证算法的跳数与Peer群组的大小相关或都指出算法能以高概率完成方法上的差别很小,2018/9/22,李之棠 HUST 49,Chord每个Peer保持LogN其他Peer的踪迹(N是群组的全部Peer数)当Peer加入或离开时,高优化算法版本仅需关注LogN个Peers的变化CAN每个Peer保持少于LogN个其他Peers的踪迹在插入和删除时仅这些Peers受影响其路由表较小,但到达的路径较长可能更适合动态通信Tapestry与Pastry很相似除减少跳数外,还积极削减每个P2P跳上的时延,2018/9/22,李之棠 HUST 50,路由表,路由表内容id文件标识符
26、next_hop存储文件id的另一个节点file保存在本地的id标识文件搜索过程如果文件id存储在本地,停止搜索,上传文件如果不在本地,搜索路由表中最接近的id,将请求转到next_hop如果所有节点都没有找到,返回失败,返回路由表中下一个最接近的id,2018/9/22,李之棠 HUST 51,文件路由原理,4 n1 f412 n2 f12 5 n3,9 n3 f9,3 n1 f314 n4 f14 5 n3,14 n5 f1413 n2 f13 3 n6,n1,n2,n3,n4,4 n1 f410 n5 f10 8 n6,n5,query(10),网络趋向于一个小世界small world
27、,类似六度分隔(Six Degrees of Separation)理论因此,大部分查询只需经过少量跳数,2018/9/22,李之棠 HUST 52,Distributed Hash Table,分布式数据结构系统中,可以是环,树,超立方体,跳表,蝶形网络 .CFS, OceanStore, PAST, ChordDNS,2018/9/22,李之棠 HUST 53,结构化重叠路由加入:开始时,联系一个“bootstrap”节点,加入分布式数据结构,获得一个节点id发布:向数据结构中最近的节点发布文件id的路由信息搜索:向路由表中最近的节点查询文件id,数据结构保证查询会找到发布节点获取:两个选
28、项查询到的节点保存有文件,则从查询结束的节点获取查询到的节点返回结果:节点x有文件,则从节点x获取DHT示例Chord:在一维空间(环)中给每个节点和文件一个唯一的id例如从0.2m中选取通常是文件和IP地址的hash,2018/9/22,李之棠 HUST 54,Chord:插入,N32,N90,N105,K80,K20,K5,Circular ID space,Key 5,Node 105,2018/9/22,李之棠 HUST 55,Chord:查找,N32,N90,N105,N60,N10,N120,K80,“Where is key 80?”,“N90 has K80”,2018/9/2
29、2,李之棠 HUST 56,4 P2P关键技术特性,4.1 非集中化:置疑 C/S 模式集中化在访问权限和安全上容易管理但不可避免导致:低效/瓶颈/资源浪费尽管硬件性能和成本有了改进,但建立和维护集中化知识库成本高昂,需要人员智能化地建立,保持信息的相关和更新非集中化:更强有力的思想强调用户端所有权,对数据和资源的控制每个Peer都是平等的参与者实现更困难(无全局服务器,看不到全局Peers及其文件)这也是当前混合模式存在的原因,2018/9/22,李之棠 HUST 57,全非集中化文件系统(Gnutella Freenet)发现网络是很困难的新节点必须知道其他节点或由主机列表知道其他Peer
30、s的IP地址该节点通过和现行网络中至少一个Peer建立连接而加入网络从而能发现其他Peers并Cache它们的IP地址在本地,各种P2P系统按非集中化程度分类,2018/9/22,李之棠 HUST 58,4.2 可扩展性,可扩展性受限的主要原因需要完成大量的集中化操作:如同步与一致需要维护许多状态固有的并行性应用展开用来表示计算的编程模式P2P解决可扩展性问题Napster在其服务的高峰用户达到 600万然SETIhone2002年止用户 仅接近350万.因为它集中在并行度有限的任务上,依靠因特网上的可用计算力来分析从天文望远镜收集来的数据,搜索外星生命Avaki通过提供分布式对象模型来解决可
31、扩展性问题,2018/9/22,李之棠 HUST 59,Napster是通过故意保留许多集中化文件操作来实现-达到好的扩展性并不是扩大其它所希望的特点Gnutella和Freenet:早期的P2P系统具有Ad-hoc的特点,Peer必须把请求盲目发送到许多其他Peers,促使它们搜索请求的文件CAN,Chord,Oceanstore PST:最近的P2P系统专注在目标键和目标节点间找到一致的映射每个节点仅维护较少的系统节点信息及其状态,故增加了可扩展性这些系统设计规模是 数10亿用户,数百万服务器和1014个文件未来:带宽和计算能力继续增长,P2P平台能利用这些能力去完成人们感兴趣的应用,结构
32、将更自治可扩展,提供更多的资源,展开更多的应用,2018/9/22,李之棠 HUST 60,4.3 匿名,目的重要目的是让人们使用系统时不用关心法律问题和其他节外生枝的问题进一步目的可能使数字内容的审查制度形同虚设匿名形式作者:可以不标识文件的作者或创建者发布者:可以不标识对系统而言的文件发行者读者:可以不标识文件的读者或其他消费数据者服务器:可以不标识含有未被标识文件的服务器文件:服务器并不知道它存储的是什么文件查询:服务器并不告诉它正用何文件在响应用户的查询,2018/9/22,李之棠 HUST 61,必须在通信对之间强迫执行3种匿名,才能达到上述匿名(不管何种匿名形式)发送者匿名:隐藏发
33、送者的标识符接收者匿名:隐藏接收者的标识符相互匿名:隐藏发送者何接收者的标识符,且双方标识符对其他Peers也是隐藏的匿名程度绝对隐私不可怀疑:即使攻击者能看到已发送消息的证据,但 发送者似乎并不比系统潜在的发送者更像真正的发送者大概无罪可能曝光,2018/9/22,李之棠 HUST 62,6种不同技术-适合不同匿名方式,多播使接收者匿名发送者地址欺骗- UDP伪造其地址标识符欺骗-改变通信参与者标识符隐蔽通道-通过某些中间节点难管的别名-代理服务器为客户生成稳固的别名非志愿放置-文档非志愿放置在承载(Hosting)主机上,2018/9/22,李之棠 HUST 63,2018/9/22,李之
34、棠 HUST 64,4.4 自组织,定义自组织是一个过程,在此一个系统的组织(约束/冗余)自然本能地增加,也就是不通过环境,也不包含其他外部系统来增加控制P2P需要自组织可扩展性:系统数/用户数/负载数等每一个都不可预测,因为需要进行频繁的集中化重构故障容错 (resilience弹性):大规模导致故障率增加,这就需要对系统的自维护/自修复资源的间歇连接:在很长期间内保持完整的预定义构态是很难的,故需要处理Peers连接和断开而引起的变化所有权成本:管理这些专用设备和/或管理这样复杂波动环境的人需要成本,故管理应该在Peers间分布,2018/9/22,李之棠 HUST 65,有许多研究系统和
35、产品都表明是自组织的OceanStore其自组织已应用到基础设施的定位和路由由于Peers的间歇性及网络延迟带宽的变化,基础设施必须适应其路由和定位支持Pastry通过基于全网容错的节点进/出协议处理自组织客户端请求保证在少于平均log16N步路由达到负载平衡;文件副本分布,随机存储FastTrack对自组织分布式网络进行快速搜索和下载系统中强大计算机可自动变成超节点作为搜索Hubs若有处理能力并满足联网标准,任客户端也可变成,超节点这样分布式网络可取代任何集中化服务,2018/9/22,李之棠 HUST 66,4.5 所有权成本,P2P的前提共享所有权共享所有权减少了自有系统/内容/和维护它
36、们的代价SETIhome 比当今世界上最快的计算机还快,而且成本只是它的1%Napster 音乐共享的全部理念是基于每个成员把音乐文件贡献到文件池中去,其他文件系统也一样.P2P协同/通信/平台集中化计算机存储信息的削减也减少了所有权和维护成本美国的无线通信采用了类似的方法寄生网格:在用户之间共享家庭安装的802.11带宽,在成本上同安装有无线基础设施的公司竞争,2018/9/22,李之棠 HUST 67,4.6 Ad-hoc连接,分布式并行计算并不能在所有时间/所有系统上执行某些系统在所有时间可用/部分时间可用/并不可用Ad-hoc系统对P2P计算,可随进随出,是理想的P2P使用对P2P内容
37、共享系统,高服务保证通过冗余服务实现,削弱了Ad-hoc的特点对P2P协同, 用户希望用移动设备连接到因特网,Ad-hoc可通过代理群接收消息,或发送中继来保持通信延迟和断开的透明802.11b,蓝牙和红外支持Ad-hoc,其半径有限, 它接入P2P,支持容许突然断开是很重要的,2018/9/22,李之棠 HUST 68,4.7 性能,P2P系统目标:聚合分散网络上的存储容量(Napster/Gnutella)和计算周期(SETIhome) 来改进系统的性能影响非集中化性能的三类资源处理/存储/网络网络资源中的带宽和时延是主要因素中心协调系统(Napster SETIhome)Peers的协调
38、和仲裁通过中心服务器进行混合P2P以克服这些脆弱点非集中协调系统(Gnutella Freenet)用消息传递机制搜索信息和数据查询搜索的带宽与发送消息数,命中前的Perrs数成正比,2018/9/22,李之棠 HUST 69,优化性能的关键技术,复制(Replication)把对象/文件的拷贝放在请求Peers附近,最小化连接距离改变数据时必须保持数据拷贝的一致性OceanStore基于冲突解的更新传播模式支持一致性语义高缓(Cache)减少获取文件/对象路径的长度,进而Peers间交换消息数这一减少很有意义-Peers间通信时延是严重的性能瓶颈Freenet:命中文件传播到请求者途中所有节
39、点高缓它目标是最小化时延,最大化请求吞吐率,很少高缓大数据智能路由和网络组织社交“小世界”现象,60年美, 明信片均6熟链找到生人局部搜索策略,代价与网络规模成子-线性增加OceanStore/Pastry网络上积极移动数据提高性能,2018/9/22,李之棠 HUST 70,4.8 安全,普通分布式系统的安全解也为P2P系统所用Peers和共享对象间的信任链/会话密钥交换模式/加密/数字摘要/签名P2P系统新的安全需求多密钥加密沙箱数字版权管理信誉与责任防火墙,2018/9/22,李之棠 HUST 71,多密钥加密,Publius通过公钥/多私钥,非对称加密机制保护共享对象/及其作者,发布P
40、eers和承载Peers的匿名Byzantine attacks是一个典型恶意授权攻击问题新近改进减少了拜占庭协议固有的代价,并找到了通过大量用户加固系统的途径,2018/9/22,李之棠 HUST 72,沙箱:隔离特定计算机或网络资源,防止恶意访问P2P计算要把代码分载在Peers上执行须防止潜在恶意代码侵袭Peers机须防止恶意Peers机侵袭代码保护Peers机的强制方法外部代码不能闯入主机箱,或仅能以安全方式访问主机的数据防止敏感数据泄露到恶意部件,相关技术有:Sandbox,安全语言(Java),虚拟机(Internet C+, POSIX虚拟机,实时Linux),带验证的代码和保证
41、编译器程序验证技术验证机器代码的安全性最近发展有:信息流校验和模式校验技术,沙箱,2018/9/22,李之棠 HUST 73,数字版权管理,P2P文件共享系统使文件拷贝更容易必须保护作者的版权不被偷窃处理方法在文件中加入可识别签名加在文件后面,但不影响文件内容技术:数字水印 或 信息隐藏RIAA 把密码信息以不可见、听的形式隐藏在文件中,保护MP3声音文件,2018/9/22,李之棠 HUST 74,信誉与责任,信任:精确保证公告的内容实际上就是其所宣称事实P2P系统的信誉建立在信任之上,要有测量Peer的信誉是否“好的”或“有用的”的方法给别人分享很多感兴趣的文件,则其信誉应很高。Freel
42、oader是只下载不上载者,其信誉低为防止非合作行为,须建立责任机制先行系统常根据Cross-ratings但产生一个可靠的系统是很难的,2018/9/22,李之棠 HUST 75,防火墙,P2P系统天生需要Peers间直连内外网隔离减少了应用的访问权限如FW阻止返回的TCP连接,导致FW内的计算机不可访问更坏是:家庭用户频繁使用伪装IP或NAT保持同几个计算机之间因特网连接但FW让TCP80端口常开,使隐藏机和因特网可保持连接两个均在FW后Peers通信就更难了,需要中继服务器提供二者间的连接,2018/9/22,李之棠 HUST 76,4.9 透明性和可用性,P2P透明性主要形式是位置透明
43、性其它有:访问、并发、复制、失效、移动、扩展等等P2P透明性的量化失效透明性量化让分布式应用觉察Web和因特网寻址透明性P2P继承因特网常规透明性TCP端端透明,两实体维持知识和状态,网络不负责网上任一点知道其它通信端的名字和地址,IPV4地址缺乏导致其只在单次会晤中有效,如SLIP/PPP/VPN/FW/ DHCP/NAT/分裂DNS/因此P2P需要不同的命名及其发现模式,2018/9/22,李之棠 HUST 77,还需管理透明,因为其Peers端不是硬软件专家;P2P除开命名和寻址透明外自更新软件设备透明(独立),PDA/桌面机、手机,且工作在Internet/intranet/ VPN
44、用宽带或拨号安全与移动透明自动透明授权给用户和基于代理的团体支持移动用户特殊情况下的断开P2P应用的使用方式作为用户服务,通过Web接口(内容共享、信息收集)预包装非P2P应用,运行在P2P平台(Groove .NET)作为本地安装的P2P软件(分布式计算、Napster),2018/9/22,李之棠 HUST 78,4.10 故障适应力,P2P主要目标之一是避免中心点失效尽管大多数纯P2P已经做到,不过是通过生成多主机和多网络来面对如下失效:断开、不可达、分离和节点失效(无线比有线企业网表现更厉害)Genomehome在连接的Peers上执行分割计算,当某些Peers因链路断连而消失,希望计
45、算继续;消失Peers再现后,能合并原来结果继续计算吗?P2P系统应该提供比Best effort更好的服务资源的非有效性断连导致的问题断连,资源不可达(网络失效、资源机崩溃、离线),然先者仍在路由Napster/Guntella等都通过复制机制解决管理责任完全分布并须寻址是P2P面临的挑战,2018/9/22,李之棠 HUST 79,4.11 交互能力,交互需求,系统怎样知道它能交互怎样通信,用何协议:Sockets,Message or HTTP怎样交换请求和数据,在高层执行任务,交换文件或搜索数据怎样知道它在更高层协议是兼容的,如一个系统能依赖另一系统适当搜索一些信息吗?怎样通告并维护同
46、级安全、QOS和可靠性P2P工作组从Ad-hoc和Grid聚集开发者JXTA是交互操作方法的开放源代码,2018/9/22,李之棠 HUST 80,5 P2P系统比较,Analysis and compare 8 P2P Systems,2018/9/22,李之棠 HUST 81,2018/9/22,李之棠 HUST 82,2018/9/22,李之棠 HUST 83,2018/9/22,李之棠 HUST 84,2018/9/22,李之棠 HUST 85,2018/9/22,李之棠 HUST 86,6 P2P相关研究与未来,可扩展路由和对象定位性能提高语义重叠网络P2P算法复制基于Web的信息搜
47、索激励和公平隐私/安全/诚信,2018/9/22,李之棠 HUST 87,重叠网络,在现有网络体系结构上新加一层overlay networks建立一个使用已有的Internet传输的虚拟网络Internet也曾经被部署为一个在电话网上的重叠网络也被成为ALNMulticast (Application-Level).File storage and search挑战如何创新和部署 at scale,2018/9/22,李之棠 HUST 88,重叠网络模型,2018/9/22,李之棠 HUST 89,非技术挑战,接受和使用每个Peer端依赖另一端提供服务,故必须存在大量可用的Peers提供服务Gnutella下载者多,上载者少用户群分裂的危险个体一般只加入一个或少数几个P2P系统,因无更多资源同时支持多个系统每个新系统引入,必然分裂用户群,并危害所有其它P2P系统,Napster和即时消息都有这个问题规模很多算法依赖用户的规模;需要知道每个本地Peer,但有很少的全局信息和知识发布控制:版权,威胁传统服务,