当前位置: 首页 > news >正文

STP技术

一、环路引起的问题

1.回顾mac表

  • 当 PCA(MAC:00-0D-56-BF-88-10 )给 SWA 发数据时,数据从 SWA 的 E0/2 端口 “进入” 。
  • 交换机 SWA 会 “学习”:“PCA 的 MAC 地址 00-0D-56-BF-88-10 ,是从 E0/2 端口收到的” → 于是在 SWA 的 MAC 表中,“目的 MAC=PCA 的 MAC” 对应的 “目的端口 = E0/2” (意思是:以后要发数据给 PCA,从 E0/2 端口转发)。

二、STP的概念及应用场景


三、STP的作用

1.STP基本原理

STP即生成树协议,它通过阻断冗余链路来消除桥接网络中可能存在的路径环路。在一个网络中,当存在多条路径连接不同的网络设备(如交换机,图中的 SWA、SWB、SWC )时,可能会形成物理环路,这会导致广播风暴、多帧复制等问题,影响网络的正常运行。STP 通过在交换机之间交换 BPDU(Bridge Protocol Data Unit,桥协议数据单元),来计算出一个无环的网络拓扑结构将某些端口设置为阻塞状态,从而避免网络环路的产生。

2. 冗余链路的作用与激活

  • 冗余链路:在网络中,冗余链路是为了提高网络的可靠性而设置的备份链路。比如图中被阻塞的链路,在正常情况下虽然不传输数据,但当网络中的其他链路出现故障时,它就可以发挥作用。
  • 故障恢复:当 当前正在使用的路径发生故障时,STP 会检测到链路状态的变化,然后激活之前被阻塞的冗余备份链路,恢复网络的连通性。例如,如果 SWA 和 SWC 之间的链路出现故障,原本被阻塞的 SWB 的 E0/20 端口可能会被重新激活,使得网络流量可以通过其他路径传输,保证网络的正常通信 。

3.STP报文


四、STP的工作原理

1. 基础逻辑:BPDU 交互

核心是交换机间通过交互 BPDU(桥协议数据单元 ),完成拓扑收敛,消除环路

BPDU 里包含网桥优先级、MAC 地址、路径开销等参数,交换机,依靠这些参数,确定网络角色(根网桥、端口角色 ),构建无环拓扑。

 2.BPDU参数

2.1网桥ID

由交换机的优先级和MAC地址组成网桥优先级取值范围必须在0-65535之中,同时也必须是4.96的倍数。

2.2端口ID

由发送端口的优先级与端口号组成。端口优先级取值范围0-255(默认128),必须是16的倍数。

2.3路径开销 

3. 角色选举

基于 BPDU 交互,STP 会依次完成以下关键动作,最终让网络无环且保留冗余:

3.1 选根网桥

  • 规则网桥优先级(默认 32768 )+ MAC 地址,数值越小越优先。
  • 作用:选 1 台 “主交换机” 当根,所有交换机以它为中心计算拓扑,避免多中心导致环路。

3.2 非根交换机选根端口

  • 规则:非根交换机上,选 “到根网桥路径开销最小” 的端口(路径开销由链路带宽等决定,带宽越小开销越大 )。
  • 作用:每台非根交换机只留 1 条最优 “上联根网桥” 的通道,避免同一设备多条路径回根引发环路。

3.3 每个网段选指定端口

  • 规则每个物理网段(如两台交换机之间的链路 )里,选 “到根网桥路径开销最小” 的端口(网段内所有设备对比,最终 1 个端口当选 )。

当每个交换机的根端口选举出来之后,切换视角,以链路为视角。链路两边的BPDU进行评比,选举角色。

1.如果两个端口中,一个是根端口,另一个就是指定端口

2.如果这个端口是根网桥上的端口,那么就一定是指定端口

3.如果另一端连接的是主机,那么这个端口一定时指定端口

4.如果上面都不是,那么就进行评比,这个时候一般比较>根路径开销->发送方网桥ID->发送端口号->接收端口号

  • 作用:保证每个网段只有 1 个 “转发端口” 向根网桥传递流量,防止网段内环路。

3.4 逐个网段分析(以图为例)

