华为---STP(二)---STP报文和STP端口状态

目录

1. STP报文简介

1.1 Configuration BPDU

1.2 TCN BPDU

2. STP交换机端口状态

2.1 STP交换机端口状态表

2.2 STP交换机端口状态迁移过程图

2.3 STP交换机端口状态变化举例说明

3 引起的STP网络拓扑改变的示例

3.1 根桥出现故障

3.2 有阻塞端口的交换机根端口所在链路故障

3.3 没有阻塞端口的交换机根端口所在链路故障


1. STP报文简介

        STP交换机通过交换STP协议帧来建立和维护STP树,并在网络的物理拓扑发生变化时重建新的STP树。

        STP协议帧由STP交换机产生、发送、接收、处理。STP协议帧是一种组播帧,组播地址为01-80-c2-00-00-00。

        STP协议帧采用了 IEEE802.3封装格式,其载荷数据被称为BPDU。BPDU有两种类型:Configuration BPDU和 TCN(Topology Change Notification)BPDU。

1.1 Configuration BPDU

        在初始形成STP树的过程中,各STP交换机都会周期性地(缺省为2s)主动产生并发送Configuration BPDU。在STP树形成后的稳定期,只有根桥才会周期性地(缺省为2s)主动产生并发送Configuration BPDU;相应地,非根交换机会从自己的根端口周期性地接收到 Configuration BPDU,并立即被触发而产生自己的 Configuration BPDU,且从自己的指定端口发送出去。这一过程看起来就像是根桥发出的 Configuration BPDU逐跳地“经过”了其他的交换机。

        Configuration BPDU 各字段如下表所示:

字段字节数说明
PID(Protocol Identity)2协议ID ,对于STP而言,该字段的值总为0(0X0000)。
PVI(Protocol Version Identity)1协议版本ID,对于STP而言,该字段的值总为0(0X0000)。
BPDU Type1BPDU类型,若值为0x00,表示为配置BPDU;若值为0x80,则为TCN BPDU。
Flags1网络拓扑变化标志,STP只使用了该字段的最高和最低两个比特位,最低位是TC(Topology Change,拓扑变更)标志,最高位是TCA(Topology Change Acknowledgment,拓扑变更确认)标志。
RID(Root Identity)8当前根网桥的交换机编号。
RPC(Root Path Cost)4发送BPDU端口的根路径开销,即该端口到达根桥的STP开销。
BID(Bridge Identity)8发送BPDU的交换机STP编号。
PID(Port Identity)2发送BPDU的交换机接口编号。
Message Age2BPDU消息寿命,从根交换机发出BPDU之后的秒数,每经过一个交换机都会加1,所以可以认为是BPDU从根交换机发送后,经过交换机的个数。如果BPDU是根交换机发送的,则BPDU消息的寿命是0
Max Age2BPDU消息最大寿命(默认20s)。当STP交换机某接口生存期到达最大寿命时,还没接收到任何BPDU消息,STP交换机认为该接口所在链路发生故障。
Hello Time2STP交换机发送BPDU消息的周期,默认为2s
Forward Delay2转发延迟,STP交换机在侦听(Listening)和学习(Learning)状态所停留的时间,默认15s

        Hello Time:交换机发送Configuration BPDU 的时间间隔。当网络拓扑及 STP树稳定之后,全网使用根桥指定的HelloTime。如果要修改该时间参数,则必须在根桥上修改才有效。

        Configuration BPDU 中携带的参数可以分为3类:第一类是BPDU对自身的标识,包括协议标识、版本号、BPDU类型和Flags;第二类是用于进行STP计算的参数,包括发送该BPDU的交换机的BID,当前根桥的BID,发送该BPDU的端口的 PID,以及发送该BPDU的端口的 RPC;第三类是时间参数,分别是Hello Time、Forward Delay、Message Age、 Max Age。

        Forward Delay:端口状态迁移的延迟时间。STP树的生成需要一定的时间,在此过程中各交换机的端口状态的变化并不是同步的。如果新选出的根端口和指定端口立刻就开始进行用户数据帧的转发的话,可能会造成临时工作环路。因此,STP引入了Forward。
        Delay 机制:新选出的根端口和指定端口需要经过2倍的Forward Delay 延时后才能进入用户数据帧的转发状态,以保证此时的工作拓扑已无环路。

        Message Age:是指从根桥发出某个Configuration BPDU,一直到这个Configuration BPDU“传”到当前交换机时所需要的总的时间,包括传输延时等。现实环境中,Configuration BPDU 每“经过”一个桥,Message Age增加1。从根桥发出的Configuration BPDU的 Message Age 为 0。
        Message Age测试验证:


        分别在SW1的GE 00/2、SW3的GE 00/3、SW4的E 00/2、SW5的E 00/2端口抓包,查看Message Age值,如下图所示:

        从上图得知,根桥发出的Configuration BPDU的 Message Age 为 0,Configuration BPDU 每“经过”一个STP交换机,Message Age值加1。经过SW4的E 00/2和SW5的E 00/1端口的Configuration BPDU的 Message Age值是一样的(都为2),因为没有经过SW5交换机,Message Age值不会加1。

        Max Age:Configuration BPDU 的最大生命周期。Max Age 的值由根桥指定,缺省值为 20s。STP交换机在收到 Configuration BPDU后,会对其中的 Message Age 和 Max Age进行比较。如果Message Age 小于等于 Max Age,则该 Configuration BPDU会触发该交换机产生并发送新的 Configuration BPDU,否则该 Configuration BPDU 会被丢弃(忽略),并且不会触发该交换机产生并发送新的Configuration BPDU。
       默认情况下,STP交换机抓取数据如下所示:

