生成树协议

文章目录

  • STP
    • 冗余交换网络为什么存在广播风暴?
      • 广播的危害?
      • 交换环路的危害?
    • 工作机制
      • BPDU
        • 什么是最好的bpdu
        • BPDU触发机制
    • STP选举步骤
    • 配置
      • 协议分析
      • 字段分析
      • 开销模式
      • 端口状态
    • 故障类型
      • 根桥故障
      • 直连故障
      • 间接故障 (链路中间可能有HUB,光路等情况)
    • 如何控制端口的选举
    • stp协议收敛为什么慢?

STP

注意:华为交换机默认开启MSTP

STP PVID 0 802.1D RSTP PVID 2 802.1W MSTP PVID 3
802.1S VBSTP 华为私有,用于和思科交换机做兼容(老版本交换机并不支持)

冗余交换网络为什么存在广播风暴?

1、交换机转发广播报文的机制是泛洪;
2、以太网帧中没有防环字段,帧在转发时没有TTL-1机制,所以会持续的存在广播环路问题。

广播的危害?

1、消耗交换机性能
2、消耗链路带宽
3、主机收到广播要交给CPU处理,影响主机性能

交换环路的危害?

1、广播风暴
2、MAC地址表震荡
3、重复数据帧的接收

工作机制

1、运行STP协议时,每台交换机认为自己时根桥,发送以自己为根的BPDU
2、交换BPDU后,进行根桥的选举,根桥确定后由根桥周期性(2s)发送以自身为根的BPDU,非根桥不在发送以自己为根的BPDU

BPDU

Bridge Protocol Data Unit:桥接协议数据单元

什么是最好的bpdu

1、ROOT ID最小的BPDU最好;
2、累计RPC之和最小;
3、BID最小;
4、PORT ID 最小
5、自身PORT ID小的

运行STP协议的交换机,出厂携带一个BID,桥标识符,用于标识自身; BID由桥优先级+MAC地址组成
桥优先级的取值范围,华为设备的取值范围为0-61440,取4096的倍数,默认为32768; 根桥ID:描述根桥的BID;
桥ID:描述自身的BID; 根桥ID=桥ID 则认为自身是根桥,根桥ID!=桥ID 则认为交换机不是根桥; PORT
ID:由端口优先级.port号组成; 端口优先级,取值范围0-240,默认值128,取16的倍数

STP协议一共2种BPDU
1、配置BPDU
2、TCN BPDU(拓扑改变通知BPDU)

BPDU触发机制

华为:
STP协议当接口UP/down并过渡到forwarding状态,会发生TCN BPDU

逐跳传给根桥,上游向下游发送TCA=1,TC=1的配置BPDU,用于确认TCN,并将TCN逐跳传给根桥,根桥在接收到TCN的端口上回送一个TCA=1,TC=1的配置BPDU,用于确认TCN,并通知网络拓扑发送变化,配置BPDU,在其它端口上则发送TCA=0,TC=1的配置BPDU

TCN从RP发向根桥

stp协议最早认为任何端口进入到forwarding状态或者进入disable状态时,认为stp拓扑发送变化,后来stp对拓扑发生变化的定义作出了优化:
1、当DP端口进入到forwarding状态认为拓扑发生了变化;
2、RP失效或者RP进入forwarding状态;
3、非根桥DP端口失效不认为拓扑发生变化;
4、根桥的DP失效直接发送TC BPDU。

STP选举步骤

1、选举根桥,根桥不存在根端口(两者互斥)
2、其他交换机为非根桥,在非根桥上选举根端口(RP),非根桥上有且只有一个根端口。
3、在每条链路上选举出一个指定端口(DP),每条链路有且只有一个指定端口(根端口和指定端口不能时同一个端口)
4、即不是根端口,也不是指定端口的端口,就成为阻塞端口。

