第九章对等网络

60
2008 年年年年年年年年 年年年年年年年

Upload: echo-mcguire

Post on 15-Mar-2016

44 views

Category:

Documents


9 download

DESCRIPTION

第九章对等网络. 对等网络. 概述 非结构化对等网络 结构化对等网络. 主要内容. 对等网络. 概述 非结构化对等网络 结构化对等网络. 主要内容. 1. 概述. 对等网络,也称为 P2P 网络( Peer-to Peer ),主要有两个原因导致 P2P 网络的引入 传统客户 / 服务器模式的不足 网络边缘闲置资源利用的需求. 引入背景. 资源定义为网络节点的计算、存储等能力. 瓶颈问题:服务器的带宽、存储、计算等资源受限,容易成为网络瓶颈 单点失效问题:服务器是整个网络的中心,失效将会导致服务无法访问. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第九章对等网络

2008年信息通信网课程

第九章对等网络

Page 2: 第九章对等网络

2008年信息通信网课程

对等网络1. 概述2. 非结构化对等网络3. 结构化对等网络

主要内容

Page 3: 第九章对等网络

2008年信息通信网课程

对等网络1. 概述2. 非结构化对等网络3. 结构化对等网络

主要内容

Page 4: 第九章对等网络

2008年信息通信网课程

1. 概述 对等网络,也称为 P2P网络( Peer-to Peer),主要有两个原因导致 P2P网络的引入

传统客户 /服务器模式的不足

网络边缘闲置资源利用的需求

引入背景 Client

Client

Server

1. 瓶颈问题:服务器的带宽、存储、计算等资源受限,容易成为网络瓶颈2. 单点失效问题:服务器是整个网络的中心,失效将会导致服务无法访问

网络边缘节点

网络边缘节点

Internet随着计算技术的发展 ,位于 Internet边缘的接入设备 (也就是网络的最终用户 )拥有越来越强的计算、存储等能力,传统的网络结构无法有效地利用这些资源

资源定义为网络节点的计算、存储等能

Page 5: 第九章对等网络

2008年信息通信网课程

1. 概述

P2P

网络结构

Peer

Peer

完全分布式的网络结构 将服务器的功能分布到各个网络中的各个节点,充分利用这些节点的计算、存储、带宽等资源 无中心服务器,网络中的节点既是客户端又是服务器

P2P

网络中的节点也叫做对等节点

(Peer)

Page 6: 第九章对等网络

2008年信息通信网课程

1. 概述 P2P的定义

P2P通信模式中各方都具有相同的能力,其中任何一方都可以发起一个通信会话。在 P2P通信过程中,每个通信节点同时具有服务器和客户端的功能。 P2P网络中的节点间采用 P2P通信模式,它是构筑在现有网络基础设施上的一个分布式的重叠网络( Overlay

Network)

P2P

的定义

Internet

P2P网络(overlay Network)

Page 7: 第九章对等网络

2008年信息通信网课程

1. 概述 P2P网络是一个应用层网络,一般由网络边缘节点构成资源分布在各个节点中,而不是集中在一个服务器上进行管理节点之间可直接建立连接,交互共享资源网络的扩展性好,但节点可随意加入退出,因而动态性强

P2P

网络特征

Page 8: 第九章对等网络

2008年信息通信网课程

1. 概述 网络拓扑:节点的组织方式,例如物理网络有星型拓扑、网状拓扑等,而对于 P2P网络来说是拓扑是一个逻辑上概念,和具体的物理连接无关

定位 (Locating):找到资源的存放位置 路由 (Routing):将消息发送到目的节点

P2P

网络需要解决的问题

物理网络拓扑 P2P逻辑拓扑

P2P网络的最终目标是要实现资源共享,这些资源包括计算、存储等,其中内容存储、流媒体应用是 P2P目前最主要的应用

Page 9: 第九章对等网络

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处下载内容

内容共享

Page 10: 第九章对等网络

2008年信息通信网课程

1. 概述非结构化 P2P

网络拓扑是任意的 内容的存储位置与网络拓扑无关

结构化 P2P 网络拓扑结构是有规律的

每个节点都随机生成一个标识 (ID) 内容的存储位置与网络拓扑相关

内容的存储位置与节点标识之间存在着映射关系

P2P

网络分类

Page 11: 第九章对等网络

2008年信息通信网课程

对等网络1. 概述2. 非结构化对等网络3. 结构化对等网络

主要内容

Page 12: 第九章对等网络

2008年信息通信网课程

2. 非结构化对等网络 完全分布式的 P2P网络

不存在任何中心节点, peer通过网络泛洪查找 key所对应的value

Peer之间直接建立连接下载内容 基于目录服务器的 P2P网络

所有 peer将索引发布到目录服务器上 Peer通过目录服务器来查找 key所对应的 value Peer之间直接建立连接下载内容

