计算机网络:链路状态路由算法
链路状态路由算法(LS算法)
- DV算法是路径矢量算法(distance Vector),现在我们着重了解一下链路状态算法的相关描述。
- 链路状态路由算法 link state routing algorithm 俗称LS算法。
工作原理:
-每个路由器将自己的链路状态信息洪泛(flooding)
到网络上的所有路由器。
- 最后,每个路由器都会纸雕整个网络的拓扑结构(LSDB)
- 每个路由器使用的是
最短路径算法
计算最短路径,来更新路由表 - 路由器的链路状态发生变化的时候会继续洪泛自身的链路状态信息到其他的路由器
链路的概念与链路状态的概念
- 链路本质上就是路由器的一个接口
- 而链路状态就是有关各条链路的状态信息
如图所示,接口1、2、3、4就是链路。
链路所描述的状态就是链路状态。
链路状态数据包洪泛
洪泛:路由器一旦接收到来自相邻路由器的LSP。立马将该LSP发送到除了接受该LSP接口以外的所有接口上发出。
最短路径算法
最短路径算法其实非常简单
- D(v):随着算法进行迭代,从源节点到目的V的最短路径的费用。
- p(v): 从源节点到V沿着当前最短路径的前一节点
- N: 从源到目的节点的最短路径已知的节点集合。
当走到第一个节点上去的时候,默认选择最小路径的节点。
当走到某一个节点的时候,默认选择从起始点到现在的节点距离最小的路径。
不停循环比较。
还有不清楚的请移步数据结构的图论吧
最短路径算法分析
- 算法复杂度是n
- 最差的复杂度需要比较 n*(n-1)/2
- 最好的情况是 n-1
最大的问题:路由震荡
假设链路的代价具有方向性,LS算法可能会让分组一会顺时针转发,一会逆时针转发,形成震荡。
本质上是:同时执行最短路径算法导致的路由震荡,可以采用随机数解决同时问题
本文来自博客园,作者:{Zeker62},转载请注明原文链接:https://www.cnblogs.com/Zeker62/p/15046186.html