生成树协议 - STP

news2025/5/17 14:19:05

目录

BPDU

STP选举机制

STP端口状态

STP计时器

STP拓扑变更机制


生成树协议(Spanning Tree Protocol),简写为STP。

STP是二层网络中用于消除环路的协议,通过阻塞冗余链路,使可用链路在拓扑上呈现出无环的树结构,消除网络中可能存在的环路。当前活动链路发生故障时,激活冗余链路,恢复网络连通性。

BPDU

桥协议数据单元,用于传递STP协议相关的报文。

分类

  • 配置BPDU

    • 传递STP配置信息,用来进行生成树的选举。

    • 网桥(交换机)通过交互配置BPDU,获取STP计算所需的参数。

    • 配置BPDU基于二层组播方式发送,组播地址是:01-80-C2-00-00-00。

    • 配置BPDU只由根桥周期性发出,发送周期(Hello Time)为2秒。

  • TCN BPDU

    • 通告拓扑变更信息。

    • 非根交换机发的拓扑变化通知,用于报错使用。

STP数据帧格式

  • Protocol ID

    • 协议ID,表明使用的协议。

  • Protocol Version ID

    • 协议版本标识符,STP协议中该值为0。

    • RSTP为2。

    • MSTP为3。

  • BPDU Type

    • BPDU类型。

    • STP的配置BPDU:0x00。

    • STP的TCN BPDU:0x80。

    • MSTP或者RSTP的BPDU:0x02。

  • Flags

    • 8个标记位。最左边(最高位)置位时,表示TCA;最右边(最低位)置位时,表示TC。中间的6位保留。

    • TC,根桥发出的用来描述拓扑变化信息的,其他交换机收到后会将MAC地址表老化时间由300秒缩短至15秒。

    • TCA,拓扑变化确认。交换机收到拓扑变化报文后回复,表示收到了。

    • 两者属于配置BPDU中因Flags置位不同而产生的两种消息。

  • Root ID

    • 网桥ID都是8个字节,前两个字节是网桥优先级,后6个字节是网桥MAC地址。

  • Root Path Cost

    • 根路径开销,本端口累计到根桥的开销。

  • Bridge ID

    • 发送者BID,本交换机的BID。

  • Port ID

    • 发送端口PID,发送该BPDU的端口ID。

  • Message Age

    • 该BPDU消息存在于交换机中的时间(老化时间)。

  • Max Age

    • 类似于保活时间,交换机间周期发送配置BPDU保活,每2秒发送一次,10次后还没收到回包(20秒),就判定对方宕机。MAX Age = 10 * Hello Time。

  • Hello Time

    • 发送两个相邻BPDU间的时间间隔,一般2秒。

  • Forward Delay

    • 控制Listening和Learning状态的持续时间。

STP选举机制

根桥的选举

在所有交换机中选出一台作为根网桥(Root Bridge),其他交换机都为非根网桥。

  • 选举规则

    1. Bridge id小的优先。

  • Bridge id

    • 桥ID,用来标识交换机的身份,简写为BID。

    • 格式:优先级 - MAC地址

    • 默认优先级为32768,优先级必须是4096的倍数。

根端口的选举

每台非根网桥选举出一个根端口(Root Port)。

  • 选举规则

    1. 到达根网桥开销值小的优先。

    2. 对端交换机BID小的优先。

    3. 端口ID小的优先。

  • 端口ID

    • 格式:优先级+端口号(交换机接口编号)。

    • 优先级取值为0 - 240,默认为128,端口优先级必须是16的倍数。

  • 开销

    • 即cost,代表路径耗费的代价和成本,带宽越大,开销越小。

指定端口的选举

每个物理段上选举出一个指定端口(Designated Port)。

  • 选举规则

    1. 到达根网桥开销小的优先。

    2. 本机BID小的优先。

    3. 端口ID小的优先。

闭塞端口的选举

上面的角色选举完成后,剩下的端口就是闭塞端口(Blocked Port)。

注意

  • 根桥和端口角色的选举同步进行,不存在先后关系。

  • 选举时间(STP计算的时间)为30秒。

STP端口状态

Disable

  • 禁用状态,被手动关闭的端口。

  • 不发送配置BPDU,不进行MAC地址表的学习,不收发数据。

  • 不接收来自根桥的配置BPDU。

Blocking

  • 阻塞状态,闭塞端口所在的状态。

  • 不发送配置BPDU,不进行MAC地址表的学习,不收发数据。

