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

生成树协议:监控 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 页面中的任何元素&#xff0c;那么您总是从访问 document 对象开始&#xff01; 查找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是一款轻量级、开源的文件编辑工具&#xff0c;可以编辑、浏览文本文件、二进制文件、.cpp、.java、*.cs等文件。Notepad每隔1个月&#xff0c;就有一个新版本&#xff0c;其官网是&#xff1a; https://github.com/notepad-plus-plus/notepad-plus-plus。这里介绍其插件…...

iOS Autolayout 约束设置【顺序】的重要性!

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

Echarts渲染不报错但是没有内容

&#x1f525;博客主页&#xff1a; 破浪前进 &#x1f516;系列专栏&#xff1a; Vue、React、PHP ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 问题&#xff1a;在开发项目的时候使用了Echarts但是好端端的忽然就不渲染了 感觉很无语啊&#xff0c;毕竟好好的就不渲染了&am…...

数据结构 | 算法的时间复杂度和空间复杂度【详解】

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

高级篇之ENC编码器多机位帧同步配置详解

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

matlab simulink 四旋翼跟拍无人机仿真

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

jenkins、ant、selenium、testng搭建自动化测试框架

如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入&#xff0c;然后写一些测试脚本&#xff0c;这就是你所说的自动化测试&#xff0c;其实这个还不能算是真正的自动化测试&#xff0c;你见过每次需要运行的时候还需要打开eclipse然后去选择运行文件吗&#xff…...

【阅读和学习代码】VoxelNet

文章目录 将点特征 转换为 voxel 特征稀疏张量 到 稠密张量&#xff0c;反向索引参考博客 将点特征 转换为 voxel 特征 https://github.com/skyhehe123/VoxelNet-pytorch/blob/master/data/kitti.py 【Python】np.unique() 介绍与使用 self.T &#xff1a; # maxiumum numbe…...

【23种设计模式】接口隔离原则

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…...

【Python机器学习】零基础掌握PartialDependenceDisplay检验、检查

如何更好地理解模型对特定特征的依赖性?如何使用历史数据来预测明天股票市场的走势? 想象一下,作为一名数据分析师,面对海量的数据,如何准确地预测明天股票市场的走势?这是一个复杂且具有挑战性的问题。但别担心,有一种神奇的工具可以帮助解析模型对各种因素(特征)的…...

Jmeter的接口自动化测试

在去年实施了一年的三端&#xff08;PC、无线M站、无线APP【Android、IOS】&#xff09;后&#xff0c;今年7月份开始&#xff0c;我们开始进行接口自动化的实施&#xff0c;目前已完成了整个框架的搭建以及接口的持续测试集成。今天做个简单的分享。 在开始自动化投入前&#…...

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…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说&#xff0c;传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度&#xff0c;通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...