一文读懂 STP:交换机接口状态详解及工作原理

article/2025/8/2 13:54:59

一文读懂 STP:交换机接口状态详解及工作原理

    • 一. 引言:STP 是什么,为何如此重要?
    • 二. STP 的核心作用:避免网络环路
      • 2.1 什么是 STP?
      • 2.2 STP 的核心概念
    • 三. STP 交换机接口状态详解
    • 四. STP 的工作原理:一步步构建安全网络
      • 4.1 STP 运行流程
      • 4.2. STP 实战案例:简单示例
    • 6. STP 变种协议:更快更强的进化版

前言

肝文不易,点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。

作者:神的孩子都在歌唱

一. 引言:STP 是什么,为何如此重要?

在网络世界中,交换机是网络的“交通枢纽”,但如果连接不当,很容易出现**“网络环路”**,导致广播风暴、数据包无限循环,最终让整个网络瘫痪。

这时候,生成树协议(STP,Spanning Tree Protocol)就像一个“交通警察”,负责检测和阻止环路,确保数据沿着最优路径流转,从而让网络安全、高效、稳定

image-20250222150237900

二. STP 的核心作用:避免网络环路

2.1 什么是 STP?

STP(Spanning Tree Protocol,生成树协议)由 IEEE 802.1D 标准 定义,它的主要作用是:
检测网络环路,避免数据包“无限循环”导致网络崩溃。
自动选择最优路径,提升数据传输效率。
支持冗余链路,当某条链路故障时,可以自动启用备用路径。

2.2 STP 的核心概念

交换机之间使用 网桥协议数据单元 (Bridge Protocol Data Unit, BPDU)来交换STP信息, BPDU 包含了实现 STP 必要的根网桥 ID,根路径成本, 发送网桥 ID, 端口ID 等信息。

  • 根桥(Root Bridge):整个 STP 网络的核心设备,所有路径都相对它计算。

  • 根端口(Root Port):每台交换机通向根桥的最优端口。

  • 指定端口(Designated Port):在一条链路上被选为主干端口的接口,负责转发流量。

  • 阻塞端口(Blocked Port):为了防止环路,该端口会被关闭,不转发流量。

三. STP 交换机接口状态详解

STP 通过不同的接口状态 来管理数据流动,它的端口状态可以分为以下几种:

接口状态功能描述数据转发能力BPDU 处理持续时间
Disabled(禁用)端口被管理员手动关闭❌ 不转发❌ 不处理永久
Blocking(阻塞)防止环路,端口不参与转发❌ 不转发✅ 监听 BPDU20 秒(默认)
Listening(监听)计算 STP 拓扑,准备选举角色❌ 不转发✅ 监听 BPDU15 秒(默认)
Learning(学习)学习 MAC 地址,但仍不转发数据❌ 不转发✅ 学习 MAC15 秒(默认)
Forwarding(转发)端口完全工作,转发数据流量✅ 转发✅ 继续学习长期

👉 总结一下:

  1. Blocking 状态防止环路,不会转发数据。
  2. Listening 和 Learning 是过渡阶段,确保网络拓扑稳定。
  3. Forwarding 是最终目标,允许数据正常传输!
  4. 阻塞状态到侦听状态需要20秒,侦听状态到学习状态需要15秒,学习状态到转发状态需要15秒。

四. STP 的工作原理:一步步构建安全网络

4.1 STP 运行流程

1️⃣ 根桥选举:所有交换机通过 BPDU(Bridge Protocol Data Unit)报文投票,选出最低 Bridge ID 的交换机作为根桥
2️⃣ 计算最优路径:每台交换机寻找到根桥的最短路径,确定根端口(Root Port)
3️⃣ 指定端口选举:在每条链路上,选出最优路径的交换机端口作为指定端口(Designated Port)
4️⃣ 阻塞非必要端口:为了防止环路,其余端口进入 Blocking 状态,不参与转发。

4.2. STP 实战案例:简单示例

假设我们有 3 台交换机 SW1、SW2、SW3 连接成一个环形结构:

  1. 步骤 1:根桥选举

    STP 通过比较 Bridge ID 选出 SW1 作为根桥(假设 SW1 的优先级最低)。其中BID由2字节的 网桥优先级字段 和6字节的 MAC地址字段 组成。

