HCIA-Datacom跟官方路线学习第二部分
接着前面第六章,通过VLAN技术, 可以将物理的局域网划分成多个广播域, 实现同一VLAN内的网络设备可以直接进行二层通信, 不同VLAN内的设备不可以直接进行二层通信。
第七章 生成树
在以太网交换网络会使用冗余链路, 但是使用冗余链路会在交换网络上产生环路。为解决交换网络中的环路问题, 提出了生成树协议STP( Spanning Tree Protocol) 。需要注意,生成树协议只对二层交换网起作用,在三层以太网中,由于传递TTL值减一的特性,是不会一直出现环路问题。所以生成树协议解决的主要层面还是在二层以太网中。
学习目标:▫ 描述园区交换网络中的二层环路产生原因及引发的问题。▫ 描述STP的基本概念与工作原理。▫ 区分STP与RSTP,并能够描述RSTP对STP的改进。▫ 完成STP的基础配置。▫ 了解除了生成树之外的其他消除交换网络二层环路的方法。
1. 生成树技术概述
2. STP的基本概念及工作原理
3. STP的基础配置
4. RSTP对STP的改进
5. 生成树技术进阶
常见环路主要分为二层环路和三层环路。
▫ 二层环路主要因为网络中部署了二层冗余环境,或人为的误接线缆导致,可以通过借助特定的协议或机制实现二层防环;
▫ 三层环路主要因为路由环路,可以通过动态路由协议防环和IP报文头部中的TTL字段用于防止报文被无止尽地转发。
在STP网络中,桥优先级是可以配置的,取值范围是0~ 65535,默认值为32768,可以修改但是修改值必须为4096的倍数。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址, MAC地址越小则越优先。
在命令配置里面,如果手动选为根桥,它的优先级为0,且此优先级不能修改。如果选为备份根桥,它的优先级为4096,且此优先级不能修改。而其它情况,缺省下是32768。而且如果是在接口模式下,设置优先级的命令:stp priority priority。此时,默认是128。
根桥,略,就是根据桥ID选出来的。
Cost:交换机的每个端口都有一个端口开销( Port Cost)参数,此参数表示该端口在STP中的开销值。默认情况下端口的开销和端口的带宽有关,带宽越高,开销越小。缺省情况下,华为交换机使用IEEE 802.1t标准来计算路径开销。
RPC(最短路径开销),路径开销,该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口)。非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为RPC,并生成无环树状网络。根桥的根路径开销是0。
运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍。缺省情况下,端口优先级是128。 端口ID可以用来确定端口角色。
配置BPDU包含了桥ID、路径开销和端口ID等参数。
STP操作:
1. 选举一个根桥。
2. 每个非根交换机选举一个根端口。
3. 每个网段选举一个指定端口。
4. 阻塞非根、非指定端口。
• STP中定义了三种端口角色:指定端口,根端口和预备端口(阻塞端口)。
▫ 指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。
▫ 根端口是非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。
▫ 如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞。
交换机在刚启动时都认为自己是根桥,互相发送配置BPDU进行STP运算
STP的计算过程:
首先,选举根桥。需要注意:为了确保交换网络的稳定, 建议提前规划STP组网, 并将规划为根桥的交换机的桥优先级设置为最小值0。根桥的角色可抢占。
然后,在每台非根桥(交换机)上选举一个根接口(根端口)。用处:在网络收敛后,根端口将不断的收到来自根桥的BPDU。它保证了交换机与根桥之间工作路径的唯一性和最优性。
需要注意:它的选举原则,不一定是要端口朝向根桥的才是根端口!!
选举根端口的原则:最先比较路径开销,再比较接收过来的BPDU的BID和PID,若相同就比较自己的接口ID(PID)。
1. 交换机有多个端口接入网络,各个端口都会收到BPDU报文,报文中会携带“ RootID、 RPC、 BID、 PID”等关键字段,端口会针对这些字段进行PK。
2. 首先比较根路径开销( RPC), STP协议把根路径开销作为确定根端口的重要依据。 RPC值越小,越优选,因此交换机会选RPC最小的端口作为根端口。
3. 当RPC相同时,比较上行交换机的BID, 即比较交换机各个端口收到的BPDU中的BID,值越小,越优选,因此交换机会选上行设备BID最小的端口作为根端口。
4. 当上行交换机BID相同时,比较上行交换机的PID, 即比较交换机各个端口收到的BPDU中的PID,值越小,越优先,因此交换机会选上行设备PID最小的端口作为根端口。
5. 当上行交换机的PID相同时,则比较本地交换机的PID,即比较本端交换机各个端口各自的PID,值越小,越优先,因此交换机会选端口PID最小的端口作为根端口。
按我的理解是: BID就是交换机的MAC地址,PID就是交换机对应接口的接口号。
最后,在每条链路上选举一个指定接口。
选举过程:指定端口也是通过比较RPC来确定的,选择RPC最小的作为指定端口,如果RPC相同,则比较BID和PID。需要注意,指定接口再链路上举行。一条链路只存在一个指定接口。
最最后,非指定接口被阻塞。注意:
▫ 非指定端口可以接收并处理BPDU。但不能发送BPDU,也不能转发数据帧。
▫ 根端口和指定端口既可以接收和发送BPDU,也可以转发用户数据帧。
上图搞错了,禁用状态是端口没开启。上面那个应该是从阻塞状态到侦听状态是20s。
需要注意,如果是物理链路故障(一般指接口状态关闭down):端口状态变化过程:
▫ 备用端口会从Blocking状态,迁移到Listening-Learning-Forwarding状态。
▫ 收敛时间:直连链路故障,备用端口会经过30s后恢复转发状态。
它不用像根桥一样重新选举根桥。所以只经过两个Forward Delays时间就能进入转发状态。
如果是非物理链路故障(就是接口状态是up,但是其它原因导致的):
预备端口20s后会从Blocking状态进入到Listening状态,再进入Learning状态,最终进入到Forwarding状态,进行用户流量的转发。需要50s的时间才能恢复转发状态。
因为是非接口问题,所以非根桥会一直等待根桥发送BPDU,就会等待最大MAX Age(20s)。
再来看STP生成树中,链路发生变化的问题:
大概意思就是,sw1到sw3的链路发生问题,重新选举了根桥和路径,但此时sw1的MAC地址表,由于绑定的接口还是GE0/0/3。所以他还是会从g0/0/3出去。而这种情况就需要等待MAC地址表老化300s后自动更新了,才会改变。这种情况,怎么缩短这个时间。
解决:拓扑变化过程中,根桥通过TCN BPDU报文获知生成树拓扑里发生了故障。根桥生成TC用来通知其他交换机加速老化现有的MAC地址表项。过程,省略,只需要知道,这个过程最多15s。
STP基本配置命令:省。
STP介绍就到这里了。但是STP也存在一定的缺陷,因为STP拓扑收敛慢。而在日常使用的时候,等50s的恢复时间肯定不现实,于是后面提出了RSTP协议。
RSTP对比STP:
RSTP的接口角色共有4种:根接口、指定接口(共有)、预备接口和备份接口
Alternate(预备)接口提供了从指定桥到根的另一条可切换路径,作为根接口的备份接口。
Backup(备份)接口作为指定接口的备份,提供了另一条从根桥到相应网段的备份通路。
RST也多了边缘端口,一般与用户终端设备直接连接,可以由Disabled状态直接转到Forwarding状态。
RSTP的状态规范把原来的5种状态缩减为3种。
▫ 如果不转发用户流量也不学习MAC地址,那么接口状态就是Discarding状态。
▫ 如果不转发用户流量但是学习MAC地址,那么接口状态就是Learning状态。
▫ 如果既转发用户流量又学习MAC地址,那么接口状态就是Forwarding状态。
STP/RSTP的缺陷:所有的VLAN共享一棵生成树。
虽然说STP/RSTP实现了网络拓扑快速收敛,但RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树, 因此无法在VLAN间实现数据流量的负载均衡, 链路被阻塞后将不承载任何流量, 还有可能造成部分VLAN的报文无法转发。就是阻塞后不在使用此链路造成带宽浪费。
解决:
方式一:华为公司提出了VBST( VLAN-Based Spanning Tree) 生成树解决方案。 该解决方案中, 生成树的形成是基于VLAN的, 不同VLAN间可形成相互独立的生成树, 不同VLAN内的流量沿着各自的生成树转发, 进而可实现流量的负载分担。
优缺点:
• 企业网中部署VBST:
▫ 可消除网络中可能存在的通信环路。
▫ 可实现链路的复用和流量的负载分担,进而有效地提高链路带宽的利用率。
▫ 配置和维护简单,进而可降低配置和维护成本。
• 但是如果网络中VLAN的数量较多,为每个VLAN执行独立的生成树计算将耗费交换机大量的资源。
方式二:为了弥补STP和RSTP的缺陷, IEEE于2002年发布的802.1s标准定义了MSTP。• MSTP兼容STP和RSTP, 既可以快速收敛, 又提供了数据转发的多个冗余路径, 在数据转发过程中实现VLAN数据的负载均衡。但是MSTP其实并不能保证流量是均分到每一根链路上的。于是后面提出了聚合链路的技术。
小结:在以太网交换网中部署生成树协议后, 如果网络中出现环路, 生成树协议通过拓扑计算, 可实现:
▫ 消除环路:通过阻塞冗余链路消除网络中可能存在的网络通信环路。
▫ 链路备份:当前活动的路径发生故障时, 激活冗余备份链路, 恢复网络连通性。
但是不能实现,链路负载和链路的复用。需要用到其它的有些技术。
相关文章:

