首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >搞懂 STP 生成树协议,这篇就够了!

搞懂 STP 生成树协议,这篇就够了!

作者头像
ICT系统集成阿祥
发布2026-04-15 19:00:01
发布2026-04-15 19:00:01
10
举报
文章被收录于专栏:数通数通

做网络的小伙伴大多对 STP 又爱又恨,看似概念一堆、计算复杂,实则是解决二层网络环路的 “定海神针”。今天我们抛开复杂的扩展协议,从基础出发,把 STP 的核心讲透:它是什么、解决什么问题、核心概念有哪些、工作机制如何运行,帮你彻底打通 STP 的任督二脉,下次再学 RSTP、MSTP 就轻松多啦!

一、STP 是什么?解决什么核心问题?

STP(Spanning Tree Protocol,生成树协议)是基于 IEEE 802.1D 标准的二层网络协议,核心作用是在存在物理环路的二层交换网络中,计算出一棵无环的逻辑生成树,既保留物理环路的冗余备份作用,又避免环路引发的网络故障。

说到这里,必须先搞懂:二层网络为什么不能有环路?

二层交换机对未知单播、广播、组播(BUM 帧)会进行泛洪操作,一旦形成物理环路,就会引发两个致命问题,直接导致网络瘫痪:

1. 广播风暴

BUM 帧在环路中无限泛洪、反复转发,快速耗尽交换机的带宽、CPU 资源,最终整个网络的数据包无法正常传输。

2. MAC 地址漂移

交换机的 MAC 地址表会被环路中的报文不断刷新,同一个源 MAC 地址会在不同接口之间来回切换,导致交换机无法正确识别设备的物理位置,数据转发完全错乱。

小到企业办公网络,大到政务云、变电站等工业网络,二层环路都会引发 MAC 表 / ARP 表错误、协议报文丢包、CPU 利用率飙升等问题,而 STP就是解决这一问题的基础方案。

二、STP 核心概念,一次性吃透

学习 STP 的关键是掌握这些核心概念,它们是 STP 拓扑计算的 “基本元素”,看似抽象,实则环环相扣,我们用最通俗的语言拆解:

1. 桥 ID(BID):交换机的 “唯一身份证”

  • 组成:16 位桥优先级 + 48 位交换机 MAC 地址,桥优先级占高 16 位,MAC 地址占低 48 位。
  • 特性:每台运行 STP 的交换机都有唯一 BID,BID 越小,交换机在 STP 中的优先级越高
  • 备注:网桥(Bridge)就是交换机,这是 STP 协议中的传统叫法。

2. 根桥(Root Bridge):STP 网络的 “树根”

  • 定义:整个 STP 广播域中唯一的核心参考设备,是无环拓扑的起点,所有交换机都以根桥为基准计算转发路径。
  • 选举规则:BID 最小的交换机成为根桥;先比桥优先级(值越小越优),优先级相同则比 MAC 地址(值越小越优)。
  • 实用技巧:工程中一般将网关配置为根桥,减少数据转发的路径开销。

3. 开销(Cost):交换机接口的 “路耗值”

  • 定义:每一个激活 STP 的接口都有一个 Cost 值,用于衡量接口的转发成本,带宽越大,Cost 值越小(高速链路更优)。
  • 计算标准:有 IEEE 802.1d-1998、IEEE 802.1t、华为计算方法三种,全网必须保持同一标准,否则会导致拓扑计算错误。
  • 特性:用户可通过命令手动调整接口 Cost,灵活规划转发路径。

4. 根路径开销(RPC):到根桥的 “总路耗”

  • 定义:某台交换机从某个接口到达根桥的所有出方向接口 Cost 的累加值,简单说就是 “从该接口到根桥的总成本”。
  • 作用:是 STP 判断 “哪条路径到根桥更近” 的核心依据,RPC 越小,路径越优。

