专题3-P2P网络体系结构(2013简)综述.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chord的技术特点 基于安全的一致性散列函数来分配结点ID和对象ID 在一个有N个结点的网络中,每个Chord结点保存O(logN)个其他结点的信息 查询数据对象需要的覆盖网路由跳数也为O(logN) 当结点加入或者离开网络时,为了维持网络结构、保持自适应性所需要的消息数在O(log2N) Chord基础工作原理 Chord使用安全散列函数(如SHA-1)为每个网络结点和数据对象分配唯一的ID nodeID=H(node属性),属性可以是结点IP、port、公钥、随机数或它们的组合 objectID=H(object属性),属性可以是数据对象的名称、内容、大小、发布者或者它们的组合 H是散列函数,SHA系列散列函数的Hash值长度≥160,保证ID的唯一性 Chord按照如下方法将数据对象(只是其索引)分配到网络结点中 所有的结点按照nodeID从小到大顺时针排列在一个环上 数据对象k(ObjectID)被分配到环上顺时针方向紧随k(包括与k相等)的第一个结点,该结点称为对象k的后继,记做successor(k) Chord结点n的后继是环上紧随n(不等于n)的第一个结点,记做n.successor 一个简单的Chord环(m=3) 当Chord中有新结点n加入时,为保持正确、一致的对象放置,原本由n的后继结点负责的对象,其中一部分必须分配给n 当Chord中有旧结点n离开时,原本由n负责的所有对象,必须分配给n的后继。除此以外,对象不需要再做移动,这正是一致性散列函数所追求的性质 例:图中新加入结点7 单纯的环可以工作,但效率太低 为此,结点维护一个有m(ID位数)项的路由表,也称“指向表”(finger table),其中第i项指向结点s,s=successor(n+2i-1),1≤i≤m,即s是在顺时针方向到n的距离至少为2i-1的第一个结点,记做n.finger[i].node Chord路由表的特点: 每个结点只保存很少的其它结点信息,并且对离它越远的结点所知越少 Chord结点不能从自己的路由表中看出对象k的后继 为确定对象k的后继(k所在的结点),结点n在自己的路由表中查找在k之前且离k最近的结点j,让j去找离k最近的结点,递归查找,最终可以找到对象k的前驱(在k之前离k最近的结点,记做predecessor(k),类似,结点n的前驱记做n.predecessor) 前驱中必然有后继的路由表项,定位成功 Chord结点n的路由表各项属性及其定义 属性 定义 finger[k].start (n+2k-1)mod2m, 1≤k≤m .interval [finger[k].start, finger[k+1].start) .node ≥n.finger[k].start的第一个结点 successor 后继结点,即finger[1].node predecessor 前驱结点 Chord路由表的简单示例 假设结点3要找到对象1的后继 在结点3的路由表中,1属于3.finger[3].interval即[7,3) 结点3让3.finger[3].node即结点0去找1 结点0在路由表中发现自己的后继1恰好是对象1的后继,因此将1返回给结点3 结点3由此知道对象1放在结点1中 Chord结点加入算法 Chord的自适应需要保持两个不变的属性 每个结点的后继始终正确 对每个对象k,结点successor(k)始终负责k的索引 为此,新结点n的加入需要完成三个任务 初始化n的前驱和路由表项 更新网络其他结点的前驱和路由表项 告诉其后继将应该由n负责的数据对象索引传递给n Chord容错性和复制、缓存 Chord中正确的后继关系是一切工作的基础 无论机制如何完善,网络的动态性和不确定性都可以导致单后继失效 因此,实际的Chord给每个结点维护一个后继列表,其中保存了该结点在Chord环上的r个后继,典型地取r=O(logN),即使结点失效概率为1/2,仍能正确定位 将结点保存的数据对象复制到所有后继中,可提高数据的可用性、持久性 在Chord定位过程中,如每个中间结点缓存数据对象,可以提高获取数据的速度 Chord实验分析 负载均衡 负载均衡是使用一致性散列函数的结构化P2P网络的共同属性 对于Chord而言,由于数据对象被分配到其后继中,而数据对象、结点的ID都是随机、均匀产生的,因此每个结点所负担的数据对象也应该大致均衡 此外,Chord还采用了“虚拟服务器”的方法,在一台计算机上运行多个Chord结点,可以使得结点各尽所能 定位路径长度 理论量级为O(logN)跳 实验中网络结点数取N=2k,数据对象数取100×2k,k从3取到14 测量结果:路径长度平均约logN/2,是logN的一半,原因是Chord路由表的指

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档