image-20250307003907285

  1. 步骤 2:确定 Root Port

    SW2 和 SW3 选择到 SW1 的最短路径作为 Root Port。 每台交换机在选根端口时,会按照以下顺序进行比较:
    1️⃣ 最小路径开销(Path Cost,链路开销)

    • STP 会计算从交换机到根桥的最小“开销”,这个开销取决于链路带宽(越快的链路,开销越小)。
    • 带宽越大,开销越小,优先级越高!
    • 例如:
      • 10 Mbps = 100
      • 100 Mbps = 19
      • 1 Gbps = 4
      • 10 Gbps = 2

    2️⃣ 如果开销相同,比较发送 BPDU 的桥 ID(Bridge ID)

    • BPDU(生成树协议数据单元)里包含 Bridge ID(由优先级 + MAC 地址组成)。
    • 较低 Bridge ID 的交换机胜出

    3️⃣ 如果 Bridge ID 也相同,比较发送 BPDU 的端口 ID(Port ID)

    • 端口 ID 低的端口胜出,Port ID = 端口优先级 + 端口号。

    image-20250307004735724

  2. 步骤 3:选择 Designated Port

    根桥 所有的端口都为 指定端口 。在 SW2 和 SW3 之间的链路,STP 选出一个端口作为 指定端口, 选择 指定端口依据如下:
    1️⃣ 到根路径成本最低
    2️⃣ 端口所在的网桥的ID值最小
    3️⃣ 端口ID值较小

    image-20250307010008111

    SW3 和 SW2 两端口到根桥的成本一致,选择BID较小的SW2交换机端口为指定端口

  3. 步骤 4:阻塞端口防环路

    由于 SW2 和 SW3 之间仍然有一条冗余路径,STP 会阻塞其中一个端口,避免环路发生。 也就是会阻塞SW3的端口

    image-20250307010114532

这样,网络依然可以正常运行,同时防止了数据环路! 🎯

6. STP 变种协议:更快更强的进化版

STP 是网络中最基础的生成树协议,但它的收敛速度较慢,因此后续出现了更先进的版本:

协议标准特点收敛速度
STPIEEE 802.1D基本生成树协议⏳ 慢(30~50 秒)
RSTPIEEE 802.1w快速生成树,收敛加快⚡ 快(1~2 秒)
MSTPIEEE 802.1s多生成树协议,可支持多个 VLAN🚀 适用于大规模网络
PVST+Cisco 私有每个 VLAN 生成独立生成树🔥 Cisco 交换机优化

大家学完这个基础知识,大家可以去看看我写的一篇 生成树协议(STP)配置详解:避免网络环路的最佳实践 文章。

作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接


http://www.hkcw.cn/article/vwIUDmIgfe.shtml

相关文章

清华大学发Nature!光学工程+神经网络创新结合

2025深度学习发论文&模型涨点之——光学工程神经网络 清华大学的一项开创性研究成果在《Nature》上发表,为光学神经网络的发展注入了强劲动力。该研究团队巧妙地提出了一种全前向模式(Fully Forward Mode,FFM)的训练方法&…

PHP学习笔记(十一)

类常量 可以把在类中始终保持不变的值定义为常量,类常量的默认可见性是public。 接口中也可以定义常量。 可以用一个变量来动态调用类,但该变量的值不能为关键字 需要注意的是类常量只为每个类分配一次,而不是为每个类的实例分配。 特殊的…

NodeMediaEdge快速上手

NodeMediaEdge快速上手 简介 NodeMediaEdge是一款部署在监控摄像机网络前端中,拉取Onvif或者rtsp/rtmp/http视频流并使用rtmp/kmp推送到公网流媒体服务器的工具。 通过云平台协议注册到NodeMediaServer后,可以同NodeMediaServer结合使用。使用图形化的…

强化学习的前世今生(五)— SAC算法

书接前四篇 强化学习的前世今生(一) 强化学习的前世今生(二) 强化学习的前世今生(三)— PPO算法 强化学习的前世今生(四)— DDPG算法 本文为大家介绍SAC算法 7 SAC 7.1 最大熵强化…

优质电子实验记录本如何确保数据不泄密?

实验数据是企业和科研机构的核心资产,承载着创新成果与竞争优势,选择合适的实验记录载体至关重要。本文从传统纸质记录的安全性优劣势出发,对比分析普通电子实验记录本存在的安全问题,详细阐述优质电子实验记录本如何构建数据防护…

RFID 助力钢铁钢帘线生产效率质量双提升

RFID 助力钢铁钢帘线生产效率质量双提升 应用背景 钢铁钢帘线广泛应用于建筑、公路、桥梁、隧道、海洋工程等领域。,其质量和生产效率直接影响性能与安全性。在钢铁钢帘线的生产过程中,面临着诸多挑战。传统生产模式下,各生产环节信息传递不…