5. 接口 ID(PID):交换机接口的 “编号”

  • 组成:4 位接口优先级 + 12 位接口编号,华为交换机默认接口优先级为 128。
  • 作用:在路径开销、桥 ID 都相同时,用于选举指定端口,PID 越小,接口优先级越高,用户可手动修改接口优先级。

6. BPDU:STP 的 “通信语言”

  • 全称:网桥协议数据单元(Bridge Protocol Data Unit),是 STP 交换机之间的协议交互报文,STP 的所有计算都基于 BPDU 中的信息。
  • 类型:分两种,配置 BPDU(核心,用于 STP 拓扑计算,根桥默认每 2 秒发送一次)、TCN BPDU(仅在网络拓扑变更时触发,用于通知拓扑变化)。
  • 核心:配置 BPDU 包含根桥 ID、RPC、发送桥 BID、发送接口 PID 等关键信息,是交换机判断拓扑的 “依据”。

7. 根端口(RP):非根桥的 “朝根口”

  • 定义:非根桥上唯一的最优接收端口,是该交换机到根桥的最优路径接口,专门用于接收来自根桥的 BPDU 和数据。
  • 选举依据:接收最优配置 BPDU的端口(最优 BPDU 判断规则见下文)。

8. 指定端口(DP):冲突域的 “转发口”

  • 定义:每个冲突域(交换机的每个端口对应一个冲突域)中唯一的最优发送端口,负责向该冲突域发送 BPDU 和转发数据。
  • 特性:根桥上的所有激活端口都是指定端口,因为根桥是拓扑核心,所有端口都用于转发。

9. 备用端口(AP):

定义:既非 RP 也非 DP 的端口,被 STP 阻塞,仅接收 BPDU,用于冗 余备份。

10. STP 计时器:拓扑计算的 “时间标尺”

  • Hello Time:根桥发送配置 BPDU 的时间间隔,默认 2s。
  • Max Age:BPDU 老化时间,默认 20s,超时则认为链路故障。
  • Forward Delay:侦听 / 学习状态的停留时间,默认 15s。

三、STP 的工作机制:5 步构建无环拓扑

STP 的核心工作是通过拓扑计算,阻塞多余的物理端口,将物理环路的网络转化为无环的逻辑生成树,整个过程分 5 步,遵循 “一个广播域一个根桥、一台非根桥一个根端口、一个冲突域一个指定端口” 的原则,步步紧扣:

步骤 1:选举根桥,确定网络核心

交换机刚启动时,每台都认为自己是根桥,互相发送配置 BPDU(此时报文中的根桥 ID 为自身 BID,RPC 为 0)。所有交换机接收到其他设备的 BPDU 后,对比 BID,最终全网唯一 BID 最小的交换机成为根桥,根桥一旦选举成功,除非故障,否则不会变更。

步骤 2:确定非根桥,明确拓扑从属

除根桥外,网络中其他所有交换机都是非根桥,非根桥的核心任务是:找到到根桥的最优路径,选举根端口。

步骤 3:非根桥选举根端口(RP)

每台非根桥根据接收到的配置 BPDU,选举出唯一的根端口,选举依据是接收最优配置 BPDU,最优 BPDU 的判断规则为从优到劣

  1. 根桥 ID 最小;
  2. 根路径开销(RPC)最小;
  3. 发送该 BPDU 的交换机 BID 最小;
  4. 发送该 BPDU 的接口 PID 最小。
  5. 简单说:先看是不是到最优根桥,再看路径是否最近,再看发送设备是否更优,最后看发送接口是否更优,(BID/PID 均比较发送方)。

步骤 4:每个冲突域选举指定端口(DP)

每个冲突域(链路)中,选举出唯一的指定端口,负责该冲突域的 BPDU 发送和数据转发,选举依据同样是最优配置 BPDU(判断规则同根端口)。✅ 关键结论:根桥上的所有激活端口都是指定端口;非根桥上的端口,若不是根端口,需参与指定端口选举。

步骤 5:阻塞多余端口,形成无环拓扑

