STP生成树协议详解
一、STP作用
如果链路断开或节点故障,那么互联的设备就无法正常通信了,这类网络问题叫做单点故障。没有备份的链路或节点,出现故障会直接断网。如果要提供 7×24 小时不间断的服务,那就需要在网络中提前部署冗余。避免出现单点故障,合理的做法是在网络中的关键设备和关键链路添加冗余。所以为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表振荡等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。
从不同的端口收到相同的数据帧,导致 MAC 地址表项发生变化的现象,就叫做 MAC 地址漂移,这种现象说明网络中可能存在环路。
广播帧不停泛洪的现象,叫做广播风暴。
冗余链路带来的风险。重复帧、MAC 地址漂移和广播风暴,都是由一个广播帧引起的,可是网络中不可避免出现广播帧,也不能因为二层环路问题而忽略冗余链路增加网络可靠性的好处。
二、STP的作用
a)Stp通过阻塞端口来消除环路,并能够实现链路备份目的
b)消除了广播风暴
c)物理链路冗余,网络变成了层次化结构的网络
三、STP操作
选举一个根桥 每个非根交换机选举一个根端口 每个网段选举一个指定端口 阻塞非根,非指定端口

桥id 越小,优先级越高
四、STP名词解释:
根桥:生成树里面的‘老大’,桥id最小 备份根桥:生成树里面的“二把手”,老大挂了的时候,我当老大,桥ID第二小。 非根交换机:干活的小弟,都有一个根端口 根端口:离根桥最近的端口 指定端口:根桥所有参与生成树选举的端口,都一定是指定端口 非根非指定端口:被阻塞的端口---备用链路的端口 路径开销:是端口Cost值,可以用来选择最优的路径,值越小越优。根路径开销是端口到达根桥的过程中累计的路径开销。 BID:桥ID:是由桥优先级和桥MAC地址构成,桥优先级为高16位,MAC地址是低48位。 PID:端口ID:是由端口优先级和端口号构成,端口优先级为高4位,端口号
五、生成树选举办法
根桥交换机,备份根桥交换机,非根交换机
根端口,指定端口,非根非指定端口(阻塞端口/预备端口)
六、生成树选举因素
第一种根桥选举因素:优先级,MAC地址
第二种端口选举因素:路径开销>桥ID>对端端口ID>本端端口ID
如果我们要改变根桥直连端口的接口属性,要修改 路径开销。
七、根桥选举:
刚启动STP时,每台交换机都认为自己是根桥
根桥所有参与生成树选举的端口,都一定是指定端口
根桥交换机指定端口直连的交换机端口,都一定是指定端口
根桥:在参与生成树选举的网络里面 桥id肯定是最小的
备份根桥:在参与生成树选举的网络里面 桥id肯定是次优的存在
影响根桥选举的因素:
1)优先级(交换机默认优先级是32768)越小越优先,0的优先级最高。 2)优先级一样,看MAC地址表,最小的就是根桥。 3)两种方式:优先级最小、MAC地址最小
八、根端口的选举
非根交换机在选举根端口时分别依据该端口的根路径开销、桥ID、对端PID和本端PID(接了hub的情况才会用到本端PID)
未被选举为根端口或指定端口的为预备口
九、端口五种转换状态
disable(端口未启用状态或初始状态,端口不处理任何数据端口状态为down)禁用状态。端口即不处理和转发BPDU报文,也不转发用户流量
blocking(阻塞状态,维持20秒)阻察状态。端口仅仅能接受并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态
listening(监听状态,参与生成树计算,接受并发送BPDU报文维持15秒)侦听状态 端口可以转发BPDU报文,但不能转发用户流量
learning(学习状态,端口不转发用户流量,学习MAC表,参与生成树计算,接受并发送BPDU报文,防止环路维持15秒)学习状态端口可以根据收到的用户流量构建MAC地址表,但不转发用户流量。增加学习状态为了防止临时环路
forwarding(转发状态)转发状态端口即可以转发用户流量也可以转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态
十、STP的一些命令
Stp enable 关闭生成树
Display mac-address查看MAC地址表
Stp priority 设置交换机优先级(取值范围0-61440,默认优先级32768)
Display STP 查看生成树日志
Display stp brief查看接口是什么端口
stp cost cost命令取决于路径开销计算方法:
使用华为的私有计算方法时,cost取值范围是1~200000。
使用IEEE 802.1d标准方法时,cost取值范围是1~65535。
使用IEEE 802.1t标准方法时,cost取值范围是1~200000000。
stp pathcost-standard { dot1d-1998 | dot1t | legacy }命令用来配置指定交换机上路径开销值的标准。
stp mode { mstp | stp | rstp }命令用来配置交换机的生成树协议模式
修改生成树优先级:
Stp pri +优先级数(0-61440)必须是4096的倍数
32768 交换机默认优先级 *2得到B类地址总数
65536 B类地址总数 /2 得到交换机默认优先级
注意:想要一个交换机一定为根桥,修改优先级,优先级可以为0。 在后面加入新设备时,要使原根桥不变可以增大加入的新设备的优先级。 交换机默认情况下直连的路径开销最小,但人工修改后则修改的可以为最小。
相关文章:
STP生成树协议详解
一、STP作用 如果链路断开或节点故障,那么互联的设备就无法正常通信了,这类网络问题叫做单点故障。没有备份的链路或节点,出现故障会直接断网。如果要提供 724 小时不间断的服务,那就需要在网络中提前部署冗余。避免出现单点故障…...
CentOS 6/7/8 操作系统镜像下载
CentOS Mirrors List 编辑 DownloadAbout About CentOS Frequently Asked Questions (FAQs) Special Interest Groups (SIGs) CentOS Variants Governance Community Contribute Forums Mailing Lists IRC Calendar & IRC Meeting List Planet Submit a Bug Stories Doc…...
中国社科院与美国杜兰大学金融管理硕士---不将就的人生
“万般皆下品,惟有读书高”、“书中自有颜如玉,书中自有黄金屋”,古往今来,读书的好处为人们所重视。从而想拿到学历没有知识的沉淀,没有一定的学识水平,又怎么能拿到含金量颇高的学历呢?退一步…...
教程更新 | 持续开源 RK3568驱动指南-驱动基础进阶篇
《iTOP-RK3568开发板驱动开发指南》手册文档更新,手册内容对应视频教程,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。 ✦ 第一篇 驱动基础 第1章 前言 第2章 你好!内核源码 第3章 …...
Jmeter测试关联接口
Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,本文主要介绍jmeter通过正则表达式提取器来实现接口关联的方式,可供参考。 一、实例场景: 有如下两个接口,通过正则表达式提取器,将第一…...
C++之基于Winsock2封装UDPServer与UDPClient
文章目录 Socket过程UDPServer.hUDPServer.cppUDPClient.hUDPClient.cppmain.cppCMakeLists.txt测试截图 Socket过程 UDPServer UDPClient UDPServer.h #ifndef UDPSERVER_H_INCLUDED #define UDPSERVER_H_INCLUDED#include <iostream> #include <string> #inclu…...
为什么说指针是c语言的灵魂?
为什么说指针是c语言的灵魂? 语言主要操作的对象是数据,c语言里面能够有大容量数据的地方就是指针指向的heap内存。从这 个角度来看,确实指针就是数据的灵魂。最近很多小伙伴找我,说想要一些c语言资料,然后我根据自己…...
性能测试jmeter命令行运行+html测试报告解读
windows下打开jmeter的运行窗口,可以看到提示不要用GUI模式进行负载测试,如果要用负载测试,用cli模式,因为GUI模式运行jmeter比较消耗性能。 命令行模式 windows下找到jemeter所在文件夹,打开cmd输入命令。 jmeter -n…...
Service Mesh和Kubernetes:加强微服务的通信与安全性
文章目录 什么是Service Mesh?Service Mesh的优势1. 流量控制2. 安全性3. 可观测性 Istio:Service Mesh的领军者流量管理安全性可观测性 Linkerd:轻量级Service Mesh流量管理安全性可观测性 Istio vs. Linkerd实际应用结论 🎈个人…...
『吴秋霖赠书活动 | 第三期』《Python asyncio并发编程》
文章目录 1. 写在前面2. 浅谈asyncio3. Python asyncio并发编程 不再受限于!asyncio异步让你的程序在高并发时翱翔自如! 声明:赠书活动是博主与出版社达成合作,只属于粉丝的专属福利 本期书籍:《Python asyncio并发编程…...
数字孪生在工厂领域的应用和优势
工厂运营一直以来都是高度复杂且信息密集的任务。然而,随着数字孪生技术的出现,工厂领域正在经历一场前所未有的革命。本文将介绍数字孪生在工厂领域的应用,以及它如何重新定义了制造业的运营方式。 什么是数字孪生? 数字孪生是…...
如何写代码实现VRP问题中车辆容量限制及时间窗要求(python)
问题研究背景 使用遗传模拟退火算法求解如下10个卸货点的VRPTW问题。为了使研究的问题更加有意义,本人将时间限理解为服务点一天的具体可以允许配送的时间。 如果不要求车辆从配送中心出发的时间是统一的并且为0时刻,那么就默认第一个配送节点是一定能赶…...
C语言求解汉诺塔问题
完整代码: /*Hanoi(汉诺)塔问题。这是一个古典的数学问题:古代有一个梵塔,塔内有 3 个 座 A,B,C,开始时 A 座上有 64 个盘子,盘子大小不等,大的在下,小的在上。有一个老…...
安装LSF
安装需求 基本硬件配置建议: CPU 4核或以上(LSF 没有最低 CPU 需求,此处只是建议)内存 8G或以上( 当没有作业在运行时, Linux x86-64 上集群中的 LSF 守护程序将使用大约 488 MB 内存。)交换…...
百度的新想象力在哪?
理解中国大模型,百度是一个窗口。这个窗口的特殊性不仅在于变化本身,而是在于百度本身就是那个窗口。 作者|皮爷 出品|产业家 沿着首钢园北区向西北步行10分钟,就能看到一个高约90米的大跳台,在工业园钢铁痕迹的印衬下&#…...
Linux使用rpm包安装mysql5.7
以前安装过mysql 前言:检查以前是否装有mysql rpm -qa|grep -i mysql安装了会显示: bt-mysql57-5.7.31-1.el7.x86_64 停止mysql服务和删除之前安装的mysql rpm -e bt-mysql57-5.7.31-1.el7.x86_64查找并删除mysql相关目录 find / -name mysql/va…...
LLDB 三种输出方式 对比及原理探索
前言 当我们的项目过大时,就会使我们项目的编译耗时过长,如何在项目运行时进项代码调试,熟练使用LLDB就可以解决这个难题,大幅度提高我们的开发效率。 什么是 LLDB? LLDB是英文Low Lever Debug的缩写,是XCode内置的为我们开发者提供的调试工具,它与LLVM编译器一起,存…...
基于架构软件设计-架构真题(五十八)
“41”视图主要描述系统逻辑架构。其中()视图用于描述对象模型,并说明系统应该为用户提供哪些服务。 过程开发物理逻辑 解析: “41”有逻辑视图、过程视图、物理视图、开发视图和架构的描述。 逻辑视图:设计的对象…...
jvm实现的锁优化
目录 轻量级锁 轻量级锁的工作流程 轻量级锁的解锁 偏向锁 偏向锁的流程: 偏向锁和轻量级锁机区别: 其他优化 自旋锁和自适应自旋锁 锁消除 锁粗化 轻量级锁 “轻量级” 是相对于使用操作系统互斥量来实现的传统锁而言的,因此传统的…...
JMeter做http接口功能测试
1. 普通的以key-value传参的get请求 e.g. 获取用户信息 添加http请求;填写服务器域名或IP;方法选GET;填写路径;添加参数;运行并查看结果。 2. 以Json串传参的post请求 e.g. 获取用户余额 添加http请求;…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
