生成树协议:监控 STP 端口和交换机
什么是生成树协议
生成树协议 (STP) 用于网络交换机,以防止循环和广播风暴。在局域网 (LAN) 中,两条或多条冗余路径可以连接到同一网段。当交换机或网桥从所有可用端口传输帧时,这些帧开始在网络内环路,从而导致拥塞。STP 可防止这种情况发生。
生成树协议开发于 1985 年,此后已发展为适用于各种网络环境的不同类型。STP 是当今大多数网络交换机的常见功能。
STP 的流行版本包括:
- 快速生成树协议(RSTP)
- 多生成树协议(MSTP)
- Per-VLAN 生成树(PVST)
- 快速PVST
为什么需要网络冗余
为网段提供网络冗余,以防止不可用,在典型的 LAN 中,台式机、打印机和工作站等网络设备被分组到一个网段中,网桥或交换机将每个网段连接到另一个交换机或路由器以提供互联网访问,交换机还相互连接以提供 LAN 内部通信,设备使用 LAN 中的以太网帧进行通信。
当其中一个交换机关闭或被阻止时,整个网段将失去连接,为防止这种情况,提供了冗余网桥或交换机作为备份,当主数据库关闭时,辅助数据库仍保持网络连接。
广播风暴:冗余的成本
交换机通常从所有可用端口传输帧,如果没有冗余,数据帧从源交换机经过一系列交换机,直到到达连接到正确网段的目标交换机,然后,目标交换机将它们定向到正确的设备,但是,当存在冗余时,有多种方法可以到达目的地,帧由两台交换机重新传输,并开始在网络内循环。
这可能会失控,在您意识到之前,整个网络都被帧淹没了,达到网络容量,设备无法处理所有传入流量,这种令人讨厌的情况被称为广播风暴,广播风暴是网络冗余中的固有漏洞。
解决方案:生成树协议
生成树协议解决了广播风暴的问题,只有当开关始终传输出所有帧时,才会出现切换环路,STP 提供了在正确的时间阻止某些端口的方法,在源和目标之间只留下一条路径。
要了解STP的工作原理,我们必须首先查看与之相关的几个术语。
- 根网桥或根交换机:根网桥(也称为根交换机)由 STP 交换机自行标识,您也可以通过分配网络中最低的网桥 ID 号来手动分配根网桥,尽管这可能会影响性能,根网桥大致位于网络和所有其他交换机的中心,分配根网桥后,网络中的所有交换机都会找到到根网桥的最佳路径,所有其他端口将被阻止,网桥通过使用 BDPU 帧进行通信来实现此目的。
- BPDU:网桥协议数据单元(BPDU)是支持 STP 的交换机用来映射网络中不同路径的帧,BPDU 还允许根交换机控制其他交换机端口的状态,BPDU 在启动期间在交换机之间交换,并在启动后定期交换,以跟踪拓扑更改。
- 直通式处理表:交换机计算网络中每条路径的成本,并将其记录在STP表中,首次启用 STP 时,交换机会发送 BPDU 以相互定位并将其数据记录在表中,后续拓扑更改将在表中更新,STP 表使用成本来计算到特定目标的最佳路径。
- 路径成本:路径成本是使用网络链路速度和可用带宽计算的。当交换机首次映射其环境时,它们会计算将它们链接到根交换机的不同路径的成本,每个交换机都会将其成本添加到之前的交换机成本中,直到到达根交换机,然后,根交换机选择成本最低的路径。
- 直通式处理算法:成本计算由 STP 算法完成。通常,成本的计算公式为:网络速度除以带宽。此公式的不同版本用于反映不同的速度和网络配置。
- 根端口:为网络中的所有交换机指定根端口,根端口是直接连接到根交换机的端口,或者是连接到根交换机成本最低路径中的另一台交换机的端口。
- 指定端口:相反,指定端口或转发端口是指向远离根端口的端口,根交换机中的所有端口都是指定的端口,因为它没有根端口,交换机在启动期间分配根端口和指定端口。
STP 如何防止切换回路
最初,网络中的交换机将有一个根端口和许多指定的端口将它们连接到其他交换机,根交换机使用 STP 算法计算从源交换机到目标交换机的最低成本路径,此路径的指定端口转发帧,而所有其他指定帧处于阻塞状态,不传输数据,这意味着在任何时候,都只使用一条路径来发送和接收帧,从而有效地防止了切换环路。
如上图所示,如果网段 A 中的设备必须与网段 c 中的设备通信,则数据帧必须从交换机 A(根交换机)到达交换机 C。有三种可能的路径。路径 1 涉及开关 A 和 B。路径 2 涉及开关 A、E 和 D。路径 3 涉及开关 A 和 D。使用 STP,我们计算出路径 3 是成本最低的路径。除路径 3 中涉及的端口外,所有指定端口都被阻止,帧通过路径 3 传输。
但是,如果路径 3 拥塞或阻塞,则选择下一个成本最低的路径路径 1 来执行传输。实现了冗余。通常,交换机端口具有多个介于其阻止状态和转发状态之间的状态。
有哪些不同的端口状态
当交换机启动时,其端口在被分配为指定端口或转发端口之前会经历多个端口状态。
- 禁用端口状态:在此状态下,端口根本不参与转发操作。管理员可以手动禁用 STP 端口。
- 阻塞端口状态:端口不参与帧转发,因为它位于可能导致交换环路的冗余路径中。端口继续侦听 BPDU,并可以根据 BPDU 转换到其他状态。
- 侦听状态:在侦听状态下,端口继续接收和处理 BPDU,如果需要,可以切换到阻止状态或学习状态。它不会更新表,也不会转发数据框。
- 学习状态:在此状态下,端口接收 BPDU 并对其进行处理,以使用其他交换机的地址更新 STP 表。端口继续不参与帧转发。
- 转发状态:端口从网段和其他端口接收帧,并将其转发到所需的交换机。在转发状态下,端口完全参与 LAN 交换操作。端口还继续接收 BPDU 并更新 STP 表。
端口通过所有状态以达到转发状态大约需要 15-20 秒,STP 平衡阻塞端口和转发端口,以防止交换环路,同时仍启用冗余。
监控STP端口和交换机的工具
OpManager 是一种服务器、网络和虚拟化监控工具,可帮助网络管理员跟踪设备性能指标和异常。OpManager特别强调监控交换机,包括STP监控,您可以查看设备中所有 STP 端口的状态,以及优先级、路径开销、端口状态、指定根、根路径开销等信息。
这些全面的信息使您能够发现交换机中的错误、配置错误和中断,并主动修复它们。还有一个交换机端口映射器工具,可以显示映射中每个端口的状态,可以监控其他交换机属性,包括CPU和内存等交换机组件的性能,交换机可用性以及流量数据。
OpManager还为其他网络设备(如服务器,路由器,台式机,工作站,打印机等)提供全面监控,凭借其先进的故障识别和解决功能,您可以毫不费力地减少网络问题的 MTTR。
相关文章:

