DHT网络的搜索技术解析课件.ppt

上传人:牧羊曲112 文档编号:1481391 上传时间:2022-11-30 格式:PPT 页数:34 大小:588.50KB
返回 下载 相关 举报
DHT网络的搜索技术解析课件.ppt_第1页
第1页 / 共34页
DHT网络的搜索技术解析课件.ppt_第2页
第2页 / 共34页
DHT网络的搜索技术解析课件.ppt_第3页
第3页 / 共34页
DHT网络的搜索技术解析课件.ppt_第4页
第4页 / 共34页
DHT网络的搜索技术解析课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《DHT网络的搜索技术解析课件.ppt》由会员分享,可在线阅读,更多相关《DHT网络的搜索技术解析课件.ppt(34页珍藏版)》请在三一办公上搜索。

1、DHT网络的搜索技术,哈尔滨理工大学网络信息中心 姚 亮,P2P网络的分类Hash函数概述DHT原理几种典型的DHT网络总结,主要内容,1.P2P网络分类,非结构化P2P网络拓扑是任意的内容的存储位置与网络拓扑无关结构化P2P网络拓扑结构是有规律的每个节点都随机生成一个标识(ID)内容的存储位置与网络拓扑相关内容的存储位置与节点标识之间存在着映射关系,P2P网络分类,在结构化P2P网络中,内容一般使用内容索引来表示,内容索引包括key和value两部分,其中key是内容的关键字,value是存放内容的实际位置,因此内容索引也表示为对内容索引表示电影夜宴可以从http:/,2.Hash函数概述,

2、Hash函数可以根据给定的一段任意长的消息计算出一个固定长度的比特串,通常称为消息摘要(MD:Message Digest),一般用于消息的完整性检验。Hash函数有以下特性:给定 P,易于计算出 MD(P)只给出 MD(P),几乎无法找出 P无法找到两条具有同样消息摘要的不同消息Hash函数MD5:消息摘要长度固定为128比特SHA-1:消息摘要长度固定为160比特,Hash函数应用于P2P的特性,唯一性:不同的输入明文,对应着不同的输出摘要将节点IP地址的摘要作为节点ID,保证了节点ID在P2P环境下的唯一性SHA-1(“202.38.64.1”) =24b92cb1d2b81a47472

3、a93d06af3d85a42e463eaSHA-1(“202.38.64.2”) =e1d9b25dee874b0c51db4c4ba7c9ae2b766fbf27,3.DHT原理(1),将内容索引抽象为对K是内容关键字的Hash摘要K = Hash(key)V是存放内容的实际位置,例如节点IP地址等所有的对组成一张大的Hash表,因此该表存储了所有内容的信息每个节点都随机生成一个标识(ID),把Hash表分割成许多小块,按特定规则(即K和节点ID之间的映射关系)分布到网络中去,节点按这个规则在应用层上形成一个结构化的重叠网络给定查询内容的K值,可以根据K和节点ID之间的映射关系在重叠网络上

4、找到相应的V值,从而获得存储文件的节点IP地址,DHT原理(2),内容,内容关键字key,内容存储位置等信息value,内容索引,K=Hash(key),提取,k v,Hash表,电影夜宴,电影、夜宴,http:/,内容索引,K=hash(电影, 夜宴)V = http:/,DHT原理(3),k v,a. Hash表,b. 分布式Hash表,规则?,N1,N48,N16,N32,N8,Chord、CAN、Tapestry、Pastry,在许多情况下,节点ID为节点IP地址的Hash摘要,DHT原理(4),插入(K1,V1),(K1,V1),查询(K1),A128.1.2.3,B,K1=Hash

5、(xyz.mp3)V1=128.1.2.3,xyz.mp3,C,索引发布和内容定位,DHT原理(5),定位(Locating)节点ID和其存放的对中的K存在着映射关系,因此可以由K获得存放该对的节点ID路由(Routing)在重叠网上根据节点ID进行路由,将查询消息最终发送到目的节点。每个节点需要有到其邻近节点的路由信息,包括节点ID、IP等网络拓扑拓扑结构由节点ID和其存放的对中的K之间的映射关系决定拓扑动态变化,需要处理节点加入/退出/失效的情况,在重叠网上节点始终由节点ID标识,并且根据ID进行路由,4.Chord:概述,Berkeley和MIT共同提出采用环形拓扑(Chord环)应用程

