为什么要有STP拓扑变化机制

网络中发生拓扑变化时,例如链路中断或接口异常Down等情况,由于MAC地址老化时间的存在(缺省为5分钟),如果不及时通知上游设备,则可能会导致上游设备的报文在这段时间内一直向一个不可达的链路发送。如 图1 所示,正常情况下,S1和S2之间的链路被阻塞,由A到B的流量依次流经S1、S3、S4和S2。如果S3和S4之间的链路发生故障,流量则由S1直接转发到S2,但在MAC地址表项老化前,S1上仍然存在指向S3的MAC地址表项,流量也仍会被转发给S3,从而导致流量丢失,因此需要拓扑变化机制将网络拓扑的变更及时通知整个STP网络。

STP拓扑变化处理过程

STP拓扑变化处理过程如 图1 所示。

  1. T点接口发生变更后,下游设备会不间断地向上游设备发送TCN BPDU报文。
  2. 上游设备收到下游设备发来的TCN BPDU报文后,只有指定端口处理TCN BPDU报文。其它端口也有可能收到TCN BPDU报文,但不会处理。
  3. 上游设备会把配置BPDU报文中的Flags的TC位和TCA位同时置1,然后发送给下游设备,告知下游设备停止发送TCN BPDU报文。
  4. 上游设备复制一份TCN BPDU报文,向根桥方向发送。
  5. 重复步骤1、2、3、4,直到根桥收到TCN BPDU报文。
  6. 根桥把配置BPDU报文中Flags的TC位和TCA位同时置1后发送,TC位置1是为了通知下游设备直接删除桥MAC地址表项,TCA位置1是为了通知下游设备停止发送TCN BPDU报文。
说明:
  • TCN BPDU报文主要用来向上游设备乃至根桥通知拓扑变化。
  • TCA标记置位的配置BPDU报文主要是上游设备用来告知下游设备已经知道拓扑变化,通知下游设备停止发送TCN BPDU报文。
  • 置位的TC标记的配置BPDU报文主要是上游设备用来告知下游设备拓扑发生变化,请下游设备直接删除桥MAC地址表项,从而达到快速收敛的目的。