生成树协议(STP) ,BPDU报文解析

STP协议的核心是BPDU报文
BPDU报文:Root BridgeID | Cost | BridgeID| PortID
其初始值为:BridgeID | 0 | BridgeID | PortID

  1. Root BridgeID:Root Bridge 的 BridgeID
  2. Cost:本Bridge 到Root Bridge的距离,实际上,其是由逐步更新逐渐生成的。
  3. BridgeID :网桥ID,由Bridge Priority 和 Bridge MacAddress组成,其数值可以作为一个有效的定序尺度。
    BridgeID = Bridge Priority<<48 + MacAddress
  4. PortID:端口ID,其由Port Priority 和 Port Index组成,其数值可以作为一个有效的定序尺度。

BPDU报文可以比较大小,比较方法按元组(Root BridgeID ,Cost ,BridgeID,PortID )的比较方式。

如果一个Bridge 有 N 个 Port, 那么其在同一时刻自己有N种BPDU报文,一个 Port 一种。

生成树步骤:
1.分别从自己的Port 出发,分享自己的这个Port的BPDU 到相连的LAN上
2.接收来自LAN上的BPDU,如果这个Port收到的BPDU比这个Port的BPDU好(值更小),那么更新本Port的BPDU。
3.循环1,2
输出:

  1. 找到本Bridge中使BDPU.Cost最小的那个Port,然后把这个Port打上标记 [Root Port , R]
  2. for 本Bridge的 each Port:
    如果发现这个Port收到的BPDU中的Cost都比自己的这个Port的BPDU大,
    那么把这个Port打上标记[Designated Port ,D]

你可能感兴趣的:(网络)