HCIA-Datacom跟官方路线学习第二部分
接着前面第六章,通过VLAN技术, 可以将物理的局域网划分成多个广播域, 实现同一VLAN内的网络设备可以直接进行二层通信, 不同VLAN内的设备不可以直接进行二层通信。 第七章 生成树 在以太网交换网络会使用冗余链路, 但…...
BIO、NIO和AIO的区别
一、基础知识: I/O 模型的简单理解: 1.BIO(Blocking I/O):同步阻塞,一个线程处理一个通道上的事件。 2.NIO(Non-blocking I/O):同步非阻塞,使用选择器&…...

makefile 学习(5)完整的makefile模板
参考自: (1)深度学习部署笔记(二): g, makefile语法,makefile自己的CUDA编程模板(2)https://zhuanlan.zhihu.com/p/396448133(3) 一个挺好的工程模板,(https://github.com/shouxieai/cpp-proj-template) 1. c 编译流…...

专业远程控制如何塑造安全体系?向日葵“全流程安全闭环”解析
安全是远程控制的重中之重,作为国民级远程控制品牌,向日葵远程控制就极为注重安全远控服务的塑造。近期向日葵发布了以安全和核心的新版“向日葵15”以及同步发布《贝锐向日葵远控安全标准白皮书》(下简称《白皮书》),…...

