5.1、生成树协议stp

一、广播风暴

广播风暴(Broadcast Storm)是网络中的一种现象,通常发生在局域网(LAN)中。当网络中的交换机或路由器配置错误,或环路没有被有效控制时,广播帧会在网络中无限制地传播,导致网络带宽被大量占用,最终可能导致网络瘫痪。

广播风暴的主要原因包括:

  1. 环路(Looping):如果网络中的设备没有正确配置生成树协议(STP),环路会产生大量的广播帧在网络中循环。
  2. 网络设备故障:交换机或路由器的硬件或软件故障可能导致广播风暴。
  3. 错误配置:不当的VLAN配置、冗余链路配置或网络设备的错误设置可能引发广播风暴。

预防措施包括:

  • 启用生成树协议(STP):避免环路的产生。
  • 设置广播风暴控制:一些交换机提供广播风暴控制功能,限制广播流量的上限。
  • 合理配置VLAN:减少广播域的大小,从而降低广播流量对网络的影响。

二、stp

计算机网络中的树型结构的最大特点就是没有环路,stp主要的工作原理就是把有环路的网络“切断”,生成一个没有环路的树型网络结构。其中,起冗余链路作用的并不会真正断开,此外还要确定多条路径要留那一条。

根据参数的设置,不同的交换机会被选为根桥,需要注意的是:任意时刻只能有一个根桥。从根开始逐级生成一颗“树”。

根交换机会定时发送配置数据包,非根桥收到配置数据包并转发,如果某台交换机能从两个以上的端口收到配置数据包,表明到这个交换机的路径不少于1条,这样就构成循环,需要切断。如果一台交换机长时间收不到配置数据包时,交换机就认为该端口配置超时,网络的结构有改变了,这个时候就会重新计算生一课新树。

生成树协议(Spanning Tree Protocol, STP)是一种网络协议,用于以太网网络中防止环路(loops)的产生。环路可能会导致广播风暴、网络拥塞以及数据包的重复传输。STP的主要功能是识别并禁用多余的路径,确保网络中只存在一条无环路的路径,保证数据帧能够正常传输。

工作原理

STP的工作原理:

  1. 根桥(Root Bridge)的选举

    • STP通过在网络设备之间进行BPDU(Bridge Protocol Data Unit)报文的交换来选举出一个根桥。根桥是网络中的参考点,具有最低桥优先级(Bridge Priority)的交换机会被选为根桥。
  2. 计算最短路径

    • 其他交换机会根据到达根桥的最短路径来计算各自的根路径代价(Root Path Cost)。交换机会将路径代价最低的接口设为根端口(Root Port),并保持这条路径激活。
  3. 指定端口(Designated Port)和阻塞端口(Blocked Port)

    • 在每个网络段上,代价最低的端口被指定为指定端口,用于转发流量。其他多余的端口则被设置为阻塞状态,以防止环路的形成。
  4. 阻塞和转发状态

    • 被选为根端口和指定端口的接口处于转发状态,允许流量通过。而被阻塞的端口则不会转发流量,只用于监听BPDU报文,以确保一旦网络拓扑发生变化(例如设备故障或新设备加入),STP能够动态调整,并重新配置网络路径。

STP的变种

  • 快速生成树协议(Rapid Spanning Tree Protocol, RSTP):RSTP是STP的增强版本,主要改进在于收敛速度更快,当网络拓扑发生变化时可以更快地调整路径。
  • 多实例生成树协议(Multiple Spanning Tree Protocol, MSTP):MSTP允许在同一个网络中运行多个生成树实例,以支持VLAN和更复杂的网络结构。

选取根桥的原则,根桥必须拥有最低的优先权ID和MAC地址。cisco交换机默认id值为32768,优先权id值范围为1~65 536。优先权数值相同,将由mac地址大小来决定,那个低就选那个。

stp下交换机端口的不同状态属性

在生成树协议(STP)中,交换机端口可以处于以下几种不同的状态,每种状态都有特定的属性和功能。这些状态用于确保网络中没有环路,同时维护网络的连通性。以下是STP下交换机端口的不同状态及其属性:

1. 阻塞状态(Blocking)

  • 功能:端口不转发数据帧,也不学习MAC地址,只接收并处理BPDU(Bridge Protocol Data Unit)报文。
  • 属性
    • 端口不会参与数据帧的转发。
    • 主要用于防止环路的形成。
    • 端口在这个状态下会等待生成树协议确定是否需要转换为其他状态。

