生成树协议STP(Spanning Tree Protocol),又称扩展树协议,是一种基于、OSI网络模型的数据链路层(第二层)通讯协议,用作确保一个无环路的网络环境。通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能。
生成树工作原理
生成树协议的国际标准是IEEE802.1d.运行生成树算法的网桥/交换机在规定的间隔内通过网桥协议数据单元(BPDU)的组播帧与其他交换机交换配置信息,其工作的过程如下:
1. 通过比较网桥/交换机优先级选取根网桥/交换机(给定广播域内只有一个根网桥/交换机);
2. 其余的非根网桥/交换机只有一个通向根网桥/交换机的端口,称为根端口;
3. 每个网段只有一个转发端口;
4. 根网桥/交换机所有的连接端口均为转发端口。
生成树功能
1、利用生成树算法、在以太网络中创建一个以某台交换机为根网桥的生成树,避免环路。
2、在以太网络发生变化时,通过生成树协议达到收敛保护的作用。
生成树协议的算法过程
生成树协议算法归纳为三个步骤:选择根网桥、选择根端口、选择指定端口
(1)选择根网桥:全网中选择一个根网桥。比较网桥的BID值,BID值越小其优先级越高。BID有两部分组成:交换机的MAC地址(6字节)和交换机的优先级(2字节,默认32768).如果优先级相同,就比较MAC地址,MAC地址越小越优先。
(2)选择根端口:每个非根网桥上都有一个根端口。
a、比较根路径成本,根路径成本取决于链路的带宽,带宽越大,路径成本越低,则选该端口为根端口。
b、如果根路径成本相同,则要比较所在对端交换机BID值,值越小,则其优先级越高。
c、比较端口的ID值,该值分为两部分:端口优先级和端口编号,值小的被 选为根端口
(3)选择指定端口:在每条链路上选择一个指定端口,根网桥上所有端口都是指定端口
首先,比较根路径成本,
其次,比较端口所在网桥的ID值
最后,比较端口的ID 值
每个网络中只有一个根网桥;
每个非根网桥只有一个根端口;
每个网段只能有一个指定端口;
根网桥无根端口;
根网桥端口全为指定端口;
非指定端口为阻塞端口。
STP 简介--STP端口状态
交换机完成启动后,生成树便立即确定。如果交换机端口直接从阻塞转换到转发状态,而交换机此时并不了解所有拓扑信息时,该端口可能会暂时造成数据环路。为此,STP 引入了五种端口状态。
阻塞(blocking) - 该端口是非指定端口,不参与帧转发。此类端口接收 BPDU 帧来确定根桥交换机的位置和根 ID,以及最终的活动 STP 拓扑中每个交换机端口扮演的端口角色,不发送BPDU。
侦听(listening) - STP 根据交换机迄今收到的 BPDU 帧,确定该端口可参与帧转发。此时,该交换机端口不仅会接收 BPDU 帧,它还会发送自己的 BPDU 帧,通知邻接交换机此交换机端口正准备参与活动拓扑。开始选定根网桥,指定端口和根端口。
学习(learning) - 端口准备参与帧转发,并开始填充 MAC 地址表。
转发(forwarding) - 该端口是活动拓扑的一部分,它会转发帧,也会发送和接收 BPDU 帧。
禁用(disabled) - 该第 2 层端口不参与生成树,不会转发帧。当管理性关闭交换机端口时,端口即进入禁用状态。
端口可以转换的状态:
传统生成树协议有3个定时器:Hello timer、Forward Delay和Max Age分别代表为
1.Hello timer:发送配置BPDU之间的间隔,默认为2秒
2.Forward Delay:侦听和学习状态的持续时间,默认为15秒.这是一个值控制两个状态的时间.
3.Max Age:BPDU存储的时间长度,默认为20秒.如果从收到BPDU开始,20秒内仍未收到BPDU,网桥将宣布保存的BPDU无效,并开始寻找新的根端口.