经过上述选举后,既不是根端口、又不是指定端口的端口,被阻塞(Blocking),这类端口称为备用端口(AP)。被阻塞的端口不转发数据、不泛洪 BUM 帧,仅接收 BPDU 以感知网络拓扑变化,既破除了物理环路,又保留了冗余备份能力 —— 当主链路故障时,阻塞端口可被激活,恢复网络连通性。

四、STP 接口状态:从阻塞到转发的 5 步迁移

STP 的接口并非直接在 “阻塞” 和 “转发” 之间切换,而是通过 5 个状态逐步迁移,核心目的是避免拓扑计算过程中产生临时环路,每个状态各司其职,转发延迟(Forward Delay)是状态切换的关键时间标尺。

1. 5 种核心接口状态

2. 接口状态迁移规则

  1. 接口初始化 / 激活→直接进入阻塞状态;
  2. 阻塞状态下被选举为 RP/DP→进入侦听状态;
  3. 侦听状态下转发延迟计时器超时,且仍为 RP/DP→进入学习状态;
  4. 学习状态下转发延迟计时器再次超时,且仍为 RP/DP→进入转发状态;
  5. 若接口不再是 RP/DP,或链路失效 / 被禁用→退回阻塞 / 禁用状态。

关键原因:侦听、学习各停留 15s,是为了等待 STP 完成全网拓扑计算,选出新的 AP 端口,避免临时环路产生;同时学习状态可提前构建 MAC 地址表,减少后续数据泛洪。

五、STP 拓扑变化:故障恢复与 MAC 表更新

网络中链路故障、根桥故障、端口状态变化等都会引发 STP 拓扑变更,此时 STP 会重新计算拓扑,激活备用端口实现冗余备份,但不同故障的恢复时间不同;同时拓扑变更会导致 MAC 地址表错误,STP 通过 TCN/TC BPDU 实现 MAC 表快速老化,恢复数据转发。

1. 三种典型拓扑故障的恢复时间

STP 故障恢复时间核心取决于Max Age(20s)2 倍 Forward Delay(30s),不同故障场景恢复时间不同,这也是传统 STP 收敛慢的核心原因:

(1)根桥故障:恢复时间约 50s

  1. 根桥故障停止发送 BPDU,非根桥等待Max Age(20s) 后判定链路故障;
  2. 非根桥互发配置 BPDU,重新选举新根桥;
  3. 新的 AP 端口经过2 倍 Forward Delay(30s) 完成状态迁移,进入转发状态;
  4. 总恢复时间:20s+30s=50s。
(2)直连链路故障(RP 端口失效,存在 AP 端口):恢复时间约 30s
  1. 交换机检测到根端口直连链路物理故障,直接将备用端口(AP)选举为新根端口(RP);
  2. 新 RP 无需等待 Max Age,直接经过2 倍 Forward Delay(30s) 完成状态迁移,进入转发状态;
  3. 总恢复时间:30s。

(3)非直连链路故障 / 无 AP 端口的 RP 失效:恢复时间约 50s

  1. 非直连链路故障后,交换机无法直接检测,需等待Max Age(20s)

让旧 BPDU 老化;

2. 交换机发送次级 BPDU 重新计算拓扑,选举新 RP/DP;

3. 新端口经过2 倍 Forward Delay(30s)进入转发状态;

4. 总恢复时间:20s+30s=50s

2. 拓扑变更的 MAC 地址表快速更新机制