node.js解决输出中文乱码问题
个人简介 👨🏻💻个人主页:九黎aj 🏃🏻♂️幸福源自奋斗,平凡造就不凡 🌟如果文章对你有用,麻烦关注点赞收藏走一波,感谢支持! 🌱欢迎订阅我的…...

CentOS 7 使用异步网络框架Libevent
CentOS 7 安装Libevent库 libevent github地址:https://github.com/libevent/libevent 步骤1:首先,你需要下载libevent的源代码。你可以从github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2:下载完成后&…...
枚举 B. Lorry
Problem - B - Codeforces 题目大意:给物品数量 n n n,体积为 v ( 0 ≤ v ≤ 1 e 9 ) v_{(0 \le v \le 1e9)} v(0≤v≤1e9),第一行读入 n , v n, v n,v,之后 n n n行,读入 n n n个物品,之后每行依次是体…...

ON1 Photo RAW 2024 for Mac——专业照片编辑的终极利器
ON1 Photo RAW 2024 for Mac是一款专为Mac用户打造的照片编辑器,以其强大的功能和易用的操作,让你的照片编辑工作变得轻松愉快。 一、强大的RAW处理能力 ON1 Photo RAW 2024支持大量的RAW格式照片,能够让你在编辑过程中获得更多的自由度和更…...
从word复制内容到wangEditor富文本框的时候会把html标签也复制过来,如果只想实现直接复制纯文本,有什么好的实现方式
从word复制内容到wangEditor富文本框的时候会把html标签也复制过来,如果只想实现直接复制纯文本,有什么好的实现方式? 将 Word 中的内容复制到富文本编辑器时,常常会带有大量的 HTML 标签和样式,这可能导致不必要的格式…...

