STP生成树——解决二层组网环路

目录

一.二层组网环路

1.广播风暴

2.MAC地址漂移

3.有没有三层环路

二.STP生成树

(1)工作原理

(2)STP概念

1.桥ID(BID)

2.根桥

3.COST

4.RPC

5.  Rort ID ——本端

6.BPDU报文

7.PID(Port ID)

(3)STP计算

1.选举根桥

2.非根交换机选举根接口

3.选取指定端口(每条链路)

4.堵塞非根接口并且非指定端口的端口

三.实例

   1.选根桥

2.选举根接口

3.选举指定端口

4.堵塞SWCG0/0/2(非根接口并且非指定端口)


一.二层组网环路

一般的二层交换机组网缺乏冗余,一旦交换机产生问题,网络就会产生影响。

例如这个拓扑,交换机接口产生问题,网络收到影响。

为了解决这个问题,我们需要增强组网的冗余性。

这样有一个端口不能使用,我们也有其他的端口(或交互机)可以使用。

但这样容易产生广播风暴,和MAC地址漂移(MAC地址不稳定)的问题。

1.广播风暴

交换机在传输数据时泛洪(就是把数据帧复制好几份,发出去),会导致广播风暴。

广播风暴对网络的危害是非常大的,将严重消耗设备资源及网络带宽,最终导致网络瘫痪,是需要格外注意的问题。

2.MAC地址漂移

首先我们要知道,交换机通过接受到的数据帧中的源MAC地址生成MAC表项

1.pc2发送数据帧给服务器

2.LSW3MAC表中没有匹配的目的MAC,进行泛洪

3.LSW1,2接到数据帧,学习源MAC,他们的MAC表中也没有匹配的目的MAC,进行泛洪

3.LSW1,2由从自己的另一个端口接收到数据帧,学习到源MAC,MAC表又一次发生转变

