第十讲计算机网络路由选择及算
法
路由选择算法Array
⑧主要内容
?路由基本概念
?静态路由算法
?距离矢量算法
?链路状态算法
⑧阅读
?5.2.1、5.2.2 ?5.2.3、
5.2.4
5.2.5
路由选择概述 路由器的内部结构
路由选择算法
路由算法的分类
⑧非自适应算法
?不根据实测或估计的网络的当前通信量和拓扑结构来作路由选择。 ⑧自适应算法
?根据拓扑结构、通信量的变化来改变其路由选择。
9
可提高网络性能 有助于拥塞控制
路由决策复杂
依赖于状态信息 不能太快和太慢
路由算法的设计目标
对随时出现的局部网络故障和负载变化迅速作出反映,理想情况下不丢失包和中断虚电路。 不管运行多长时间始终稳定; 在路由变化期间包可能循环通过网络,要解决; 路由处理和传输的开销应小于基于某种度量获得的好处。
10
⑧正确性(correctness ⑧简单性(simplicity ⑧健壮性
稳定性最优性(optimality ⑧公平性(fairness ⑧有效性(efficiency
路由技术元素
11
路由性能标准
12
目
标
端
13
?……
节点1到节点6的最短路经是1-3-6,路径长为10;
节点1到节点6的最小成本路径是1-4-5-6,路径成本4;
14
路由决策时间与地点
⑧决策时间
?内部数据报:为每个包单独作路由决策
?内部虚电路:当建立虚电路时作路由决策
⑧决策地点
?分布式路由
每个节点都负责为到达的包选择一条输出链路?集中式路由
15
由某些指定节点(如网络控制中心负责决策?源路由
路由决策由源站点而非网络作出
16
网络信息源和更新时间
⑧路由信息需求
?无信息(扩散法 ?局部信息
?其他信息源(
邻接
节点,全部节点
从不更新信息
固定策略
不时更新信息
自适应策略
静态路由算法—最短路径选择
⑧测量路径长度的方法
?最小跳计数 ?最短距离 ?信道带宽 ?传输延迟 ?平均通信量
Dijkstra
子网图
节点代表路由器 弧线代表两个路
由器之间的一条链路
?初试化
测量每一条链路的长度
?选择当前工作节点A
(∞, -
标值其他节点到源的距离
Dijkstra 算法——迭代(1/3
?选择当前工作节点
E
(
∞, - 标值其他节点到
? 选择当前工作节点 B
标值其他节点到 源的距离
Dijkstra算法——迭代(2/3
(∞, - 标值其他节点到源的距离
? 选择当前工作节点 G
标值其他节点到
源的距离
? 选择当前工作节点 F
( ∞
, -
Dijkstra算法——迭代(3/3
?选择当前工作节点H 标值其他节点到
源的距离
?选择当前工作节点C 标值其他节点到
源的距离
(10, H
从目标节点倒着往前推即
可获得从源节点到当前节点的一条最短路径。
(10 , H
扩散法(flooding
扩散法的特性⑧优点
?尝试所有可能路由?至少有一个包通过最小跳路由到达
?所有与源节点连接的节点都被访问①健壮性
①
建立虚电路①广播重要信息
每个节点接收来自与其直接邻接节点的路由信息执行路由计算 将计算结果回传给直接邻接的节点
?迭代的(iterative
计算过程循环进行
直到相邻节点没有可交换的路由信息为止
?异步的(asynchronous
并不要求所有节点相互锁步操作
距离矢量算法——距离
其中w 为Z 的所有直接邻居(包括X
考虑X 经直接邻居Z 到达Y
距离矢量算法——距离矩阵
D E ( A ,D = c(E,D +D D ( A , w
= 2+3 = 5
距离矢量算法的数据结构
⑧主要数据结构
?每个节点维护的距离表(distance table。
⑧一个节点能得到的信息
?与其直接相连链路的成本Array?来自邻接节点的路由信息
⑧DV算法
?用估算延迟作为性能指标
?基于Bellman-Ford算法
2 for all adjacent
nodes v:
3 D X(*, v = ∞
4 D X(v, v = c(X, v
5 for all destinations,
y 表中到邻居的距离设置成
链路成本; 把距离表中到非邻居的距离设置成无穷大; 把到所有目的地的距离
信息发给每个邻居
6 send min w D(y, w to each neighbor
/* w over all X's neighbors */
7
8 loop
9 wait (until I see a link cost change to neighbor v
10 or until I receive