生成树的工作原理
生成树协议的国际标准是IEEE802.1d.运行生成树算法的网桥/交换机在规定的间隔内通过网桥协议数据单元(BPDU)的组播帧与其他交换机交换配置信息,其工作的过程如下:
1. 通过比较网桥/交换机优先级选取根网桥/交换机(给定广播域内只有一个根网桥/交换机);
2. 其余的非根网桥/交换机只有一个通向根网桥/交换机的端口,称为根端口;
3. 每个网段只有一个转发端口;
4. 根网桥/交换机所有的连接端口均为转发端口。
网桥使用珀尔曼博士发明的这种方法能够达到2层路由的理想境界:冗余和无环路运行。你可以把生成树协议设想为一个各网桥设备记在心里的用于进行优化和容错发送数据的过程的树型结构。生成树协议(Spanning Tree)定义在 IEEE 802.1D中,是一种链路管理协议,它为网络提供路径冗余同时防止产生环路。为使以太网更好地工作,两个工作站之间只能有一条活动路径。网络环路的发生有多种原因,最常见的一种是有意生成的冗余-万一一个链路或交换机失败,会有另一个链路或交换机替代。
1、利用生成树算法、在以太网络中,创建一个以某台交换机的某个端口为根的生成树,避免环路。
2、以太网络拓扑发生变化时,通过生成树协议达到收敛保护的目的。
在由交换机构成的交换网络中通常设计有冗余链路和设备。这种设计的目的是防止一个点的失败导致整个网络功能的丢失。虽然冗余设计可能消除的单点失败问题,但也导致了交换回路的产生,它会带来如下问题:
1.广播风暴
2.同一帧的多份拷贝
3.不稳定的MAC地址表
因此,在交换网络中必须有一个机制来阻止回路,而生成树协议(Spanning Tree Protocol)的作用正是在于此。
生成树协议的算法过程可以归纳为三个步骤:选择根网桥、选择根端口、选择指定端口。
(1)选择根网桥:再全网中选择一个根网桥
比较网桥的BID值,值越小其优先级越高。ID值是由两部分组成的:交换机的优先级和MAC地址组成的,如果交换机的优先级相同则比较其MAC地址,地址值越小,其就被选举为根网桥。其中交换机的优先级可以认为设置。交换机的MAC地址是指交换机的背板MAC地址。
(2)选择根端口:在每个非根交换机上选择根端口
首先,比较根路径成本,根路径成本取决于链路的带宽,带宽越大,路径成本越低,则选该端口为根端口。
其次,如果根路径成本相同,则要比较发送交换机桥ID值,值越小,则其优先级越高
最后,比较端口的ID值,该值分为两部分:端口优先级和端口编号,值小的被选为根端口
(3)选择指定端口:在每条链路上(交换机和交换机之间)选择一个指定端口,根网桥上所有端口都是指定端口
首先,比较根路径成本,
其次,比较端口所在网桥的ID值
最后,比较端口的ID值
(4)选择非指定端口进行阻塞
STP端口的状态:
阻塞(20秒)非指定端口,不转发侦听BPDU
侦听(15秒)根指定端口,侦听数据帧,不转发,不学习帧
学习(15秒)
转发
根端口都是指定端口
每个交换机和交换机之间选择一个指定端口