第十六讲 网络层之二:路由选择算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Y

Cost via
Cost via
距 离
DY
X
Z
DY X Z
DY
表X 46
X 16
X
1 4
X
Cost via
XZ
16
Y 1 Z
50
Cost via DY X Z
X 13
Z 的 距
DZ
Cost via
XY
离 表
X
50 5
Cost via DZ X Y X 50 5
C(X, Y)
time
changed
(, -)
(2,A)
B (4,B)
A
E
G (6,A)
(2,A)
B
(4,B)
A
E
G (5,E)
(9,B)
C
选择当前工作节点B
F (, -) D (, -)
H
标值其他节点到源的距离
(, -)
(9,B)
C
选择当前工作节点E
F (6,E) D (, -)
H
标值其他节点到源的距离
(, -)
(2,A)
B (4,B)
Cost via DY X Z X 28 Z 91
Cost via DZ X Y X 73 Y 91
Cost via DX Y Z Y 28 Z 37
Cost via DX Y Z Y 24 Z 51
Cost via DX Y Z Y 73 Z 91
3.相关问题
• DV算法:链路成本变化及链路故障
• Dijkstra算法 找出一个节点到所有其他节点的最短路径.
例:使用Dijkstra算法计算AD的最短路经
B
7
22
A
E2
6
14
G
C
3
3
F
D
22
H
测量每一条链路的长度 初试化
(2,A)
B
(, -)
A
E
(, -)
C
选择当前工作节点A
F (, -) D (, -)
G
H
标值其他节点到源的距离
(6,A)
包交换网络中的路由技术元素
性能标准
网络信息源
网络信息更新时间
跳计数 成本 延迟 吞吐量
None Local Adjacent node All nodes
连续 定期 主负载变化 拓扑变化
决策时间
包(数据报) 会晤(虚电路)
决策地点
每个节点(分布) 中心节点(集中) 原始节点(源)
3.性能标准
最小跳计数(minimum-hop)标准:
迭代的(iterative)
计算过程循环进行,直到相邻 节点没有可交换的信息为止。
异步的(asynchronous)
并不要求所有节点相互锁步操作。
考虑X经直接邻居Z到达Y。
设:Dx(Y, Z):为X经邻接节点Z到达y的距离
Dx(Y,Z) = c(X, Z) + minw{Dz(Y, w)}
(1)
其中w为Z的所有直接邻居(包括X)
changed
t0
t1
t2
t3
t4
水平分裂法的失败情况
1
A
1
C
A通知C到D的距离为;
B
B通知C到D的距离为;
1 当C-D链路失效后,C到D不可达;
1
A选择经过B到D且距离为3;
D
B选择经过A到D且距离为3;
A 、B相互交换最短距离直到无穷大。
四. 链路状态路由
基本思想:
•采用延迟作为性能标准; •每个节点为每条链路维护一个近似的延迟; •节点每10秒计算每条出境链路的平均延迟; •如有重大变化,则采用扩散法通知其他节点; •每当接收到来自其他节点的信息时,用Dijkstra 算法重新计算路由表。
A
E
G (5,E)
(2,A)
B
(4,B)
A
E
G (5,E)
(9,B)
C
选择当前工作节点G
F (6,E) D (, -)
H (9, G)
标值其他节点到源的距离
(9,B)
C
选择当前工作节点F
F (6,E) D (, -)
H (8, F)
标值其他节点到源的距离
(2,A)
B (4,B)
A
E
G (5,E)
(2,A)
X 4 X 60 X 60 X 60 51 X 60 51
Cost via
Cost via
Cost via
Cost via
Cost via
DZ X Y DZ X Y DZ X Y DZ X Y DZ X Y
X 50 5 X 50 5 X 50 61 X 50 61 X 50
C(X, Y)
time
收到y的消息后: Dx(z, y) = C(x, y) + minwDy(z, w) = 3
X计算出Dx(z,y)=3需要通知邻居
X 的
DX
Cost via
YZ
距Y 2
离 表Z
7
Y 的
DY
Cost via
XZ
距X 2
离 表Z
1
Z
Cost via
的 DZ X Y
距 离
X
7
表Y 1
Cost via DX Y Z Y 28 Z 37
•无信息(扩散法) 无更新之说
•局部信息 更新基本上是连续的。
•其他信息源(邻接节点,全部节点)
固定策略
自适应策略
从不更新信息
不时更新信息
二.静态路由算法
1.最短路由选择
•测量路径长度的方法
最小跳计数 最短距离 信道带宽 传输延迟 平均通信量
子网图:节点代表路由器; 弧线代表两个路由器之间的一条链路;
who what when where how why
1.路由算法的分类
给定一组路由器及连接路由器的链路, 找出一条从源到目标的“好”路径。
• 非自适应算法 静态路由
不根据实测或估计的网篮的 当前通信量和拓扑结构来作 路由选择。
• 自适应算法 动态路由
根据拓扑结构、通信 量的变化来改变其路 由选择。
X 4 6 X 60 6 X 60 6 X 60 8 X 60 8
Cost via
Cost via
Cost via
Cost via
Cost via
DZ X Y DZ X Y DZ X Y DZ X Y DZ X Y
X 50 5 X 50 5 X 50 7 X 50 7 X 50 9
C(X, Y)
time
集中式路由 源路由
为每个包单独作路由决策
当建立虚电路时作路由决策
每个节点都负责为到达 的包选择一条输出链路 由某些指定节点(如网络 控制中心)负责决策 路由决策实际上由源 站点而非网络作出。
5.网络信息源和更新时间
大多数路由决策要求根据网络拓扑、交通负载和链 路成本等知识作出决定。
信息更新时间:这是信息源和路由决策的函数
与其直接相连链路的成本 来自邻接节点。
• DV算法 估算的延迟作为性能指标 Bellman-Ford算法的一个版本
Bellman-Ford算法: 已用于BGP、ISO的IDRP、Novell IPX和最早的ARPAnet
Distance Vector (DV) Algorithm. At each node, X:
8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor v by d */ 14 /* note: d could be positive or negative */
•缺点 包的拷贝呈指数增长
•解决方法
每个节点记下已发包的标识 在每个包中设置一跳计数
要求:包具有某种唯一性标识
•特性 尝试所有可能路由 至少有一个包通过最小跳路由到达 所有与源节点连接的节点都被访问
•优点
健壮性 建立虚电路 广播重要信息
2
3
(a)节点1在所有
6
出境线路发送包
1
4
5
(b)节点2、4在所 有出境线路发送 包
15 for all destinations y: DX(y,V) = DX(y,V) + d 16 17 else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */ 19 /* V has sent a new value for its minw DV(Y,w) */ 20 /* call this received new value is "newval" */ 21 for the single destination y: DX(Y,V) = c(X,V) + newval 22 23 if we have a new minw DX(Y,w)for any destination Y 24 send new value of minw DX(Y,w) to all neighbors 25 26 forever
算法的操作是同步进行的,所有节点同时接收来自邻 居的消息,计算新距离表条目;如有变化通知邻居。
• DV算法实例
初始化
Y
最左列为x, y, z初始化后的距离表
2
1
X收到来自y, z的更新信息
后,重新计算距离表
X
7
Z
收到Z的消息后: Dx(y, z) = C(x, z) + minwDz(y, w) = 8
一. 路由选择概述
B的内部结构
C
A
D
B
Routing table
Network layer switching/routing
B-A data ink
B-A physical
B-C data link
B-C physical
B-D data link
B-D physical
关键问题
谁确定路由表? 用什么信息确定路由表项? 何时修改路由表项? 何地存放路由信息? 如何控制路由表大小? 为什么路由表能确定一条路径?
7
A
1
B 1C
8
2
E2D
DE(A,D) = c(E,D) +DD(A, w) = 2+3 = 5
DE(A,B)=14 ?
Cost to destination via
DE() A B D
A 1 14 5 B 785 C 694 D 4 11 2
2.DV算法
主要数据结构:每个节点维护的距离表(distance table)。 •一个节点能得到的信息
•自适应路由的前提:节点间交换网络状态信息
•缺点
路由决策复杂 依赖于状态信息 不能太快和太慢
加重网络节点的处理负担 加重网络的交通负担
•优点
可提高网络性能 有助于拥塞控制
2.路由算法的特性
•正确性(correctness) •简单性(simplicity) •健壮性(robustness) •稳定性(stability) •最优性(optimality) •公平性(fairness) •有效性(efficiency)
1 Initialization: 2 for all adjacent nodes v: 3 DX(*,v) = 4 DX(v,v) = c(X,v) 5 for all destinations, y 6 send minwD(y,w) to each neighbor
/* w over all X's neighbors */ 7
通常为最小成本 (least-cost)路由
8
5
3
2
263
最短路径:1-3-6 成本:10
5
1
3 1 2 2 33
1
1
8 4
6
7
4
1
5
1
2
最小成本路径:1-4-5-6
成本:4;
•成本与数据率有关(数据率越高,成本越低) •成本与当前排队延迟有关
4.决策时间与地点 •决策时间 内部数据报 内部虚电路 •决策地点 分布式路由
2
3
6
1
4
5
2
3
1
4
5
6 (c)节点2、3、4、 5在所有出境线路 发送包
三. 距离向量算法(DV, distance vector rouFra Baidu biblioteking)
1. 基本思想
•DV算法的特点 分布的(distributed)
每个节点接收来自与其直接邻接 节点的信息执行路由计算;将计 算结果回传给直接邻接的节点。
t0
t1
Cost via DZ X Y X 50 2
Cost via DY X Y X 50 2
t2
•无穷计算问题 假设xy链路的成本由4上升为60
60 4 Y 1
X
Z
50
Cost via
Cost via
Cost via
Cost via
Cost via
DY X Z DY X Z DY X Z DY X Z DY X Z
B
(4,B)
A
E
G (5,E)
(9,B)
C
选择当前工作节点H
F (6,E) D (10, H)
H (8, F)
标值其他节点到源的距离
(9,B)
C
选择当前工作节点C
F (6,E) D (10, H)
H (8, F)
标值其他节点到源的距离
2.扩散法(flooding)
将入境报文输出到所有输出线路(除入境线路外)。
changed
t0
t1
t2
t3
t4
“好消息传得快,而坏消息传得慢”
• DV算法:添加染毒反向 (水平分裂法)
如果z要通过y才能到达x,则z将对y宣 称它到x的距离为无穷大。
60 4 Y 1
X
Z
50
Cost via
Cost via
Cost via
Cost via
Cost via
DY X Z DY X Z DY X Z DY X Z DY X Z
相关文档
最新文档