层次 P2P网络 Peer根据能力的不同,例如是否拥有足够强的计算存储能力,是否拥有公网 IP,分为超级节点和一般节点 超级节点之间构成完全分布式的 P2P网络 超级节点和其所连接的一般节点构成基于目录服务器的 P2P网络,其中超级节点具有目录服务器的功能

分类Gnutella

NapsterBitTorrent

KazaASkype

Page 13: 第九章对等网络

2008年信息通信网课程

2. 非结构化对等网络 BitTorrent (BT)是一个用于文件共享的 P2P通信协议,最初在 2001年 4 月提出,第一个实现在 2001年 7 月发表

有许多兼容 BT 协议的客户端软件,例如BitComet、 KTorrent等

BT 协议的基本原理是初始发布者将文件划分为数据块分散到各个接收端,各个接收端可以从其它接收端下载自己想要的数据块,而不仅仅是初始发布者,因此减少了任何给定数据源的负担和开销,并且提供了一定的冗余度

P2P

网络实例—B

itTorrent

Page 14: 第九章对等网络

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网络

Page 15: 第九章对等网络

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

Page 16: 第九章对等网络

2008年信息通信网课程

2. 非结构化对等网络 BiTorrent 文件下载实例P2P

网络实例—B

itTorrent

说明:不同颜色的块代表不同的文件块。在初始seeder将文件块发送到其它 peer以后, peer之间交换各自所没有的文件块,从而获取整个文件拷贝。因此初始 seeder只需发送一份文件的拷贝

Seeder

Page 17: 第九章对等网络

2008年信息通信网课程

2. 非结构化对等网络 非结构化 P2P的内容下载采用完全在节点之间进行 ,不需要任何中心节点

但是内容定位 (也称为索引查询 )或者采用泛洪 ,或者采用目录服务器的方式 , 缺乏有效的、可扩展的索引查询机制,不能满足大规模网络的需求

总结

结构化 P2P网络:在内容和内容的存储位置之间建立某种关系

Page 18: 第九章对等网络

2008年信息通信网课程

对等网络1. 概述2. 非结构化对等网络3. 结构化对等网络

主要内容

Page 19: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络 Chord Pastry CAN Tapestry

几种结构化P2P

分布式 Hash表 : 直接根据查询内容的关键字定位其索引的存放节点,索引为 <Key, Value>对

基于分布式 Hash表(DHT: Distributed Hash TableDistributed Hash Table )

Page 20: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络单向散列函数也称为 Hash 函数

根据给定的一段任意长的消息计算出一个固定长度的比特串,通常称为消息摘要 (MD:Message Digest)

Hash 函数有以下特性: 给定 M,易于计算出 消息摘要MD(M) 只给出 MD(M),几乎无法找出 M 无法找到两条具有同样相同摘要的不同消息

常用 Hash 函数 MD5:消息任意长度,消息摘要 128 比特 SHA-1:消息任意长度,消息摘要 160 比特

DH

T

原理—H

ash

函数

Page 21: 第九章对等网络

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

函数

Page 22: 第九章对等网络

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

原理—

过程

Page 23: 第九章对等网络

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

Page 24: 第九章对等网络

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 摘要

Page 25: 第九章对等网络

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

Page 26: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络 网络拓扑

拓扑结构由节点 ID和其存放的 <K, V>对中的 K之间的映射关系决定 拓扑动态变化,需要处理节点加入 /退出 /失效的情况

定位 (Locating) 节点 ID和其存放的 <K, V>对中的 K存在着映射关系,因此可以由 K获得存放该 <K, V>对的节点 ID

路由 (Routing) 在重叠网上根据节点 ID进行路由,将查询消息最终发送到目的节点。每个节点需要到其邻近节点的路由信息,包括节点 ID、 IP等

DH

T

原理—

过程总结在重叠网上节点始终由节点 ID标识,并且根据 ID进行路由

Page 27: 第九章对等网络

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—

概述

Page 28: 第九章对等网络

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

Page 29: 第九章对等网络

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

Page 30: 第九章对等网络

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

Page 31: 第九章对等网络

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

Page 32: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络网络波动: Churn

Churn由节点的加入、退出或者失效所引起 每个节点都周期性地运行探测协议来检测新加入节点或退出 /失效节点,从而更新自己的指针表和指向后继节点的指针

Chord—

网络波动

Page 33: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络节点加入

新节点 N 事先知道某个或者某些节点,并且通过这些节点初始化自己的指针表,也就是说,新节点 N将要求已知的系统中某节点为它查找指针表中的各个表项 在其它节点运行探测协议后,新节点 N将被反映到相关节点的指针表和后继节点指针中 新节点 N的第一个后继节点将其维护的小于 N节点的 ID的所有 K交给该节点维护

Chord—

网络波动

Page 34: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络节点退出 /失效

