第6章 分布式路由算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
start-a-routing::= [ destination is closer along clockwise direction send(m,des) to P((i+1) mod n)
•destination is closer along counterclockwise direction send(m,des) to P((i-1) mod n)
20
P3
节点PE(或进程)
P5
例子网络图
《分布式系统》(六) 2011
13
Dijkstra集中式算法
从源节点开始,以集中式方式(集中在源节点上执行 算法)的决定型路由算法。
在源节点集中计算出它到所有其它节点的最短路径(最 小代价)。
具体算法:
设D(v)是从源s到节点v的距离(沿着给定路径的链接代 价的总和),设l(v, w)是节点v和w之间的代价。
其
因
数
分
解
:
N=nd×nd-1×nd-
每个PE的寻址:(ud, ud-1, ud-2, …, ud, u1)
如,一个k元n维立方网络(k-ary n-cubes)
N=k × k × …× k (n times),即ni=k,d=n; 每个PE连接到那些地址上仅有1 (mod k)差别的PE;
P3 ( . , )
(P5, 20) (P4, 4) (P4, 4)
P4 ( . , )
(P5, 2) (P5, 2) (P5, 2)
P2
4
1
P1
5
3
P4
2
P5
2
20
P3
《分布式系统》(六) 2011
18
ARPAnet/Internet的路由策略
基本与Ford类似,也是分布式、通过路由(可达) 信息的逐步传递扩散的,能适应网络中链路状态的 变化。
适应型的算法路由中,源端或中间转发节点会根据网络流量等 状态而改变(动态路由)。
源路由和目标路由
源路由算法是在源端一次性集中建立的(一次路由即决定整个 路径);
目标路由算法是消息传递中的中间节点根据目的地当时的相对 位置以一种分散的方式多次建立的(每次只路由一个跳跃)。
容错型和非容错型
容错型算法中,即使传递中出现错误,被路由消息也能保证送 到;
利用冗余型的方法,可以将一个消息分成多个片段,同时通过 多条路径传输,以降低整体的通信延迟。
死锁避免型和非死锁避免型
死锁避免型算法可以保证不发生死锁; 非死锁避免型算法可能发生死锁(进入一个死循环路径)。
《分布式系统》(六) 2011
11
路由函数
PE在收到消息后,通过调用路由函数决定把这条 消息传送到本地存储器或转发到一个邻接的节点。
3. 重复步骤2,直到不再有改变发生。(或算法一直执行)
《分布式系统》(六) 2011
17
Ford分布式算法
以Ford分布式算法应用于例子网络,设P5是目标 节点。
步 初始 1 2 3
P1 ( . , )
( . , )
(P3, 25) (P2, 7)
P2 ( . , )
( . , )
(P4, 3) (P4, 3)
3. 重复步骤2,直到所有的节点都包含在N中。
《分布式系统》(六) 2011
14
Dijkstra集中式算法
以Dijkstra集中式算法应用于例子网络,设P5是源 节点。
步 初始 1 2 3 4
N {P5} {P5, P4} {P5, P4, P2} {P5, P4, P2, P3} {P5, P4, P2, P3, P1}
操作:使用v的每个邻接节点w的当前值D(w)更新D(v)的值,方 法是计算D(w)+l(w,v)并使:D(v) := min{D(v), D(w)+l(w, v)};更 新v的标记:用使上述表达式取值最小的邻接节点代替n,并用 新值代替D(v)。(寻找是否能通过其它邻居有一条到达目标节 点更短的路径!)
Internet中RIP路由(一种距离向量路由)用到的算 法。
《分布式系统》(六) 2011
19
特殊类型网络中的单播
为了简化讨论,假设所有特殊类型网络中的链接代 价都为一。 在环形、网状、圆环和n维立方等特殊类型网络中单 播的最短路由。
《分布式系统》(六) 2011
20
双向环中的单播
源根据目标节点的位置决定发送方向(使用路由函 数) :如果目标离顺时针方向近,则顺时针方向将 消息发送给下一个中间节点,否则选择逆时针方向 将消息发送给下一个中间节点。
最短型和非最短型
多数算法都是最短路径算法,即追求源-目的的最短跨步(跳跃、 链接)数或代价总和,但因此可能导致网络某一部分的拥塞;
非最短型的算法可以将消息路由到一个更长的路径(实现网络 的负载均衡)从而避免拥塞。
《分布式系统》(六) 2011
9
路由
决定型和适应型
决定型的算法由源端一次性决定,且只有在网络拓扑发生改变 时才发生变化,它不使用任何有关网络状态的信息(相对的静 态路由);
一般类型(General Purpose ):满足一般性的目标; 特殊类型(Special Purpose):满足特定的目标。
重点讨论在一般环境下最短路由算法和三种通信方 式在特定环境下的路由算法。
《分布式系统》(六) 2011
2
导论
分布式系统的进程间通信主要通过消息传递来实现:
邻接PE(直接消息传递实现直接通信) 非邻接PE(通过中间PE传递消息实现间接通信)
一个消息通过几个中间节点按照顺时针或逆时针方 向传递,直到到达目标节点。
m2 to 6
P2 P1
P3
m2 to 4
P4
wk.baidu.com
P6
P5
《分布式系统》(六) 2011
21
双向环中的单播
算法的DCDL表示:
P(i)::= *[ start-a-routing •receive-a-data-clockwise •receive-a-data-counterclockwise ]
每次通过路由函数计算以决定转发方向,而不是查询由 路由算法维护的路由表。
路由函数代表性的定义有:
依赖于目标的。这种函数仅仅依赖于当前和目标节点。
依赖于输入的。这种函数依赖于当前和目标节点,以及 接收消息的邻近链接(节点)。
依赖于源。这种函数依赖于源节点、当前节点和目标节 点。
依赖于路径。这种函数依赖于目标节点和从源节点到达 目标节点的路径。一般地,这样的路径是用路由消息来 表示的。
第6章 分布式路由算法
分布式路由算法
高效的进程间通信(高效路由)对分布式系统的性 能很重要。 根据目标个数的不同,进程间通信方式有:
一对一(单播,unicast,点对点); 一对多(组播,multicast); 和 一对所有(广播,broadcast)。
根据用途,路由算法有多种划分方法。如:
效果依次增强,我们主要使用依赖于目标的路由函数。
《分布式系统》(六) 2011
12
一般类型的最短路径路由
一般类型网络拓扑下的最短路径路由算法,介绍:
Dijkstra集中式算法 Ford分布式算法 ARPAnet(Internet)的路由策略
链接代价
(通信延迟、费用等)
4
P1
5
P2
1
3
P4
2
2
《分布式系统》(六) 2011
5
交换
存储-转发和分割-通过的主要区别:
存储-转发对所选路径长度很敏感; 分割-通过对所选路径长度几乎不敏感(或在没有网络拥
塞的情况下不敏感);
因此,使用存储-转发模型的目标就是减少路径长度, 使用分割-通过模型的目标是减少网络拥塞。 衡量存储-转发模型下的路由性能有2个主要参数:
每个节点都维护一个通过每个邻居到达目标(所有) 节点的最短路径(最小代价)的路由表。
当有P节i的点邻Pi居到的达通目过标P节i到点达的目最标短节路点径的发最生短改路变径时将,在下所 一个时刻点(路由信息在邻居间交换后)发生改变。 这个过程一直会持续到所有节点到达目标节点的最 短路径不再发生改变(固定点)。
一般通信:一个源给不同的目标发送相同消息;
个性化通信:一个源给不同的目标发送不同消息。
《分布式系统》(六) 2011
8
路由
路由算法可以从多个方面去划分:
特殊类型和一般类型
特殊类型的算法利用特定网络(如网格、超立方等)的拓扑属 性,往往对这类特定网络效率很高;
一般类型的算法适合于所有类型的网络,但对某种特定网络可 能不是很有效。
7
通信类型
根据通信的源(N)和目的(M)之间的数量关系(N:M), 可以使用对偶定义,得到通信的6种类型:
一对一; 一对多; 一对所有; 多对多; 多对所有; 所有对所有。
主要考虑一对一(unicast),一对多(multicast),一对 所有(broadcast)三种类型。
而根据发送的消息是否一样,又有两种通信情况:
时间步数(time steps):消息到达目标之一要经过的最 大链接数;
通信步数(traffic steps):消息到达所有目标所经过的 不同链接数的总和。
《分布式系统》(六) 2011
6
端口模型
有2种端口模型:
单端口:一次只能在一个输出端口上发送 所有端口:一次可以在所有输出端口上发送
《分布式系统》(六) 2011
各非目标节点分散、异步地计算出它到目标节点的最短 路径(最小代价、及其出口)。
《分布式系统》(六) 2011
16
Ford分布式算法
具体算法:
每个节点都有(n, D(v))的标记。这里D(v)代表该节点到 目标节点的最短路的当前值;n是截至目前得到的最短 路径的下一个节点。
步骤:
1. 初始化。设d是目标节点。令D(d)=0,将其它节点标记为(. , ); 2. 对所有节点的最短路径做标记。即对每个不为d的节点v做如下
交换:决定消息如何从一个输入信道转到一个输出信道。
重点放在路由技术上,其它作概念性介绍。
《分布式系统》(六) 2011
3
拓扑
网络拓扑可分为:
一般类型:没有一个统一和结构化的形式; 特殊类型:遵从一个特定的结构。
特殊类型的网络拓扑可用一个统一的形式来表示:
N 个 PE 2…×n1
的
分
布
式
系
统
,
分布式进程间通信的目标就是在源和目的间通过中 间 PE 传 递 消 息 时 , 实 现 高 效 性 ( 如 较 低 的 通 信 延 迟)。有几个方面的影响因素:
拓扑:定义了PE间是如何连接的; 路由:决定如何选择路径以便高效将消息传递到目的地;
流量控制:决定在消息沿路径传递时如何分配资源(如信 道、缓冲区等);
n=1:总线/路径或环拓扑;
n=2:2维网格或2维圆环;
k=2, n3:n维立方。(没有mod k)
《分布式系统》(六) 2011
4
交换
有两种交换技术/交换模型:
存储-转发(store and forward)
消息被分割成可以经由不同路径到达目的地的分组。当一个分组 全部到达一个中间节点时,整个分组就被转发到下一个节点。
非容错型算法不能调整自己的活动,不能适应传输错误。
《分布式系统》(六) 2011
10
路由
冗余型和非冗余型
冗余型算法可以通过多条路径向目的地发送多个相同的拷贝, 只要至少有一个拷贝到达目的地就算成功;(到达的多个相同 的拷贝将被丢弃)
非冗余型算法不具备这种特性。而多数的路由算法是非冗余型 的。
分割-通过(cut through,直通)
电路交换(circuit switching):传输前先建立一个网络电路,传 输结束后,电路拆除。
虚拟分割-通过(virtual cut-through):只有所需信道忙时才将 分组存储在中间节点;否则,分组被直接转发,不做任何缓冲。
虫孔路由(wormhole routing):(1)每个分组被进一步分为 一定数量的片(flit)。(2)当所需信道忙时,剩余的片不会被从 信道中清除并缓存起来,而是通过流量控制将后续片阻塞并使它 们缓存在已经建立好的路由中。
步骤:
1. 初始步骤。设N={s}。对不在N中每个节点v,如果它与s直接相 连接则令D(v)=l(s, v),否则令D(v)=;
2. 找到不在N中的一个节点w使D(w)最小并且将w加入N中,对所 有不在N中的节点更新D(v):D(v) := min{D(v), D(w)+l(w, v)}。 (沿当前的最短路径扩散计算出到其它节点的最短距离!)
P2
4
D(1) 7 7 7
1
D(2)
3 3 3 3
D(3)
20 4 4 4 4
D(4)
2 2 2 2 2
P1
5
3
P4
2
P5
2
20
P3
《分布式系统》(六) 2011
15
Ford分布式算法
从目标节点开始扩散,每个节点和其邻居交换代 价和路由信息,直到这些节点的路由表达到最短 路径的要求为止。这是一个以分布式方式(分布在 非目标节点上执行算法)的决定型路由算法。
•destination is closer along counterclockwise direction send(m,des) to P((i-1) mod n)
20
P3
节点PE(或进程)
P5
例子网络图
《分布式系统》(六) 2011
13
Dijkstra集中式算法
从源节点开始,以集中式方式(集中在源节点上执行 算法)的决定型路由算法。
在源节点集中计算出它到所有其它节点的最短路径(最 小代价)。
具体算法:
设D(v)是从源s到节点v的距离(沿着给定路径的链接代 价的总和),设l(v, w)是节点v和w之间的代价。
其
因
数
分
解
:
N=nd×nd-1×nd-
每个PE的寻址:(ud, ud-1, ud-2, …, ud, u1)
如,一个k元n维立方网络(k-ary n-cubes)
N=k × k × …× k (n times),即ni=k,d=n; 每个PE连接到那些地址上仅有1 (mod k)差别的PE;
P3 ( . , )
(P5, 20) (P4, 4) (P4, 4)
P4 ( . , )
(P5, 2) (P5, 2) (P5, 2)
P2
4
1
P1
5
3
P4
2
P5
2
20
P3
《分布式系统》(六) 2011
18
ARPAnet/Internet的路由策略
基本与Ford类似,也是分布式、通过路由(可达) 信息的逐步传递扩散的,能适应网络中链路状态的 变化。
适应型的算法路由中,源端或中间转发节点会根据网络流量等 状态而改变(动态路由)。
源路由和目标路由
源路由算法是在源端一次性集中建立的(一次路由即决定整个 路径);
目标路由算法是消息传递中的中间节点根据目的地当时的相对 位置以一种分散的方式多次建立的(每次只路由一个跳跃)。
容错型和非容错型
容错型算法中,即使传递中出现错误,被路由消息也能保证送 到;
利用冗余型的方法,可以将一个消息分成多个片段,同时通过 多条路径传输,以降低整体的通信延迟。
死锁避免型和非死锁避免型
死锁避免型算法可以保证不发生死锁; 非死锁避免型算法可能发生死锁(进入一个死循环路径)。
《分布式系统》(六) 2011
11
路由函数
PE在收到消息后,通过调用路由函数决定把这条 消息传送到本地存储器或转发到一个邻接的节点。
3. 重复步骤2,直到不再有改变发生。(或算法一直执行)
《分布式系统》(六) 2011
17
Ford分布式算法
以Ford分布式算法应用于例子网络,设P5是目标 节点。
步 初始 1 2 3
P1 ( . , )
( . , )
(P3, 25) (P2, 7)
P2 ( . , )
( . , )
(P4, 3) (P4, 3)
3. 重复步骤2,直到所有的节点都包含在N中。
《分布式系统》(六) 2011
14
Dijkstra集中式算法
以Dijkstra集中式算法应用于例子网络,设P5是源 节点。
步 初始 1 2 3 4
N {P5} {P5, P4} {P5, P4, P2} {P5, P4, P2, P3} {P5, P4, P2, P3, P1}
操作:使用v的每个邻接节点w的当前值D(w)更新D(v)的值,方 法是计算D(w)+l(w,v)并使:D(v) := min{D(v), D(w)+l(w, v)};更 新v的标记:用使上述表达式取值最小的邻接节点代替n,并用 新值代替D(v)。(寻找是否能通过其它邻居有一条到达目标节 点更短的路径!)
Internet中RIP路由(一种距离向量路由)用到的算 法。
《分布式系统》(六) 2011
19
特殊类型网络中的单播
为了简化讨论,假设所有特殊类型网络中的链接代 价都为一。 在环形、网状、圆环和n维立方等特殊类型网络中单 播的最短路由。
《分布式系统》(六) 2011
20
双向环中的单播
源根据目标节点的位置决定发送方向(使用路由函 数) :如果目标离顺时针方向近,则顺时针方向将 消息发送给下一个中间节点,否则选择逆时针方向 将消息发送给下一个中间节点。
最短型和非最短型
多数算法都是最短路径算法,即追求源-目的的最短跨步(跳跃、 链接)数或代价总和,但因此可能导致网络某一部分的拥塞;
非最短型的算法可以将消息路由到一个更长的路径(实现网络 的负载均衡)从而避免拥塞。
《分布式系统》(六) 2011
9
路由
决定型和适应型
决定型的算法由源端一次性决定,且只有在网络拓扑发生改变 时才发生变化,它不使用任何有关网络状态的信息(相对的静 态路由);
一般类型(General Purpose ):满足一般性的目标; 特殊类型(Special Purpose):满足特定的目标。
重点讨论在一般环境下最短路由算法和三种通信方 式在特定环境下的路由算法。
《分布式系统》(六) 2011
2
导论
分布式系统的进程间通信主要通过消息传递来实现:
邻接PE(直接消息传递实现直接通信) 非邻接PE(通过中间PE传递消息实现间接通信)
一个消息通过几个中间节点按照顺时针或逆时针方 向传递,直到到达目标节点。
m2 to 6
P2 P1
P3
m2 to 4
P4
wk.baidu.com
P6
P5
《分布式系统》(六) 2011
21
双向环中的单播
算法的DCDL表示:
P(i)::= *[ start-a-routing •receive-a-data-clockwise •receive-a-data-counterclockwise ]
每次通过路由函数计算以决定转发方向,而不是查询由 路由算法维护的路由表。
路由函数代表性的定义有:
依赖于目标的。这种函数仅仅依赖于当前和目标节点。
依赖于输入的。这种函数依赖于当前和目标节点,以及 接收消息的邻近链接(节点)。
依赖于源。这种函数依赖于源节点、当前节点和目标节 点。
依赖于路径。这种函数依赖于目标节点和从源节点到达 目标节点的路径。一般地,这样的路径是用路由消息来 表示的。
第6章 分布式路由算法
分布式路由算法
高效的进程间通信(高效路由)对分布式系统的性 能很重要。 根据目标个数的不同,进程间通信方式有:
一对一(单播,unicast,点对点); 一对多(组播,multicast); 和 一对所有(广播,broadcast)。
根据用途,路由算法有多种划分方法。如:
效果依次增强,我们主要使用依赖于目标的路由函数。
《分布式系统》(六) 2011
12
一般类型的最短路径路由
一般类型网络拓扑下的最短路径路由算法,介绍:
Dijkstra集中式算法 Ford分布式算法 ARPAnet(Internet)的路由策略
链接代价
(通信延迟、费用等)
4
P1
5
P2
1
3
P4
2
2
《分布式系统》(六) 2011
5
交换
存储-转发和分割-通过的主要区别:
存储-转发对所选路径长度很敏感; 分割-通过对所选路径长度几乎不敏感(或在没有网络拥
塞的情况下不敏感);
因此,使用存储-转发模型的目标就是减少路径长度, 使用分割-通过模型的目标是减少网络拥塞。 衡量存储-转发模型下的路由性能有2个主要参数:
每个节点都维护一个通过每个邻居到达目标(所有) 节点的最短路径(最小代价)的路由表。
当有P节i的点邻Pi居到的达通目过标P节i到点达的目最标短节路点径的发最生短改路变径时将,在下所 一个时刻点(路由信息在邻居间交换后)发生改变。 这个过程一直会持续到所有节点到达目标节点的最 短路径不再发生改变(固定点)。
一般通信:一个源给不同的目标发送相同消息;
个性化通信:一个源给不同的目标发送不同消息。
《分布式系统》(六) 2011
8
路由
路由算法可以从多个方面去划分:
特殊类型和一般类型
特殊类型的算法利用特定网络(如网格、超立方等)的拓扑属 性,往往对这类特定网络效率很高;
一般类型的算法适合于所有类型的网络,但对某种特定网络可 能不是很有效。
7
通信类型
根据通信的源(N)和目的(M)之间的数量关系(N:M), 可以使用对偶定义,得到通信的6种类型:
一对一; 一对多; 一对所有; 多对多; 多对所有; 所有对所有。
主要考虑一对一(unicast),一对多(multicast),一对 所有(broadcast)三种类型。
而根据发送的消息是否一样,又有两种通信情况:
时间步数(time steps):消息到达目标之一要经过的最 大链接数;
通信步数(traffic steps):消息到达所有目标所经过的 不同链接数的总和。
《分布式系统》(六) 2011
6
端口模型
有2种端口模型:
单端口:一次只能在一个输出端口上发送 所有端口:一次可以在所有输出端口上发送
《分布式系统》(六) 2011
各非目标节点分散、异步地计算出它到目标节点的最短 路径(最小代价、及其出口)。
《分布式系统》(六) 2011
16
Ford分布式算法
具体算法:
每个节点都有(n, D(v))的标记。这里D(v)代表该节点到 目标节点的最短路的当前值;n是截至目前得到的最短 路径的下一个节点。
步骤:
1. 初始化。设d是目标节点。令D(d)=0,将其它节点标记为(. , ); 2. 对所有节点的最短路径做标记。即对每个不为d的节点v做如下
交换:决定消息如何从一个输入信道转到一个输出信道。
重点放在路由技术上,其它作概念性介绍。
《分布式系统》(六) 2011
3
拓扑
网络拓扑可分为:
一般类型:没有一个统一和结构化的形式; 特殊类型:遵从一个特定的结构。
特殊类型的网络拓扑可用一个统一的形式来表示:
N 个 PE 2…×n1
的
分
布
式
系
统
,
分布式进程间通信的目标就是在源和目的间通过中 间 PE 传 递 消 息 时 , 实 现 高 效 性 ( 如 较 低 的 通 信 延 迟)。有几个方面的影响因素:
拓扑:定义了PE间是如何连接的; 路由:决定如何选择路径以便高效将消息传递到目的地;
流量控制:决定在消息沿路径传递时如何分配资源(如信 道、缓冲区等);
n=1:总线/路径或环拓扑;
n=2:2维网格或2维圆环;
k=2, n3:n维立方。(没有mod k)
《分布式系统》(六) 2011
4
交换
有两种交换技术/交换模型:
存储-转发(store and forward)
消息被分割成可以经由不同路径到达目的地的分组。当一个分组 全部到达一个中间节点时,整个分组就被转发到下一个节点。
非容错型算法不能调整自己的活动,不能适应传输错误。
《分布式系统》(六) 2011
10
路由
冗余型和非冗余型
冗余型算法可以通过多条路径向目的地发送多个相同的拷贝, 只要至少有一个拷贝到达目的地就算成功;(到达的多个相同 的拷贝将被丢弃)
非冗余型算法不具备这种特性。而多数的路由算法是非冗余型 的。
分割-通过(cut through,直通)
电路交换(circuit switching):传输前先建立一个网络电路,传 输结束后,电路拆除。
虚拟分割-通过(virtual cut-through):只有所需信道忙时才将 分组存储在中间节点;否则,分组被直接转发,不做任何缓冲。
虫孔路由(wormhole routing):(1)每个分组被进一步分为 一定数量的片(flit)。(2)当所需信道忙时,剩余的片不会被从 信道中清除并缓存起来,而是通过流量控制将后续片阻塞并使它 们缓存在已经建立好的路由中。
步骤:
1. 初始步骤。设N={s}。对不在N中每个节点v,如果它与s直接相 连接则令D(v)=l(s, v),否则令D(v)=;
2. 找到不在N中的一个节点w使D(w)最小并且将w加入N中,对所 有不在N中的节点更新D(v):D(v) := min{D(v), D(w)+l(w, v)}。 (沿当前的最短路径扩散计算出到其它节点的最短距离!)
P2
4
D(1) 7 7 7
1
D(2)
3 3 3 3
D(3)
20 4 4 4 4
D(4)
2 2 2 2 2
P1
5
3
P4
2
P5
2
20
P3
《分布式系统》(六) 2011
15
Ford分布式算法
从目标节点开始扩散,每个节点和其邻居交换代 价和路由信息,直到这些节点的路由表达到最短 路径的要求为止。这是一个以分布式方式(分布在 非目标节点上执行算法)的决定型路由算法。