生成树协议:监控 STP 端口和交换机
什么是生成树协议 生成树协议 (STP) 用于网络交换机,以防止循环和广播风暴。在局域网 (LAN) 中,两条或多条冗余路径可以连接到同一网段。当交换机或网桥从所有可用端口传输帧时,这些帧开始在网…...

【黑产攻防道03】利用JS参数更新检测黑产的协议破解
任何业务在运营一段时间之后都会面临黑产大量的破解。验证码和各种爬虫的关系就像猫和老鼠一样, 会永远持续地进行博弈。极验根据十一年和黑产博弈对抗的经验,将黑产的破解方式分为三类: 1.通过识别出验证码图片答案实现批量破解验证,即图片…...

什么是web3.0?
Web 3.0,也常被称为下一代互联网,代表着互联网的下一个重大演变。尽管关于Web 3.0的确切定义尚无共识,但它通常被认为是一种更分散、更开放且更智能的互联网。 以下是Web 3.0的一些主要特征和概念: 1. 去中心化 Web 3.0旨在减少…...

二、W5100S/W5500+RP2040树莓派Pico<DHCP>
文章目录 1 前言2 简介2 .1 什么是DHCP?2.2 为什么要使用DHCP?2.3 DHCP工作原理2.4 DHCP应用场景 3 WIZnet以太网芯片4 DHCP网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言 …...

【开源】基于SpringBoot的天然气工程业务管理系统的设计和实现
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、使用角色3.1 施工人员3.2 管理员 四、数据库设计4.1 用户表4.2 分公司表4.3 角色表4.4 数据字典表4.5 工程项目表4.6 使用材料表4.7 使用材料领用表4.8 整体E-R图 五、系统展示六、核心代码6.1 查询工程项目6.2 工程物资…...