发送时不累加开销,接收时累加开销
根桥:BID最小的交换机成为根桥。
先比较桥优先级,越小越优,桥优先级相同,则比较MAC地址,越小越优, 根桥可以被抢夺
STP通过交换BPDU(帧),来完成选举以及树的维护
根端口:交换机上接收最好的BPDU,可以假想为在交换机上有一台主机,看其去根交换机最近链路
指定端口:链路上发送最好BPDU的端口,可以假想为在链路上有一台主机,看其去根交换机最近链路

配置

协议分析

在这里插入图片描述

stp协议计时器的配置,仅在根桥配置即可。

【SW1】stp timer hello 300
[SW1]stp  timer forward-delay 2000 #1、决定了在监听状态和学习状态维持的时间,2、收到TC BPDU后MAC地址的老化时间
[SW1]stp timer max-age 3000

字段分析

在这里插入图片描述

flags:
TC bit:拓扑改变
TCA bit:拓扑改变确认
message age :BPDU存活时间,根桥发送时为0.每经过一台交换机+1
max age :BPDU最大存活时间,默认是20s,当message age等于max age,则认为该BPDU失效
hello timer :BPDU发送间隔,默认是2s
forway delay :端口在监听状态和学习状态分别等待的时间,默认是15s

开销模式

stp pathcost-standard 命令修改路径开销标准dot1d-1998     IEEE 802.1D-1998    #IEEE标准,比较老,一般不建议使用dot1t          IEEE 802.1T         #IEEE标准,新标准,华为默认legacy         Legacy              #华为私有标准

端口状态

1、禁用状态(disabled):接口被shutdown,端口即不处理和转发BPDU报文,也不转发用户流量
2、阻塞(blocking):接口使能/RP或者DP不在是RP或DP的时候,端口仅仅能接收并处理BPDU报文,但不能转发用户流量;
3、监听(listening):当block成为RP或者DP时,监听时间15s,即转发延时时间,默认15s,端口可以转发BPDU报文,但不转发用户流量;
4、学习(learning):listening经历转发延时后进入learning状态,端口可以根据收到的用户流量构建MAC地址表,但不转发用户流量,增加learning状态时为了防止临时环路
5、转发(forwarding):在learning经历转发延时后进入forwarding,端口即可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入forwarding状态
端口状态转化
在这里插入图片描述

故障类型

根桥故障

需要50s时间进入转发状态

直连故障

1、存在AP端口的交换机出现RP的直连故障,AP成为新的RP,在经历2倍的转发延(30s)时后进入转发状态,故障恢复。
2、不存在AP端口的交换机出现RP的直连故障后,该交换机会以自己为根发送BPDU,下游交换机等待20s老化,才处理该BPDU,当下游端口确定时DP时,经历2倍的转发延时进入转发状态,总计50s恢复故障。

间接故障 (链路中间可能有HUB,光路等情况)

1、存在AP端口的交换机出现RP的直连故障,RP的BPDU老化后(20s),AP成为新的RP,在经历2倍的转发延(30s)时后进入转发状态,50s故障恢复。
2、不存在AP端口的交换机出现RP的直连故障后,该交换机会以自己为根发送BPDU,下游交换机等待20s老化,才处理该BPDU,当下游端口确定时DP时,经历2倍的转发延时进入转发状态,总计50s恢复故障。
故障将导致MAC地址表学习到的MAC地址表项错误,由于MAC地址需要300S的老化时间,所以在300s内,无法学习到正确的转发mac地址以及端口,所以有了TC BPDU ,接收到TC BPDU后,交换机会将mac地址表对应端口的老化时间更改为15s(可能时因为端口需要经历listening和learning状态,当15s老化以后,端口状态已经到达listening向learning转变状态,可以更好的让端口在达到forwarding状态后学习到正确的mac地址),到时间后从新开始学习正确的mac地址表项。