6、序接口Insert(K, V)将对存放到节点ID为Successor(K)上Lookup(K)根据K查询相应的VUpdate(K, new_V)根据K更新相应的VJoin(NID)节点加入Leave()节点主动退出,Chord:Hash表分布规则,Hash算法SHA-1Hash节点IP地址m位节点ID(表示为NID)Hash内容关键字m位K(表示为KID)节点按ID从小到大顺序排列在一个逻辑环上存储在后继节点上Successor (K):从K开始顺时针方向距离K最近的节点,ID=hash (IP)=14,N56,K=hash (key)=54,N1,N8,N14,N21,N32,N38,N42

7、,N48,N51,m=6,Chord:简单查询过程,每个节点仅维护其后继节点ID、IP地址等信息查询消息通过后继节点指针在圆环上传递直到查询消息中包含的K落在某节点ID和它的后继节点ID之间速度太慢 O(N),N为网络中节点数,N56,K54,Lookup(K54),N56,N1,N8,N14,N21,N32,N38,N42,N48,N51,m=6,Chord:指针表,N56,指针表,N8+1,N8+2,N8+4,N8+8,N8+16,N8+32,N14,N14,N14,N21,N32,N42,节点S的第i个指针successorn+2(i-1), 1im,Chord:基于指针表的扩展查找过程

8、,指针表中有O (log N)个节点查询经过大约O (log N)跳,N56,K54,指针表,N8+1,N8+2,N8+4,N8+8,N8+16,N8+32,N14,N14,N14,N21,N32,N42,Lookup(K54),指针表,N42+1,N42+2,N42+4,N42+8,N42+16,N42+32,N48,N48,N48,N51,N1,N14,Chord:网络波动(Churn),Churn由节点的加入、退出或者失效所引起每个节点都周期性地运行探测协议来检测新加入节点或退出/失效节点,从而更新自己的指针表和指向后继节点的指针,Chord:节点加入,新节点N事先知道某个或者某些结点,

9、并且通过这些节点初始化自己的指针表,也就是说,新节点N将要求已知的系统中某节点为它查找指针表中的各个表项 在其它节点运行探测协议后,新节点N将被反映到相关节点的指针表和后继节点指针中 新结点N的第一个后继结点将其维护的小于N节点的ID的所有K交给该节点维护;,Chord:节点退出/失效,当Chord中某个结点M退出/失效时,所有在指针表中包含该结点的结点将相应指针指向大于M结点ID的第一个有效结点即节点M的后继节点为了保证节点M的退出/失效不影响系统中正在进行的查询过程,每个Chord节点都维护一张包括r个最近后继节点的后继列表。如果某个节点注意到它的后继节点失效了,它就用其后继列表中第一个正

10、常节点替换失效节点,Chord:拓扑失配问题,O(LogN)逻辑跳数,但是每一逻辑跳可能跨越多个自治域,甚至是多个国家的网络重叠网络与物理网络脱节实际的寻路时延较大,Chord:总结,算法简单可扩展:查询过程的通信开销和节点维护的状态随着系统总节点数增加成对数关系(O (log N)数量级) 存在拓扑失配问题,Pastry:概述,英国剑桥Microsoft研究院和Rice大学共同提出考虑网络的本地性,解决物理网络和逻辑网络的拓扑失配的问题基于应用层定义的邻近性度量,例如IP路由跳数、地理距离、往返延时等节点ID分布采用环形结构,Pastry: Hash表分布规则,Hash算法SHA-1Hash

11、节点IP地址m位节点ID(表示为NID)Hash内容关键字m位K(表示为KID)NID和KID是以2b为基的数,共有m/b个数位b是一个配置参数,一般为4节点按ID从小到大顺序排列在一个逻辑环上存储在NID与KID数值最接近的节点上,m=8,2m-10,b=2,Pastry:节点维护状态表(1),路由表R路由表包括 log2b N (m/b)行,每行包括2b -1个表项 路由表第n行与节点ID的前n个数位相同,但是第n+1个数位不同,也称为n数位前缀相同路由表中的每项包含节点ID,IP地址等根据邻近性度量选择距离本节点近的节点邻居节点集M邻居节点集包含|M|个在邻近性度量上最接近于本节点的节点

12、,|M|为2b或者2X2b ,邻近性度量指的是物理上相邻节点邻居节点集通常不用于路由查询消息,而是用来维护本地性叶子节点集L叶子节点集包含|L|个节点ID最接近本节点的节点,也就是逻辑地址上的相邻节点,其中|L|/2个节点的ID大于本节点,|L|/2个ID小于本节点,|L|为2b或者2X2b,Pastry:节点维护状态表(2),Node ID 10233102,Leaf set,Routing Table,Neighborhood set,0,02212102,1,22301203,31203203,11301233,12230203,13021022,2,10031203,10132102,