这就导致了MAC表漂移,无法将报文从正确的接口发出去。(虽然已经找到了服务器的MAC地址,但回不去了。这就是来时候好好的,回回不去了

3.有没有三层环路

没有滴。

三层网络的设备有三层交换机和路由器

路由器有静态路由和动态路由,静态路由还是有可能产生环路的,但这一般不用与大型网络,因为需要手工配置。

动态路由RIPOSPFRIP有跳数限制,一般不用与大型网络,而且超过15跳就不能发送了。

OSPF是链路状态协议,通过SPF算法计算出一根以自己为根的,无环的,拥有最短路径的树

动态路由协议——OSPF-CSDN博客

二.STP生成树

工作在二层网络

(1)工作原理

打破环路,计算出对网络影响最小的接口,逻辑上堵塞这个接口。

(2)STP概念

1.桥ID(BID)

交换机叫网桥,所以叫桥ID。

BID= 优先级+MAC地址

缺省情况下,交换机的桥优先级取值是32768

一般情况下设定为4096,或4096的倍数

2.根桥

根桥就是STP生成树逻辑上的根桥ID最小的是根桥(二层是小而优,三层是大而优)

3.COST

带宽大,开销小

4.RPC

路由表开销,源到目的所有入接口开销之和

5.  Rort ID ——本端

优先级+端口号(0—255,default_128)

6.BPDU报文

BPDU主要进行根桥、端口角色的选举和通知拓扑结构发生变化

STP每隔2s会发送一次BPDU报文(由根桥发送),非根桥连续三次没有收到BPDU,表示发生故障

7.PID(Port ID)

端口ID。PID(16位) = 端口优先级(4位) + 端口号(12位)。

(3)STP计算

1.选举根桥

一开始所有端口都认为自己是根桥,并以自己为根桥发送BPDU报文

根据BID选根桥(可抢占)

2.非根交换机选举根接口

根接口接受BPD

广义上:朝向根桥的就是根接口(管理员)

选举根接口:

(1).RPC:以小为优(源到目的所有入接口开销之和)

(2).对端口桥ID,以小为优

(3).对端口PID,以小为优

(4).比较自身的PID,以小为优

3.选取指定端口(每条链路)

广义上:发送根桥的就是根接口,根桥的端口都是指定端口

选举:

(1)比较链路两端RPC

(2)比较链路两端桥ID

(3)比较链路两端端口ID

4.堵塞非根接口并且非指定端口的端口

三.实例

1.

   1.选根桥

SWABID的优先级是4096,其他都是32768,选举SWA为根桥

2.选举根接口

1.比RPC

SWB:有两条路,SWAG0/0/1到SWBG0/0/1RPC是0,SWBG0/0/1是根接口

        SWAG0/0/2到SWCG0/0/1到SWBG0/0/2RPC是20000

SWC:有两条路:SWAG0/0/2到SWCG0/0/1RPC是0,SWCG0/0/1是根接口

 SWAG0/0/1到SWBG0/0/1到SWCG0/0/2RPC是20000

3.选举指定端口

SWA是根桥,两个端口都是指定端口

1.比RPC

链路两端RPC,选不出来

2.比BID

SWAG0/0/1,SWBG0/0/1这条链路是SWA优先级高,SWAG0/0/1是指定端口

SWAG0/0/2到SWCG0/0/1这条链路是SWA优先级高,SWAG0/0/2是指定端口

SWBG0/0/2到SWCG0/0/2这条链路是SWB优先级高(MAC地址),SWBG0/0/2是指定端口

4.堵塞SWCG0/0/2(非根接口并且非指定端口)

对网络影响最小,逻辑堵塞

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

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

相关文章

语音识别文字 免费 openai-whisper

语音和别文字 git地址 https://github.com/openai/whisper 简单的测试一下功能 具体使用请访问 git 环境搭建 python 环境 pip install githttps://github.com/openai/whisper.git自行安装 ffmpeg 命令行工具 测试效果 # "/Users/mac/Downloads/aad.mp3" 为本…

ARM-IIC实验

要求 设置温度湿度阈值,当温度过高时,打开风扇,蜂鸣器报警 当湿度比较高时,打开LED1灯,蜂鸣器报警 现象视频 IIC.mp4 代码实现 main.c #include"si7006.h" #include"led.h" #include"f…

IDC:2027年中国网络安全市场规模将超200亿美元

IDC于近日发布了2024年V1版IDC《全球网络安全支出指南》(IDC Worldwide Security Spending Guide)。IDC数据显示,2022年全球网络安全IT总投资规模为1890.1亿美元,并有望在2027年增至3288.8亿美元,五年复合增长率(CAGR)…

若依ruoyi-vue实现excel导入导出

文章目录 Excel注解excel数据导入前端实现后端实现 下载模板前端实现后端实现 excel数据导出前端实现后端实现 自定义标题信息导出用户管理表格新增标题(用户列表)导入表格包含标题处理方式 自定义数据处理器自定义隐藏属性列导入对象的子对象导出对象的…

FakeLocation报虚拟位置服务连接失败,请重启设备再试

虚拟位置服务连接失败,请重启设备再试 最近遇到一个手机软件报的bug“虚拟位置服务连接失败,请重启设备再试” 因为我的实体“虚拟机”已经root,按道理是不可能报这个错的 折腾了2天,终于解决了 原来是这样,安装最新…

龙智亮相2024国际集成电路展览会暨研讨会(IIC Shanghai),分享芯片研发及管理解决方案与技术实践

2024年3月28-29日(周四-周五),上海张江科学会堂,2024国际集成电路展览会暨研讨会(IIC Shanghai 2024)即将盛大开幕。龙智携芯片研发及管理解决方案、最佳实践与案例,以及惊喜大奖在#1A14展位等着…

【C语言】数组和指针

目录 一、&数组名VS数组名 二、数组指针 三、指针数组 四、函数指针 五、const和指针 1、常量指针 六、sizeof和指针、数组 七、strlen和字符数组 八、指针和数组笔试题 1、一维数组 2、字符数组 3、二维数组 一、&数组名VS数组名 //试试这段代码 #includ…

Redis 教程系列之Redis 配置(三)

Redis 配置 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf(Windows 名为 redis.windows.conf)。 你可以通过 CONFIG 命令查看或设置配置项。 语法 Redis CONFIG 命令格式如下: redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME 实例 redis 127.0…

C++ 中的 unordered_map 用法文档

当你在C中需要使用哈希表(无序映射)来管理键值对时,unordered_map 是一个非常有用的数据结构。以下是关于 unordered_map 的用法; 1. 概述 unordered_map 是 C STL(标准模板库)中的一个关联容器&#xff…

二刷代码随想录——动态规划day57

文章目录 前言动态规知识点 动规五部曲一、647. 回文子串二、516. 最长回文子序列总结 前言 一个本硕双非的小菜鸡,备战24年秋招,计划二刷完卡子哥的刷题计划,加油! 二刷决定精刷了,于是参加了卡子哥的刷题班&#xf…

数据挖掘|数据预处理|基于Python的数据标准化方法

基于Python的数据标准化方法 1. z-score方法2. 极差标准化方法3. 最大绝对值标准化方法 在数据分析之前,通常需要先将数据标准化(Standardization),利用标准化后的数据进行数据分析,以避免属性之间不同度量和取值范围差…

15:00面试,15:06就出来了,问的问题有点变态了

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到3月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降30%…

PTA L2-032 彩虹瓶

彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工…

项目管理-需求分析

项目需求分析是项目管理中非常重要的一环,它涉及到对项目目标的理解、项目范围的界定、项目需求的收集、分析和整理。以下是项目需求分析的一般步骤: 1. 确定项目目标:明确项目的目的和预期成果,确保项目团队对项目目标有共同的认…

基于cnn卷积神经网络的yolov8动物姿态估计识别(训练代码)

往期热门项目大合集: 人体姿态识别(教程代码)-CSDN博客 3D人体姿态估计(教程代码)-CSDN博客 3D目标检测(教程代码)_3d目标检测原理-CSDN博客 交通路标识别(教程&代码)_路标识别项目概述…

【c++】类和对象(二)this指针

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本节内容来到类和对象第二篇,本篇文章会带领大家了解this指针 目录 1.this指针1.1this指针的引出1.2this指针的特性1.3思考题1.4C语言和C实现Stack的对…

解析option设计模式

解析option设计模式 一、背景二、应用demo三、Gin中的应用 一、背景 有时候一个函数会有很多参数,为了方便函数的使用,我们会给希望给一些参数设定默认值,调用时只需要传与默认值不同的参数即可。因此选项设计模式顾名思义,就是在…

Redis 缓存穿透是什么?如何缓解缓存穿透?

缓存穿透是指在使用缓存技术时,恶意或无效的请求无法从缓存中获取到数据,从而直接落到底层存储系统(如数据库)上,导致频繁地查询底层存储系统,增加系统负载并降低性能。 缓存通常用于存储经常被请求的数据…

QB 系统配置模板

查询的时候,直接 在下面添加 一个字段就行! public function getDeatil(){$post $this->request->post();if(!isset($post[id])){return out(请传递活动的id);}$builder new Builder($this->getModel());$builder->setFilter([id > …

轨迹预测后处理之非极大值抑制(NMS)

非极大值抑制是图像处理里面的一种算法(比如边缘检测会使用到) 轨迹预测这里借鉴了其思想,比如说对于某个场景中的某辆车,我们使用模型预测 64 条轨迹或者更多,以很好地捕获多模态性,同时每条轨迹对应一个…