前言
肝文不易,点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。 作者:神的孩子都在歌唱
在网络世界中,交换机是网络的“交通枢纽”,但如果连接不当,很容易出现**“网络环路”**,导致广播风暴、数据包无限循环,最终让整个网络瘫痪。
这时候,生成树协议(STP,Spanning Tree Protocol)就像一个“交通警察”,负责检测和阻止环路,确保数据沿着最优路径流转,从而让网络安全、高效、稳定!
STP(Spanning Tree Protocol,生成树协议)由 IEEE 802.1D 标准 定义,它的主要作用是: ✅ 检测网络环路,避免数据包“无限循环”导致网络崩溃。 ✅ 自动选择最优路径,提升数据传输效率。 ✅ 支持冗余链路,当某条链路故障时,可以自动启用备用路径。
交换机之间使用 网桥协议数据单元 (Bridge Protocol Data Unit, BPDU)来交换STP信息, BPDU 包含了实现 STP 必要的根网桥 ID,根路径成本, 发送网桥 ID, 端口ID 等信息。
STP 通过不同的接口状态 来管理数据流动,它的端口状态可以分为以下几种:
接口状态 | 功能描述 | 数据转发能力 | BPDU 处理 | 持续时间 |
---|---|---|---|---|
Disabled(禁用) | 端口被管理员手动关闭 | ❌ 不转发 | ❌ 不处理 | 永久 |
Blocking(阻塞) | 防止环路,端口不参与转发 | ❌ 不转发 | ✅ 监听 BPDU | 20 秒(默认) |
Listening(监听) | 计算 STP 拓扑,准备选举角色 | ❌ 不转发 | ✅ 监听 BPDU | 15 秒(默认) |
Learning(学习) | 学习 MAC 地址,但仍不转发数据 | ❌ 不转发 | ✅ 学习 MAC | 15 秒(默认) |
Forwarding(转发) | 端口完全工作,转发数据流量 | ✅ 转发 | ✅ 继续学习 | 长期 |
👉 总结一下:
1️⃣ 根桥选举:所有交换机通过 BPDU(Bridge Protocol Data Unit)报文投票,选出最低 Bridge ID 的交换机作为根桥。 2️⃣ 计算最优路径:每台交换机寻找到根桥的最短路径,确定根端口(Root Port)。 3️⃣ 指定端口选举:在每条链路上,选出最优路径的交换机端口作为指定端口(Designated Port)。 4️⃣ 阻塞非必要端口:为了防止环路,其余端口进入 Blocking 状态,不参与转发。
假设我们有 3 台交换机 SW1、SW2、SW3 连接成一个环形结构:
SW3 和 SW2 两端口到根桥的成本一致,选择BID较小的SW2交换机端口为指定端口
这样,网络依然可以正常运行,同时防止了数据环路! 🎯
STP 是网络中最基础的生成树协议,但它的收敛速度较慢,因此后续出现了更先进的版本:
协议 | 标准 | 特点 | 收敛速度 |
---|---|---|---|
STP | IEEE 802.1D | 基本生成树协议 | ⏳ 慢(30~50 秒) |
RSTP | IEEE 802.1w | 快速生成树,收敛加快 | ⚡ 快(1~2 秒) |
MSTP | IEEE 802.1s | 多生成树协议,可支持多个 VLAN | 🚀 适用于大规模网络 |
PVST+ | Cisco 私有 | 每个 VLAN 生成独立生成树 | 🔥 Cisco 交换机优化 |
大家学完这个基础知识,大家可以去看看我写了一篇关于STP配置的文章: