生成树协议中设备之间的拓扑计算是通过交互BPDU(Bridge Protocol Data Unit)报文实现的。
这些BPDU报文携带了生成树计算和维护生成树拓扑所需的信息。
BPDU报文类型
配置BPDU(Configuration BPDU)
- 说明: STP使用配置BPDU进行生成树计算和维护生成树拓扑的报文。
- 目的: 确定根桥、根端口、指定端口等关键信息。
- Protocol Version Identifier: 0
- BPDU Type: 0x00
- 核心字段:Root Identifier、Root Path Cost、Bridge Identifier、Port Identifier
- Root Identifier:当前根桥的BID,由桥优先级与桥MAC地址构成。
- Root Path Cost:根路径开销,表示某端口到根桥所经过的各个桥上的各端口路径开销的累加值。
- Bridge Identifier:发送设备的BID。
- Port Identifier:发送端口的PID,由端口优先级和端口号构成。
RST BPDU
- 说明: RSTP使用RST BPDU进行生成树计算和维护生成树拓扑的报文。
- 目的: 在RSTP中,这些BPDU报文用于快速收敛生成树拓扑。
- Protocol Version Identifier: 2
- BPDU Type: 0x02
- RST BPDU与配置BPDU基本一致,增加了Version 1 Length字段和使用了Flags字段中间的六位。
MST BPDU
- 说明: MSTP使用MST BPDU进行生成树计算和维护生成树拓扑的报文。
- 目的: MSTP支持多个生成树实例,每个实例使用独立的MST BPDU进行拓扑计算。
- Protocol Version Identifier: 3
- BPDU Type: 0x02
- MST BPDU前36个字节和RST BPDU相同,从第37个字节开始是MSTP专有字段。最后的MSTI配置信息字段由若干MSTI配置信息组连缀而成。
TCN BPDU(Topology Change Notification BPDU)
- 说明: 用于通知网络拓扑发生变化的报文。
- 目的: 当网络拓扑发生变化时,通知相关设备进行拓扑重计算。
- Protocol Version Identifier: 0
- BPDU Type: 0x80
- 长度为4个字节,使用了Protocol Identifier、Protocol Version Identifier和BPDU Type字段。
BPDU报文格式
BPDU报文被封装在以太网数据帧中,其目的MAC地址通常为:01-80-C2-00-00-00。
BPDU报文格式包含多个字段,其中两个关键字段用于判断BPDU报文类型:
- 用于指定生成树协议的版本。
- 用于指定BPDU报文的类型,例如配置BPDU、RST BPDU、MST BPDU、TCN BPDU等。
这些字段的值有助于设备识别BPDU报文的类型以及执行相应的拓扑计算。
生成树协议通过这种交互的方式,确保网络中的设备始终保持对拓扑变化的感知,并根据生成树算法进行相应的调整,以维护环路防御和网络的稳定性。