第九章对等网络
DESCRIPTION
第九章对等网络. 对等网络. 概述 非结构化对等网络 结构化对等网络. 主要内容. 对等网络. 概述 非结构化对等网络 结构化对等网络. 主要内容. 1. 概述. 对等网络,也称为 P2P 网络( Peer-to Peer ),主要有两个原因导致 P2P 网络的引入 传统客户 / 服务器模式的不足 网络边缘闲置资源利用的需求. 引入背景. 资源定义为网络节点的计算、存储等能力. 瓶颈问题:服务器的带宽、存储、计算等资源受限,容易成为网络瓶颈 单点失效问题:服务器是整个网络的中心,失效将会导致服务无法访问. - PowerPoint PPT PresentationTRANSCRIPT
2008年信息通信网课程
第九章对等网络
2008年信息通信网课程
对等网络1. 概述2. 非结构化对等网络3. 结构化对等网络
主要内容
2008年信息通信网课程
对等网络1. 概述2. 非结构化对等网络3. 结构化对等网络
主要内容
2008年信息通信网课程
1. 概述 对等网络,也称为 P2P网络( Peer-to Peer),主要有两个原因导致 P2P网络的引入
传统客户 /服务器模式的不足
网络边缘闲置资源利用的需求
引入背景 Client
Client
Server
1. 瓶颈问题:服务器的带宽、存储、计算等资源受限,容易成为网络瓶颈2. 单点失效问题:服务器是整个网络的中心,失效将会导致服务无法访问
网络边缘节点
网络边缘节点
Internet随着计算技术的发展 ,位于 Internet边缘的接入设备 (也就是网络的最终用户 )拥有越来越强的计算、存储等能力,传统的网络结构无法有效地利用这些资源
资源定义为网络节点的计算、存储等能
力
2008年信息通信网课程
1. 概述
P2P
网络结构
Peer
Peer
完全分布式的网络结构 将服务器的功能分布到各个网络中的各个节点,充分利用这些节点的计算、存储、带宽等资源 无中心服务器,网络中的节点既是客户端又是服务器
P2P
网络中的节点也叫做对等节点
(Peer)
2008年信息通信网课程
1. 概述 P2P的定义
P2P通信模式中各方都具有相同的能力,其中任何一方都可以发起一个通信会话。在 P2P通信过程中,每个通信节点同时具有服务器和客户端的功能。 P2P网络中的节点间采用 P2P通信模式,它是构筑在现有网络基础设施上的一个分布式的重叠网络( Overlay
Network)
P2P
的定义
Internet
P2P网络(overlay Network)
2008年信息通信网课程
1. 概述 P2P网络是一个应用层网络,一般由网络边缘节点构成资源分布在各个节点中,而不是集中在一个服务器上进行管理节点之间可直接建立连接,交互共享资源网络的扩展性好,但节点可随意加入退出,因而动态性强
P2P
网络特征
2008年信息通信网课程
1. 概述 网络拓扑:节点的组织方式,例如物理网络有星型拓扑、网状拓扑等,而对于 P2P网络来说是拓扑是一个逻辑上概念,和具体的物理连接无关
定位 (Locating):找到资源的存放位置 路由 (Routing):将消息发送到目的节点
P2P
网络需要解决的问题
物理网络拓扑 P2P逻辑拓扑
P2P网络的最终目标是要实现资源共享,这些资源包括计算、存储等,其中内容存储、流媒体应用是 P2P目前最主要的应用
2008年信息通信网课程
1. 概述内容索引
在 P2P网络中,内容一般使用内容索引来表示 内容索引包括 key和 value两部分 ,其中 key是内容的关键字 ,value是存放内容的实际位置 ,因此内容索引也表示为 <key, value>对
内容索引 <夜宴 , http://video.com.cn/movie.avi>表示movie可以从 http://video.com.cn/movie.avi处获得
P2P网络中实现内容共享的步骤 索引发布:告诉别人拥有或者知道的内容信息 内容定位:查找到内容所在的位置,即根据 key,找到 value 内容下载:从 value处下载内容
内容共享
2008年信息通信网课程
1. 概述非结构化 P2P
网络拓扑是任意的 内容的存储位置与网络拓扑无关
结构化 P2P 网络拓扑结构是有规律的
每个节点都随机生成一个标识 (ID) 内容的存储位置与网络拓扑相关
内容的存储位置与节点标识之间存在着映射关系
P2P
网络分类
2008年信息通信网课程
对等网络1. 概述2. 非结构化对等网络3. 结构化对等网络
主要内容
2008年信息通信网课程
2. 非结构化对等网络 完全分布式的 P2P网络
不存在任何中心节点, peer通过网络泛洪查找 key所对应的value
Peer之间直接建立连接下载内容 基于目录服务器的 P2P网络
所有 peer将索引发布到目录服务器上 Peer通过目录服务器来查找 key所对应的 value Peer之间直接建立连接下载内容
层次 P2P网络 Peer根据能力的不同,例如是否拥有足够强的计算存储能力,是否拥有公网 IP,分为超级节点和一般节点 超级节点之间构成完全分布式的 P2P网络 超级节点和其所连接的一般节点构成基于目录服务器的 P2P网络,其中超级节点具有目录服务器的功能
分类Gnutella
NapsterBitTorrent
KazaASkype
2008年信息通信网课程
2. 非结构化对等网络 BitTorrent (BT)是一个用于文件共享的 P2P通信协议,最初在 2001年 4 月提出,第一个实现在 2001年 7 月发表
有许多兼容 BT 协议的客户端软件,例如BitComet、 KTorrent等
BT 协议的基本原理是初始发布者将文件划分为数据块分散到各个接收端,各个接收端可以从其它接收端下载自己想要的数据块,而不仅仅是初始发布者,因此减少了任何给定数据源的负担和开销,并且提供了一定的冗余度
P2P
网络实例—B
itTorrent
2008年信息通信网课程
2. 非结构化对等网络 BitTorrent 元素
BT客户端为实现 BT 协议的任何程序,任何客户端都能够在网络上准备、请求和传输任何类型文件 Peer为运行 BT客户端程序的主机,为了共享一个文件, peer将文件看作相同大小的数据块,通常为 64kB到 1MB,并且使用
hash算法每个数据块计算校验和,然后将这些信息包含在一个torrent 文件中。提供完整文件的 peer 被称为 seeder,而提供初始文件拷贝的 peer称为初始 seeder
torrent 文件的后缀为 .torrent,具体信息依赖于 BT 协议的版本,该文件包含了一个“ announce”分区,指定 Tracker的 URL,和一个“ info”分区,包含了文件的名字、长度、数据块使用的长度,以及每个数据块的校验和,完整的 Torrent 文件通常发布在 web网站上,并且向 Tracker 注册
Tracker是协助文件散发的主机, Tracker 维护了一个当前参与文件下载的 peer 列表,以及每个 peer所拥有的文件数据块信息
P2P
网络实例—B
itTorrent
发布 Torrent 文件的 web 站点相当于目录服务器,从这个角度来说 BT是基于目录服务器的非结构化 P2P网络
2008年信息通信网课程
2. 非结构化对等网络 BitTorrent 文件下载
Peer访问 web获取感兴趣的 Torrent 文件,并且用 BT客户端打开 BT客户端连接到 Torrent 文件中指定的 Tracker,从
Tracker处获取正在传输 Torrent 文件中所指定数据块的peer 列表,客户端连接到这些 peer来获取不同的数据块
相互连接来共享一个文件的 peer组称为 swarm,如果swarm中只包含初始 seeder,那么客户端直接连接到该seeder,并且请求数据块。随着 peer加入 swarm,它们之间开始交换数据块,而不是直接从 seeder下载
数据交换的效率依赖于客户端发送数据的策略。客户端使用 Tit for Tat 策略,即趋向于往自己发送数据的 peer发送数据。为了避免出现两个没有交换过数据块的 peer之间出现死锁,引入“ optimistic unlocking” 机制,即客户端保留一部分可用带宽向随机选择的 peer发送数据
P2P
网络实例—B
itTorrent
2008年信息通信网课程
2. 非结构化对等网络 BiTorrent 文件下载实例P2P
网络实例—B
itTorrent
说明:不同颜色的块代表不同的文件块。在初始seeder将文件块发送到其它 peer以后, peer之间交换各自所没有的文件块,从而获取整个文件拷贝。因此初始 seeder只需发送一份文件的拷贝
Seeder
2008年信息通信网课程
2. 非结构化对等网络 非结构化 P2P的内容下载采用完全在节点之间进行 ,不需要任何中心节点
但是内容定位 (也称为索引查询 )或者采用泛洪 ,或者采用目录服务器的方式 , 缺乏有效的、可扩展的索引查询机制,不能满足大规模网络的需求
总结
结构化 P2P网络:在内容和内容的存储位置之间建立某种关系
2008年信息通信网课程
对等网络1. 概述2. 非结构化对等网络3. 结构化对等网络
主要内容
2008年信息通信网课程
3. 结构化对等网络 Chord Pastry CAN Tapestry
几种结构化P2P
分布式 Hash表 : 直接根据查询内容的关键字定位其索引的存放节点,索引为 <Key, Value>对
基于分布式 Hash表(DHT: Distributed Hash TableDistributed Hash Table )
2008年信息通信网课程
3. 结构化对等网络单向散列函数也称为 Hash 函数
根据给定的一段任意长的消息计算出一个固定长度的比特串,通常称为消息摘要 (MD:Message Digest)
Hash 函数有以下特性: 给定 M,易于计算出 消息摘要MD(M) 只给出 MD(M),几乎无法找出 M 无法找到两条具有同样相同摘要的不同消息
常用 Hash 函数 MD5:消息任意长度,消息摘要 128 比特 SHA-1:消息任意长度,消息摘要 160 比特
DH
T
原理—H
ash
函数
2008年信息通信网课程
3. 结构化对等网络 Hash 函数应用于 P2P的特性
唯一性:不同的输入明文,对应着不同的输出摘要将节点 IP地址的摘要作为节点 ID,保证了节点 ID在 P2P 环境下的唯一性
SHA-1(“202.38.64.1”) =24b92cb1d2b81a47472a93d06af3d85a42e463eaSHA-1(“202.38.64.2”) =e1d9b25dee874b0c51db4c4ba7c9ae2b766fbf27
DH
T
原理—H
ash
函数
2008年信息通信网课程
3. 结构化对等网络 将内容索引抽象为 <K, V>对
K是内容关键字的 Hash 摘要 K = Hash(key)
V是存放内容的实际位置,例如节点 IP地址等 所有的 <K, V>对组成一张大的 Hash表,因此该表存储了所有内容的信息 每个节点都随机生成一个标识 (ID),把 Hash表分割成许多小块,按特定规则 (即 K和节点 ID之间的映射关系 )分布到网络中去,节点按这个规则在应用层上形成一个结构化的重叠网络 给定查询内容的 K 值,可以根据 K和节点 ID之间的映射关系在重叠网络上找到相应的 V 值,从而获得存储文件的节点 IP地址
DH
T
原理—
过程
2008年信息通信网课程
3. 结构化对等网络
DH
T
原理—
过程
内容 内容关键字 key
内容存储位置等信息value
内容索引K=Hash(key)
提取
k v
Hash表电影
movie
电影、movie
http://video.com.cn/movie.avi
内容索引K=hash( 电影 , movie)
V = http://video.com.cn/movie.avi
2008年信息通信网课程
3. 结构化对等网络
DH
T
原理—
过程
k v
a. Hash表 b. 分布式 Hash表
规则 ? K V
N1
N48
N16
N32
N8
K V
K V
K V
K V
Chord、 CAN、Tapestry、 Pastr
y
在许多情况下 ,节点 ID为节点 IP地址的 Hash 摘要
2008年信息通信网课程
3. 结构化对等网络
DH
T
原理—
索引发布和内
容定位
插入(K1,V1) K V
K V
K V
K V
K V
K V
K V
K V
K V
K V
K V
(K1,V1)
查询 (K1)A
128.1.2.3B
K1=Hash(xyz.mp3)V1=128.1.2.3
xyz.mp3
C
2008年信息通信网课程
3. 结构化对等网络 网络拓扑
拓扑结构由节点 ID和其存放的 <K, V>对中的 K之间的映射关系决定 拓扑动态变化,需要处理节点加入 /退出 /失效的情况
定位 (Locating) 节点 ID和其存放的 <K, V>对中的 K存在着映射关系,因此可以由 K获得存放该 <K, V>对的节点 ID
路由 (Routing) 在重叠网上根据节点 ID进行路由,将查询消息最终发送到目的节点。每个节点需要到其邻近节点的路由信息,包括节点 ID、 IP等
DH
T
原理—
过程总结在重叠网上节点始终由节点 ID标识,并且根据 ID进行路由
2008年信息通信网课程
3. 结构化对等网络 UC Berkeley和MIT共同提出 采用环形拓扑 (Chord环 ) 应用程序接口
Insert(K, V)将 <K, V>对存在放到节点 ID为 Successor(K)上
Lookup(K)根据 K查询相应的 V
Update(K, new_V)根据 K 更新相应的 V
Join(NID)节点加入
Leave()节点主动退出
Chord—
概述
2008年信息通信网课程
3. 结构化对等网络 Hash算法 SHA-1 Hash节点 IP地址- >m位节点 ID(表示为 NID) Hash内容关键字- >m位 K(表示为 KID)
节点按 ID从小到大顺序排列在一个逻辑环上 <K, V>存储在后继节点上
Successor(K):从K 开始顺时针方向距离 K最近的节点
Chord—
Hash
表分布规则
N1
N8
N14
N21
N32
N38
m=6
N42
N48
N51K10
K24
K30
K38
ID=hash(IP)=14
N56
K=hash(key)=54 N1
N8
N14
N21
N32
N38
N42
N48
N51
m=6
2008年信息通信网课程
3. 结构化对等网络 每个节点仅维护其后继节点 ID、 IP地址等信息 查询消息通过后继节点指针在圆环上传递 直到查询消息中包含的
K 落在某节点 ID和它的后继节点 ID之间 速度太慢 O(N), N为网络中节点数
Chord—
简单查询过程
N1
N8
N14
N21
N32
N38
m=6
N42
N48
N51K10
K24
K30
K38
N56
K54Lookup(K54)
N56
N1
N8
N14
N21
N32
N38
N42
N48
N51
m=6
2008年信息通信网课程
3. 结构化对等网络 指针表C
hord—
扩展查询过程
N1
N8
N14
N21
N32
N38
m=6
N42
N48
N51
K10
K24
K30
K38
N56
指针表N8+1
N8+2
N8+4
N8+8
N8+16
N8+32
N14
N14
N14
N21
N32
N42
节点 S的第 i个指针successor[n+2(i-1)], 1≤i≤m
2008年信息通信网课程
3. 结构化对等网络
Chord—
扩展查询过程 指针表中有 O (log N)个节点 查询经过 O (log N) 跳
N1
N8
N14
N21
N32
N38
m=6
N42
N48
N51K10
K24
K30
K38
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
2008年信息通信网课程
3. 结构化对等网络网络波动: Churn
Churn由节点的加入、退出或者失效所引起 每个节点都周期性地运行探测协议来检测新加入节点或退出 /失效节点,从而更新自己的指针表和指向后继节点的指针
Chord—
网络波动
2008年信息通信网课程
3. 结构化对等网络节点加入
新节点 N 事先知道某个或者某些节点,并且通过这些节点初始化自己的指针表,也就是说,新节点 N将要求已知的系统中某节点为它查找指针表中的各个表项 在其它节点运行探测协议后,新节点 N将被反映到相关节点的指针表和后继节点指针中 新节点 N的第一个后继节点将其维护的小于 N节点的 ID的所有 K交给该节点维护
Chord—
网络波动
2008年信息通信网课程
3. 结构化对等网络节点退出 /失效
当 Chord中某个节点M退出 /失效时,所有在指针表中包含该节点的节点将相应指针指向大于M节点 ID的第一个有效节点即节点M的后继节点
为了保证节点M的退出 /失效不影响系统中正在进行的查询过程,每个 Chord节点都维护一张包括 r个最近后继节点的后继列表。如果某个节点注意到它的后继节点失效了,它就用其后继列表中第一个正常节点替换失效节点
Chord—
网络波动
2008年信息通信网课程
3. 结构化对等网络 O(logN)逻辑跳数,但是每一逻辑跳可能跨越多个自治域,甚至是多个国家的网络重叠网络与物理网络脱节实际的寻路时延较大
Chord—
拓扑失配
2008年信息通信网课程
3. 结构化对等网络 Microsoft研究院和 Rice大学共同提出
考虑网络的本地性 ,解决物理网络和逻辑网络的拓扑失配的问题 基于应用层定义的邻近性度量 ,例如 IP路由跳数、地理距离、往返延时等
节点 ID分布采用环形结构
Pastry—
概述
2008年信息通信网课程
3. 结构化对等网络
Pastry—H
ash
表分布规
则 N0002
N0201
N0322
N2001
N1113
N2120
N2222
N3001
N3033
N3200
m=8
K1320
K1201
K0220
K2120
K3122
2m-1 0
b=2
Hash算法 SHA-1 Hash节点 IP地址- >m位节点 ID(表示为 NID) Hash内容关键字- >m
位 K(表示为 KID) NID和 KID是以 2b为基的数 ,共有m/b个数位
b是一个配置参数 ,一般为 4 节点按 ID从小到大顺序排列在一个逻辑环上 <K, V>存储在 NID与
KID 数值最接近的节点上
2008年信息通信网课程
3. 结构化对等网络 路由表 R
路由表包括 log2b N (m/b)行,每行包括 2b -1个表项 路由表第 n行与节点 ID的前 n个数位相同,但是第 n+1个数位不同,也称为 n 数位前缀相同 路由表中的每项包含节点 ID, IP地址等 根据邻近性度量选择距离本节点近的节点
邻居节点集M 邻居节点集包含 |M|个在邻近性度量上最接近于本节点的节点, |
M|为 2b或者 2X2b 邻居节点集通常不用于路由查询消息,而是用来维护本地性
叶子节点集 L 叶子节点集包含 |L|个节点 ID最接近本节点的节点,其中 |L|/2个节点的 ID 大于本节点, |L|/2个 ID 小于本节点, |L|为 2b或者
2X2b
Pastry—
节点维护状态表
2008年信息通信网课程
3. 结构化对等网络Node ID 10233102
Leaf set
Routing Table
Neighborhood set
002212102 1 22301203 31203203
11301233 12230203 13021022210031203 10132102 10323302
33
1022230210200230 1021130210230322 10231000 1023212110233001
10233120102332321
02
13021022 10200230 11301233 3130123302212102 22301203 31203203 33213321
10233033 10233021 10233120 1023312210233001 10233000 10233230 10233232
< SMALLER LARGER >
节点 ID最接近本节点的节点
b=2,因此节点 ID的基数为 4 (16 bits)m
/b 行
依据邻近性度量最接近本节点的节点 每行 2b-1个表项
第 n行的前 n个数位与本节点相同[ 相同前缀 下一数位 其它 ]
当前节点的第 n个数位第m 列表项的下一数位为m
没有合适节点的表项为空
b=2m=16
2008年信息通信网课程
3. 结构化对等网络
Pastry—
查询过程
当一个 K为 D的查询消息到达节点 A1. 节点 A 首先看 D是否在当前节点的叶子节点集中,如果是,则查询消息直接被转发到目的节点,也就是叶子节点集中节点 ID与 D 数值最接近的那个节点 (有可能就是当前节点 ),否则进行下一步2. 在路由表中查找与 D具有更长相同前缀的表项 ( 至少比本节点多一个数位 ),如果该表项不为空,则将查询消息直接转发到该节点,否则进行下一步
例如路由 D= 0629的查询消息 5324 → 0748 → 0605 → 0620 → 0629
3. 将消息转发到具有相同前缀 ,但是节点 ID在数值上更接近 D的节点。除非查询消息已经到达目的节点,否则该节点一定位于叶子节点集中。 例如路由 D=0629的查询消息
5324 → 0748 → 0605 → 0609 → 0620 → 0629
路由查询消息的逻辑跳数: O(log2b N)
2008年信息通信网课程
3. 结构化对等网络
Pastry—
概述
N0002
N0201
N2001
N1113
N2120
N2222
N3001
N3033
N3200
m=82m-1 0b=2
N0122
N0212N0221
N0233
Routing table
K2120
lookup(K2120)
N0322
节点路由表 R中的每项与本节点具有相同的 n数位长度前缀,但是下一个数位不同 例如,对于节点 N0201:
N-N-: N1???, N2???, N3???N1???, N2???, N3???N0N0: N00??, N01??, N03??N00??, N01??, N03??N02N02: N021?, N022?, N023?N021?, N022?, N023?N020N020: N0200, N0202, N0203N0200, N0202, N0203
当有多个节点时,根据邻近性度量选择最近的节点 维持了较好的本地性
2008年信息通信网课程
3. 结构化对等网络
Pastry—
节点加入
初始化状态表1. 新节点开始时知道一个根据邻近性度量接近自己的节点 A
节点 A可以通过自动定位机制获得,或者由系统管理员通过其它手段获得2. 新节点通过运行 SHA-1算法计算自己的 IP地址 (或者 public
key)的摘要得到节点 ID为 X3. 节点 X 向节点 A发送 K为 X的 join消息, A通过 Pastry路由将该消息发送到节点 ID在数值上最接近 X的节点 Z
接收到 join消息的节点,包括 A、 Z,以及 A到 Z路径上所有的节点将发送它们的状态表给 X, X 检查这些信息,并且可能从其它的节点请求状态,然后节点根据下面的过程初始化状态表 : 由于 A与 X在邻近性度量上接近 ,所以使用 A的邻居节点集来初始化 X的邻居节点集 由于 Z的节点 ID与 X最相近 ,因此使用 Z的叶子节点集来初始化 X的叶子节点集 通常情况下,假设 X与 A 没有相同的前缀,此时 X将 join消息经过的第 i个节点的路由表的第 i行作为自己路由表的第 i行
Join消息经过的第 i个节点与 X的前 i个数位相同 X将 A0 作为 X0, B1 作为 X1, C2 作为 X2….
向其它相关节点通告自己的到来 新节点向邻居节点集、叶子节点集和路由表中的每个节点发送自己的状态,以更新这些节点的状态表
X0629 Join消息
A5324
C0605
Z0620
B0748
2008年信息通信网课程
3. 结构化对等网络X
0629
节点加入Join消息 A
5324
X 知道 A(A 与 X 邻近 )
C0605
Z0620
B0748
路由消息到节点ID在数值上最接近 X的节点
A 邻居节点集
Z的叶子节点集A0 — ????B1 — 0???C2 — 06??Z4 — 062?
0629状态表
Pastry—
节点加入
2008年信息通信网课程
3. 结构化对等网络
Pastry—
节点退出/失
效 叶子节点集 L中的节点失效:联系 L中失效节点一边具有最大索引的存活节点 (即节点 ID最小或者最大的存活节点 ),并且请求该节点的叶子节点集 除非 |L|/2个节点同时失效,否恢复过程始终是有效的 失效检测:和叶子节点集中的节点周期性交互存活消息
路由表 R中的节点失效:如果失效节点对应的表项为 Rdl (第 l行
第 d列 ) ,则联系同一行中的 Ril, id所指向的存活节点并且获取该节点的 Rd
l表项,如果 l行中没有存活节点,则从下一行选择一个节点 失效检测:和路由表中的节点联系 (例如发送查询消息 )如果无反应则检测到节点失效
邻居节点表M中的节点失效:向 M中的其它节点请求邻居节点表,检查每个新发现节点的距离 (根据邻近性度量 ),然后更新自己的邻居节点表 失效检测:和邻居节点表中的每个节点周期性的联系,以确认节点存活
2008年信息通信网课程Node ID 10233102
Routing Table
002212102 1 22301203 31203203
11301233 12230203 13021022210031203 10132102 10323302
33
1022230210200230 1021130210230322 10231000 1023212110233001
10233120102332321
02
b=2,因此节点 ID的基数为 4 (16 bits)
m/b
行
每行 2b-1个表项
第 n行的前 n个数位与本节点相同[ 相同前缀 下一数位 其它 ]
当前节点的第 n个数位第m 列表项的下一数位为m
没有合适节点的表项为空
b=2m=16
Node ID 12230203Routing Table
1023020303212100 1 22211203 31201111
11203233 2212031203 12132300 12320002
312233000
3
1222230212200230 122113020 12231000 12232121
20
m/b
行
每行 2b-1个表项
2008年信息通信网课程
3. 结构化对等网络
Pastry—
路由本地性
根据邻近性度量为消息选择一条好的路由 邻近性度量包括 IP路由跳数、地理距离、往返延时等 应用层为每个节点提供了根据邻近性度量确定到其它节点距离的功能,例如 traceroute等
新节点加入过程保持了本地性 首先: A 必定与 X相接近 A路由表中第 0行表项 A0与 A相接近,而 A与 X接近,因此 A0可作为 X0
由于节点路由表中的下一行节点的可选择集合指数递减 ,因此 B1中的节点到 B的距离要比 A到 B的距离大得多 (B在 A0中 ),因此 B1可作为 X1, 依此类推 ,C2可作为 X2
X 向路由表和邻居节点集中的每个节点请求状态 , 并且使用更近的节点来更新自己的状态 由于邻居节点集根据邻近性度量而不是节点 ID前缀来维护节点信息 ,因此在这个过程中发挥重要作用
实践中 Pastry 保持了良好的本地性 伸展度 (Stretch) 大约为 2~3
伸展度 (Stretch):逻辑网络的路由延时 /IP网络的单播路由延时
X0629 Join消息
A5324
C0605
Z0620
B0748
A 邻居节点集
Z的叶子节点集A0 — ????B1 — 0???C2 — 06??Z4 — 062?
2008年信息通信网课程
3. 结构化对等网络
Pastry—
总结
逻辑网络路由跳数 O(log2b N) 路由表开销 log2b N *(2b -1)路由本地性:状态表 (路由表、邻居节点集、叶子节点集 )中的表项选择在邻近性度量上与本节点相近的节点 稳健性:只有在 |L|/2个叶子节点完全失效时才会路由失败
2008年信息通信网课程
3. 结构化对等网络 DHT层次体系结构 DHT接口 API OpenDHT Indirect Internet Infrastructure (i3)
基于
DH
T
的
P2P
应用
2008年信息通信网课程
3. 结构化对等网络 DHT层次体系结构
基于
DH
T
的
P2P
应用
2008年信息通信网课程
3. 结构化对等网络 DHT Applications
File sharing [CFS, PAST, …] Event notification [Scribe] Naming systems [ChordDNS, …] Query and indexing [Kademlia, …] Communication primitives [I3, …] …...
基于
DH
T
的
P2P
应用
2008年信息通信网课程
3. 结构化对等网络基于
DH
T
的
P2P
应用
DHT接口 API 必须的接口
Inset(K, V)Inset(K, V):将:将 <K, V><K, V>存储到合适的节点上存储到合适的节点上Lookup(K) Lookup(K) :获取:获取 KK所对应的所对应的 VV,例如节点,例如节点IPIP地址地址
支持各种应用 K不需要任何语义上的意义 V 与应用相关
具体的 API在底层的DHT重叠网络中实现
2008年信息通信网课程
3. 结构化对等网络 OpenDHT:公共 DHT服务平台
http://opendht.org 基于 Bamboo DHT,改写自 Pastry 设计原则:易于部署,易于使用 客户端不需要运行 DHT 软件,而是通过 OpenDHT服务平台获取所需的服务,从而实现基于 DHT的
P2P应用 客户端接口 API
Put(K, V, t):将 <K, V>发布到 OpenDHT网络, t为有效期 Get(K):根据 K从 OpenDHT网络获取 <K, V>对
基于
DH
T
的
P2P
应用
2008年信息通信网课程
3. 结构化对等网络基于
DH
T
的
P2P
应用
OpenDHT体系结构
2008年信息通信网课程
3. 结构化对等网络 Indirect Internet Infrastructure (i3)
基于
DH
T
的
P2P
应用
传统的 Internet 提供端到端通信模型 通信一般在固定主机之间进行 发送主机知道接收主机的
IP地址,将分组直接发送给接收主机 间接通信模型 (i3)
接收主机位置不固定,可能移动Mobility
发送主机不知道接收主机的标识Multicast, Anycast
Sender Receiver
Send
Internet
Sender ReceiverDHT网络
Send Send
2008年信息通信网课程
3. 结构化对等网络 i3原理
http://i3.cs.berkeley.edu 利用 DHT网络提供的索引发布和查询,具有
稳健性 高效性 可扩展性
DHT网络实现可以使 Chord、 Pastry、 CAN、 Tapestry等 DHT网络中的每一个节点都为 i3服务器
i3中节点通信过程1. 每个分组都带有一个标识,接收主机根据标识来获取相应的分组2. 接收主机在 DHT网络中插入 trigger (id, R), 其中 id为希望接收的分组的标识, R是接收主机的 IP地址, (id, R)根据 id存储到 DHT网络中相应的服务器节点(例如对于 chord, (id, R)存储在 id的后继节点即节点 ID 大于 id的第一个节点上)3. 发送主机发送标识为 id的分组,该分组以 id为 k,根据 DHT路由查询算法在网络中转发,如果接收到该分组的服务器注册了标识为 id的 trigger,则将分组发送给 trigger中指定的接收主机 IP
基于
DH
T
的
P2P
应用
2008年信息通信网课程
3. 结构化对等网络
DHT网络
DHT网络
a. 接收主机 R在 DHT网络中插入 trigger(id, R)
b. 发送主机向 DHT网络发送分组 (id, data),该分组被 DHT网络中的服务器转发给相应的接收主机
2008年信息通信网课程
3. 结构化对等网络 i3原理
应用程序接口 APIsendPacket(p):发送分组insertTrigger(t):插入 triggerremoveTrigger(t):删除 trigger
基于 OpenDHT的实现需要扩展 put/get接口以实现服务器转发功能
基于
DH
T
的
P2P
应用
Sean Rhea, Brighten Godfrey, et al., OpenDHT: A Public DHT Service and Its Uses, Proceedings of ACM SIGCOMM 2005, August 2005
2008年信息通信网课程
3. 结构化对等网络基于
DH
T
的
P2P
应用 Mobility
移动对于发送节点完全透明,接收节点只需更新相应的 trigger
I3应用:移动
2008年信息通信网课程
3. 结构化对等网络基于
DH
T
的
P2P
应用
i3应用:组播
组播接收节点向 DHT网络插入具有相同标识的 trigger
2008年信息通信网课程
总结 P2P网络的定义 DHT原理
重点是 Chord
本章要点