简介
在二层交换网络中,一旦存在环路就会造成报文在环路内不断循环和增生,产生MAC地址表翻摆、广播风暴、多帧复制,从而占用所有的有效带宽,使网络变得无法正常通信。

   在这种环境下生成树协议应运而生,生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路备份功能。

桥ID (Bridge Identifier BID)网桥优先级默认32768(0x8000)
可以命令指定 stp priority 数值 数值的范围0~61440 步长4096 如 0,4096,8192
STP_第1张图片
端口ID(port Identifier PID):端口ID为交换机端口的身份标识,端口优先级缺省优先级128可以指定
STP_第2张图片

STP端口状态:
Blocking(阻塞状态):二层端口为非指定端口,也不会参与数据帧的转发。
Listening(侦听状态):生成树会根据交换机所接收到的BPDU而判断出了这个 端口应该参与数据帧的转发。
Learning(学习状态):这个二层端口准备参与数据帧的转发,并开始填写MAC表。在默认情况下,端口会在这种状态下停留15秒钟时间。
Forwarding(转发状态):这个二层端口已经成为了活动拓扑的一个组成部分,它会转发数据帧,并同时收发BPDU。
Disabled(禁用状态):这个二层端口不会参与生成树,也不会转发数据帧。

STP的基本工作原理为:通过BPDU(Bridge Protocol Data Unit,桥接协议数据单元)的交互来传递STP计算所需要的条件,随后根据特定的算法,阻塞特定端口,从而得到无环的树形拓扑。
STP的工作流程:
第一步:选举根网桥(Root Bridge)
第二步:选举根端口(Root Port)
第三步:选举指定端口(Designated Port)
第四步、阻塞预备端口(Alternate Port)

交换机端口角色:

端口角色 描 述
Root Port 根端口,是所在交换机上离根交换机最近的端口,处于转发状态。
Designated Port 指定端口,转发所连接的网段发往根交换机方向的数据和从交换机方向发往所连接的网段的数据。
Alternate Port 预备端口,阻塞作为备用接口,不向所连网段转发任何数据。

端口状态描述

端口状态 描 述
Disabled端口 没有启用 此状态下端口不转发数据帧,不学习MAC地址表,不参与生成树计算。
Blocking阻塞状态 此状态下端口不转发数据帧,不学习MAC地址表,此状态下端口接收并处理BPDU,但是不向外发送BPDU。
Listening侦听状态 此状态下端口不转发数据帧,不学习MAC地址表,只参与生成树计算,接收并发送BPDU。
Learning学习状态 此状态下端口不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU。
Forwarding转发状态 此状态下端口正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU。

根路径成本:根路径成本为各网桥去往根网桥所要花费的开销,它由沿途各路径成本(Path Cost)叠加而来。
STP判定规则——根端口选举
1、比较根路径成本,值小者优先。
2、比较上游网桥(BPDU的发送交换机,此时可简单理解为相邻的交换机)的网桥ID,值小者为优先。
3、比较上游端口(BPDU的发送端口,此时可简单理解为相邻交换机的端口)的端口ID,值小者为先。
STP判定规则——指定端口选举
1、指定端口的选举过程同根端口。
2、特别说明:
根网桥上的所有端口皆为指定端口。
根端口相对应的端口(即与根端口直连的端口)皆为指定端口。

STP_第3张图片

STP通过BPDU(桥接协议数据单元)进行生成树计算,以及当网络拓扑发生改变时候,重新进行收敛
STP所使用的BPDU报文有两类:
配置BPDU
拓扑变更BPDU(TCN BPDU

生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。最初被广泛应用的是IEEE802.1D-1998 STP(Spanning Tree Protocol,生成树协议),随后以它为基础产生了IEEE 802.1w RSTP(Rapid Spanning Tree Protocol,快速生成树协议)和IEEE 802.1s MSTP(Multiple Spanning Tree Protocol,多生成树协议)。
三种生成树协议特点比较:
STP_第4张图片

STP_第5张图片