13、10323302,3,3,10222302,10200230,10211302,10230322,10231000,10232121,10233001,10233120,10233232,1,0,2,13021022,10200230,11301233,31301233,02212102,22301203,31203203,33213321,10233033,10233021,10233120,10233122,10233001,10233000,10233230,10233232, SMALLER,LARGER ,节点ID最接近本节点的节点,b=2,因此节点ID的基数为4 (16 bits)

14、,m/b 行,依据邻近性度量最接近本节点的节点,每行2b-1个表项,第n行的前n个数位与本节点相同 相同前缀 下一数位 其它 ,当前节点的第n个数位,没有合适节点的表项为空,b=2,m=16,Pastry:查询过程,当一个K为D的查询消息到达节点A节点A首先看D是否在当前节点的叶子节点集中,如果是,则查询消息直接被转发到目的节点,也就是叶子节点集中节点ID与D数值最接近的那个节点(有可能就是当前节点),否则进行下一步在路由表中查找与D具有更长相同前缀的表项,如果该表项不为空,则将查询消息直接转发到该节点,否则进行下一步例如路由D= 0629的查询消息 5324 0748 0605 0620 0

15、629如果不存在这样的节点,当前节点将会从其维护的所有邻居节点集合中选择一个距离该键值最接近的节点作为转发目标,路由查询消息的逻辑跳数: O(log2b N),Pastry:节点状态表和查询,节点路由表R中的每行与本节点具有相同的n数位长度前缀,但是下一个数位不同例如,对于节点N0201:N-: N1?, N2?, N3?N0: N00?, N01?, N03?N02: N021?, N022?, N023?N020: N0200, N0202, N0203当有多个节点时,根据邻近性度量选择最近的节点维持了较好的本地性,N0002,N0201,N2001,N1113,N2120,N2222,N

16、3001,N3033,N3200,m=8,2m-10,b=2,N0122,N0212,N0221,N0233,Routingtable,K2120,N0322,2.2.4 Pastry:节点加入(1),初始化状态表新节点开始时知道一个根据邻近性度量接近自己的节点A节点A可以通过使用扩展环IP组播等机制自动定位,或者由系统管理员通过其它手段获得新节点通过运行SHA-1算法计算自己的IP地址的摘要得到节点ID为X节点X向节点A发送join消息,Pastry将该消息路由到节点ID在数值上最接近X的节点Z接收到join消息的节点,包括A、Z,以及A到Z路径上所有的节点将发送它们的状态表给X,X检查这些

17、信息,然后节点根据下面的过程初始化状态表:由于A与X在邻近性度量上接近,所以使用A的邻居节点集来初始化X的邻居节点集由于Z的节点ID与X最相近,因此使用Z的叶子节点集来初始化X的叶子节点集X将join消息经过的第i个节点的路由表的第i行作为自己路由表的第i行Join消息经过的第i个节点与X的前i个数位相同向其它相关节点通告自己的到来新节点向邻居节点集、叶子节点集和路由表中的每个节点发送自己的状态,以更新这些节点的状态表,2.2.4 Pastry:节点加入(2),X0629,节点加入,Join消息,0629s routing table,2.2.4 Pastry:节点退出/失效,叶子节点集L中的

18、节点退出机制:本地节点要求当前叶子节点集合L中的ID最大的节点或ID最小的节点把它的叶子节点集合L1发送过来,如果L1中存在L中没有的节点,则从中选择一个替代失效节点.除非|L|/2个节点同时失效,否恢复过程始终是有效的失效检测:和叶子节点集中的节点周期性交互存活消息路由表R中的节点退出机制:如果失效节点对应的表项为Rdl (第l行第d列) ,则联系同一行中的Ril, id所指向的存活节点并且获取该节点的Rdl表项,如果l行中没有存活节点,则从下一行选择一个节点失效检测:和路由表中的节点联系(例如发送查询消息)如果无反应则检测到节点失效,Pastry:总结,逻辑网络路由跳数O(log2b N)

19、 路由表开销log2b N *(2b -1)路由本地性:状态表(路由表、邻居节点集、叶子节点集)中的表项选择在邻近性度量上与本节点相近的节点稳健性:只有在|L|/2个叶子节点完全失效时才会路由失败,基于DHT的结构化P2P比较,5.总结,今天给大家介绍了结构化p2p网络中的几种搜索技术,对比较了他们的性能,其实本来想给大家介绍BiTtorrent的DHT算法 - Kademlia 协议原理,但目前有三个关键问题我还没有搞懂,目前还在研究中,再有就是它是一种改进了的DHT技术,所以一定要先介绍DHT,等搞明白了再和大家一起探讨,最后谢谢大家!,P2P重叠网,P2P重叠网络构筑在已有的Internet基础设施网络之上,也称为应用层网络 返回,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号