STP工作原理:

1、选举根桥
所有交换机在初始状态下都会认为自己是根桥,发送以自己为根的BPDU(报文中的root id字段为自己的BID)
所有的交换机都会使用BPDU中的root id来进行PK,比较桥ID,谁的BID更优秀谁将成为根桥。
BID的比较原则:首先比较桥优先级,数值默认为32768,越小越优。
如果优先级比较不出来,则继续比较桥MAC地址,越小越优先。
2、在每一台非根交换机上选举一个根端口
选举原则:非根交换机接收到最优BPDU的接口为根端口
最优BPDU的标准:
2.1 root id小的
2.2 RPC小的(报文中携带的RPC+该接口的RPC)
2.3 sender bid小的
2.4 sender pid小的
2.5 本地pid小的
3、在每一条链路上选择一个指定端口
当非根交换机选举出根端口以后,将会默认其他端口为指定端口。那么就会将根端口接收到的BPDU进行一个加工,
将自己的一些参数加工后,生成新的BPDU由这些指定端口向外发送。
这个指定端口在向外发送加工后的BPDU时,同时也会受到对向发来的BPDU。这时就要进行PK:
3.1 收到对端发来的BPDU后,如果认为自己的BPDU更优秀,那么DP端口不会改变,继续保持为DP角色
3.2 收到对端发来的BPDU后,如果认为对方的BPDU更优秀,那么DP端口将会被阻塞。
判断BPDU是否优秀,比较原则参考第2项中的最优BPDU标准:
a.root id小的
b.RPC小的
c.sender bid小的
d.sender pid小的
注意:根桥的所有接口全部默认为指定端口!
STP小总结:
1、STP的端口角色:
RP:根端口
DP:指定端口
AP:预备端口(不属于STP的端口角色)
所有:STP的端口角色只有两种
2、STP的端口状态:
2.1 disable 端口down或者没有开启STP协议,这时该接口不处理任何BPDU
2.2 listening 接收BPDU,发送BPDU,不学习MAC地址,不转发数据
2.3 learning 接收BPDU,发送BPDU,学习MAC地址,不转发数据
2.4 forwarding 接收、发送BPDU,学习MAC地址,转发数据
2.5 blocking 接收BPDU,不发送BPDU,不学习MAC地址,不转发数据
3、拓扑改变
在STP协议中,BPDU有两种类型,分别为配置BPDU和TCN-BPDU
当非根交换机网络拓扑发生改变时,会发送TCN-BPDU给根桥,沿路交换机会给原始交换机回复TCA,同时继续向根桥转发该TCN-BPDU
当根桥收到TCN-BPDU后,将会沿原路回复TC和TCA置位的配置BPDU,沿路收到TC置位的BPDU时将会把自己的MAC地址表老化时间强制修改为15s。
4、STP的几个计时器
4.1 hello time : 2s一次
4.2 老化时间max age: 20s
4.3 message age: 每转发一次会+1,默认最大不超过20跳
4.4 forwarding delay: 15s

交换机里面有bios嘛 交换机bid_优先级