2. 监听状态(Listening)

  • 功能:端口不转发数据帧,也不学习MAC地址,但它会监听网络中的BPDU报文,等待STP确认网络拓扑。
  • 属性
    • 端口从阻塞状态转换到监听状态,以准备可能的状态变更。
    • 端口开始参与生成树计算,但仍然不转发数据帧。

3. 学习状态(Learning)

  • 功能:端口不转发数据帧,但开始学习源MAC地址,将其添加到MAC地址表中。
  • 属性
    • 端口继续处理和发送BPDU报文。
    • 开始学习数据帧的源MAC地址,构建MAC地址表。
    • 准备进入转发状态。

4. 转发状态(Forwarding)

  • 功能:端口正常转发数据帧,处理BPDU,并学习MAC地址。
  • 属性
    • 端口处于正常工作状态,参与数据帧的转发。
    • 继续学习MAC地址并更新MAC地址表。
    • 发送和接收BPDU报文,维持生成树的网络拓扑。

5. 禁用状态(Disabled)

  • 功能:端口不参与生成树协议的计算,也不转发数据帧。
  • 属性
    • 端口处于关闭状态,完全不参与网络通信。
    • 这个状态通常是由于管理员手动禁用端口,或端口本身出现故障。

状态转换的顺序

  • 当一个端口启用并连接到网络时,它通常从阻塞状态开始,然后依次经过监听状态学习状态,最终到达转发状态。如果生成树协议检测到环路,端口会回到阻塞状态,以防止网络中的环路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50891.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT基础知识4

思维导图 项目文件里面要加texttospeech模块 widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime>//时间类 #include <QTextToSpeech>//语音播报类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass…

C:每日一练:单身狗(2.0版本)

前言&#xff1a; 今天在刷题的时候突然看到一道题&#xff0c;疑似一位故题。仔细一看&#xff0c;欸&#xff01;这不是就是单身狗的升级版吗&#xff1f;我想那必须再安排一篇&#xff0c;不过由于本篇文章与上一篇单身狗文章所涉及的知识点基本相同&#xff0c;所以还请大…

K8S 容器调度

在Kubernetes中&#xff0c;容器调度是一个自动化的过程&#xff0c;负责将容器&#xff08;在Kubernetes中称为Pod&#xff09;分配到集群中的合适节点上运行。这一过程由Kubernetes的调度器&#xff08;kube-scheduler&#xff09;控制&#xff0c;它通过一系列算法和策略来确…

流媒体服务器二:2.RTMP协议学习

RTMP协议详解 一.总体介绍 RTMP协议是应⽤层协议&#xff0c;是要靠底层可靠的传输层协议&#xff08;通常是TCP&#xff09;来保证信息传输的可靠性的。在 基于传输层协议的链接建⽴完成后&#xff0c;RTMP协议也要客户端和服务器通过“握⼿”来建⽴基于传输层链接之 上的RT…

(五)Flink Sink 数据输出

经过上面的 Transformation 操作之后,最终形成用户所需要的结果数据集。通常情况下,用户希望将结果数据输出到外部存储介质或者传输到下游的消息中间件中,在 Flink 中,将 DataStream 数据输出到外部系统的过程被定义为 Sink 操作。 目录 (一)基本数据输出 (二)第三方…

滴滴开源新项目Unify:聚焦Flutter与原生通信难题,助力跨端应用落地

引言 在移动开发领域&#xff0c;移动跨端技术因其提效收益&#xff0c;逐渐成为业界趋势之一。Flutter 作为近年来热门的跨端技术&#xff0c;以高性能、自渲染、泛跨端著称&#xff0c;得到广泛应用。在滴滴国际化业务中&#xff0c;我们大量应用 Flutter。目前已在滴滴国际化…

JavaScript typeof

在 JavaScript 中有 5 种不同的可以包含值的数据类型&#xff1a; stringnumberbooleanobjectfunction 有 6 种类型的对象&#xff1a; ObjectDateArrayStringNumberBoolean 以及 2 种不能包含值的数据类型&#xff1a; nullundefined typeof 运算符 您可以使用 typeof …

C语言-使用数组法,指针法实现将一个5X5的矩阵中最大的元素放在中心,四个角分别放四个最小的元素(顺序为从左到右,从上到下,从小到大存放),写一函数实现之。

1.题目要求&#xff1a; 将一个5X5的矩阵中最大的元素放在中心&#xff0c;四个角分别放四个最小的元素&#xff08;顺序为从左到右&#xff0c;从上到下&#xff0c;从小到大存放&#xff09;&#xff0c;写一函数实现之。 2.数组法实现 #define _CRT_SECURE_NO_WARNINGS 1…

python从入门到精通:数据容器

