STP报文格式 在前面的章节中介绍了桥ID、路径开销和端口ID等信息,所有这些信息都是通过BPDU协议报文传输。 · 配置BPDU是一种心跳报文,只要端口使能STP,则配置BPDU就会按照Hello Time定时器规定的时间间隔从指定端口发出。 · TCN BPDU是在设备检测到网络拓扑发生变化时才发出。 BPDU报文被封装在以太网数据帧中,目的MAC是组播MAC:01-80-C2-00-00-00,Length/Type字段为MAC数据长度,后面是LLC头,LLC之后是BPDU报文头。以太网数据帧格式如图1所示。 配置BPDU通常所说的BPDU报文多数指配置BPDU。 在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,每台设备的指定端口都会周期性的发送配置BPDU。配置BPDU的长度至少要35个字节,包含了桥ID、路径开销和端口ID等参数。只有当发送者的BID或端口的PID两个字段中至少有一个和本桥接收端口不同,BPDU报文才会被处理,否则丢弃。这样避免了处理和本端口信息一致的BPDU报文。 配置BPDU在以下3种情况下会产生: · 只要端口使能STP,则配置BPDU就会按照Hello Time定时器规定的时间间隔从指定端口发出。 · 当根端口收到配置BPDU时,如果优先级比自己的配置BPDU高,则会根据收到的配置BPDU中携带的信息更新自己STP端口存储的配置BPDU信息并从指定接口向下游发送,否则会丢弃该配置BPDU。 · 当指定端口收到比自己差的配置BPDU时,会立刻向下游设备发送自己的BPDU。
[td] 表1 BPDU报文基本格式 | 域 | | | | | | Protocol Version Identifier | | | | | 当前BPDU类型: · 0x00:配置BPDU。 · 0x80:TCN BPDU。 | | | 网络拓扑变化标志: · 最低位=TC(Topology Change,拓扑变化)标志。 · 最高位=TCA(Topology Change Acknowledgment,拓扑变化确认)标志。 | | | | | | | | | | | | | | | 该BPDU的消息年龄。 如果配置BPDU是根桥发出的,则Message Age为0。否则,Message Age是从根桥发送到当前桥接收到BPDU的总时间,包括传输延时等。实际实现中,配置BPDU报文经过一个桥,Message Age增加1。 | | | | | | | | | 控制Listening和Learning状态的持续时间。 |
标志字段如图2所示,STP中只使用了其最高位和最低位。 TCN BPDUTCN BPDU内容比较简单,只有表1中列出的前3个字段:协议号、版本和类型。类型字段是固定值0x80,长度只有4个字节。 TCN BPDU是指在下游拓扑发生变化时向上游发送拓扑变化通知,直到根节点。TCN BPDU在如下两种情况下会产生: · 端口状态变为Forwarding状态。 · 指定端口收到TCN BPDU,复制TCN BPDU并发往根桥。 |