1.2 TCN BPDU

        TCN BPDU的结构和内容非常简单,它只有3个字段:协议标识、版本号和类型,其中类型字段的值是0x80。

        如果网络中某条链路发生了故障,导致工作拓扑发生了改变,则位于故障点的交换机可以通过端口状态直接感知到这种变化,但是其他的交换机是无法直接感知到这种变化的。这时,位于故障点的交换机会以Hello Time为周期通过其根端口不断向上游交换机发送TCN BPDU,直到接收到从上游交换机发来了TCA(topology change acknowledgment)标志置1的 ConfigurationBPDU进行确认;上游交换机在收到TCN BPDU后,一方面会通过其指定端口回复TCA标志置1的 Configuration BPDU,另一方面会以HelloTime为周期通过其根端口不断向它的上游交换机发送TCN BPDU。此过程一直重复,直到根桥接收到TCN BPDU。根桥接收到TCN BPDU后,会发送TC标志置1的Configuration BPDU,通告所有交换机网络拓扑发生了变化。

        交换机网络拓扑变化通告过程如下所示:

        交换机收到TC标志置1的Configuration BPDU后,便意识到网络拓扑已经发生了变化,这说明自己的MAC地址表的内容很可能已经不再是正确的了,这时交换机会将自己的MAC地址表的老化周期(缺省为 300s)缩短为Forward Delay 的时间长度(缺省为15s),以加速老化掉原来的地址表项,实现STP链路切换。

2. STP交换机端口状态

  • STP的3种端口角色:根端口、指定端口、备用端口。
  • STP的5种端口状态:根据端口是否能接收和发送STP协议帧,以及端口是否能转发用户数据帧,STP将端口状态分为去能状态、阻塞状态、侦听状态、学习状态、转发状态。

2.1 STP交换机端口状态表

STP端口状态说明
去能(Disabled)无法接收和发送任何帧,端口处于关闭(down)状态。
端口被使能后进入阻塞状态
阻塞(Blocking)只能接收STP协议帧(BPDU),不能发送STP协议帧,不能转发用户数据帧。
端口被选为根端口和指定端口后进入侦听状态
侦听(Listening)能接收和发送STP协议帧,不能进行MAC地址学习和转发用户数据帧。
此状态持续1个forward delay时长(默认为15秒)后进入学习状态
学习(Learning)能接收和发送STP协议帧,能进行MAC地址学习,不能转发用户数据帧。
此状态持续1个forward delay时长后进入转发状态
转发(Forwarding)能接收和发送STP协议帧,能进行MAC地址学习,能转发用户数据帧。
  • STP交换机端口状态迁移过程中,端口一旦被关闭或发生了链路故障,就会进入到去能状态;
  • STP交换机端口状态迁移过程中,如果端口的角色被判定为非根端口或非指定端口,则其端口状态就会立即退回到阻塞状态。

2.2 STP交换机端口状态迁移过程图

2.3 STP交换机端口状态变化举例说明


        STP网络交换机全部启动,查看SW-C交换机各端口STP状态。


        华为交换机上看不到Blocking和Listening这两种状态,是因为华为交换机显示是以RSTP和MSTP为主,对于stp来说Disabled、Blocking、Listening这三种状态划分到Discarding状态。
        从上图可以看出,SW-C交换机未被阻塞的端口经历了Discarding、Learning和Forwarding状态。

3 引起的STP网络拓扑改变的示例

