STP生成树原理

环路引起的问题

二层交换网络

随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互连。如果交换机之间仅使用一条链路互连,则可能会出现单点故障,导致业务中断。为了解决此类问题,交换机在互连时一般都会使用冗余链路来实现备份。
冗余链路虽然增强了网络的可靠性,但是也会产生环路,而环路会带来一系列的问题,继而导致通信质量下降和通信业务中断等问题

广播风暴

  1. 环路会引起广播风暴
  2. 网络中的主机会瘦到重复数据帧

根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧。
环路会引起MAC地址表震荡

STP工作原理

STP通过阻塞端口来消除环路,并能后实现链路备份的目的。

STP的主要作用:

  1. 消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
  2. 链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连接

STP操作

  • 选举一个根桥

  • 每个非根交换机选举一个根端口

  • 每个网段选举一个指定端口

  • 阻塞非根 非指定端口
    STP通过构造一棵树来消除交换网络的环路。
    每个STP网络中,都会存在一个根桥,其他交换机为非根桥,根桥或根交换机位于整个逻辑树的根部,是stp网络的逻辑中心,非根桥是根桥的下游设备。当现有根桥产生故障时,非根桥之间会交互信息并重新选举根桥,交互的这种信息被称为BPDU。BPDU中包含交换机在参加生成树计算时的各种参数信息
    - STP中定义了三种端口角色:指定端口,根端口,预备端口

  • 指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口,一般情况下,根桥的每个端口总是指定端口。

  • 根端口是非法交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。

  • 如果一个端口既不是根端口也不是指定端口,则此端口为预备端口。预备端口将被阻塞。

根桥选举

  • 每一台交换机启动STP后,都认为自己是根桥
    STP中根桥的选举依据的是桥ID,STP中的每个交换机都会有一个桥ID(Bridge ID) 。桥ID由16位的桥优先级(Bridge Priority)和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768。优先级最高的设备(桥ID最小)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。
    交换机启动后就自动开始进行生成树收敛计算。默认情况下,所有交换机启动时都认为自己是根桥,自己的所有端口都为指定端口,这样BPDU报文就可以通过所有端口转发。对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID。如果收到的BPDU报文中的桥ID优先级低,接收交换机会继续通告自己的配置BPDU报文给邻居交换机。如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID字段,宣告新的根桥。

指定端口选举

  • 非根交换机在选举指定端口时分别依据更具路径开销,BID,PID

  • 未被选举位根端口或指定端口的端口为预备端口,将会被阻塞
    端口状态转换
    运行STP协议的设备上端口状态有5种
    在这里插入图片描述

  • Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态

  • Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路

  • Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量

  • Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态
    Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量
    BPDU
    BPDU包含桥ID、路径开销、端口ID、计时器等参数。

为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU(Bridge Protocol Data Unit)中。
BPDU有两种类型:配置BPDU和TCN BPDU。
配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。
配置BPDU中包含了足够的信息来保证设备完成生成树计算,其中包含的重要信息如下:
根桥ID:由根桥的优先级和MAC地址组成,每个STP网络中有且仅有一个根。
根路径开销:到根桥的最短路径开销。
指定桥ID:由指定桥的优先级和MAC地址组成。
指定端口ID:由指定端口的优先级和端口号组成。
Message Age:配置BPDU在网络中传播的生存期。
Max Age:配置BPDU在设备中能够保存的最大生存期。
Hello Time:配置BPDU发送的周期。
Forward Delay:端口状态迁移的延时。
计时器

  • 配置BPDU报文每经过一个交换机Message Age都加1
  • 如果Message Age大于Max Age,非根桥会丢弃该配置BPDU。

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

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

相关文章

系统发育树的美化~Figtree(图文教程)

前言 figtree是一款用于进化生物学的进化树作图软件,常用于进化树的美化,可以设置颜色、名称、样式等参数。官网如下: FigTreehttp://tree.bio.ed.ac.uk/software/figtree/ 一、Figtree的安装 进入figtree的官网后,点击下图箭…

MEGA软件——系统发育树构建方法(图文讲解) 转载

转载:http://www.plob.org/2012/12/02/4927.html 一、序列文本的准备 构树之前先将目标基因序列都分别保存为txt文本文件中(或者把所有序列保存在同一个txt文本中,可以用“>基因名称”作为第一行,然后重起一行 编辑基因序列)&a…

粒子群算法介绍、matlab实现及相关改进

粒子群算法介绍、matlab实现及相关改进 参数 N:粒子数量 ⟹ \Longrightarrow ⟹一般取[20,40],对于较难或者特定类别的问题,可以取[100,200]; D:决策变量维度 iter_Max:最大迭代次数 X:决策变量 V&…

文件树生成器

文件树生成 (批处理指令) 就是一个WIN的批处理指令 前言 最近在编写文档时,发现数据量有点多,并且文件的位置繁杂,于是就想着弄一个文件树的软件, 发现 Win 的的 CMD 命令中有tree这个指令, 于是就弄了下BAT 文件 好处 整体因人而异 我说说,我觉得的优点 可以快速的帮我…

STP生成树详解_01

