寻路算法大总结!
交换机生成树采用的是完全不同的D-V(distance vector)距离矢量算法,并不是很可靠.
并不是任意两点之间的最短路径,因为任意两点之间取最短路径可能有环路:总权更大
交换机STP不一定是最小生成树!!!举例论证 因为它只是所有交换机到根桥最短 贪心算法的味道
kruskal算法也是贪心算法??
收敛方式 |
有无环 |
开销 |
批注 |
任意两点之间取最短路径, |
最有可能出现环,环数最多. |
总开销最大. |
此时相当于多源最短路径算法得到的收敛地图. |
以n-2个点为根,分别让其余n-1个点到自己选择最短路径. |
很有可能出现环,环数很多. |
总开销非常大. |
此时只剩下两个点之间可能不是最短路径. |
……以此类推. |
越向上走,越可能出现环,环数越多. |
越往上走,总开销只可能增长不可能减少. |
|
以两个点为根,分别让其余n-1个点到自己选择最短路径. |
可能有环. |
总开销再次之. |
此时相当于两棵SPF树出现在同一张网络上.(取并) |
以一个点为根,其余n-1个点到自己选择最短路径. |
肯定无环. |
总开销次之. |
此时就是交换机的STP协议. |
不考虑根和两点间最短距离,用最短的路径连线连接所有的节点. |
肯定无环. |
总开销最小. |
此时是最小生成树,每对不同节点间相互覆盖的边数最多. |
由欧拉定理得,环数加上n等于边数加1,所以每增加一个环就要增加一条边,相应的就要增加一份开销.
距离矢量路由协议算出来的也是最小生成树;所有SPF树重叠在一起也就是最小生成树.
我们将所有的寻路收敛算法进行统一的思考,这样我们会发现其实他们都属于同一类型的不同程度,就像牛顿把静止也视作一种特殊的运动,因为它是速度为0的运动.