数据容器介绍 一种可以容纳多份数据的数据类型&#xff0c;容纳的每一份数据称之为一个元素&#xff0c;可以是任意类型的数据&#xff0c;如字符串、数字、布尔等。 数据容器根据特点的不同&#xff0c;如&#xff1a; 是否支持重复元素 是否可以修改 是否有序&#xff0…

数据库根据日期统计SQL编写记录

统计每天产生多少数据 SELECT to_char("日期字段",YYYY-MM-dd) time ,count(*) FROM "表名" GROUP BY time;统计每月产生多少数据 SELECT to_char("日期字段",YYYY-MM) time ,count(*) FROM "表名" GROUP BY time;统计每年产生多少数…

Windows下添加开机启动项

三种方式 使用任务管理器&#xff1a;右键点击任务栏&#xff0c;选择“任务管理器”。切换到“启动”选项卡。点击右下角的“打开任务管理器”。在这里&#xff0c;你可以看到已启用和禁用的启动项。右键点击你希望添加的程序&#xff0c;选择“启用” 按Win R&#xff0c;输…

【GitLab】使用 Docker 安装 GitLab 1:配置 SSH 端口

使用 Docker 安装 GitLab 要求修改ssh端口 GitLab 使用 SSH 通过 SSH 与 Git 交互。默认情况下,GitLab 使用端口22。 要在使用 GitLab Docker 映像时使用其他端口,您可以执行以下操作之一: 更改服务器的 SSH 端口(推荐)。 更改 GitLab Shell SSH 端口。 更改服务器的 SSH …

C++(week17): C++提高:(七)workflow

文章目录 一、Http协议二、Nginx1.概念2.nginx的安装和部署(1)安装nginx(2)使用nginx服务器部署静态资源 3.HTTP服务器架构(1)基于进程、基于线程&#xff1a;APache(2)事件驱动模型&#xff1a;Nginx(3)反向代理(4)负载均衡 三、workflow异步事件引擎 (异步回调模型)1.服务器底…

【SVN(Subversion)是一个版本控制系统】

Question SVN所有命令 Answer SVN&#xff08;Subversion&#xff09;是一个版本控制系统&#xff0c;用于管理和跟踪文件和目录的更改。以下是一些常用的SVN命令&#xff1a; 检出&#xff08;Checkout&#xff09; svn checkout URL从版本库中检出一个工作副本。 更新&am…

Qt找不到QSound头文件,头文件QSoundEffect

目录 Qt找不到QSound头文件 CMake qmke 可能版本不同更新&#xff0c; 找不到QSound头文件 Qt找不到QSound头文件 #include <QSound> CMake 可以看一下这篇来自网上的文章 CMake中添加Qt模块的合理方法 - wjbooks - 博客园 (cnblogs.com) qmke 打开.pro文件&am…

[linux#39][线程] 详解线程的概念

线程&#xff1a;是进程内的一个执行分支。线程的执行粒度比进程要细 什么是线程&#xff1f; • 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程 是“一个进程内部的控制序列” • 一切进程至少都有一个执行线程 • …

前端宝典之六:React源码解析之lane模型

本文主要内容&#xff1a; 介绍lane模型 一、 lane模型 lane模型就是react优先级的机制&#xff0c;可以用来 可以表示优先级的不同可能同时存在几个同优先级的更新&#xff0c;所以还得能表示批的概念方便进行优先级相关计算 1、表示优先级不同 lane模型使用31位的二进制…

BF算法,KMP算法

前言&#xff1a;今天我们来学习两种算法&#xff0c;BF算法和KMP算法。相信会让许多小伙伴们打开新世界的大门。 1 BF算法 实践是检验真理的唯一标准。举一个例子说明BF算法。现在我们要在一个主串中找子串的位置。那我们该如何解决这个问题呢&#xff1f;最简单的办法自然是…

Repeat方法:取模运算教材与Unity控制台输出数值不同的原因

学习该知识点的参考教材&#xff1a;Unity API解析/陈宏泉编著.——北京&#xff1a;人民邮电出版社&#xff0c;2014.9 编辑脚本的环境&#xff1a;Visual Studio 2022 在学习该本教材的第五章Mathf类的内容&#xff0c;通过跟随教材上的代码了解不同UnityAPI的具体用法时&a…

【机器学习】线性回归与逻辑回归的极致解析:从数学理论到实战案例

文章目录 1. 引言Python 代码示例 2. 线性回归2.1 线性回归的基本概念线性回归的定义数学表达式及模型假设 2.2 线性回归的工作原理最小二乘法&#xff08;Ordinary Least Squares, OLS&#xff09;梯度下降法在线性回归中的应用多元线性回归与一元线性回归的区别与联系 2.3 线…