3.1 根桥出现故障


  根桥故障(关闭SW-A交换机)导致直连根桥的交换机对应的链路故障,此时对于非根桥就会收不到根桥的Configuration BPDU,非根交换机的根端口收不到Configuration BPDU,最多等待20秒(默认max age为20秒),然后触发STP端口发送自己的Configuration BPDU,进行根桥的选举;根桥选举各交换机上的端口都会转变为Discarding状态,Discarding状态持续15秒后从Discarding状态转变为Learning状态,Learning状态也要持续15秒后从Learning状态转变为Forwarding状态,这个状态对于STP来说是一个稳定状态,端口才可以正常转发数据;由上述所得,如果根桥故障,最长需要50秒STP网络才能恢复。

        重新开启SW-A交换机,查看SW-C交换机端口状态如下图所示:

        通过关闭和开启SW-A交换机(根交换机),根桥选举和非根交换机端口状态也随之改变,说明STP根桥和端口选举是抢占性的。

3.2 有阻塞端口的交换机根端口所在链路故障


  SW-C交换机感知到根端口故障(关闭SW-C交换机GE 0/0/1端口),SW-C交换机STP端口都进入Discarding状态,持续15秒;再从Discarding状态转变为Learning状态,此状态持续15秒,最后从Lerarning状态转变为Forwarding状态,开始转发数据。
        [SW-C-GigabitEthernet0/0/1]shutdown    #关闭SW-C交换机GE 0/0/1端口命令。


        重新开启SW-C交换机GE 0/0/1端口,查看SW-C交换机端口状态如下图所示:

3.3 没有阻塞端口的交换机根端口所在链路故障


        SW-B交换机根端口故障(关闭SW-B交换机GE 0/0/1端口),SW-C交换机无法直接感知到端口故障,要通过根桥发送Configuration BPDU告知,SW-C交换机STP阻塞端口从Discarding状态转变为Learning状态,此状态持续15秒,最后从Lerarning状态转变为Forwarding状态,开始转发数据。
        [SW-B-GigabitEthernet0/0/1]shutdown    #关闭SW-C交换机GE 0/0/1端口命令。

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

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

相关文章

[嵌入式系统-6]:龙芯1B 开发学习套件 -3-软件层次架构

目录 一、龙芯软件架构 1.1 通用软件架构 1.2 龙芯软件架构 1.3 龙芯各种应用程序 1.4 龙芯SOC芯片硬件:龙芯1B 1.5 PMON软件 1.6 龙芯IDE管辖的软件 (1)CPU Core驱动程序 (2)SOC芯片外设驱动程序 &#xff…

Linux(CentOS7)与用户电脑传输文件(sz与rz)云与云(scp)

rz和sz是Linux/Unix同Windows进行Zmodem文件传输的命令工具 rz和sz中的z为Zmodem文件传输协议的首字母 s为send发送 r为receive接收,都是相对与Linux来看的接收和发送 Linux发送文件到电脑: sz命令 把文件发送到Windows sz 文件直接按回车就可以选择发送…

数据结构:大顶堆、小顶堆

堆是其中一种非常重要且实用的数据结构。堆可以用于实现优先队列,进行堆排序,以及解决各种与查找和排序相关的问题。本文将深入探讨两种常见的堆结构:大顶堆和小顶堆,并通过 C 语言展示如何实现和使用它们。 一、定义 堆是一种完…

利用操作符解题的精彩瞬间

下面是链接为了解释练习2的并且还有与操作符相关的知识。 C语言与操作符相关的经典例题-CSDN博客 操作符详解(上)-CSDN博客 操作符详解(下)-CSDN博客 目录 练习1:在一个整型数组中,只有一个数字出现一…

Vue学习笔记(二)快速入门

Vue学习笔记&#xff08;二&#xff09;快速入门 vue小试牛刀 hello-vue3.html <body><div id"app"><h1>{{msg}}</h1></div><script type"module">import {createApp} from https://unpkg.com/vue3/dist/vue.esm-b…

超强的AI写简历软件

你们在制作简历时&#xff0c;是不是基本只关注两件事&#xff1a;简历模板&#xff0c;还有基本信息的填写。 当你再次坐下来更新你的简历时&#xff0c;可能会发现自己不自觉地选择了那个“看起来最好看的模板”&#xff0c;填写基本信息&#xff0c;却没有深入思考如何使简历…

Opencv——图片卷积

图像滤波是尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。 线性滤波是图像处理最基本的方法,它允许我们对图像进行处理,产生很多不同的效果。首先,我们需要一个二…

颠覆传统楼宇管理,拥抱城市美好生活