讯飞星火大模型V3.0 WebApi使用
讯飞星火大模型V3.0 WebApi使用 文档说明:星火认知大模型Web文档 | 讯飞开放平台文档中心 (xfyun.cn) 实现效果 初始化 首先构建一个基础脚手架项目 npm init vuelatest用到如下依赖 "dependencies": {"crypto-js": "^4.2.0",&q…...

拥有DOM力量的你究竟可以干什么
如果你希望访问 HTML 页面中的任何元素,那么您总是从访问 document 对象开始! 查找HTML元素 document.getElementById(id) 通过元素 id 来查找元素 <!DOCTYPE html> <html> <head><meta charset…...

GnuTLS recv error (-110): The TLS connection was non-properly terminated
ubuntu git下载提示 GnuTLS recv error (-110): The TLS connection was non-properly terminated解决方法 git config --global --unset http.https://github.com.proxy...

Notepad++安装插件和配置快捷键
Notepad是一款轻量级、开源的文件编辑工具,可以编辑、浏览文本文件、二进制文件、.cpp、.java、*.cs等文件。Notepad每隔1个月,就有一个新版本,其官网是: https://github.com/notepad-plus-plus/notepad-plus-plus。这里介绍其插件…...

iOS Autolayout 约束设置【顺序】的重要性!
0x00 顺序不同,结果不同 看图说话 1 代码是这样滴~ 设置好约束,让 4 个按钮,宽度均分~ 结果如上图 [_pastButton.topAnchor constraintEqualToAnchor:_textView.bottomAnchor constant:6].active YES;[_pastButton.leftAnchor constraintEq…...

Echarts渲染不报错但是没有内容
🔥博客主页: 破浪前进 🔖系列专栏: Vue、React、PHP ❤️感谢大家点赞👍收藏⭐评论✍️ 问题:在开发项目的时候使用了Echarts但是好端端的忽然就不渲染了 感觉很无语啊,毕竟好好的就不渲染了&am…...

数据结构 | 算法的时间复杂度和空间复杂度【详解】
数据结构 | 算法的时间复杂度和空间复杂度【详解】 1. 什么是数据结构? 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 2. 什么是算法? 算法(Algorithm):就是定义良好的计算过…...

高级篇之ENC编码器多机位帧同步配置详解
高级篇之ENC编码器多机位帧同步配置详解 一 帧同步方案多样性1. 配合vMIX导播的帧同步方案3. 配合硬件导播的帧同步方案3. 配合芯象导播的帧同步 二 帧同步方案1实现步骤1. 准备设备2. 搭建环境3 配置设备3.1 配置固定机位3.2 配置帧同步转发端3.3 配置vMIX 三 效果对比1 不开帧…...

matlab simulink 四旋翼跟拍无人机仿真
1、内容简介 略 7-可以交流、咨询、答疑 2、内容说明 四旋翼跟拍无人机仿真 四旋翼、无人机 需求分析 背景介绍 无人飞行机器人,是无人驾驶且具有一定智能的空中飞行器。这是一种融合了计算机技术、人工智能技术、传感器技术、自动控制技术、新型材料技术、导航…...

jenkins、ant、selenium、testng搭建自动化测试框架
如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入,然后写一些测试脚本,这就是你所说的自动化测试,其实这个还不能算是真正的自动化测试,你见过每次需要运行的时候还需要打开eclipse然后去选择运行文件吗ÿ…...

【阅读和学习代码】VoxelNet
文章目录 将点特征 转换为 voxel 特征稀疏张量 到 稠密张量,反向索引参考博客 将点特征 转换为 voxel 特征 https://github.com/skyhehe123/VoxelNet-pytorch/blob/master/data/kitti.py 【Python】np.unique() 介绍与使用 self.T : # maxiumum numbe…...
【23种设计模式】接口隔离原则
个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…...
【Python机器学习】零基础掌握PartialDependenceDisplay检验、检查
如何更好地理解模型对特定特征的依赖性?如何使用历史数据来预测明天股票市场的走势? 想象一下,作为一名数据分析师,面对海量的数据,如何准确地预测明天股票市场的走势?这是一个复杂且具有挑战性的问题。但别担心,有一种神奇的工具可以帮助解析模型对各种因素(特征)的…...

Jmeter的接口自动化测试
在去年实施了一年的三端(PC、无线M站、无线APP【Android、IOS】)后,今年7月份开始,我们开始进行接口自动化的实施,目前已完成了整个框架的搭建以及接口的持续测试集成。今天做个简单的分享。 在开始自动化投入前&#…...
windows c++获取开机启动项
#include <iostream> #include <Windows.h> #include <string> #define RUN_LOCATION "Software\\Microsoft\\Windows\\CurrentVersion\\Run" int main() { HKEY hKey; LONG result; // 打开注册表键 result = RegOpenKeyExA(HKEY_CU…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...