路由算法

走远了吗. 提交于 2019-12-10 08:54:19

路由选择

在多个节点的通信子网中选择一条到达目的节点的最佳路径

1、无连接的数据包服务中:
网络节点腰围每个数据包做出路由选择
2、面向连接的虚电路服务中:
存在专门线路,建立连接时已确定线路,无需额外选择

路由算法

静态路由
动态路由

找到源到目的汇集树——最优路径

最短路径路由法
距离矢量路由法
链路状态路由法

1、最短路径算法:

——Dijstra算法

在这里插入图片描述

2、距离矢量路由法:

别名:
Internet中使用的RIP协议
分布式Bellman-Ford路由算法

步骤:
1、每个节点知道其邻居的距离(跳数和延时),反向其邻居发送路由信息
2、每个节点声明到所有邻居的最短距离
3、每个节点使用收到的向量更新自己的路由表
4、周期性重复上述过程
(为避免无穷计算,RIP协议规定路由的最大METRIC为15跳,大于15跳表示网络不可达)

存在问题:
——“无穷计数”问题

收敛:
整个网络最佳路径的寻找过程称为收敛

好消息反应迅速,坏消息反应迟缓
在这里插入图片描述

3、链路状态路由算法(动态路由):

因为距离矢量路由算法的无穷计数问题 ——> 链路状态路由算法
步骤:
1、发现邻居
2、设置链路成本(每条链路从距离或成本度量)
3、构建链路状态包
————数据包内容包括:发送方标识符、序号seq、年龄age、邻居列表

4、分发链路状态分组
思路——使用泛洪算法(将链路状态数据包分发给全部路由器)

为控制泛洪规模——> 引入序列号seq
seq:
随着每个新包发出而逐一递增
(如是新包则转发,如包序列号小于来自该路由器的最大序列号则拒收)

为限制生存期,引入age
age:
每秒age减1,当为0,信息被丢弃;
新链路状态包按周期到来
在这里插入图片描述
5、计算新路径
一旦路由器积累了全部的链路状态数据包,则可以构造完整的网络图,因为每条链路已经被表示出来
(2)每条链路被白哦是两次,每个方向各一次
(3)路由器运行Djistra算法,构造出从本地出发所有可能目标的最短路径
(4)这些信息被更新到路由表中

距离矢量路由法 和 链路状态路由算法 区别

相比距离矢量法,后者需要更多的内存和计算,但因没有满收敛问题,实际效果更好
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!