拓扑变更后,交换机原有 MAC 地址表项会失效(端口与 MAC 的映射关系改变),而 MAC 表默认老化时间为 300s,若等待自然老化,数据会长期无法转发,STP 通过TCN BPDU和TC BPDU实现 MAC 表快速老化,核心流程如下:

  1. 故障设备发送 TCN BPDU:感知到拓扑变化的交换机(如 RP 故障的 SW3),持续向指定桥发送TCN BPDU(拓扑变更通知);
  2. 上游设备回复 TCA 确认:上游交换机(SW2)收到 TCN BPDU 后,向故障设备发送TCA 置 1 的配置 BPDU(拓扑变更确认),告知其停止发送 TCN;
  3. TCN BPDU 上报根桥:上游交换机将 TCN BPDU 逐级转发至根桥;
  4. 根桥发送 TC BPDU 全网通知:根桥收到 TCN 后,向全网发送TC 置 1 的配置 BPDU,通知所有交换机将 MAC 地址表项的老化时间从 300s 修改为Forward Delay(15s);
  5. MAC 表快速老化恢复转发:所有交换机在 15s 内清除错误 MAC 表项,重新学习新的 MAC 映射,恢复正常数据转发

六、关键易错点,避坑必看

  1. BID、PID 的比较对象:比较的是发送方的 BID 和 PID,不是自身的,这是拓扑计算中最容易出错的点;
  2. RPC 的计算方式:是本交换机到根桥出方向接口 Cost 的累加,不是入方向,即从本设备到根桥的路径中,经过的所有接口 Cost 相加;
  3. 配置 BPDU 的发送方:根桥主动发送配置 BPDU,非根桥仅转发根桥的 BPDU(并修改自身 RPC、BID 等信息);
  4. Cost 标准的一致性:全网必须使用同一套 STP Cost 计算标准,否则会导致 RPC 计算错误,拓扑紊乱。
  5. 端口状态切换:RP/DP 必须经过侦听、学习各 15s,无法直接进入转发,目的是避免临时环路;
  6. TCN 发送方向:TCN BPDU 始终从 RP 端口向根桥方向发送,逐级上报。

七、总结:STP 的核心逻辑

STP 的本质是 **“选举 + 阻塞”**:通过桥 ID、RPC、PID 等参数,选举出根桥、根端口、指定端口,阻塞多余的物理端口,将物理上的环路网络,转化为逻辑上的无环生成树。它解决了二层网络环路的致命问题,同时保留了物理链路的冗余性,是二层网络的基础保障协议。

今天我们吃透了 STP 的基础核心,下一期我们将继续讲解 STP 的升级版本 ——RSTP(快速生成树协议)和 MSTP(多生成树协议),看看它们如何解决 STP 收敛慢、无法划分 VLAN 的问题,敬请期待!

文末小提问

你在工程中遇到过哪些因二层环路引发的网络故障?是如何排查的?评论区一起交流~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ICT系统集成阿祥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、STP 是什么?解决什么核心问题?
    • 1. 广播风暴
    • 2. MAC 地址漂移
    • 1. 桥 ID(BID):交换机的 “唯一身份证”
    • 2. 根桥(Root Bridge):STP 网络的 “树根”
    • 3. 开销(Cost):交换机接口的 “路耗值”
    • 4. 根路径开销(RPC):到根桥的 “总路耗”
    • 5. 接口 ID(PID):交换机接口的 “编号”
    • 6. BPDU:STP 的 “通信语言”
    • 7. 根端口(RP):非根桥的 “朝根口”
    • 8. 指定端口(DP):冲突域的 “转发口”
    • 10. STP 计时器:拓扑计算的 “时间标尺”
  • 三、STP 的工作机制:5 步构建无环拓扑
    • 步骤 1:选举根桥,确定网络核心
    • 步骤 2:确定非根桥,明确拓扑从属
    • 步骤 3:非根桥选举根端口(RP)
    • 步骤 4:每个冲突域选举指定端口(DP)
    • 步骤 5:阻塞多余端口,形成无环拓扑
  • 四、STP 接口状态:从阻塞到转发的 5 步迁移
  • 1. 5 种核心接口状态
    • 2. 接口状态迁移规则
    • 1. 三种典型拓扑故障的恢复时间
      • (2)直连链路故障(RP 端口失效,存在 AP 端口):恢复时间约 30s
  • 六、关键易错点,避坑必看
  • 七、总结:STP 的核心逻辑
    • 文末小提问
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档