路由选择
在多个节点的通信子网中选择一条到达目的节点的最佳路径
- 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)这些信息被更新到路由表中
距离矢量路由法 和 链路状态路由算法 区别
相比距离矢量法,后者需要更多的内存和计算,但因没有满收敛问题,实际效果更好
来源:CSDN
作者:Lin_SIT
链接:https://blog.csdn.net/gml1997/article/details/103459243