(1)LANA 网段(连 SWA 和 SWB )
  • SWA 的端口:到根网桥(自己)的路径开销是 0(根网桥自己的开销为 0 ),所以 SWA 在 LANA 网段的端口总开销 = 0 + LANA 链路开销(4 )= 4 。
  • SWB 的端口:到根网桥的总路径开销是 4(SWB → LANA → SWA ,开销 4 ),所以 SWB 在 LANA 网段的端口总开销 = 4 + LANA 链路开销(4 )= 8 。

比较两个端口的总开销:4(SWA 端口) < 8(SWB 端口) → SWA 在 LANA 网段的端口被选为指定端口

(2)LANB 网段(连 SWA 和 SWC )
  • SWA 的端口:到根网桥开销 0 ,总开销 = 0 + LANB 链路开销(4 )= 4 。
  • SWC 的端口:到根网桥的总路径开销是 4(SWC → LANB → SWA ,开销 4 ),总开销 = 4 + LANB 链路开销(4 )= 8 。

比较后:4(SWA 端口) < 8(SWC 端口) → SWA 在 LANB 网段的端口被选为指定端口

(3)LANC 网段(连 SWB 和 SWC )
  • SWB 的端口:到根网桥的总路径开销是 4(SWB → LANA → SWA ),所以 SWB 在 LANC 网段的端口总开销 = 4 + LANC 链路开销(4 )= 8 。
  • SWC 的端口:到根网桥的总路径开销是 4(SWC → LANB → SWA ),所以 SWC 在 LANC 网段的端口总开销 = 4 + LANC 链路开销(4 )= 8 。

此时,路径开销相同,需要比 桥 ID:

  • SWB 的桥 ID:32768 + 00e0-fc41-4259
  • SWC 的桥 ID:32768 + 00e0-fc41-43b9

比较 MAC 地址(十六进制):00e0-fc41-4259 < 00e0-fc41-43b9 → SWB 的桥 ID 更小 → SWB 在 LANC 网段的端口被选为指定端口,SWC 对应的端口成为 Alternate Port(备用端口,阻塞状态 )。

(4)LAND 网段(连 SWB )

这个网段只有 SWB 一个交换机的端口(因为 LAND 是末端网段,没有其他交换机 )。根据规则,单个交换机的端口自动成为指定端口 → SWB 在 LAND 网段的端口是指定端口。

(5)LANE 网段(连 SWC )

同理,LANE 是末端网段,只有 SWC 的端口 → SWC 在 LANE 网段的端口自动成为指定端口

(4)阻塞冗余端口(非根非指定端口)
  • 规则:既不是根端口、也不是指定端口的端口,进入阻塞(Blocking )状态,不转发用户数据(仅收 BPDU 维持拓扑 )。
  • 作用:直接 “切断” 冗余链路的转发功能,从物理拓扑上消除环路;但链路仍保留,故障时可自动激活。

 综合分析:

4.STP协议报文

5.STP端口状态描述

端口状态中文描述转发数据帧学习 MAC 地址表参与生成树计算处理 BPDU
Disabled端口没有启用
Blocking阻塞状态接收并处理
Listening侦听状态接收并发送
Learning学习状态接收并发送
Forwarding转发状态接收并发送

6.STP端口状态改变 

1.时间计时器

Hello Timer(Hello 时间)

作用:根网桥周期性发送 “配置 BPDU” 的时间间隔,默认 2 秒

 触发:非根网桥靠收根桥的 BPDU 维持状态,若收不到,会触发拓扑重新计算。

Forward Delay(转发时延)

作用:端口状态迁移的 “过渡时间”,默认 15 秒,控制 “监听→学习→转发” 的等待时长。

  •  端口从监听状态到学习状态,需要等待一个 Forward Delay 时长,即 15 秒;
  •  从学习状态到转发状态 ,又需要等待一个 Forward Delay 时长,同样是 15 秒。
  •  所以,端口从监听状态最终进入转发状态,经历了两次 Forward Delay 的等待, 总计 30 秒。
Message Age(消息老化时间)

作用:记录 “配置 BPDU 从根网桥生成后,到当前交换机的时间”,每经过一个交换机,Message Age 会累加(默认每跳 + 1 )。