项目中如何配置数据可视化展现
在现今数据驱动的时代,可视化已逐渐成为数据分析的主要途径,可视化大屏的广泛使用便应运而生。很多公司及政务机构,常利用大屏的手段展现其实力或演示业务,可视化的效果能让观者更快速的理解结果并直观的看到数据展现。因此&#…...

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用
ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用 HarmonyOS,作为一款全场景分布式操作系统,为了推动更广泛的应用开发,采用了一种先进而灵活的编程语言——ArkTS。ArkTS是在TypeScript(TS)的基础上发展而来,为HarmonyOS提供了丰富的应用开发工具,使开…...

大语言模型概述(三):基于亚马逊云科技的研究分析与实践
上期介绍了基于亚马逊云科技的大语言模型相关研究方向,以及大语言模型的训练和构建优化。本期将介绍大语言模型训练在亚马逊云科技上的最佳实践。 大语言模型训练在亚马逊云科技上的最佳实践 本章节内容,将重点关注大语言模型在亚马逊云科技上的最佳训…...

键入网址到网页显示,期间发生了什么?
文章目录 键入网址到网页显示,期间发生了什么?1. HTTP2. 真实地址查询 —— DNS3. 指南好帮手 —— 协议栈4. 可靠传输 —— TCP5. 远程定位 —— IP6. 两点传输 —— MAC7. 出口 —— 网卡8. 送别者 —— 交换机9. 出境大门 —— 路由器10. 互相扒皮 —…...

深度学习基于Python+TensorFlow+Django的水果识别系统
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介简介技术组合系统功能使用流程 二、功能三、系统四. 总结 一项目简介 # 深度学习基于PythonTensorFlowDjango的水果识别系统介绍 简介 该水果识别系统基于…...
vs动态库生成过程中还存在静态库
为什么VS生成动态库dll同时还会生成lib静态库 动态库与静态库(Windows环境下) 动态库和静态库都是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 静态库实际上是在链接时被链接到exe的,编译后,静态…...

P13 C++ 类 | 结构体内部的静态static
目录 01 前言 02 类内部创建静态变量的例子 03 在类的内部创建静态变量的作用 04 最后的话 01 前言 本期我们讨论 static 在一个类或一个结构体中的具体情况。 在几乎所有面向对象的语言中,静态在一个类中意味着特定的东西。这意味着在类的所有实例中ÿ…...

【腾讯云云上实验室-向量数据库】Tencent Cloud VectorDB在实战项目中替换Milvus测试
为什么尝试使用Tencent Cloud VectorDB替换Milvus向量库? 亮点:Tencent Cloud VectorDB支持Embedding,免去自己搭建模型的负担(搭建一个生产环境的模型实在耗费精力和体力)。 腾讯云向量数据库是什么? 腾…...

git clone -mirror 和 git clone 的区别
目录 前言两则区别git clone --mirrorgit clone 获取到的文件有什么不同瘦身仓库如何选择结语开源项目 前言 Git是一款强大的版本控制系统,通过Git可以方便地管理代码的版本和协作开发。在使用Git时,常见的操作之一就是通过git clone命令将远程仓库克隆…...

基于51单片机的公交自动报站系统
**单片机设计介绍, 基于51单片机的公交自动报站系统 文章目录 一 概要公交自动报站系统概述工作原理应用与优势 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 很高兴为您介绍基于51单片机的公交自动报站系统: 公交自动报…...
NextJS开发:Image组件的使用及缺陷
Next.js 中的 Image 组件相比于传统的 img 标签有以下几个优点: 懒加载:Image 组件自带懒加载,当页面滚动到 Image 组件所在位置时才会加载图片,从而加快页面的渲染速度。自动优化:Image 组件会自动将图片压缩、转换格…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...

沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...