STP初使化过程分为网桥角色(根网桥,非根网桥)的确定和端口角色(根端口,指定端口,阻塞端口)的确定,最终端口状态(稳定状态有blocking,forwarding)确定后,树就形成了。
STP端口状态的改变依赖于端口角色的改变和计时器的超时,主要是计时器的超时(也就是被动等待).
STP端口状态的切换图如下:(图是网上找的)
初始化树的形成描述如下:
1 每个网桥的STP协议初使化时,由于没有收到其它的BPDU,让为自身为根网桥,也就是自身的端口为指定端口,同时所有的端口状态切换到Listening状态(此时开始计时,也就是计时器启动)向外发送以自身为根网桥的配置BPDU。
2 网桥收到配置BPDU后,通过比较可以选举确定根网桥(通过比较四个参数,根网桥ID,根路径开销转发网桥ID,转发端口ID),同时确定自身端口的角色如果角色是阻塞角色的端口就直接切换到阻塞状态,如果是根端口,或是指定端口,则端口状态不需要变,直到15的转发延时计时器超时,端口状态切换到learning状态,再过15后进入转发状态 。同时也就完成了STP初使化的收敛。
直接拓扑变更的STP收敛过程描述:
分为STP树的收敛过程和MAC表的收敛过程:
1 当网桥有一个接口(根端口)DOWN后,就会重新选举一个根端口(假设为A),则A端口进入listening状态,同时开始计时,15后计时器超时,进入learning 状态,再过15后,进入forwarding状态 。
2 当网桥的端口(除cisco配置为portfast端口以外)进入禁用状态,或是进入forwarding状态,都被认为拓扑变更,网桥会向根端口发送TCN,直到收到TCA置位的配置BPDU的确认,其它网桥收到TCN后,回复TCA置位的配置BPDU,并向根端口转发,最终根网桥一定会收到TCN,如是根网桥感知到拓扑变化,向所的端口发送TC置位的配置BPDU,自身的MAC地址表中条目的老化时间都改为15 秒(一个转发延时),其它的网桥收到TC置位的配置BPDU后,将自身的MAC地址表的老化时间改为15秒。
STP间接拓扑变更的收敛过程:
同样分为STP树的收敛过程和MAC地址表的收敛过程:
1 当网桥收不到其它的BPDU时,就会选举自身为根网桥,自身的所有端口为指定端口,并向外发送以自身为根的配置BPDU,其它的网桥收到次佳配置BPDU时,前20的老化时间内,网桥会忽略次佳BPDU,20秒后才会将更优的BPDU发送给对端,自身的端口为指定端口,进入listening状态,15后进入learning 状态 ,再过15秒后进入forwarding 状态 。