【HCIP学习】STP协议

一、STP协议出现背景(Spanning Tree Protocol,生成树协议

二层环路带来的问题:广播风暴;

MAC地址表的震荡;

二、STP定义

stp是二层网络中用于消除环路的协议,通过阻断冗余链路来消除,网络中可能存在的环路;

当前活动路径发生故障时,激活冗余备份链路,恢复网络连通性;

分析:STP会临时阻塞冗余链路的端口,被阻塞的端口不能收发数据,这时,就不会形成环路。

当主链路DOWN,被阻塞的链路会被启用,保证数据正常转发。

思考:阻塞端口怎么选?如下图,我们肯定希望阻塞10Mbps的。但阻塞谁,肯定有一个阻塞机制。

三、STP相关概念

BDPU:

1、定义:桥协议数据单元,用于传递STP协议相关报文
2、分类:
(1)配置BPDU:传递STP配置信息

网桥通过交互配置BPDU,获取STP计算所需的参数;

配置BPDU基于二层组播方式发送,目 的地址:01-80-C2-00-00-00;

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

配置BPDU格式

配置BPDU老化时间为Max Age即10个hello time;

总结:配置BPDU是传递生成树选举所需信息的报文

(2)TCN BPDU:通告拓扑变更信息

注意区分:TC BPDU(根桥发出的拓扑变化信息,其他交换机收到后会将MAC地址表老化时间由300秒缩短到15秒)、

TCA BPDU(拓扑变化确认)

TCN BPDU(非根交换机发的拓扑变化通知,用于报错使用) 两者是属于配置BPDU中不同的flag置位

四、STP选举机制

BID中的优先级范围:

根桥选举的情况

思考1:下图交换机,谁是根网桥

答案1:A交换机

思考2:下图交换机的接口,谁是根端口

答案2:B的1口、C的1口

思考3:一个交换机上有多个口,到达根网桥的开销都是相同的,选不出来根端口,怎么办?

答案3:依据对端交换机BID小的优先级选举根端口,则D交换机的1口为根端口

思考4:依据端口ID小的优先的情况?

答案4:E的1端口为根端口

综上:选举出的根端口如下图所示:

指定端口的选举情况

阻塞端口:

STP选举完后,修剪的网络拓扑,一颗没有环路的树

注:选举根桥和端口角色同步进行,不分先后;

        stp计算时间是30秒;

总结:STP桥角色:根桥、非根桥

           端口角色:指定端口、根端口、阻塞端口

port id:格式:优先级+端口号,小优

              优先级0-240,默认128,必须是16的倍数

五、stp初始化流程---端口状态

端口状态

disable:禁用状态,被手动shutdown的端口。不发送配置BPDU,不进行MAC地址学习,不收发数据。

blocking:阻塞状态:不发送配置BPDU,不进行MAC地址学习,不收发数据。

listening:监听状态,发送配置BPDU,不进行MAC地址学习,不收发数据,持续15秒。

learning:学习状态,发送配置BPDU,进行MAC地址学习,不收发数据,持续15秒。

forwarding:转发状态,发送配置BPDU,进行MAC地址学习,收发数据

发送延迟的过程:

从中间状态listening经过一个延迟进入另一个中间状态learning;

从中间状态learning经过一个延迟进入另一个中间状态forWording

思考:当交换机A和B之间的链路down,故障切换(网络收敛)需要多长时间?

答案:需要30秒,因为上图中虽然有很多的阻塞口,可到底启用哪个口,就需要重新进行STP的选举过程。

六、STP计时器

hello time:2秒,配置BPDU的发送周期

max age:20秒,判断链路故障的时间,10个hello time周期

forwarding delay:15秒,状态切换延迟

STP收敛时间总结:

(1)初次收敛时间:

30秒(15侦听+15s学习):存在直连检测=本地仅存在一个阻塞端口,可以收到来自根桥的BPDU

分析:SW0上2口是阻塞口,当其上1口链路故障,2口只需经过30S就可以故障切换,因为它可以收到来自根桥的BPDU,所以不需要经过额外的20秒的故障检测机制。

(2)拓扑故障再收敛时间:

若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s  max age计时,同时阻塞接口进入15s侦听,15s学习,故总50s

七、STP拓扑变更机制

所以:拓扑变更后,要及时通知给上行交换机

工作原理:

1.交换机检测到拓扑变更,交换机向根网桥发起TCN BPDU;

max age超时/有接口变更为转发状态,判断为拓扑发生变更

交换机上有端口从forwarding或learning状态转变为blocking;

2.沿途的非根桥收到TCN BPDU后,会继续向根桥转发,并在根桥的下一轮配置BPDU中,把TCA(TC acknowledge)位置位

3.根桥收到TCN BPDU后,在下一轮配置BPDU中,把其TC位置位;

4.所有交换机收到TC置位的BPDU后,MAC地址表老化时间由300秒缩短到15秒

八、缺点

拓扑变更不灵活,主机频繁上下线,网络会产生大量TCN,导致网卡;

收敛时间长:拓扑层次越多,收敛时间越长,一个端口从blocking到forwarding至少需要30秒;

                      故障切换时间太长;

九、链路开销标准:

链路速率:100Mbps\1000Mbps\10Gbps

标椎:802.1D-1998

           802.1t(华为标准)

           私有标准(华三交换机私有)

十、STP实验

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

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

相关文章

加速度传感器的冲击振动的原始特征与解算(部分)

这里是工作中测得的一组数据,设备有多个加速度传感器通道,我们可以看到冲击振动发生前后,各个振动传感器的的反馈以及其他的细化特征: 1.随机振动(加速度传感器视角) 2.冲击振动(加速度&#x…

C++ 网络编程

一、Reactor 网络编程模型 reactor 是一个事件处理模型。网络处理:因为用户层并不知道 IO 什么时候就绪,所以将对 IO 的处理转化为对事件的处理。网络模型构成: 非阻塞 IO:操作 IO,如果 IO 未就绪,IO 函数会立刻返回。IO 多路复用:检测多路 IO 是否就绪。工作流程: 注册…

【从零开始实现stm32无刷电机FOC】【理论】【1/6 电机旋转本质】

目录 电机旋转需要什么样的力?怎么产生力矢量?怎么产生任意的线圈磁矢量? 电机旋转需要什么样的力? 电机切向存在受力,电机就会旋转。 进一步查看电机结构,分为转子和定子,大部分情况下&#…

FIFO-Diffusion,一个无需额外训练即可生成长视频的框架。通过确保每个帧引用足够多的先前帧来生成高质量、一致的长视频。

简单来讲,FIFO-Diffusion先通过一些模型如VideoCraft2、zeroscope、Opem-Sora Plan等与FIFO-Diffusion的组合生成短视频,然后取结尾的帧(也可以取多帧),再用这一帧的图片生成另一段短视频,然后拼接起来。FI…

linux命令日常使用思考

linux命令日常使用思考 复制的相关问题scp和cp的区别root192.168.5.229-r的理解 更新版本的相关问题svn info 根目录和家目录的区别根目录家目录 复制的相关问题 scp和cp的区别 安全性:SCP 是基于 SSH 的加密传输协议,可以保证数据在传输过程中的安全性…

vue期末复习选择题1

1. 下面哪一项描述是错误的?(B) A.$("ul li:gt(5):not(:last)")选取ul标记里面索引值大于5且不是最后一个的li元素B.$("div").find("span")选取div元素的子元素spanC.$("div.showmore > a")选取…

Axure RP 9 for Mac/win:重新定义交互原型设计的未来

在当今数字化时代,交互原型设计已成为产品开发中不可或缺的一环。Axure RP 9作为一款功能强大的交互原型设计软件,凭借其出色的性能和用户友好的界面,赢得了广大设计师的青睐。 Axure RP 9不仅支持Mac和Windows两大主流操作系统,…

Excel实现将A列和B列的内容组合到一个新的列(例如C列)中,其中A列的每个值都与B列的所有值组合。

利用Excel中vba代码宏实现 原始数据: 自动生成后数据: vba实现代码: Sub CombineColumns()Dim ws As WorksheetDim lastRowA As Long, lastRowB As Long, i As Long, j As LongDim MyIndex As IntegerDim strCombine As String, strColA As…

【Python】 去除字符串中的所有空白字符

基本原理 在Python中,字符串(String)是不可变的数据类型,这意味着一旦创建了一个字符串,就不能修改它的内容。然而,我们可以创建一个新的字符串,它包含原始字符串中的字符,但不包含…

局域网传文件怎么操作?轻松实现文件共享!

在现代的办公和生活中,局域网传文件已经成为一种非常常见和方便的方式,可以快速、安全地在局域网内进行文件传输。无需依赖互联网,局域网传文件可以帮助团队成员之间共享文件、备份数据、进行协作等。本文将介绍三种常见的方法,帮…

MySQL——存储过程,触发器

BaiduComate: # 问题1: # 问题1: 帮我创建两个表student与score表,要求student表有id,createDate,userName,phone,age,sex,introduce, 要求score表有id&…

Vue3实战Easy云盘(四):使用空间+文件预览+文件分享+文件下载

一、空间使用 Framework.vue中 (1)引入接口 const api {getUseSpace: "/getUseSpace",logout: "/logout", }; (2)回调 // 使用空间 const useSpaceInfo ref({ useSpace: 0, totalSpace: 1 }); const g…

unreal engine 5.0.3 创建游戏项目

根据虚幻官网介绍,虚幻引擎5可免费用于创建线性内容、定制项目和内部项目。你可以免费用它开发游戏,只有当你的产品营收超过100万美元时,才收取5%的分成费用。所以目前国内也有许多游戏厂商在使用UE制作游戏。UE5源码也已开源,有U…

[数据集][目标检测]吸烟检测数据集VOC+YOLO格式1449张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1449 标注数量(xml文件个数):1449 标注数量(txt文件个数):1449 标注…

huggingface笔记:LLama 2

1 前提tip 1.1 使用什么数据类型训练模型? Llama2模型是使用bfloat16训练的 上传到Hub的检查点使用torch_dtype float16,这将通过AutoModel API将检查点从torch.float32转换为torch.float16。在线权重的数据类型通常无关紧要,这是因为模型…

机器学习300问】95、什么是KNN算法?它和K-means什么关系?

一、KNN算法的定义 KNN(K-Nearest Neighbors)算法,是一种简单而有效的监督学习方法。它既可以用在分类任务,也可用在回归任务中。KNN算法的核心思想:在特征空间中,如果有一个数据点周围的大多数邻居属于某个…

5. JVM面试题汇总

Java全栈面试题汇总目录-CSDN博客 1. 说一下JVM的主要组成部分及其作用? JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载)、Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。 Cl…

linux mail命令及其历史

一、【问题描述】 最近隔壁组有人把crontab删了,crontab这个命令有点反人类,它的参数特别容易误操作: crontab - 是删除计划表 crontab -e 是编辑,总之就是特别容易输入错误。 好在可以通过mail命令找回,但是mai…

【计算机网络】初识Tcp协议

💻文章目录 📄前言Tcp基础概念Tcp 的报文格式三次握手四次挥手 Tcp的滑动窗口机制概念超时重传机制高速重传 TCP传输控制机制流量控制拥堵控制慢启动 Tcp的性能优化机制延迟应答捎带应答 📓总结 📄前言 TCP三次握手、四次挥手&…

Java刷题总结(面试)

1、String类 String不可变 java 中String是 immutable的,也就是不可变,一旦初始化,其引用指向的内容是不可变的。 也就是说,String str “aa”;str“bb”;第二句不是改变“aa”所存储地址的内容&#xf…