好久没写博了,这两天看到STP中的BPDU,总结一下,省得忘了.
BPDU分为几种类型:
configuration BPDU type:0x00
注意类型号
TCN BPDU type 0x80
这两种类型的BPDU是由BPDU协议字段中的TYPE决定的,具体字段内容如下:
Bytes | Field |
2 | Protocol ID |
1 | Version |
1 | Message Type |
1 | Flags |
8 | Root ID |
4 | Cost of Path |
8 | Bridge ID |
2 | Port ID |
2 | Message Age |
2 | Maximum Time |
2 | Hello time |
2 | Forward Delay |
STP在交换机之间运行,交换配置信息,就是靠BPDU实现的。
BPDU每隔2秒,以Multicast的方式发送,在designate port上被发送。
通过BPDU信息的交换,我们能够:
1、为整个STP网络找到一个root switch,也叫root bridge
2、为每个网段选举一个designate switch,或者说designate bridge
3、通过设置某些端口为backup状态,来打破环路
正常情况下,交换机只会从它的Root Port上接收
configuration BPDU包,但是绝不会主动发送
configuration BPDU包给root bridge。
这里就需要提到第二种类型的BPDU包了,也就是Topology Change Notification(TCN) BPDU。
这样,当一台交换机检测到拓扑变化后,它就可以发送TCN给root bridge,注意TCN是通过root port向root bridge方向发出的.
当交换机从它的designate port接收到TCN类BPDU时,它必须为其做转发,从它自已的root port上发送出去TCN类型的BPDU包,这样一级一级地传到root bridge后,TCN的任务才算完成.
在以上的过程中,无论是哪台交换机从它的designate port上收到了TCN类型的BPDU包,它都必须给一个回复,必须从designate port上发出TCA位被置1的normal configuration BPDU包,注意,这里是正常的configuration BPDU包.它的TCA位被置1,表明是要给TCN以回复的,但它跟TCN不是一类型的包.
那么当TCN传遍全网,直至到达ROOT BRIDGE后,root bridge也要做出一种回应,它会发出一个正常的configuration BPDU包,当然会有一些不同,就是包内的TC字段会被置1,TC即topology change,表示发现拓扑变化.这个包会被所有交换机转发,同样的TC位会置1,直至传遍全网,所有交换机都得知拓扑变化为止.
转载于:https://blog.51cto.com/ciscodocu/52847