以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路,但是这也带来了网络环路的问题。网络环路会引发广播风暴和MAC地址表震荡等问题,导致用户通信质量差,甚至通信中断。
为了解决交换网络中的环路问题,IEEE提出了基于802.1D标准的生成树协议STP(Spanning Tree Protocol)。STP是局域网中的破环协议,运行该协议的设备通过彼此交互信息来发现网络中的环路,并有选择地对某些端口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,达到破除环路的目的。另外,如果当前活动的路径发生故障,STP还可以激活冗余备份链路,恢复网络连通性。
交换机端口状态变化过程如下:
端口状态
Disabled
端口状态为Down,不处理BPDU报文,也不转发用户流量。
Listening
过渡状态,开始生成树计算,端口可以接收和发送BPDU,但不转发用户流量。
Learning
过渡状态,建立无环的MAC地址转发表,不转发用户流量。
Forwarding
端口可以接收和发送BPDU,也转发用户流量。只有根端口或指定端口才能进入
Forwarding状态。
Blocking
端口仅仅接收并处理BPDU,不转发用户流量。
1端口Up或使能了STP,会从Disabled状态进入到Blocking状态。
2端口被选举为根端口或指定端口,会进入Listening状态。