STP
生成树协议
STP:Spanning-Tree Protocol,生成树协议,其主要作用是防止网络拓扑中因冗余链路形成的环路。在下图中,三个交换机两两相连,可以看到,SW1的F0/1端口是连线状态为橙色,通过查询,看到如下信息,其中F0/1端口状态是BLK,blocking(阻塞),为什么会这样呢?
为了解释这个现象,先引入一个术语BPDU:Bridge Protocol Data Unit,桥协议数据单元
BPDU
BPDU,生成树协议定义的一个数据包,该数据包包括网络中所有交换机都需要相互交换的、用于根交换机选举的信息,即Bridge ID,也叫桥ID。Bridge ID包含2个内容:
1. 优先级。优先级默认是32768,范围是0-65535,越小越优先
2. MAC地址。如果优先级一致,对比交换机主板MAC地址,MAC地址越小越优先
通过BPDU,能得到什么呢?网络中的设备在对比优先级后,选举出一台最优先的设备,该设备就是root,即根桥。确定根桥有什么意义呢?根桥一旦确认完成,所有的非根桥都不再发BUDP,只有根桥每2s进行发送,这样也可以优化网络。
需要注意的是,此时的BPDU,相比之前已经有了变化。此时发送的BPDU,不仅包含Bridge ID,还包含Root ID,Root ID的内容仍然是优先级和MAC地址,只是这个优先级和MAC地址是根桥的优先级和MAC地址。
因此以上选举根桥的过程可以表述为:初始状态下,每一台交换机都会发BPDU,因为开始时,都认为自己是根桥,将自己的bridge id作为root id发出去,通过对比优先级和MAC地址,决定出谁才是真正的根桥,之后不是根桥设备的不再发送BPDU
此时的BPDU包含Root ID和Bridge ID,其它设备如何转发处理BUDP呢?根桥将BPDU发送出去时,非根桥设备会保留Root ID,然后将自身的Bridge ID替换根桥的Bridge ID转发出去。记住这一点将非常重要
接下来,再来熟悉另一个术语:根端口,Root Port(RP)。
Root port
根端口是到达根桥最优的端口,根端口的选举会涉及3个方面