生成树协议(Spanning Tree Protocol,STP)是局域网(LAN)中用于解决环路问题的关键协议。它通过逻辑上断开冗余链路,形成一个无环的 “树状” 拓扑,同时在链路故障时自动恢复连接。随着网络需求的发展,STP 经历了三次重要演进,形成了三个主要版本:STP(基础版)、RSTP(快速版)和 MSTP(多实例版)。
一、STP(IEEE 802.1D):基础生成树协议
STP 是最早的生成树协议,定义于 IEEE 802.1D 标准,主要解决以太网中冗余链路导致的 “广播风暴”“MAC 地址表抖动” 等问题。
核心原理
-
消除环路:通过选举 “根桥”(Root Bridge)、“根端口”(Root Port)、“指定端口”(Designated Port),将其他冗余端口标记为 “阻塞端口”(Blocking Port),逻辑上断开环路。
- 根桥:整个网络中优先级最高(默认 32768,值越小优先级越高)的交换机,是生成树的 “根”。
- 根端口:非根桥交换机上距离根桥最近(路径成本最低)的端口,用于接收根桥的 BPDU。
- 指定端口:每个网段(链路)上距离根桥最近的端口,用于转发 BPDU 和数据。
- 阻塞端口:冗余链路中未被选为根端口或指定端口的端口,不转发数据(仅监听 BPDU)。
-
BPDU(桥协议数据单元):交换机之间通过 BPDU 交换信息(如根桥 ID、路径成本等),用于选举和维护生成树拓扑。BPDU 由根桥周期性发送(默认每 2 秒一次)。
-
端口状态:STP 定义了 4 种端口状态,通过状态切换实现环路防护:
- 阻塞(Blocking):不转发数据,仅接收 BPDU(防止环路),持续 20 秒(Max Age,BPDU 老化时间)。
- 监听(Listening):开始参与选举,不转发数据,持续 15 秒(Forward Delay)。
- 学习(Learning):学习 MAC 地址,不转发数据,持续 15 秒(Forward Delay)。
- 转发(Forwarding):正常转发数据和 BPDU。
缺点
- 收敛速度慢:从阻塞到转发需经历 “阻塞→监听→学习→转发”,总耗时约 50 秒(20+15+15),无法满足实时业务(如 VoIP)的需求。
- 单一生成树:整个网络只有一个生成树实例,所有 VLAN 共享同一拓扑,冗余链路被完全阻塞,带宽利用率低。
二、RSTP(IEEE 802.1w):快速生成树协议
RSTP(Rapid STP)是 STP 的改进版,定义于 IEEE 802.1w 标准,核心目标是提高收敛速度,同时兼容 STP。
核心改进
-
更快的收敛速度:通过优化端口状态和角色,收敛时间缩短至秒级(通常 1-2 秒)。
- 简化端口状态:将 STP 的 “阻塞、监听” 合并为 “丢弃(Discarding)”,仅保留 “丢弃、学习、转发”3 种状态。
- 新增端口角色:
- 替代端口(Alternate Port):非根桥交换机上,作为根端口的备份(当根端口故障时,立即切换为根端口)。
- 备份端口(Backup Port):同一网段内,作为指定端口的备份(当指定端口故障时,立即切换为指定端口)。
-
主动发送 BPDU:STP 中只有根桥发送 BPDU,而 RSTP 中所有交换机(无论是否为根桥)都会主动发送 BPDU(每 2 秒一次),一旦链路故障,可快速检测并触发收敛。
-
边缘端口(Edge Port):连接终端设备(如 PC、服务器)的端口可配置为边缘端口,无需经历 “丢弃→学习→转发” 的延迟,直接进入转发状态(若检测到环路,会自动转为非边缘端口)。
适用场景
适用于对收敛速度要求高,但 VLAN 数量少、无需负载均衡的网络(如小型企业网)。
三、MSTP(IEEE 802.1s):多生成树协议
MSTP(Multiple STP)是在 RSTP 基础上扩展的协议,解决了 STP/RSTP 中 “单一生成树实例导致带宽浪费” 的问题,支持多 VLAN 映射到不同生成树实例,实现负载均衡。
核心特性
-
多实例(MST Instance):将多个 VLAN 映射到一个 “生成树实例”(MST Instance),每个实例独立计算生成树拓扑。例如,VLAN 1-10 映射到实例 1,VLAN 11-20 映射到实例 2,两个实例可分别选择不同的根桥和路径,实现流量分离。
-
MST 域(MST Region):由一组配置相同的交换机组成(需统一 “域名、修订级别、VLAN - 实例映射表”)。域内的实例独立计算,域之间则像一个 “虚拟交换机” 参与外部生成树(与 STP/RSTP 设备兼容)。
-
IST(Internal Spanning Tree):每个 MST 域中默认存在 “实例 0”(IST),是域内所有实例的公共拓扑,负责连接域内所有交换机,并与外部网络通信。
优势
- 负载均衡:不同 VLAN 的流量可通过不同链路传输(利用冗余链路),提高带宽利用率。
- 兼容前向协议:可与 STP、RSTP 设备互通,适应复杂网络环境。
- 收敛速度快:继承 RSTP 的快速收敛特性,同时支持多实例独立收敛。
适用场景
适用于 VLAN 数量多、需要按 VLAN 分离流量并实现负载均衡的复杂网络(如大型企业网、数据中心)。
三者对比总结
| 特性 | STP(802.1D) | RSTP(802.1w) | MSTP(802.1s) |
|---|---|---|---|
| 收敛时间 | 约 50 秒 | 秒级(1-2 秒) | 秒级(继承 RSTP) |
| 生成树实例 | 1 个(全局) | 1 个(全局) | 多个(VLAN 映射) |
| 端口状态 | 4 种(阻塞 / 监听 / 学习 / 转发) | 3 种(丢弃 / 学习 / 转发) | 3 种(同 RSTP) |
| 端口角色 | 根 / 指定 / 阻塞 | 根 / 指定 / 替代 / 备份 | 同 RSTP(多实例独立) |
| 适用场景 | 简单低速网络 | 中小网络(无负载均衡需求) | 大型网络(多 VLAN + 负载均衡) |
总结
STP 是基础,解决了环路问题但收敛慢;RSTP 优化了收敛速度,适用于对实时性要求高的简单网络;MSTP 在 RSTP 基础上支持多实例,实现了 VLAN 级别的负载均衡,是当前复杂网络的主流选择。