众力资讯网

生成树协议全家桶:STP、RSTP、MSTP 到 PVST+

在企业网络中,有一个“看不见的英雄”,它默默地防止网络因为二层环路而陷入瘫痪。这个英雄,就是我们今天要聊的——生成树协议

在企业网络中,有一个“看不见的英雄”,它默默地防止网络因为二层环路而陷入瘫痪。

这个英雄,就是我们今天要聊的——生成树协议(Spanning Tree Protocol,STP)。

可能很多人第一次接触 STP 的时候,只觉得名字挺“文艺”:生成树,好像是计算机科学里的某种算法。确实没错,它的原理就来自图论中的“最小生成树算法”。

但在网络世界中,STP 可是实打实的救火队员——它能防止环路,让交换机网络稳如老狗。

那问题来了:生成树协议也有不同“版本”?这些版本之间到底有什么区别?为什么现在企业更倾向用 MSTP 而不是传统的 STP?

今天,我们就来一篇搞懂所有生成树协议的“全家谱”,从老祖宗 STP 到新一代 MSTP,一次性捋清它们的历史演进、技术原理和实际应用。

我们先从“为什么”讲起。

在一个典型的二层网络中,交换机之间往往存在冗余链路。

冗余链路的作用很简单:防止单链路故障导致全网瘫痪。

举个例子:

假设有三台交换机——SW1、SW2、SW3——互相都连接在一起形成一个“环”。

从稳定性角度看,这很安全;但从二层广播的角度,这可是灾难。

因为以太网没有 TTL(生存时间),广播帧在环路中会无限循环。

这时候你会看到 CPU 飙高、广播风暴、设备掉线——整个网络直接陷入“风暴模式”。

生成树协议的作用就是——

在存在冗余链路的网络中,自动选出一棵“无环的树”,让网络既有备份链路,又能防止环路。

说白了,它就是在多个链路中“临时禁用一部分”,让拓扑呈树状。

一旦主链路出问题,被禁用的那条会自动激活,网络又能自愈恢复。

这就是“生成树”的核心思想。

STP

STP(Spanning Tree Protocol)是生成树协议的鼻祖,由 IEEE 在 1985 年 定义为 802.1D 标准。

它的发明者是网络界传奇人物——Radia Perlman(被称为“互联网之母”)。

STP 的基本原理主要有三步:

1. 选举根桥(Root Bridge)

每台交换机都有一个“Bridge ID”,由优先级(默认 32768)+ MAC 地址组成。

整个网络中 Bridge ID 最小的那台,就是“根桥”。

2. 计算最短路径

各交换机计算到根桥的路径代价(Cost),路径代价与端口速率有关。

例如:

• 10 Mbps:100• 100 Mbps:19• 1 Gbps:4• 10 Gbps:2

每台交换机选出“到根桥最短路径”的那条端口作为“根端口(Root Port)”。

3. 阻塞多余链路

除了通往根桥的最优路径,其它端口会被“阻塞”(Blocking 状态),以防止环路。

当网络拓扑发生变化时,STP 会重新计算树,但这个过程非常慢——收敛时间长达 30~50 秒。 这在现代网络中几乎是不可接受的。

RSTP

随着网络规模和业务实时性要求提高,传统 STP 的 50 秒收敛实在太慢了。

于是 IEEE 在 2001 年推出了 RSTP(Rapid Spanning Tree Protocol)。

RSTP 是 STP 的升级版,标准号为 802.1w。

它的最大改进点在于——显著加快了网络收敛速度,从几十秒缩短到几秒内。

RSTP 的主要改进:1. 端口角色扩展

除了 STP 的三种角色(根端口、指定端口、阻塞端口),RSTP 增加了:

• 备用端口(Alternate Port):备用路径,非根端口备用链路。• 备份端口(Backup Port):用于同一交换机内部的冗余接口。2. 状态减少

STP 有五种端口状态:Blocking、Listening、Learning、Forwarding、Disabled。

RSTP 直接简化为三种:Discarding、Learning、Forwarding。

3. 握手机制(Proposal/Agreement)

RSTP 采用点对点快速协商机制,避免等待老 STP 那种慢吞吞的定时器超时。

简单来说:

RSTP 能在链路断开的 1~2 秒内完成收敛,这对实时业务(如语音、视频)非常关键。

MSTP

随着 VLAN 技术的发展,一个网络里往往有几十、上百个 VLAN。

如果每个 VLAN 都运行一棵独立的生成树(像 Cisco 的 PVST+ 那样),那交换机 CPU 就要被“累死”。

于是诞生了更智能的——MSTP(Multiple Spanning Tree Protocol),标准号 802.1s。

MSTP 的核心思路是:

将多个 VLAN 映射到少数几个生成树实例(MST Instance, MSTI)中,从而兼顾灵活性和性能。

比如:

• VLAN 10、20、30 → 运行在 MSTI 1• VLAN 40、50 → 运行在 MSTI 2• 其它 VLAN → 运行在 CST(Common Spanning Tree)

这样就可以在不同 VLAN 间实现流量负载均衡:

某些 VLAN 用一条链路转发,另一些 VLAN 用另一条链路。

MSTP 的三个重要概念:1. CST(Common Spanning Tree)

整个网络的公共生成树,用于不同 MST 区域之间通信。

2. MSTI(Multiple Spanning Tree Instance)

每个实例对应一棵生成树,可映射多个 VLAN。

3. MST 区域(Region)

拥有相同配置名称、版本号、VLAN 映射表的交换机组成一个区域。

MSTP 既兼容 STP,又能多实例优化负载,成为目前企业网络中最主流的版本。

几乎所有主流交换机(Cisco、华为、H3C、Juniper)都支持。

PVST+ 与 Rapid-PVST+

Cisco 作为业界老大哥,早年不甘心只用 IEEE 标准版 STP,于是搞出了自己的“强化版本”:

Cisco 方案的好处:• 每个 VLAN 独立运行生成树,可实现更精细的负载分担;• 与 RSTP 结合后,收敛速度同样达到秒级;• 缺点是:每个 VLAN 都运行一棵树,CPU 资源开销较大。

所以在大规模 VLAN 环境下,更推荐使用 MSTP,而不是 PVST+。

主要版本对比