Listening

  • 监听状态,是一个过度状态,持续时间为15秒。

  • 发送配置BPDU,不进行MAC地址表的学习,不收发数据。

Learning

  • 学习状态,也是一个过度状态,持续时间为15秒。

  • 发送配置BPDU,进行MAC地址表的学习,不收发数据。

Forwarding

  • 转发状态。

  • 发送配置BPDU,进行MAC地址表的学习,收发数据。

当网络出现变化(有交换机故障),整个网络的角色将会重新计算,这个过程至少需要30秒(因为Listening和Learning两个状态)。

STP计时器

Hello Time

  • 配置BPDU的发送周期,2秒。

Max Age

  • 判断链路故障的时间,10 * Hello Time = 20秒。

Forwarding Delay

  • 状态切换延迟,15秒。

STP的收敛时间

  1. 初次收敛时间 --- 30秒

    • 存在故障接口的交换机能迅速接收到来自其他交换机转发的配置BPDU,只需要等待两个状态切换延迟就能收敛。

  2. 拓扑故障再收敛时间 --- 50秒

    • 存在故障接口的交换机不能接收来自其他交换机转发的配置BPDU,此情况下,需要等待一个Max Age和两个状态切换延迟才能收敛。

STP拓扑变更机制

STP协议收敛时间为30秒或50秒,当网络中出现故障时,等待STP收敛后就可以正常转发数据了吗?

当网络收敛完成,交换机的MAC地址表是否会有300秒的老化时间。在MAC地址表没刷新前,数据包按照之前的路径走,肯定不可能顺利到达目的地。STP也有解决该问题的方案。

处理方案

  1. 交换机感知到拓扑变更,交换机向根桥发送TCN BPDU。

    • Max Age超时、有接口状态变更,都判定为拓扑变更。

  2. 沿途的非根网桥收到TCN BPDU后,会继续向根桥转发。

  3. 根桥收到TCN BPDU后,在下一轮配置BPDU中将TC置位,通告拓扑变更。

  4. 所有交换机收到根桥TC置位的配置BPDU后,将MAC地址表老化时间由300秒缩短到15秒。并向根桥回复TCA置位的配置BPDU。

该机制和收敛同时进行。

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

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

相关文章

计算机指令分类和具体的表示的方式

1.关于计算机的指令系统 下面的这个就是我们的一个简单的计算机里面涉及到的指令: m就是我们的存储器里面的地址,可以理解为memory这个意思,r可以理解为rom这样的单词的首字母,帮助我们去进行这个相关的指令的记忆,不…

mvc-service引入

什么是业务层 1)Model1(JSP)和Model2(模糊的mvc): MVC:Model(模型),View(视图),Controller(控制器) 视图层:用于数据展示以及用户交互的界…

基于微信小程序的城市特色旅游推荐应用的设计与实现

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

【暗光图像增强】【基于CNN的方法】2020-AAAI-EEMEFN

EEMEFN:Low-Light Image Enhancement via Edge-Enhanced Multi-Exposure Fusion Network EEMEFN:基于边缘增强多重曝光融合网络的低光照图像增强 AAAI 2020 论文链接 0.论文摘要 本研究专注于极低光照条件下的图像增强技术,旨在提升图像亮度…

【Linux】ssh命令 – 安全的远程连接服务

原创:厦门微思网络 SSH命令的概念 ssh命令的功能是安全地远程连接服务器主机系统,作为OpenSSH套件中的客户端连接工具,ssh命令可以让我们轻松地基于SSH加密协议进行远程主机访问,从而实现对远程服务器的管理工‍作。 语法 ssh 参…

AT9850B—单北斗导航定位芯片

AT9850B是一款高性能低功耗双频单北斗卫星导航接收机SOC单芯片。芯片集成射频前端和数字基带、多模式卫星信号处理引擎、电源管理功能,集成度高,外围应用电路简洁。 支持中国北斗B1I/B1C单频定位或B1I/B1C/B2a双频定位,支持北斗二号和三号&a…

工业4G路由器IR5000公交站台物联网应用解决方案

随着城市化进程的加速,公共交通是智慧城市的重要枢纽。城市公共交通由无数的公交站台作作为节点组合而成,其智能化升级成为提升城市出行效率与服务质量的关键。传统公交站台信息发布滞后、缺乏实时性,难以满足乘客对公交信息快速获取的需求&a…