一 、生成树协议产生的背景 1、局域网中出现的主要问题: 1) 网络互联 交换机和网线 2) 广播过多 分隔广播域 vlan 3) 局域网中终端设备较多,200台以上的计算机互通,需要多台交换机? 多台交换机之间如何连线? 交换机…

粒子群算法实现之python

python实现粒子群算法 粒子群算法(PSO),又可以叫做鸟群算法,是学者观察模仿鸟群的行为而发展的一种智能搜索算法,和遗传算法一样,也是一种群智能算法。 总的来说,粒子群算法也是一种进化算法&a…

【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;

李华明Himi 原创,转载务必在明显处注明: 转载自 【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2d/472.html 一直以来Himi特别想在游戏中使用粒子系统,但是之前做J2me与Android中发现使用粒子做的效果都会造成游戏运行内存的一…

第十二讲:生成树概念及STP技术应用

在传统的交换网络中,设备通过单条链路进行连接,当某一个点或是某一个链路发生故障时可能导致网络无法访问,解决这种问题的办法是在网络中提供冗余链路,但是交换机网络中的冗余链路会产生广播风暴、MAC地址失效等现象,最…

粒子群算法及其改进

1 粒子群算法介绍 求解非线性最优化问题时,有一种比较常用的算法为智能体算法,这里我们介绍的粒子群算法就隶属于智能体算法。 粒子群算法是模拟鸟寻找食物:一群鸟在随机的搜索食物。在这个区域里只有一块食物,所有的鸟都不知道食…

系统发育树的生成与美化(MEGA7和iTOL)--1.MEGA7生成系统发育树

#小白学习生成系统发育树 1.序列准备-本文中的数据LOC号是在文献中的附件中所找到的,然后在Phytozome v13中逐个查找氨基酸序列,需要输入所查找的物种名称,以及基因号,如下图所示: 下滑看到蛋白质序列 然后将蛋白质序…

PCL 基于最小生成树(MST)获取单木骨架(粗)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 提取的过程大体上分为两个部分:生成单木MST(最小生成树)以及基于该MST获取大致的骨架结构(线条)。 具体的计算过程如下所述: 1、首先应用Delaunay三角剖分来构造初始图。Delaunay三角剖分是MST计算的基础,因…

详解综合学习粒子群算法——CLPSO(附该文作者给出的matlab代码)

最近团队出了两篇基于CLPSO[1]的改进算法,这里根据自己的理解分析一下这个综合学习的算法,并将文章作者给出的源代码分享出来供大家学习:https://download.csdn.net/download/Bernard_S/12612817 (免费下载,本身就是从作者的主页搬…

进化算法之粒子群算法和Matlab实现(多维)

(粒子群算法进阶讲解传送门:(https://blog.csdn.net/DBLLLLLLLL/article/details/103036067) ) 前面一篇文章介绍了遗传算法,这里再介绍一种进化算法,称为粒子群算法。同遗传算法类似,粒子群算法也是仿照了…

粒子群算法及通过惯性权重和学习因子对其进行改进—MATLAB实现

本文的代码将放在最后,需要的小伙伴们可以免费获取哦!!! 不要忘记点赞加关注奥😋😋 文章目录 粒子群算法一、理论基础1、介绍2、核心公式3、图形直观解释 二、问题描述三、解题思路四、MATLAB实现1、参数设…

可查看其他用户聊天记录,ChatGPT 爆出大BUG

ChatGPT一经推出,迅速出圈,用户赞誉如云,“绝对改变世界”、“第四次工业革命的“火药桶”、“苍天啊,它咋啥都会,我失业了”,一时间 ChatGPT 成为完美的代言词。 然而近日,ChatGPT 遇到了大麻烦…

ChatGPT 和 Midjourney 将改变我们的生活,日常工作流程将完全改变并与这些新型工具集成

上周末我花了很多时间先玩 Open AI ChatGPT,然后玩 Midjourney。起初我笑了,然后我开始完全被各种可能性所困扰,然后我终于意识到了它的潜力,并开始将其用于更有成效的工作。 注意:我本可以用它来制作一个引人入胜的点击诱饵标题,但我没有. 这是我问 Open AI 聊天的第一…

博弈的意思_博弈是什么意思(博弈最通俗的解释)

国学智慧《鬼谷子》:在封闭和开合的状态中,达到自己想要的目的。 鬼谷子是一本智谋之书,里面主要讲述的就是在和别人博弈的时候,以什么样的心态和姿态,来达到自己想要的目的。也是为人处世,处世权谋之中,不可不读的一本书。鬼谷子这本书中的捭阖术,其中的道理也要灵活多…

你是伪民主式父母吗?

经常给青少年做咨询,发现一个有趣的现象,就是关于他们家庭的养育方式,孩子和父母的表述是不一样的,父母说他们是民主式的家长,给孩子尽量多的自由,不去过多管制;而孩子说自己的父母是特别专制和…

聪明人是怎么说话办事的?曾国藩这幅书法对联,两句话讲解透彻!

晚清名臣曾国藩的经典对联: “大处着眼,小处着手;群居守口,独居守心”! 曾国藩是第一等的聪明人,能在复杂的官场中生存,还能赢得会做人的美誉,关键在于他做到了两件事,一…