STP生成树协议

一、STP是什么

STP协议概述生成树协议(spanning tree protocol),是一种工作在OSI网络模型中第二层(数据链路层)的通信协议,是一种由交换机运行的,基本应用是防止交换机冗余链路产生的环路,用于确保以太网中无环路的逻辑拓扑结构,从而避免了广播风暴,大量占用交换机的资源,

二、为什么要用STP

  为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴
以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。

三、STP的作用

1.Stp通过阻塞端口来消除环路,并能够实现链路备份目的

2.消除了广播风暴

3.物理链路冗余,网络变成了层次化结构的网络

四、STP做了什么

1.选举一个根桥

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

3.每个链路选举一个指定端口

4.阻塞非根,非指定端口

五、STP名词解释:

根桥:生成树里面的‘老大’,桥id最小
备份根桥:生成树里面的“二把手”,老大挂了的时候,我当老大,桥ID第二小。
非根交换机:干活的小弟,都有一个根端口
根端口:离根桥最近的端口
指定端口:根桥所有参与生成树选举的端口,都一定是指定端口
非根非指定端口:被阻塞的端口---备用链路的端口
路径开销:是端口Cost值,可以用来选择最优的路径,值越小越优。根路径开销是端口到达根桥的过程中累计的路径开销。
BID:桥ID:是由桥优先级和桥MAC地址构成,桥优先级为高16位,MAC地址是低48位。
PID:端口ID:是由端口优先级和端口号构成,端口优先级为高4位,端口号

六、选举

根桥交换机,备份根桥交换机,非根交换机根端口,指定端口,非根非指定端口(阻塞端口/预备端口)

七、STP工作流程

在交换网络中选举一个根桥

BPDU中的 桥ID来决定shi'shiyi

桥ID= 网桥优先级(0-65535公有) 默认32768 +  MAC地址(只有存在svi接口的交换机才拥有mac地址,若存在多个mac选数值最小)

根网桥的选举   先比较优先级,小优;   若优先级相同,比较mac,数值小优;

需要注意的是,根桥的地位是具有可抢占性的。

在上图网络拓扑中,在STP完成收敛后,若网络中接入了一台新的交换机,而且这台新增的交换机的优先级为4096,比现有根桥SW1的优先级更高,那么该新增的交换机将成为网络中的新根桥,与此同时,STP将重新收敛、重新计算网络拓扑,在这个过程中有可能引发网络震荡,从而对业务流量的正常转发造成影响,所以根桥角色的稳定性是十分重要的。 

在每个非根桥上选举一个根接口

    1、比较从根网桥发出后,通过该接口进入时最小的cost值;

    2、入向cost值相同,比较该接口对端设备的BID,小优BID=为桥ID

    3、对端BID也相同,比较该接口对端设备的接口的PID;先优先级小,若优先级一致,编号小

    4、连对端PID也相同,比较本地PID,小优;

选举指定端口

在每一段存在STP的物理链路上,有且仅有一个;转发来自根网桥的BPDU,同时可以转发用户流量(不阻塞);默认根网桥上所有接口为指定端口;

    1、比较从根网桥发出后,通过该接口进入这段链路时的cost值最小(出向)

    2、若出向cost值相同,必须本地的BID,小优;

    3、本地BID相同,比较本地的PID;

    4、本地PID,相同,直接阻塞该端口;

非指定端口(阻塞端口)

当以上所有角色全部选举完成后,剩余没有任何角色的接口为非指定;

 该接口逻辑阻塞,实际可以接收到信息,但不转发;

八、端口状态

disable(端口未启用状态或初始状态,端口不处理任何数据端口状态为down)
blocking(阻塞状态,维持20秒)
listening(监听状态,参与生成树计算,接受并发送BPDU报文维持15秒)
learning(学习状态,端口不转发用户流量,学习MAC表,参与生成树计算,接受并发送BPDU报文,防止环路维持15秒)
forwarding(转发状态)


九、定时器

Hello Time:指允许STP的设备发送BPDU的时间间隔。当网络拓扑稳定之后,若要修改该定时器,只有在根桥修改才能生效。

Forward Delay: 指接口进行状态更换的延迟时间。也就是在处于Listening和Learning的持续时间,缺省值为15秒。

Max Age: 指接口的BPDU老化时间。BPDU从根桥被发出的时候,Message Age值为0,每经过一个桥设备,其值加1。当非根桥设备收到BPDU后,会比较Message Age和Max Age的大小。如果前者小于等于后者,该非根桥设备继续转发该BPDU;如果前者大于后者,该BPDU将被丢弃,此时可以认为网络直径过大,根桥连接失败。

在同一个拓扑中,Max Age是相同的,可在根桥上修改该值。

十、故障恢复时间

1. 根桥故障恢复时间是max age+2*forwading Delay=20+15*2=50s(发送TCPBDU)
2.直连链路故障回复时间是2*forwading Delay=15*2=30s
3.间接链路故障恢复时间是max age+2*forwading Delay=20+15*2=50s

