添加冗余链路可以提高以太网的可靠性,但是容易形成网络环路,造成广播风暴、交换机的帧交换表振荡等问题。
以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题。
生成树协议STP作用:
(1)不论交换机之间采用怎样的物理连接,交换机都能够自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树形的(无逻辑环路);
(2)最终生成的树形逻辑拓扑确保连通整个网络;
(3)当首次链接交换机或网络物理拓扑发生变化时,交换机都将进行生成树的重新计算。
克鲁斯卡尔算法(Kruskal Algorithm)
时间复杂度:O(mlog(m))
(1)将所有边按照权重从小到大排序 O(mlog(m));
(2)枚举每条边(a, b,权重c),如果新加入的点没有形成环路,则将此点加入到集合中;
(3)使用并查集。
C++代码实现:
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100010, M = 200010,INF = 0x3f3f3f3f;
int n,m;
int p[N];
struct Edge
{
int a,b,w;
bool operator< (const Edge &W)const
{
return w < W.w;
}
}edges[M];
int find(int x)
{
if(p[x] != x) p[x] = find(p[x]);
return p[x];
}
int kruskal()
{
sort(edges,edges+m

本文介绍了如何通过生成树协议STP避免以太网冗余链路造成的网络环路问题,包括克鲁斯卡尔算法在构建无环逻辑拓扑中的应用,以及STP如何确保网络可靠性和逻辑结构的树状结构。

1940

被折叠的 条评论
为什么被折叠?