mac地址更改为15s的老化时间有效期为35,即在35s内会持续发送TC=1的报文,当35s以后,端口老化时间会恢复为300s
定义为35s时因为交换机可能会学习到新根桥,而老根桥老化时间为20s,另外15s时学习的时间,学习15s时考虑到网络中最好最多有7层拓扑,BPDU的转发时间为2s,所以当有7层网络时,大约15s可以传遍所有拓扑

如何控制端口的选举

1、更改接口的cost值(如果想控制某端口的角色,需要更改本端端口cost值);
2、更改接口的port id值(如果想控制某端口的角色,需要更改对端端口port id值);

stp协议收敛为什么慢?

端口角色的计算实际上非常快,比如当AP被计算为RP或者DP时,这个选举过程时非常快的,但为什么要等待30s?
监听状态15s,为了防止临时环路,让BPDU有足够的时间传递到全网,防止STP收敛过程中新的AP端口还没被计算出来,而其他端口都处于转发状态导致的临时环路;
学习状态15s,在stp收敛过程中存在MAC地址提前老化,为了避免大量未知MAC地址地址的单播帧被泛洪转发,设计一段MAC地址学习时间,避免泛洪过多。
所以stp协议为了避免临时环路和泛洪,被动等待计时器超时机制收敛,收敛慢。

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

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

相关文章

# Linux下最好用的歌词工具:OSD Lyrics安装使用指引

Linux下最好用的歌词工具:OSD Lyrics安装使用指引 文章目录 Linux下最好用的歌词工具:OSD Lyrics安装使用指引1 安装1.1 直接安装1.2 源码安装 2 错误解决3 快捷方式与软件设置(很重要)4 首选项相关界面5 最后 OSD Lyrics 是一个桌…

人工智能、BIM技术、机器学习在智慧工地的应用

人工智能、BIM技术、机器学习在智慧工地的应用 智慧工地云平台是专为建筑施工领域所打造的一体化信息管理平台。通过大数据、云计算、人工智能、BIM、物联网和移动互联网等高科技技术手段,将施工区域各系统数据汇总,建立可视化数字工地。同时&#xff0…

第一百二十五天学习记录:C++提高:STL-deque容器(下)(黑马教学视频)

deque插入和删除 功能描述: 向deque容器中插入和删除数据 函数原型: 两端插入操作: push_back(elem); //在容器尾部添加一个数据 push_front(elem); //在容器头部插入一个数据 pop_back(); //删除容器最后一个数据 pop_front(); //删除容器…

MySQL安装和卸载

1.MySQL概述 MySQL概述 MySQL是一个[关系型数据库管理系统],由瑞典MySQL AB 公司开发,2008年被sun公司收购, 2009sun又被oracle收购,所以属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用…

自然语言处理学习笔记(三)————HanLP安装与使用

目录 1.HanLP安装 2.HanLP使用 (1)预下载 (2)测试 (3)命令行 (4)测试样例 3.pyhanlp可视化 4. HanLP词性表 1.HanLP安装 HanLP的 Python接口由 pyhanlp包提供,其安装…

halcon 学习笔记

图像的参数 图形参数 Iconic, 包括 image, region, XLD 1.1 image 图像由一个或者多个通道组成,是大小相同的矩阵,包含各种像素类型的灰度值 在图像显示界面,按ctrl健,可以查看当前的像素值 灰度图 一个通道像素点存放在一个矩…

HTML5 中新增了哪些表单元素?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ HTML5 中新增了的表单元素⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚…

权限校验—接口检验

一、背景介绍 最近项目中要实现根据不同用户去划分不同的角色,而不同角色具备调用不同接口的权限这个功能。用户在调用接口时需要校验用户是否具有权限访问接口,防止外界恶意调用随意篡改 二、思路&方案 为什么要进行接口鉴权? 接口鉴权…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)七:工作台界面实现

一、本章内容 本章实现工作台界面相关内容,包括echart框架引入,mock框架引入等,实现工作台界面框架搭建,数据加载。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管理系统合集-工作台界面布局实现 五、…

