宽带媒体服务技术跟对等网络.ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
宽带媒体服务技术跟对等网络

第四章 第三代P2P网络 ——结构化P2P体系 Chord、CAN、Tapestry、Pastry 章节内容 Chord与CFS:简单、精确的环形P2P网络 CAN:简单、容错的多维空间P2P网络 Tapestry与OceanStore:广域的超立方体结构P2P网络 Pastry与PAST:容错的混合式结构P2P网络 其它结构化P2P网络:Kademlia、SkipNet等 常数度P2P模型:Viceroy、Koorde和Cycloid 结构化P2P网络的特点与分析 概述 2001年,学术界P2P历史上的里程碑 IEEE成立P2P专业会议、ACM会议专题等 提出结构化P2P的几个经典模型与应用体系,如Chord、CAN、Tapestry、Pastry 著名学术团体与技术组织成立专门的P2P研究组,如MIT、UC Berkeley、Microsoft、Stanford 4.1 Chord与CFS:简单、精确的环形P2P网络 MIT与Berkeley的研究者01年正式发表/chord/ Chord作为一个P2P网络,是基于带弦环拓扑结构的分布式系统,提供对象的存储、查询、复制、缓存,在其上可以架构更高层的分布式数据存储系统如协同文件系统CFS Chord作为一个分布式散列表,只支持结构化P2P最简单的功能:将结点和数据对象映射到覆盖网中,但具有几乎最优的路由效率、确定性的对象查询、负载均衡、高可靠性以及良好的容错性与自适应,最主要的是:简单、优美 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的路由表各项属性及其定义 二、Chord对象定位算法 定位算法的三个函数的伪代码 //请求结点n寻找id的后继 n.find_successor(id) n’=find_predecessor(id); return n’.successor; //请求结点n寻找id的前驱 n.find_predecessor(id) n’=n; while(id (n’,n’.sucessor]) n’=n’,closest_preceding_finger(id); return n’; //返回id之前最近的finger n.closes

文档评论(0)

my18 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档