STP中的桥ID(根桥ID,自身桥ID),路径开销,端口ID等信息,都经过BPDU协议报文传输。即四要素。网络
STP中包含两种BPDU类型,配置BPDU和TCN BPDU,TC BPDU(topology change,拓扑变化)和TCA BPDU(topology change ack,拓扑变化确认) 都是配置BPDU的一种。属于配置BPDU中不一样的flag置位。并发
BPDU报文被封装在以太网数据帧中,目的MAC是组播MAC:01-80-C2-00-00-00,length字段指后续数据的字节长度,但不包括CRC字节,后面是LLC头,LLC以后是BPDU报文头(在data中)。ide
在初始化过程当中,每一个桥都主动发送配置BPDU,可是在网络拓扑稳定后,只有根桥主动发送配置BPDU,其余桥在收到上有传来的配置BPDU后,才触发发送本身的配置BPDU。blog
配置BPDU的长度至少35字节,包括桥ID,路劲开销,端口ID等参数。接口
只有当发送者的BID或者端口的PID两个字段中至少有一个和本桥接收端口不一样,BPDU报文才会被处理,不然丢弃,这样避免了处理和本端口信息一致的BPDU报文。图片
容许STP协议的设备发送配置消息BPDU的时间间隔,用于设备检测链路是否存在故障。设备每隔hello time 时间会向周边的设备发送hello报文,以肯定链路是否存在故障。当网络拓扑稳定后,该计时器的修改只有在根桥修改后才有效。TCN BPDU的发送不受这个计时器的管理。it
设备状态迁移的延迟时间。链路故障会引起网络从新进行生成树的计算,生成树的结构将发生相应的变化。不太重新计算获得的新配置消息没法马上传遍整个网络,若是新选出的根端口和指定端口当即就开始数据转发的话,可能会形成临时环路。STP采用了一种状态迁移机制,新选出的根端口和指定端口要通过2倍的forward delay延时后才能进入转发状态,这个延时保证了新的配置消息传遍整个网络,从而防止了临时环路的产生。forward delay timer指一个端口处于listening和learning状态的各自持续时间,默认各15秒。class
该BPDU的消息年龄。
等于从根桥发送到当前桥接收到BPDU的总时间(包括传输时延),若是配置BPDU是根桥发出的,则MessageAge为0。实际实现中,配置BPDU报文通过一个桥,MessageAge增长1.配置
端口的BPDU报文老化时间,可在根桥上经过命使人为改动老化时间。Max Age经过配置BPDU报文的传输,可保证Max Age在整网中一致。运行STP协议的网络中非根桥设备收到配置BPDU报文后,报文中的Message Age和Max Age会进行比较:定时器
指在下游拓扑发生变化时向上游发送拓扑变化通知,直到根桥,通知根桥下发TC BPDU。
TCN BPDU内容比较简单,只有三个字段:协议号、版本、类型。其中类型的固定值位0X80,长度只有4个字节。