生成树协议(Spanning Tree Protocol,STP)
是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路.用于确保以太网中无环路的逻辑拓扑结构.从而避免了广播风暴,大量占用交换机的资源。
产生原因:
交换机之间存在冗余(备份)路径,以及交换机的泛洪机制,导致交换机之间产生 二层交换环路。
造成影响:
1.广播风暴
2.MAC地址表不稳定
3.数据帧的重复拷贝
造成影响名词解释:什么是广播风暴、什么是MAC地址表不稳定和数据帧的重复拷贝
解决方案:逻辑性阻塞某个接口.
所以就产生了STP协议。
工作过程
生成树协议工作过程:
STP通过协商阻断一些交换机端口,以确保网络中所有目的地之间只有一条逻辑路径,构建一棵没有环路的转发树。当一个端口阻止流量进入或离开时,该端口便视为处于阻塞状态。不过 STP 用来防止环路的网桥协议数据单元 (BPDU) 帧仍可继续通行。
网桥协议数据单元(BPDU)
在STP中发送的比较信息为BPDU
BPDU分为两种:
配置BPDU:config-BPDU
周期2s;用来进行生成树计算和维护生成树拓扑的报文;
拓扑变更BPDU:TCN-BPDU.
TC BPDU----①TCN BPDU ②TC BPDU ③TCA BPDU
TCN BPDU:拓扑变更告知包,只能从RP发出,不一定所有的交换机都有该数据包
TC BPDU:拓扑变更包,当根桥收到TCN BPDU后,会从DP指定端口发出TC BPDU包,所有的设备都会收到该数据包,收到TC BPDU数据包的设备会将MAC地址的老化时间从300s设置为15s。
TCA BPDU:拓扑变更确认包,当收到TCN BPDU的交换机会向发送者发送TCA BPDU报文,作为回复。
拓扑变更时的流程(重点)
正常情况下,交换机只会从它的RP根端口每2s接收到configuration BPDU包,但不会主动发送configuration BPDU给root bridge 根桥的。
发生拓扑变化时,
①当交换机检测到拓扑发生变化了,它就会发送TCN BPDU包给root bridge,切记:TCN是通过root port向root bridge方向发出的。
②当交换机从它的指定端口DP接收到TCN类的BPDU,它必须为其做转发,也是从它的RP发出,同时,它必须做出回复,从它的DP向发送者发送TCA BPDU作为回复
。
注:这里是正常的configuration BPDU包.它的TCA位被置1,表明是要给TCN以回复的,但它跟TCN不是一类型的包.
③当TCN到达root bridge后,root bridge也要做出回应,会发出一种正常的BPDU包,包内的TC字段