当 Chord中某个节点M退出 /失效时,所有在指针表中包含该节点的节点将相应指针指向大于M节点 ID的第一个有效节点即节点M的后继节点

为了保证节点M的退出 /失效不影响系统中正在进行的查询过程,每个 Chord节点都维护一张包括 r个最近后继节点的后继列表。如果某个节点注意到它的后继节点失效了,它就用其后继列表中第一个正常节点替换失效节点

Chord—

网络波动

Page 35: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络 O(logN)逻辑跳数,但是每一逻辑跳可能跨越多个自治域,甚至是多个国家的网络重叠网络与物理网络脱节实际的寻路时延较大

Chord—

拓扑失配

Page 36: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络 Microsoft研究院和 Rice大学共同提出

考虑网络的本地性 ,解决物理网络和逻辑网络的拓扑失配的问题 基于应用层定义的邻近性度量 ,例如 IP路由跳数、地理距离、往返延时等

节点 ID分布采用环形结构

Pastry—

概述

Page 37: 第九章对等网络

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 数值最接近的节点上

Page 38: 第九章对等网络

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—

节点维护状态表

Page 39: 第九章对等网络

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

Page 40: 第九章对等网络

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)

Page 41: 第九章对等网络

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

当有多个节点时,根据邻近性度量选择最近的节点 维持了较好的本地性

Page 42: 第九章对等网络

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

Page 43: 第九章对等网络

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—

节点加入

Page 44: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络

Pastry—

节点退出/失

效 叶子节点集 L中的节点失效:联系 L中失效节点一边具有最大索引的存活节点 (即节点 ID最小或者最大的存活节点 ),并且请求该节点的叶子节点集 除非 |L|/2个节点同时失效,否恢复过程始终是有效的 失效检测:和叶子节点集中的节点周期性交互存活消息

路由表 R中的节点失效:如果失效节点对应的表项为 Rdl (第 l行

第 d列 ) ,则联系同一行中的 Ril, id所指向的存活节点并且获取该节点的 Rd

l表项,如果 l行中没有存活节点,则从下一行选择一个节点 失效检测:和路由表中的节点联系 (例如发送查询消息 )如果无反应则检测到节点失效

邻居节点表M中的节点失效:向 M中的其它节点请求邻居节点表,检查每个新发现节点的距离 (根据邻近性度量 ),然后更新自己的邻居节点表 失效检测:和邻居节点表中的每个节点周期性的联系,以确认节点存活

Page 45: 第九章对等网络

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个表项

Page 46: 第九章对等网络

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?

Page 47: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络

Pastry—

总结

逻辑网络路由跳数 O(log2b N) 路由表开销 log2b N *(2b -1)路由本地性:状态表 (路由表、邻居节点集、叶子节点集 )中的表项选择在邻近性度量上与本节点相近的节点 稳健性:只有在 |L|/2个叶子节点完全失效时才会路由失败

Page 48: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络 DHT层次体系结构 DHT接口 API OpenDHT Indirect Internet Infrastructure (i3)

基于

DH

T

P2P

应用

Page 49: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络 DHT层次体系结构

基于

DH

T

P2P

应用

Page 50: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络 DHT Applications

File sharing [CFS, PAST, …] Event notification [Scribe] Naming systems [ChordDNS, …] Query and indexing [Kademlia, …] Communication primitives [I3, …] …...

基于

DH

T

P2P

应用

Page 51: 第九章对等网络

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重叠网络中实现

Page 52: 第九章对等网络

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

应用

Page 53: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络基于

DH

T

P2P

应用

OpenDHT体系结构

Page 54: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络 Indirect Internet Infrastructure (i3)

基于

DH

T

P2P

应用

传统的 Internet 提供端到端通信模型 通信一般在固定主机之间进行 发送主机知道接收主机的

IP地址,将分组直接发送给接收主机 间接通信模型 (i3)

接收主机位置不固定,可能移动Mobility

发送主机不知道接收主机的标识Multicast, Anycast

Sender Receiver

Send

Internet

Sender ReceiverDHT网络

Send Send

Page 55: 第九章对等网络

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

应用

Page 56: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络

DHT网络

DHT网络

a. 接收主机 R在 DHT网络中插入 trigger(id, R)

b. 发送主机向 DHT网络发送分组 (id, data),该分组被 DHT网络中的服务器转发给相应的接收主机

Page 57: 第九章对等网络

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

Page 58: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络基于

DH

T

P2P

应用 Mobility

移动对于发送节点完全透明,接收节点只需更新相应的 trigger

I3应用:移动

Page 59: 第九章对等网络

2008年信息通信网课程

3. 结构化对等网络基于

DH

T

P2P

应用

i3应用:组播

组播接收节点向 DHT网络插入具有相同标识的 trigger

Page 60: 第九章对等网络

2008年信息通信网课程

总结 P2P网络的定义 DHT原理

重点是 Chord

本章要点