idea中Lombok失效的解决方案

Lombok 是一个 Java 库,旨在通过注解简化 Java 代码的编写,减少样板代码,提高开发效率。它通过自动生成常见的代码(如 getter、setter、构造函数等)来减少开发者的手动编码工作。 一般Lombok失效有四步排查方案&#…

黑马k8s(九)

1.Pod-生命周期概述 2.Pod生命周期-创建和终止 3.Pod生命周期-初始化容器

【超分辨率专题】一种考量视频编码比特率优化能力的超分辨率基准

这是一个Benchmark,超分辨率视频编码(2024) 专题介绍一、研究背景二、相关工作2.1 SR的发展2.2 SR benchmark的发展 三、Benchmark细节3.1 数据集制作3.2 模型选择3.3 编解码器和压缩标准选择3.4 Benchmark pipeline3.5 质量评估和主观评价研…

vs2019及以后版本cmd指定编译环境文件的路径

1、找到文件路径 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build 2、使用方法,启动cmd,依次输入对应指令,即可切换到相应环境

一个完整的项目示例:taro开发微信小程序

前一周完成了一个项目,体测成绩转换的工具,没做记录,。这次计划开发一个地图应用小程序,记录一下。方便给使用的人。 一、申请微信小程序,填写相应的信息,取得开发者ID。这个要给腾讯地图使用的。 二、申…

龙虎榜——20250516

上证缩量收阴线,小盘股表现相对更好,上涨的个股大于下跌的,日线已到前期压力位附近,注意风险。 深证缩量收假阳线,临近日线周期上涨末端,注意风险。 2025年5月16日龙虎榜行业方向分析 跨境电商&#xff…

Python----神经网络(《Inverted Residuals and Linear Bottlenecks》论文概括和MobileNetV2网络)

一、论文 MobileNetV2 论文提出了一种新的移动架构,该架构提高了移动模型在多个任务和基准测试中的性能,以及在各种不同模型大小范围内的性能. 该架构基于倒残差结构,其中 shortcut 连接在 thin bottleneck 层之间. 中间的 expansion 层使用轻…

React Flow 简介:构建交互式流程图的最佳工具

本文为《React Agent:从零开始构建 AI 智能体》专栏系列文章。 专栏地址:https://blog.csdn.net/suiyingy/category_12933485.html。项目地址:https://gitee.com/fgai/react-agent(含完整代码示​例与实战源)。完整介绍…

Jupyter-AI Pandas-AI本地使用功能优化

引言 Jupyter-ai 和 Pandas-ai 的优化主要是个人工作遇到的需求,个人觉得是一个不错的体验优化,所以进行分享仅供参考,不喜勿喷,共同进步!Jupyter-AI优化主要包含以下方向(当前已实现): Jupyter-AI中 Chat 扩展和 NoteBook 的 Cell 工作去部分,使用的Language Model 和 …

WEB安全--Java安全--shiro550反序列化漏洞

一、前言 什么是shiro? shiro是一个Apache的Java安全框架 它的作用是什么? Apache Shiro 是一个强大且灵活的 Java 安全框架,用于处理身份验证、授权、密码管理以及会话管理等功能 二、shiro550反序列化原理 1、用户首次登录并勾选记住密码…

【 Redis | 实战篇 秒杀实现 】

目录 前言: 1.全局ID生成器 2.秒杀优惠券 2.1.秒杀优惠券的基本实现 2.2.超卖问题 2.3.解决超卖问题的方案 2.4.基于乐观锁来解决超卖问题 3.秒杀一人一单 3.1.秒杀一人一单的基本实现 3.2.单机模式下的线程安全问题 3.3.集群模式下的线程安全问题 前言&…

数据通信原理 光纤通信 期末速成

一、图表题 1. 双极性不归零、单极性不归零、曼彻斯特码、抑制载频2ASK,2PSK、2DPSK信号的波形 双极性不归零 和 单极性不归零:不归零意思是 0 低 1 高 非归零编码(NRZ):用不同电平表示二进制数字,常以…

华为云kubernetes容器相关组件及作用

Kubernetes组件按功能分为‌控制平面组件‌、‌工作节点组件‌及‌扩展插件‌,协同实现容器化应用的编排与管理。 ‌一、控制平面组件(Control Plane)‌ 1‌、kube-apiserver‌ ‌作用:提供集群API入口,处理所有REST请…