催生STP协议出现的是网络中总是容易出现的一种经典故障:单点故障。而解决单点故障的方式很简单,就是备份,及链路备份和设备备份。然而由于备份的原因又引起了一个新的问题就是:2层数据转发出现环路的问题,然后STP就应运而生了。
STP可分为三种:1)STP(802.1d) - spanning-tree protocol 生成树协议;2)RSTP(802.1w) - rapid STP ,快速生成树协议;3)MSTP(802.1s) - multiple STP, 多生成树写;
STP能够防止交换网络中的2层数据转发环路,也就是在网络中的所有交换机上运行之后,会自动形成一个无环转发的“树”。STP首先会选举跟交换机的角色,然后选举端口角色,最后确定端口状态。
1.选举交换机角色
根交换机在一个网段(广播域)中,有且只有一个,在这个广播域中,除了根交换机以外,其他的都叫做非根交换机。选择根交换机是根据交换机的BID来选择的,首先比较优先级,优先级数值越低越好,默认的优先级号是32768;其次比较MAC,同样也是数值越小越好。交换机的BID(bridge-id:桥ID)为8个字节,组成方式是优先级(2字节) + MAC地址(6字节,主板的MAC地址)。
2.选举端口角色
首先选举根端口,在任何一个非根交换机上,有且只有一个根端口,距离根交换机最近的接口就是根端口。状态是(forwarding)
然后选举指定端口,在任何一个冲突域中,有且只有一个指定端口,就是距离跟交换机最近的接口。状态是forwarding
最后剩下的就是非指定端口。
3.确定端口状态
端口的状态有:转发-forwarding、阻塞-blocking、侦听-listening、学习-learning