网桥在转发 BPDU 时,会根据 Message Age 判断 BPDU 的时效性。如果 Message Age 超过 Max Message Age,网桥会认为该 BPDU 已经过期,不再使用这个 BPDU 中的信息,可能会导致端口状态的重新计算和迁移。例如,当网络中的链路出现故障,BPDU 的传递路径发生改变,Message Age 可能会增加,若超过限制,端口可能会重新进入阻塞状态,重新参与生成树计算 。

Max Message Age(最大老化时间)

作用规定了配置 BPDU 存活的最大时间,默认 20 秒(10 个 Hello 周期) ,用于保证 BPDU 信息的有效性。

与端口状态迁移联系:非根网桥若超过 20 秒没收到新 BPDU,会认为根桥可能故障,触发重新选举根桥和拓扑计算。

7.网络拓扑变化--STP网络收敛

在生成树协议中,直接收敛和间接收敛是网络拓扑发生变化后,生成树重新计算并达到稳定状态的两种不同方式。

7.1直接收敛

SW3 的阻塞端口能直接收到根网桥(SW1)的 BPDU,直接切换为根端口,经 “监听→学习→转发”(2 个 Forward Delay,默认 15 秒 / 个,共 30 秒 )完成收敛。 

7.2 间接收敛

SW2 收不到根网桥 BPDU,“自封” 根网桥,收敛时间50秒。

将检测拓扑变化的最长时间(Max Message Age)和端口状态迁移的总时间相加,就得到了间接收敛的大致时长:20 秒(Max Message Age) + 30 秒(两次 Forward Delay) = 50 秒。

7.3 直接收敛vs间接收敛

若故障导致交换机失去到达根桥的唯一路径需要重新选举根端口,则一定是间接收敛

图中,SW2的根端口发生故障,指定端口对面又是堵塞端口,所以没有路能通往根桥了,就是间接收敛。

http://www.dtcms.com/a/306900.html

相关文章:

  • 应用驱动 协同创新:中国人工智能开启高质量发展新篇章
  • 深度学习与图像处理案例 │ 图像分类(智能垃圾分拣器)
  • 360环视技术推荐的硬件平台:支持多摄像头与三屏异显的理想选择
  • LeetCode 刷题【22. 括号生成】
  • 敏捷与SCRUM三大支柱:数字化时代的韧性引擎
  • 【解决方案】frida-ps -Ua报错unable to perform ptrace pokedata: I/O error
  • [Python] -进阶理解10- 用 Python 实现简易爬虫框架
  • 外键列索引优化:加速JOIN查询的关键
  • 嵌入式摄像头深度解析
  • Ubuntu虚拟机介绍、命令、安装软件指令(一)
  • CNN实战项目
  • ica1靶场攻略
  • 二叉树算法之【二叉树的层序遍历】
  • python | numpy小记(八):理解 NumPy 中的 `np.meshgrid`
  • C++ Qt网络编程实战:跨平台TCP调试工具开发
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的便利店信息管理系统(附源码+数据库+毕业论文+远程部署)
  • 虚幻基础:模型碰撞体
  • [Qt]QString 与Sqlite3 字符串互动[汉字不乱码]
  • C#垃圾回收机制:原理与实践
  • PyTorch 生态四件套:从图片、视频到文本、语音的“开箱即用”实践笔记
  • 电子电气架构 --- 汽车电子电气EEA架构开发流程
  • 通义万相文生图模型wan2.2-t2i-flash和wan2.2-t2i-plus全维度深度对比
  • Java试题-选择题(1)
  • 【C++】适配器模式手搓STL的stack和queue
  • LeetCode Hot 100:15. 三数之和
  • Nuxt3 全栈作品【通用信息管理系统】角色管理(含配置权限 -- 菜单权限 vs 操作权限)
  • 差分数组前缀和优化,降低时间复杂度
  • vue+elementui+vueCropper裁剪上传图片背景颜色为黑色解决方案
  • ‌我的第一个开源项目:跃动的心
  • 物流分拣漏检率↓78%!陌讯动态光流算法在包裹移动识别的技术突破