十一、BPDU组成

BPDU 有两种类型:配置 BPDU 和 TCN BPDU 。
        配置BPDU 包含了桥 ID 、路径开销和端口 ID 等参数。 STP 协议通过在交换机之间传递配置 BPDU 来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置 BPDU 。在网络拓扑稳定以后,只有根桥主动发送配置 BPDU ,其他交换机在收到上游传来的配置 BPDU 后,才会发送自己的配置 BPDU 。
        TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。

十二、STP生成树协议的版本

1.802.1D最基本的生成树协议

 缺点:收敛慢、链路利用率低

2.PVST  cisco私有     基于vlan的生成树协议

在每个vlan内,存在一棵树,每个树的工作原理同802.1d一致;不同vlan的BPDU区别在于优先级;

优先级=4096倍数+vlan id   人为仅可修改4096倍数备份,且只能修改为4096的整倍

仅支持  trunk干道封装为ISL(cisco私有封装) 

缺点:收敛慢 、树多(仅cisco存在单独的芯片,友商无法负荷)   

3、PVST +    

在PVST的基础,兼容802.1q的trunk封装;且设计了部分的加速;

  端口加速(进入层连接用户的接口)      上行链路加速-针对直连检测      骨干加速—针对次优BPDU

上行链路加速仅在接入层设备上配置,因为配置后,该交换机将自动加大本地的网桥优先级;

在直连检测条件下阻塞接口将跳过30s,直接进入转发状态--上行链路加速

骨干加速所有交换机均可配置,针对接收到次优BPDU的阻塞端口可以跳过20s的hold time;

缺点:收敛慢(加速不彻底) 、树多(仅cisco存在单独的芯片,友商无法负荷)   

4、快速生成树  

cisco的RSTP   ---    基于vlan的快速生成树  - 一个vlan一棵树    pvst+的升级

公有RSTP(802.1w) --- 整个交换网络一棵树                       802.1d的升级

快速的原理:

  1. 取消了计时器,而是在一个状态工作完成后,直接进入下一状态
  2. 分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位
  3. BPDU的保活为6s;hello time 2s;
  4. 将端口加速(边缘接口)、上行链路加速、骨干加速集成了
  5. 兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;

当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;

缺点:树多

5、MSTP/MST/802.1S     

继承了快速生成树的基础;  将多个vlan放置于一个组内,基于每个组一棵生成树;

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

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

相关文章

计算机网络-物理层(三)-信道的极限容量

计算机网络-物理层(三)-信道的极限容量 当信号在信道中传输失真不严重时,在信道的输出端,这些信号可以被识别 当信号在信道中,传输失真严重时,在信道的输出端就难以识别 造成失真的因素 码元传输速率信号传输距离噪声干扰传输媒…

CSS中的transform属性有哪些值?并分别描述它们的作用。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ translate()⭐ rotate()⭐ scale()⭐ skew()⭐ matrix()⭐ scaleX() 和 scaleY()⭐ rotateX()、rotateY() 和 rotateZ()⭐ translateX() 和 translateY()⭐ skewX() 和 skewY()⭐ perspective()⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&…

Python 处理 Excel 表格的 14 个常用操作

目录 1. 安装依赖库 2. 导入库 3. 读取Excel文件 4. 写入Excel文件 5. 创建工作表 6. 访问工作表 7. 读取单元格数据 8. 写入单元格数据 9. 获取行数和列数 10. 过滤数据 11. 排序数据 12. 添加新行 13. 删除行或列 14. 计算汇总统计 总结 无论是数据分析师、财…

MySQL— 基础语法大全及操作演示!!!(下)

MySQL—— 基础语法大全及操作演示(下)—— 持续更新 三、函数3.1 字符串函数3.2 数值函数3.3 日期函数3.4 流程函数 四、约束4.1 概述4.2 约束演示4.3 外键约束4.3.1 介绍4.3.2 语法4.3.3 删除/更新行为 五、多表查询5.1 多表关系5.1.1 一对多5.1.2 多对…

Matplotlib数据可视化(一)

目录 1.Matplotlib简介 2.Matplotlib绘图基础 2.1 创建画布与子图 2.2 添加画布属性 2.3 绘图的保存与显示 1.Matplotlib简介 Matplotlib是一个用于绘制数据可视化图表的Python库。它提供了广泛的功能和灵活性,可以创建各种类型的图表,包括折线图、…

min-height到底是什么?

1、概念 给元素设置最小高度,当height小于 min-height ,min-height会覆盖height的值 2、案例 如果我有一个盒子A,A设置了min-height的高度为200px;并设置了overflow:auto,那么如果里面的内容超过了200px…

Flutter混合项目构建问题集锦

记录一次AS偶发异常导致的项目构建失败问题 以下是报错信息 Could not determine the dependencies of task ‘:app:mergeCeshiDebugAssets’. Could not resolve all task dependencies for configuration ‘:app:CeshiDebugRuntimeClasspath’. Could not resolve project :…

