DHT网络的搜索技术
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
节点ID和其存放的 对中的K存在着映射关系 节点 和其存放的<K, V>对中的 存在着映射关系,因此 和其存放的 对中的 存在着映射关系, 可以由K获得存放该 获得存放该<K, V>对的节点 对的节点ID 可以由 获得存放该 对的节点
路由(Routing) 路由
在重叠网上根据节点ID进行路由, 在重叠网上根据节点 进行路由,将查询消息最终发送 进行路由 到目的节点。每个节点需要有到其邻近节点的路由信息, 到目的节点。每个节点需要有到其邻近节点的路由信息, 包括节点ID、 等 包括节点 、IP等
结构化P2P 结构化
网络拓扑结构是有规律的
每个节点都随机生成一个标识(ID) 每个节点都随机生成一个标识
内容的存储位置与网络拓扑相关
内容的存储位置与节点标识之间存在着映射关系
P2P网络分类 网络分类
在结构化P2P网络中,内容一般使用内容索引 网络中, 在结构化 网络中 来表示,内容索引包括 内容索引包括key和value两部分 其中 两部分,其中 来表示 内容索引包括 和 两部分 key是内容的关键字 是内容的关键字,value是存放内容的实际 是内容的关键字 是存放内容的实际 位置,因此内容索引也表示为 因此内容索引也表示为<key, value>对 位置 因此内容索引也表示为 对
网络拓扑
拓扑结构由节点ID和其存放的 对中的K之间的映射 拓扑结构由节点 和其存放的<K, V>对中的 之间的映射 和其存放的 对中的 关系决定 拓扑动态变化,需要处理节点加入/退出 退出/失效的情况 拓扑动态变化,需要处理节点加入 退出 失效的情况
在重叠网上节点始终由节点ID标识,并且根据 进行路由 在重叠网上节点始终由节点 标识,并且根据ID进行路由 标识
Hash函数应用于 函数应用于P2P的特性 函数应用于 的特性
唯一性:不同的输入明文, 唯一性:不同的输入明文,对应着不同的 输出摘要
将节点IP地址的摘要作为节点 ,保证了节点ID 将节点 地址的摘要作为节点ID,保证了节点 地址的摘要作为节点 在P2P环境下的唯一性 环境下的唯一性
SHA-1(“202.38.64.1”) =24b92cb1d2b81a47472a93d06af3d85a42e463ea SHA-1(“202.38.64.2”) =e1d9b25dee874b0c51db4c4ba7c9ae2b766fbf27
Lookup(K54) K54
N56 N1 N8
N51 N48
N14
N42
N21
N38 N32
m=6
Chord:指针表 :
指针表
N8+1 N14 N14 N14 N21 N32 N42 N8+2 N8+4 N8+8 N8+16 N8+32
N56
节点S的第 个指针 节点 的第i个指针 的第 successor[n+2^(i-1)], 1≤i≤m
Chord:节点退出/失效 :节点退出 失效
中某个结点M退出 失效时, 当Chord中某个结点 退出 失效时,所有在指针 中某个结点 退出/失效时 表中包含该结点的结点将相应指针指向大于M结 表中包含该结点的结点将相应指针指向大于 结 的第一个有效结点即节点M的后继节点 点ID的第一个有效结点即节点 的后继节点 的第一个有效结点即节点 为了保证节点M的退出 的退出/失效不影响系统中正在进 为了保证节点M的退出/失效不影响系统中正在进 行的查询过程,每个Chord节点都维护一张包括 节点都维护一张包括r 行的查询过程,每个 节点都维护一张包括 个最近后继节点的后继列表。 个最近后继节点的后继列表。如果某个节点注意 到它的后继节点失效了, 到它的后继节点失效了,它就用其后继列表中第 一个正常节点替换失效节点
Chord:节点加入 :
新节点N事先知道某个或者某些结点, 新节点 事先知道某个或者某些结点,并且 事先知道某个或者某些结点 通过这些节点初始化自己的指针表, 通过这些节点初始化自己的指针表,也就 是说,新节点N将要求已知的系统中某节点 是说,新节点 将要求已知的系统中某节点 为它查找指针表中的各个表项 在其它节点运行探测协议后,新节点N将被 在其它节点运行探测协议后,新节点 将被 反映到相关节点的指针表和后继节点指针 中 新结点N的第一个后继结点将其维护的小于 新结点 的第一个后继结点将其维护的小于 N节点的 的所有 交给该节点维护; 节点的ID的所有 交给该节点维护; 节点的 的所有K交给该节点维护
DHT原理 原理(4) 原理
索引发布和内容定位
(K1,V1)
K V K V K V K V K V K V
C
K V
K1=Hash(xyz.mp3) V1=128.1.2.3
K V
A 128.1.2.3
插入 (K1,V1)
K V
K V
查询(K 查询 1)
K V
B
DHT原理 原理(5) 原理
定位(Locating) 定位
K=hash (key)=54 N56 N1 ID=hash (IP)=14 N8
N51 N48
N14
N42
N21
N38 N32
m=6
Chord:简单查询过程 :
每个节点仅维护其后继节 点ID、IP地址等信息 、 地址等信息 查询消息通过后继节点指 针在圆环上传递 直到查询消息中包含的K 直到查询消息中包含的 落在某节点ID和它的后继 落在某节点 和它的后继 节点ID之间 节点 之间 速度太慢 O(N),N为网 , 为网 络中节点数
Chord:基于指针表的扩展查找过程 :
Lookup(K54)
K54
N56
指针表
N8+1 N8+2 N8+4 N8+8 N8+16 N8+32 N14 N14 N14 N21 N32 N42
指针表
N42+1 N42+2 N42+4 N42+8 N42+16 N42+32 N48 N48 N48 N51 N1 N14
Pastry:概述 :
英国剑桥Microsoft研究院和 研究院和Rice大学共同提出 英国剑桥 研究院和 大学共同提出 考虑网络的本地性,解决物理网络和逻辑网络的 考虑网络的本地性 解决物理网络和逻辑网络的 拓扑失配的问题
基于应用层定义的邻近性度量,例如 路由跳数、地理 基于应用层定义的邻近性度量 例如IP路由跳数 例如 路由跳数、 距离、 距离、往返延时等
Chord:拓扑失配问题 :
O(LogN)逻辑跳数,但是每一逻辑跳可能 逻辑跳数, 逻辑跳数 跨越多个自治域, 跨越多个自治域,甚至是多个国家的网络 重叠网络与物理网络脱节 实际的寻路时延较大
Chord:总结 :
算法简单 可扩展: 可扩展:查询过程的通信开销和节点维护 的状态随着系统总节点数增加成对数关系 (O (log N)数量级 数量级) 数量级 存在拓扑失配问题
Update(K, new_V)
根据K更新相应的 根据 更新相应的V 更新相应的
Join(NID)
节点加入
Leave()
节点主动退出
Chord:Hash表分布规则 : 表分布规则
Hash算法 算法SHA-1 算法 Hash节点 地址->m位 节点IP地址 节点 地址- 位 节点ID(表示为 表示为NID) 节点 表示为 Hash内容关键字 >m位 Hash内容关键字->m位 内容关键字- K(表示为 K(表示为KID) 表示为KID) 节点按ID从小到大顺序排 节点按 从小到大顺序排 列在一个逻辑环上 <K, V>存储在后继节点上 存储在后继节点上 Successor (K):从K开 : 开 始顺时针方向距离K最 时针方向距离 最 近的节点
DHT原理 原理(2) 原理
内容索引 提取 内容 内容关键字key 内容关键字 内容存储位置等信息 value K=Hash(key)
kv
内容索引 电影 夜宴 电影、 电影、夜宴
/ yeyan.avi
Hash表 表 K=hash(电影 夜宴 电影, 夜宴) 电影 V = /
yeyan.avi
DHT原理 原理(3) 原理
kv
规则? 规则
N1
K V
K V
K V
N32
K V
Chord、CAN、 、 、 Tapestry、Pastry 、
N8 N48
K V
N16 a. Hash表 表 b. 分布式 分布式Hash表 表
在许多情况下,节点 为节点 地址的Hash摘要 在许多情况下 节点ID为节点 地址的 节点 为节点IP地址的 摘要
内容索引<夜宴 内容索引 夜宴, /yeyan.avi> 夜宴 表示电影夜宴可以从 /yeyan.avi处获得 处获得
2.Hash函数概述 函数概述
Hash函数可以根据给定的一段任意长的消息计算出一个 函数可以根据给定的一段任意长的消息计算出一个 固定长度的比特串,通常称为消息摘要( 固定长度的比特串,通常称为消息摘要(MD:Message : Digest),一般用于消息的完整性检验。 ),一般用于消息的完整性检验 ),一般用于消息的完整性检验。 Hash函数有以下特性: 函数有以下特性: 函数有以下特性
指针表中有O (log N)个节点 查询经过大约O (log N)跳
Chord:网络波动(Churn) :网络波动
Churn由节点的加入、退出或者失效所引 由节点的加入、 由节点的加入 起 每个节点都周期性地运行探测协议来检测 新加入节点或退出/失效节点 失效节点, 新加入节点或退出 失效节点,从而更新自 己的指针表和指向后继节点的指针
给定 P,易于计算出 MD(P) , ( ) MD(P), ),几乎无法找出 只给出 MD(P),几乎无法找出 P 无法找到两条具有同样消息摘要的不同消息
Hash函数 函数
MD5:消息摘要长度固定为128比特 :消息摘要长度固定为 比特 SHA-1:消息摘要长度固定为 :消息摘要长度固定为160比特 比特
3.DHT原理 原理(1) 原理
将内容索引抽象为<K, V>对 将内容索引抽象为 对
K是内容关键字的Hash摘要 是内容关键字的 摘要
K = Hash(key)
V是存放内容的实际位置,例如节点IP地址等 是存放实际位置
所有的<K, V>对组成一张大的 对组成一张大的Hash表,因此该表存储了 所有的 对组成一张大的 表 所有内容的信息 每个节点都随机生成一个标识(ID),把Hash表分割成许多 每个节点都随机生成一个标识 , 表分割成许多 小块,按特定规则(即 和节点 之间的映射关系)分布到 和节点ID之间的映射关系 小块,按特定规则 即K和节点 之间的映射关系 分布到 网络中去, 网络中去,节点按这个规则在应用层上形成一个结构化的 重叠网络 给定查询内容的K值 可以根据K和节点 和节点ID之间的映射关 给定查询内容的 值,可以根据 和节点 之间的映射关 系在重叠网络上找到相应的V值 系在重叠网络上找到相应的 值,从而获得存储文件的节 点IP地址 地址
节点ID分布采用环形结构 节点 分布采用环形结构
Pastry: Hash表分布规则 : 表分布规则
Hash算法 算法SHA-1 算法 Hash节点 地址->m位 节点IP地址 节点 地址- 位 节点ID(表示为 表示为NID) 节点 表示为 Hash内容关键字 >m位 Hash内容关键字->m位 内容关键字- K(表示为 K(表示为KID) 表示为KID) NID和KID是以 b为基的数 是以2 和 是以 为基的数, 共有m/b个数位 共有 个数位
DHT网络的搜索技术 网络的搜索技术
制作人: 制作人:程达
主要内容
P2P网络的分类 P2P网络的分类 Hash函数概述 函数概述 DHT原理 DHT原理 几种典型的DHT网络 几种典型的DHT网络 DHT 总结
1.P2P网络分类 网络分类
非结构化P2P 非结构化
网络拓扑是任意的 内容的存储位置与网络拓扑无关
4.Chord:概述 :
Berkeley和MIT共同提出 和 共同提出 采用环形拓扑(Chord环) 采用环形拓扑 环 应用程序接口
Insert(K, V)
将<K, V>对存放到节点 为Successor(K)上 对存放到节点ID为 对存放到节点 上
Lookup(K)
根据K查询相应的 根据 查询相应的V 查询相应的
路由(Routing) 路由
在重叠网上根据节点ID进行路由, 在重叠网上根据节点 进行路由,将查询消息最终发送 进行路由 到目的节点。每个节点需要有到其邻近节点的路由信息, 到目的节点。每个节点需要有到其邻近节点的路由信息, 包括节点ID、 等 包括节点 、IP等
结构化P2P 结构化
网络拓扑结构是有规律的
每个节点都随机生成一个标识(ID) 每个节点都随机生成一个标识
内容的存储位置与网络拓扑相关
内容的存储位置与节点标识之间存在着映射关系
P2P网络分类 网络分类
在结构化P2P网络中,内容一般使用内容索引 网络中, 在结构化 网络中 来表示,内容索引包括 内容索引包括key和value两部分 其中 两部分,其中 来表示 内容索引包括 和 两部分 key是内容的关键字 是内容的关键字,value是存放内容的实际 是内容的关键字 是存放内容的实际 位置,因此内容索引也表示为 因此内容索引也表示为<key, value>对 位置 因此内容索引也表示为 对
网络拓扑
拓扑结构由节点ID和其存放的 对中的K之间的映射 拓扑结构由节点 和其存放的<K, V>对中的 之间的映射 和其存放的 对中的 关系决定 拓扑动态变化,需要处理节点加入/退出 退出/失效的情况 拓扑动态变化,需要处理节点加入 退出 失效的情况
在重叠网上节点始终由节点ID标识,并且根据 进行路由 在重叠网上节点始终由节点 标识,并且根据ID进行路由 标识
Hash函数应用于 函数应用于P2P的特性 函数应用于 的特性
唯一性:不同的输入明文, 唯一性:不同的输入明文,对应着不同的 输出摘要
将节点IP地址的摘要作为节点 ,保证了节点ID 将节点 地址的摘要作为节点ID,保证了节点 地址的摘要作为节点 在P2P环境下的唯一性 环境下的唯一性
SHA-1(“202.38.64.1”) =24b92cb1d2b81a47472a93d06af3d85a42e463ea SHA-1(“202.38.64.2”) =e1d9b25dee874b0c51db4c4ba7c9ae2b766fbf27
Lookup(K54) K54
N56 N1 N8
N51 N48
N14
N42
N21
N38 N32
m=6
Chord:指针表 :
指针表
N8+1 N14 N14 N14 N21 N32 N42 N8+2 N8+4 N8+8 N8+16 N8+32
N56
节点S的第 个指针 节点 的第i个指针 的第 successor[n+2^(i-1)], 1≤i≤m
Chord:节点退出/失效 :节点退出 失效
中某个结点M退出 失效时, 当Chord中某个结点 退出 失效时,所有在指针 中某个结点 退出/失效时 表中包含该结点的结点将相应指针指向大于M结 表中包含该结点的结点将相应指针指向大于 结 的第一个有效结点即节点M的后继节点 点ID的第一个有效结点即节点 的后继节点 的第一个有效结点即节点 为了保证节点M的退出 的退出/失效不影响系统中正在进 为了保证节点M的退出/失效不影响系统中正在进 行的查询过程,每个Chord节点都维护一张包括 节点都维护一张包括r 行的查询过程,每个 节点都维护一张包括 个最近后继节点的后继列表。 个最近后继节点的后继列表。如果某个节点注意 到它的后继节点失效了, 到它的后继节点失效了,它就用其后继列表中第 一个正常节点替换失效节点
Chord:节点加入 :
新节点N事先知道某个或者某些结点, 新节点 事先知道某个或者某些结点,并且 事先知道某个或者某些结点 通过这些节点初始化自己的指针表, 通过这些节点初始化自己的指针表,也就 是说,新节点N将要求已知的系统中某节点 是说,新节点 将要求已知的系统中某节点 为它查找指针表中的各个表项 在其它节点运行探测协议后,新节点N将被 在其它节点运行探测协议后,新节点 将被 反映到相关节点的指针表和后继节点指针 中 新结点N的第一个后继结点将其维护的小于 新结点 的第一个后继结点将其维护的小于 N节点的 的所有 交给该节点维护; 节点的ID的所有 交给该节点维护; 节点的 的所有K交给该节点维护
DHT原理 原理(4) 原理
索引发布和内容定位
(K1,V1)
K V K V K V K V K V K V
C
K V
K1=Hash(xyz.mp3) V1=128.1.2.3
K V
A 128.1.2.3
插入 (K1,V1)
K V
K V
查询(K 查询 1)
K V
B
DHT原理 原理(5) 原理
定位(Locating) 定位
K=hash (key)=54 N56 N1 ID=hash (IP)=14 N8
N51 N48
N14
N42
N21
N38 N32
m=6
Chord:简单查询过程 :
每个节点仅维护其后继节 点ID、IP地址等信息 、 地址等信息 查询消息通过后继节点指 针在圆环上传递 直到查询消息中包含的K 直到查询消息中包含的 落在某节点ID和它的后继 落在某节点 和它的后继 节点ID之间 节点 之间 速度太慢 O(N),N为网 , 为网 络中节点数
Chord:基于指针表的扩展查找过程 :
Lookup(K54)
K54
N56
指针表
N8+1 N8+2 N8+4 N8+8 N8+16 N8+32 N14 N14 N14 N21 N32 N42
指针表
N42+1 N42+2 N42+4 N42+8 N42+16 N42+32 N48 N48 N48 N51 N1 N14
Pastry:概述 :
英国剑桥Microsoft研究院和 研究院和Rice大学共同提出 英国剑桥 研究院和 大学共同提出 考虑网络的本地性,解决物理网络和逻辑网络的 考虑网络的本地性 解决物理网络和逻辑网络的 拓扑失配的问题
基于应用层定义的邻近性度量,例如 路由跳数、地理 基于应用层定义的邻近性度量 例如IP路由跳数 例如 路由跳数、 距离、 距离、往返延时等
Chord:拓扑失配问题 :
O(LogN)逻辑跳数,但是每一逻辑跳可能 逻辑跳数, 逻辑跳数 跨越多个自治域, 跨越多个自治域,甚至是多个国家的网络 重叠网络与物理网络脱节 实际的寻路时延较大
Chord:总结 :
算法简单 可扩展: 可扩展:查询过程的通信开销和节点维护 的状态随着系统总节点数增加成对数关系 (O (log N)数量级 数量级) 数量级 存在拓扑失配问题
Update(K, new_V)
根据K更新相应的 根据 更新相应的V 更新相应的
Join(NID)
节点加入
Leave()
节点主动退出
Chord:Hash表分布规则 : 表分布规则
Hash算法 算法SHA-1 算法 Hash节点 地址->m位 节点IP地址 节点 地址- 位 节点ID(表示为 表示为NID) 节点 表示为 Hash内容关键字 >m位 Hash内容关键字->m位 内容关键字- K(表示为 K(表示为KID) 表示为KID) 节点按ID从小到大顺序排 节点按 从小到大顺序排 列在一个逻辑环上 <K, V>存储在后继节点上 存储在后继节点上 Successor (K):从K开 : 开 始顺时针方向距离K最 时针方向距离 最 近的节点
DHT原理 原理(2) 原理
内容索引 提取 内容 内容关键字key 内容关键字 内容存储位置等信息 value K=Hash(key)
kv
内容索引 电影 夜宴 电影、 电影、夜宴
/ yeyan.avi
Hash表 表 K=hash(电影 夜宴 电影, 夜宴) 电影 V = /
yeyan.avi
DHT原理 原理(3) 原理
kv
规则? 规则
N1
K V
K V
K V
N32
K V
Chord、CAN、 、 、 Tapestry、Pastry 、
N8 N48
K V
N16 a. Hash表 表 b. 分布式 分布式Hash表 表
在许多情况下,节点 为节点 地址的Hash摘要 在许多情况下 节点ID为节点 地址的 节点 为节点IP地址的 摘要
内容索引<夜宴 内容索引 夜宴, /yeyan.avi> 夜宴 表示电影夜宴可以从 /yeyan.avi处获得 处获得
2.Hash函数概述 函数概述
Hash函数可以根据给定的一段任意长的消息计算出一个 函数可以根据给定的一段任意长的消息计算出一个 固定长度的比特串,通常称为消息摘要( 固定长度的比特串,通常称为消息摘要(MD:Message : Digest),一般用于消息的完整性检验。 ),一般用于消息的完整性检验 ),一般用于消息的完整性检验。 Hash函数有以下特性: 函数有以下特性: 函数有以下特性
指针表中有O (log N)个节点 查询经过大约O (log N)跳
Chord:网络波动(Churn) :网络波动
Churn由节点的加入、退出或者失效所引 由节点的加入、 由节点的加入 起 每个节点都周期性地运行探测协议来检测 新加入节点或退出/失效节点 失效节点, 新加入节点或退出 失效节点,从而更新自 己的指针表和指向后继节点的指针
给定 P,易于计算出 MD(P) , ( ) MD(P), ),几乎无法找出 只给出 MD(P),几乎无法找出 P 无法找到两条具有同样消息摘要的不同消息
Hash函数 函数
MD5:消息摘要长度固定为128比特 :消息摘要长度固定为 比特 SHA-1:消息摘要长度固定为 :消息摘要长度固定为160比特 比特
3.DHT原理 原理(1) 原理
将内容索引抽象为<K, V>对 将内容索引抽象为 对
K是内容关键字的Hash摘要 是内容关键字的 摘要
K = Hash(key)
V是存放内容的实际位置,例如节点IP地址等 是存放实际位置
所有的<K, V>对组成一张大的 对组成一张大的Hash表,因此该表存储了 所有的 对组成一张大的 表 所有内容的信息 每个节点都随机生成一个标识(ID),把Hash表分割成许多 每个节点都随机生成一个标识 , 表分割成许多 小块,按特定规则(即 和节点 之间的映射关系)分布到 和节点ID之间的映射关系 小块,按特定规则 即K和节点 之间的映射关系 分布到 网络中去, 网络中去,节点按这个规则在应用层上形成一个结构化的 重叠网络 给定查询内容的K值 可以根据K和节点 和节点ID之间的映射关 给定查询内容的 值,可以根据 和节点 之间的映射关 系在重叠网络上找到相应的V值 系在重叠网络上找到相应的 值,从而获得存储文件的节 点IP地址 地址
节点ID分布采用环形结构 节点 分布采用环形结构
Pastry: Hash表分布规则 : 表分布规则
Hash算法 算法SHA-1 算法 Hash节点 地址->m位 节点IP地址 节点 地址- 位 节点ID(表示为 表示为NID) 节点 表示为 Hash内容关键字 >m位 Hash内容关键字->m位 内容关键字- K(表示为 K(表示为KID) 表示为KID) NID和KID是以 b为基的数 是以2 和 是以 为基的数, 共有m/b个数位 共有 个数位
DHT网络的搜索技术 网络的搜索技术
制作人: 制作人:程达
主要内容
P2P网络的分类 P2P网络的分类 Hash函数概述 函数概述 DHT原理 DHT原理 几种典型的DHT网络 几种典型的DHT网络 DHT 总结
1.P2P网络分类 网络分类
非结构化P2P 非结构化
网络拓扑是任意的 内容的存储位置与网络拓扑无关
4.Chord:概述 :
Berkeley和MIT共同提出 和 共同提出 采用环形拓扑(Chord环) 采用环形拓扑 环 应用程序接口
Insert(K, V)
将<K, V>对存放到节点 为Successor(K)上 对存放到节点ID为 对存放到节点 上
Lookup(K)
根据K查询相应的 根据 查询相应的V 查询相应的