FPGA----UltraScale+系列的PS侧与PL侧通过AXI-HP交互(全网唯一最详)附带AXI4协议校验IP使用方法

1、之前写过一篇关于ZYNQ系列通用的PS侧与PL侧通过AXI-HP通道的文档,下面是链接。 FPGA----ZCU106基于axi-hp通道的pl与ps数据交互(全网唯一最详)_zcu106调试_发光的沙子的博客-CSDN博客大家好,今天给大家带来的内容是&#xff0…

哪个版本的FL Studio更适合我?2023年到底应该入手哪一款FL Studio?

很多打算入手正版FL Studio的新手朋友都会纠结一个问题:哪个版本的FL Studio更适合我,2023年到底应该入手哪一款FL Studio?本文会介绍每个版本之间的差异点,并带大家选择适合自己的FL Sudio版本。 FL Studio Mac-安装包&#xff…

Spring系列三:基于注解配置bean

文章目录 💗通过注解配置bean🍝基本介绍🍝快速入门🍝注意事项和细节 💗自己实现Spring注解配置Bean机制🍝思路分析🍝注意事项和细节 💗自动装配 Autowired🍝案例1: Autow…

【算法篇C++实现】算法的时间、空间复杂度

文章目录 🚀一、算法的概念🚀二、算法的特征1.可行性2.确定性3.有穷性4.输入5.输出 🚀三、算法的评价1.正确性2.可读性3.健壮性 🚀四、算法的复杂度⛳(一)时间复杂度1、时间复杂度的概念2、大O的渐进表示法…

培训报名小程序报名功能完善

目录 1 修改数据源2 修改表单3 支付成功时修改状态4 创建报名成功页5 最终的效果总结 目前我们的报名功能已经搭建了一个基础版,后续需要展示用户已经报名的信息,需要添加一个状态来显示用户是否成功付费。 1 修改数据源 打开我们的报名数据源&#xff…

使用 Docker 和 Streamlit 构建和部署 LangChain 支持的聊天应用程序

文章目录 前言聊天应用程序组件和技术LangChain Python框架开放人工智能模型前端 Streamlit UI使用 Docker 进行部署Docker 优化以实现轻量级和快速构建Docker-compose.yaml 文件基础设施Streamlit 公共云谷歌应用引擎使用 Google Cloud Run 部署应用1.启动服务2. 创建角色并将…

HDFS中的Trash垃圾桶回收机制

Trash垃圾桶回收机制 文件系统垃圾桶背景功能概述Trash Checkpoint Trash功能开启关闭HDFS集群修改core-site.xml删除文件到trash删除文件跳过从trash中恢复文件清空trash 文件系统垃圾桶背景 回收站(垃圾桶)是windows操作系统里的一个系统文件夹&#…

Java版企业电子招标采购系统源码—企业战略布局下的采购寻源tbms

​ 项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以…

Jupyter Notebook 未授权访问远程命令执行漏洞

漏洞描述 Jupyter是一个开源的交互式计算环境,它支持多种编程语言,包括Python、R、Julia等。Jupyter的名称来源于三种编程语言的缩写:Ju(lia)、Py(thon)和R。 Jupyter的主要特点是它以笔记本(Notebook)的形式组织代码…

Effective Java笔记(29)优先考虑泛型

一般来说 ,将集合声 明参数化,以及使用 JDK 所提供的泛型方法,这些都不太困难 。编写自己的泛型会比较困难一些,但是值得花些时间去学习如何编写 。 以简单的(玩具)堆校实现为例 : // Object -…

Android Studio System.out.println()中文乱码

第一步: 打开studio64.exe.vmoptions加入-Dfile.encodingUTF-8 第二步: File-Settings-Editor-File Encodings 把所有的编码格式改为UTF-8 尝试跑一下代码,如果还不行,重启IDE 再试试。