(精)第三代P2P网络.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 第三代P2P网络 ——结构化P2P体系 Chord、CAN、Tapestry、Pastry 4.4 Pastry与PAST:容错的混合式结构P2P网络 Pastry结合了环形结构与超立方体结构(实际是Plaxton mesh)的优点,提供高效的查询路由、确定性的对象定位和独立于具体应用的负载均衡 与Tapestry的不同在于后者是尽可能找到最近的副本,前者则希望副本能均匀、分散的放置 00年Microsoft Research与Rice Univ.开始设计,01年发表[Rowstron Druschel,2001] Pastry的应用 一、Pastry路由 Pastry结点与数据对象使用128位的ID,对象索引由与对象ID最接近的结点负责 Pastry采用前缀匹配(本质同Tapestry) 每个结点维护一个路由表、一个叶集和一个邻居集;路由表分层,每列从上到下分别代表与当前节点ID前缀匹配对应位数的结点,其行数就是Pastry采用的进制数;与当前结点nodeID在该位恰好相等的项标为阴影,通常是空指针 图中每项结点ID以X-Y-Z形式表示,其中X标识匹配的前缀,Y表示第一个不匹配位,Z则是结点ID的后几位 Pastry 结点状态 叶集L中包含|L|个与当前结点ID最邻近的“叶结点”,其中|L|/2个比当前ID小,|L|/2个大;叶集的作用在于保证Pastry路由的正确性,类似Chord中的后继列表 邻居集M中包含|M|个在网络物理层与当前结点临近的结点,其作用在于增强Pastry工作的局部性,路由过程中通常不使用M Pastry结点状态=L+R+M,表中结点项数=|L|+ B*logBN+|M|,B为进制,N为网络结点总数 基于上述路由表,Pastry采用前缀逐位匹配路由,通常每一步至少比前一步多匹配一位前缀,直到无法匹配更多位数,此时的下一跳结点为ID与目的地最邻近的结点,更具体的说,是当前结点的叶集L中与目的ID最接近的结点 显然,Pastry定位跳数为O(logBN),由于叶集L的存在,其路由比Tapestry更快,更容错 为提高安全性,防止恶意结点的破坏,Pastry采用“随机路由”来减少路由的确定性,如,当多个结点都符合下一跳的条件时,不一定选择最优的,而是随机选择一个,以牺牲性能来换取安全 Pastry核心路由算法 二、Pastry自组织和自适应 Pastry结点加入网络的三项工作 初始化路由表、叶集和邻居集,通知其他结点自己的到来,从现存结点获取需要负责的数据 JOIN STEP1:初始化路由表、叶集和邻居集 新结点X通过众所周知结点或者“扩展环”IP多播联系到一个现存结点A,通常在物理上离X很近 X通过A发送一条以X为目的地的消息,按前缀匹配路由算法,最终到达nodeID离X最近的结点Z 加入消息所走过路径上的每个结点将它们的路由表信息发给X,X接收并优化(类似Tapestry) X直接从Z获得叶集并作修正,直接从A获得邻居集 JOIN STEP2:通知其它结点自己的到来 比Tapestry简单,只需要把X的结点状态信息发给自己的路由表、叶集、邻居集中的结点 收到更新消息的结点自己去选择用X替换表项 JOIN STEP3:新结点获取需要负责的数据 经典论文中未专门讲述,但类似于Tapestry,且更简单,只需要从叶集结点获取数据 结点的正常离开处理很简单,只需要通知自己所知的结点 结点失效的处理(周期性检测) FAIL STEP1:修正叶集 某结点发现其叶集中某个结点失效,则向叶集中离失效结点最远的结点获取叶集,从中寻找最合适的结点来修正失效的叶集项 由于叶集对Pastry正确工作有基础性的作用,因此对其修正是严格、频繁和高要求的 FAIL STEP2:修正路由表 路由表的修正要求比叶集低很多:路由表的错误只会导致效率下降;路由表项数很多,不宜频繁更新 当结点发现路由表中第l行第d项失效,会发消息给第l行未失效的任一结点,获取其路由表的第l行第d项作为替代;如果路由表第l行所有项均失效,则联系第l+1行中的结点,迭代至替换成功 FAIL STEP3:修正邻居集 通常不使用,其修正更为松散,长周期,从未失效邻居集结点获取邻居集并替换 三、Pastry的局部性 分两步实现局部性 部分体现在路由表的构造上,但其中的局部性并不准确,Pastry的局部性实际来源于邻居集M 路由表初始化以后,新结点通过邻居集M来修正路由表项,用物理网上离自己确实很近的结点来替换原有项 Pastry采用传统的ID邻近复制,同一数据对象被复制到与其ID相近的k个结点上,也提供了一定的数据存取局部性:因为ID相近的结点通常分散在整个网络中,总会有一两个离查询者很近 四、Pastry实验分析 Pastry路由路径

文档评论(0)

xiaofei2001129 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档