4.5V~100V, 3.8A 峰值电流限, 非同步, 降压转换器,LA1823完美替换MP9487方案

一:综述 LA1823 是一款易用的非同步,降压转换器。 该模块集成了 500mΩ 低导通阻抗的高侧 MOSFET。LA1823 使用 COT 控制技术。此种控制方式有利于快速动态响应,同时简化了反馈环路的设计。LA1823 可以提供最大 2A 的持续负载电流。LA1823有150kHz/240kH…

多杆合一驱动城市空间治理智慧化

引言:城市“杆林困境”与智慧化破局 走在现代城市的街道上,路灯、监控、交通信号灯、5G基站等杆体林立,不仅侵占公共空间,更暴露了城市治理的碎片化问题。如何让这些“沉默的钢铁”升级为城市的“智慧神经元”?答案在…

ElasticSearch迁移至openGauss

Elasticsearch 作为一种高效的全文搜索引擎,广泛应用于实时搜索、日志分析等场景。而 openGauss,作为一款企业级关系型数据库,强调事务处理与数据一致性。那么,当这两者的应用场景和技术架构发生交集时,如何实现它们之…

搭建 Select 三级联动架构-东方仙盟插件开发 JavaScript ——仙盟创梦IDE

三级级联开卡必要性 在 “东方仙盟” 相关插件开发中,使用原生 HTML 和 JavaScript 实现三级联动选择(如村庄 - 建筑 - 单元的选择)有以下好处和意义,学校管理: 对游戏体验的提升 增强交互性:玩家能够通…

SpringBoot+vue+SSE+Nginx实现消息实时推送

一、背景 项目中消息推送,简单的有短轮询、长轮询,还有SSE(Server-Sent Events)、以及最强大复杂的WebSocket。 至于技术选型,SSE和WebSocket区别,网上有很多,我也不整理了,大佬的链…

软件测试的分类

为什么要软件测试分类呢? 软件测试是软件生命周期中的一个重要的环节,基本伴随着软件整个生命周期,对软件测试分类后,我们可以根据软件生命不同阶段,进行对应的测试,这样就有助于我们条理分明,…

<PLC><socket><西门子>基于西门子S7-1200PLC,实现手机与PLC通讯(通过websocket转接)

前言 本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。 PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。 除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如…

实现一个免费可用的文生图的MCP Server

概述 文生图模型为使用 Cloudflare Worker AI 部署 Flux 模型,是参照视频https://www.bilibili.com/video/BV1UbkcYcE24/?spm_id_from333.337.search-card.all.click&vd_source9ca2da6b1848bc903db417c336f9cb6b的复现Cursor MCP Server实现是参照文章https:/…

Windows安装Miniconda

Windows安装miniconda 下载安装常用命令配置powershellVSCode配置虚拟环境 下载 进入官网 https://www.anaconda.com/download/success 下载windows版本的miniconda Miniconda3-latest-Windows-x86_64.exe 安装 一直点击下一步,可以选择安装路径 配置环境变量…

华为OD机试真题——二叉树中序遍历(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 2025华为OD真题目录+全流程解析/备考攻略/经验分享 华为OD机试真题《二叉树中序遍历》: 目录 …

现代密码学 | 高级加密标准(AES)

接下来我们将讨论目前大多数计算机和硬件基础设施所使用的最重要的加密算法,例如高级加密标准(AES)、里弗斯特-沙米尔-阿德曼算法(RSA)、椭圆曲线加密(ECC)、基于格的加密、(环&…

cocos creator资源管理器,资源动态加载和释放

cocos 2.4.11版本 cocos 动态加载的资源需要自己增加引用和减少引用计数 cc.Asset.addRef 和 cc.Asset.decRef 注意: 1.使用当前代码管理资源,要区分项目中的静态资源和动态资源,静态资源就是预制体或者场景中的资源,代码中动态…

认识scratch,scratch是什么,如何使用

scratch是图形编程,将编程简化为积木的堆叠和嵌套,无需手写代码,只需清晰的逻辑即可完成自己的代码设计。通过它可以制作简单的小游戏等。 如图所示,这个就是scratch打开的界面,整个界面分为左中右三个部分&#xff0c…

HarmonyOS实战:腾讯IM之聊天详情页面搭建(二)

前言 鸿蒙版本腾讯 IM 的聊天功能十分复杂,需要开发者手动实现整个聊天对话的业务代码,这对开发者来说是个不小的挑战。本篇文章先从最基础的聊天对话列表开始教你一步一步实现完整的聊天功能,建议点赞收藏! 实现效果 先看本文…