深入理解python虚拟机:程序执行的载体——栈帧

栈帧(Stack Frame)是 Python 虚拟机中程序执行的载体之一,也是 Python 中的一种执行上下文。每当 Python 执行一个函数或方法时,都会创建一个栈帧来表示当前的函数调用,并将其压入一个称为调用栈(Call Stac…

Programming abstractions in C阅读笔记: p118-p122

《Programming Abstractions In C》学习第49天,p118-p122,总结如下: 一、技术总结 1.随机数 (1)seed p119,“The initial value–the value that is used to get the entire process start–is call a seed for the random ge…

LLM 落地电商行业的最佳实践来了?Zilliz X AWS 有话说

目录 01.活动议程 02.时间地点 03.议题介绍 主题一:《电商场景构建 GenAI 应用实践分享》 主题二:《向量数据库在电商及大模型领域应用方案介绍》 <

MySQL 主从复制遇到 1590 报错

作者通过一个主从复制过程中 1590 的错误&#xff0c;说明了 MySQL 8.0 在创建用户授权过程中的注意事项。 作者&#xff1a;王祥 爱可生 DBA 团队成员&#xff0c;主要负责 MySQL 故障处理和性能优化。对技术执着&#xff0c;为客户负责。 本文来源&#xff1a;原创投稿 爱可生…

使用Qt框架开发的2D/3D图像数据标注工具:从设计到实现的探索

随着人工智能的不断发展,数据准备变得越来越关键。尤其在图像处理和计算机视觉领域,高质量的数据标注是关键。今天,我将详细介绍我使用Qt框架开发的一款2D/3D图像数据标注工具,帮助用户更轻松、准确地标注图像数据。 一、背景与挑战 在图像处理和计算机视觉的应用中,如目…

Git常用操作与命令

可以先阅读Git的初次使用。 获取Git仓库 1.在已存在目录中初始化仓库 Git第一步&#xff1a;git init。该命令是在一个目录中创建一个新的Git仓库。 2.克隆现有的仓库 # 例如 git clone https://github.com/vuejs/vue $ git clone <url># 自定义本地仓库的名字 $ git …

若依微服务集成CAS,实现单点登录

若依&#xff08;RuoYi&#xff09;微服务是一款基于Spring Cloud Alibaba开发的企业级微服务框架&#xff0c;采用前后端分离方式&#xff0c;使用了常用的微服务组件&#xff0c;如Feign、Nacos、Sentinel、Seata等&#xff0c;提供了丰富的微服务治理功能&#xff0c;如服务…

Linux查看命令总结

1.动态实时查找命令 使用以下命令的前提是需要在找到日志位置 tail -f server.log 实时展示日志末尾内容&#xff0c;默认最后10行,相当于增加参数 -n 10 tail -n filename; tail命令扩展 查看日志最后20行内容并实时更新日志 tail -f -n 20 server.log或者 tail -fn 20 ser…

【Python】代理池针对ip拦截破解

代理池是一种常见的反反爬虫技术&#xff0c;通过维护一组可用的代理服务器&#xff0c;来在被反爬虫限制的情况下&#xff0c;实现数据的爬取。但是&#xff0c;代理池本身也面临着被目标网站针对ip进行拦截的风险。 本文将详细介绍代理池针对ip拦截破解的方法&#xff0c;包含…

WPF的图形微语言

WPF的图形微语言 前言 WPF为定义几何图形增加了一种更简明的替换语法&#xff0c;通过该语法可用更少的标记表示详细的图形&#xff0c;这种语法称为图形微语言&#xff0c;并且由于应用于Path元素&#xff0c;也称为路径微语言。 示例 使用两条闭合路径创建了一个基本三角…

Avue-Card用法

1、基本属性 <template> <!-- 基础组件 --><basic-container><!-- <el-button clickexportHandle>导出</el-button> --><avue-crud//设置表格属性:option"option"//来存取页面的值v-model"form"//获取后台数据:dat…

蓝桥杯每日N题 (砝码称重)

大家好 我是寸铁 希望这篇题解对你有用&#xff0c;麻烦动动手指点个赞或关注&#xff0c;感谢您的关注 不清楚蓝桥杯考什么的点点下方&#x1f447; 考点秘籍 想背纯享模版的伙伴们点点下方&#x1f447; 蓝桥杯省一你一定不能错过的模板大全(第一期) 蓝桥杯省一你一定不…

Python入门教程 | Python简介和环境搭建

Python 简介 Python是一种高级编程语言&#xff0c;由荷兰人Guido van Rossum于1991年创建。它以其简单易学、可读性强和丰富的生态系统而受到广泛喜爱。它被广泛应用于各个领域&#xff0c;包括Web开发、科学计算、数据分析、人工智能等。 Python的特点 简洁易读&#xff1a…