智慧楼宇是指通过智能化技术和设备&#xff0c;对楼宇的设施、环境和应用进行全面感知、连接和优化&#xff0c;实现楼宇的智能化、高效化和安全化的建筑。智慧楼宇具有全面感知、实时监控、智能控制、优化管理、节能环保等特点&#xff0c;可以为建筑提供更高效、更便捷、更安…

V90伺服PN总线绝对值编码器点动模式往复运动控制实验(SCL代码)

V90伺服驱动器其它相关介绍,请参考V90控制专栏,常用地址如下: V90 Epos模式下点动控制 https://rxxw-control.blog.csdn.net/article/details/134263795https://rxxw-control.blog.csdn.net/article/details/134263795绝对定位往复运动可以参考下面文章链接: https://rx…

【数据结构 06】二叉树

一、原理 二叉树算法核心思维&#xff1a;递归 满二叉树&#xff1a;二叉树的层数为K&#xff0c;节点数为 完全二叉树&#xff1a;二叉树的层数为K&#xff0c;前K-1层是满的&#xff0c;第K层是连续的 满二叉树是完全二叉树的子集。 任意二叉树&#xff1a;若叶子节点的…

CRF条件随机场学习记录

阅读建议 仔细阅读书[1]对应的序列标注章节&#xff0c;理解该方法面向的问题以及相关背景&#xff0c;然后理解基础的概念。 引言 威胁情报挖掘的相关论文中&#xff0c;均涉及到两部分任务&#xff1a;命名实体识别&#xff08;Named Entity Recognition&#xff0c;NER&a…

android学习笔记----ListView和各种适配器简介

打气筒&#xff08;LayoutInflater对象&#xff09;介绍&#xff1a; MainActivity.java import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import an…

Springboot 实现基于用户和物品的协同过滤算法

目录 简介 协同过滤算法(简称CF) 算法详解 算法使用 基于用户 基于物品 总结 前言-与正文无关 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&#xff0c;我们往往容易陷入工作的漩涡&#xff0c;忘记了停…

对作用域链的理解(详细解析)

文章目录 一、作用域全局作用域函数作用域块级作用域 二、词法作用域三、作用域链 一、作用域 作用域&#xff0c;即变量&#xff08;变量作用域又称上下文&#xff09;和函数生效&#xff08;能被访问&#xff09;的区域或集合 换句话说&#xff0c;作用域决定了代码区块中变…

腾讯云部署vue+node项目

文章目录 一、安装宝塔二、vue项目部署三、node项目部署 前言: 关于项目部署,一开始也是找了很多资料,费了点时间,所以记录一下。希望能对各位有所帮助。 一、安装宝塔 1.首先在控制台,进入云服务器的终端界面 2.输入命令和密码获取权限,并且安装宝塔界面 yum install -y w…

腾讯云0基础10秒搭建幻兽帕鲁游戏联机服务器

幻兽帕鲁&#xff08;Palworld&#xff09;是一款多人在线游戏&#xff0c;为了获得更好的游戏体验&#xff0c;需要搭建一个稳定、高效的游戏联机服务器。腾讯云提供了一种简单、快速的方法&#xff0c;让新手小白也能0基础10秒搭建幻兽帕鲁游戏联机服务器&#xff01; 本文将…

计算机网络_1.2因特网概述

1.2因特网概述 一、网络、互联网与因特网的区别与联系1、网络2、互联网3、因特网4、 互联网与因特网辨析 二、因特网介绍1、因特网发展的三个阶段2、因特网简介&#xff08;1&#xff09;因特网服务提供者&#xff08;ISP&#xff09;&#xff08;2&#xff09;因特网已经发展成…

基于Springboot的视频网站系统的设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的视频网站系统的设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

ESP8266 传感器搭配 Node-RED实时显示数据,邮件告警 实验

前言 esp8266 12f,wif模块,接倾斜传感器,火焰传感器,烟雾传感器,水浸传感器,蜂鸣器。通过mqtt发布数据,并使用node-red实时获取数据,显示到页面上。并且通过邮件和页面两种方式报警。 需求如下: ①倾斜传感器:监测是否保持平衡。UI界面显示平衡度。如果不平衡,UI界…

Observability:在 Elastic Stack 8.12 中使用 Elastic Agent 性能预设

作者&#xff1a;来自 Elastic Nima Rezainia, Bill Easton 8.12 中 Elastic Agent 性能有了重大改进 最新版本 8.12 标志着 Elastic Agent 和 Beats 调整方面的重大转变。 在此更新中&#xff0c;Elastic 引入了 Performance Presets&#xff0c;旨在简化用户的调整过程并增强…