当前位置: 首页 > news >正文

【交换技术原理-STP生成树】

交换技术原理-生成树

  • 一、概念
  • 二、要点
    • 1、根桥
    • 2、根端口
    • 3、指定端口
    • 4、阻塞口
    • 5、端口状态
    • 6、BPDU

一、概念

1.交换机之间如果多条线路互连成环,会造成:广播风暴,广播包在环里无限转圈,卡死全网;MAC地址表翻滚,交换机不停改MAC表,彻底混乱;重复帧复制,数据包被反复转发
2.生成树是为了防止交换机环路,自动把多余的链路 “逻辑关掉”,只留一条最优路径,网络断了再自动切换,即:既能有冗余备份链路,又不会形成环路
3.生成树做了哪几件事:选一个老大:根桥(Root Bridge);每个交换机选一条最优路到根桥:根端口;每个网段选一个负责转发的口指定端口,剩下没用的口自动阻塞:Blocking口(生成树最重要的就是判断根桥、根端口、指定端口、阻塞口)。

二、要点

1、根桥

1.所有交换机初始时都认为自己是根桥最低BID(桥ID)的交换机作为根桥,并通过BPDU报文交换信息,最终选出根桥。
2.选举根桥,比较
BID=桥优先级+MAC地址
,优先级越小越优先(默认32768),优先级一样看MAC,MAC越小越优先
3.也可以看端口状态判断根桥:若运行STP的交换机上所显示的所有端口均处于转发状态,则该交换机为根桥交换机。
4.备份根桥选举:配置stp root secondary命令来指定一个交换机作为备份根桥,如果根桥发生故障,备份根桥将会接替根桥角色,继续维持网络的稳定运行,此时设备的优先级自动设置为4096,这个值是一个相对较高的优先级,因此备份根桥不会成为普通的STP环境中的根桥,只有在原根桥失效的情况下才会提升为根桥。

2、根端口

1.非根交换机到根桥开销(COST)最小的口,就是根端口,是该交换机通往根桥的最佳路径(根端口不是根桥上的端口,而是连接根桥的交换机中COST最低的端口)。
2.如果开销相同,对端 BID → 对端端口 ID → 本端端口 ID,即比较顺序Cost、桥ID、端口ID
3.每个非根桥有一个根端口,通常只有一个

3、指定端口

1.指定端口用于在不与根桥直接连接的网段上转发配置消息BPDU,同一网段中只有一个端口会成为指定端口,而其他的端口则会被阻塞,以防止环路的形成。
2.指定端口负责向本地网段上的其他交换机端口传播BPDU,确保整个网段上的交换机都能接收到来自根桥的BPDU,每条链路都会有一个指定端口。
3.通过调整端口优先级桥ID来影响指定端口的选举过程,可以通过降低端口的路径成本或桥ID来增加其成为指定端口的概率。
4.路径成本越低桥ID越小端口ID越小的端口更有可能成为指定端口。
5.根桥端口均为指定端口
6.每条链路上只有一个指定端口。

4、阻塞口

1.不被选为根端口或指定端口的其他端口将被阻塞,阻塞端口不参与数据传输。
2.Blocking阻塞端口是为了防止环路的形成,一旦网络拓扑发生变化,STP会重新计算生成树,可能会解除某些阻塞端口的状态,使其能够转发数据。
3.被堵塞的端口可能是:非根端口或非指定端口

5、端口状态

1.Blocking阻塞:不转发,只收BPDU
2.Listening监听:选角色不学习MAC
3.Learning学习:学习MAC不转发
4.Forwarding转发:正常收发数据
5.Disabled禁用:手动关闭
从Blocking阻塞到Forwarding转发,默认要30秒15s监听 + 15s学习)。

6、BPDU

1.BPDU桥协议数据单元是STP协议中用于交换信息的协议报文,交换机之间通过BPDU报文交换信息,以确定网络拓扑结构根桥的位置,BPDU主要有两种类型:配置BPDU拓扑变更通知BPDU
2.拓扑变更处理:当网络拓扑发生变化时,非根交换机会通过根端口发送TCN BPDU通知根桥,根桥会发送带有TC标志的BPDU,以通知整个网络拓扑结构发生变化。
3.报文中包含了一系列字段,用以承载生成树协议所需的信息:Root ID、Cost of Path、Bridge ID、Port ID、Message Age、Max Age、Hello Time。
4.Cost of Path通常与链路的带宽成反比,Cost与端口的带宽有关,带宽越大,Cost越小
5.Port ID有助于识别网络中特定的端口,Port ID总共16bit
6.Message Age记录了BPDU自发送以来的时间,用于计算BPDU的新鲜度
7.Max Age指定了BPDU在网络中被认为是有效的最长时间老化时间,默认值通常是20秒
8.Hello Time指定了根桥发送BPDU的时间间隔,用于保持网络拓扑的稳定性,默认值通常是2秒

http://www.jsqmd.com/news/646775/

相关文章:

  • 香橙派5 NPU实战:从零部署Yolov5模型并实现实时推理
  • 5分钟搞定!用扣子+飞连实战搭建企业级产品问答机器人(附完整配置流程)
  • Open CASCADE+Qt:构建交互式3D显示窗口(实战篇)
  • Claude AI 助力发现 Apache ActiveMQ 潜伏 13 年 RCE 漏洞
  • 八自由度车辆动力学Simulink仿真模型(包括.slx文件、.m车辆参数文件及Word说明文档)
  • 【计算机网络】VRRP协议实战:高可用网络架构设计与故障转移优化
  • 题解:洛谷 B2094 不与最大数相同的数字之和
  • ESP32开发实战:用vTaskList()诊断任务栈溢出与内存优化的5个技巧
  • Memtest86+终极指南:如何快速检测内存故障的完整教程
  • CAD红绿灯
  • JavaScript break 和 continue 语句
  • 手把手教你用VASP 6.4在OpenBayes云平台训练硅的机器学习力场(附声子谱验证)
  • 别再手动算CRC了!用OutputLogic.com的代码生成器,5分钟搞定FPGA的Verilog实现
  • AI 路由暗藏漏洞,恶意攻击可盗取核心敏感信息
  • 告别马赛克!用Pytorch复现SRResNet,手把手教你给老照片‘无损放大’
  • DeepSeek推理模型实战:如何利用CoT机制提升AI回答的可解释性(Python示例)
  • 题解:洛谷 B2095 白细胞计数
  • GSYVideoPlayer - 多核切换与高级渲染模式实战指南
  • 20252417 实验二《Python程序设计》实验报告
  • moveit servo 发指令给real arm
  • Llama-3.2V-11B-cot教育领域效果:自动批改作业与生成个性化习题
  • MeshLab进阶技巧:如何用边界提取+二次裁剪实现复杂模型分块(以STL文件为例)
  • Chromium魔改实战:如何打造一个随机指纹的高匿名爬虫浏览器(附Canvas指纹绕过技巧)
  • 告别手动启动:用NSSM把Nginx、Redis、Java Jar包一键注册为Windows服务(保姆级教程)
  • 刚刚,Anthropic官方Harness被LangChain悄悄开源了~
  • CAN FD与传统CAN混用方案:基于STM32G473的双模式配置详解
  • 我用100行Go代码写了一个简易的Git服务器
  • 从毕设到实战:手把手教你用Spark MLlib + SpringBoot搭建一个可运行的电商推荐系统
  • 超纯水处理系统案例:西门子200SMART加显控触摸屏,30吨双级反渗透+EDI工艺控制程序
  • 卷积改进与轻量化:动态卷积 DyConv 在 YOLOv8 中的实现:输入自适应卷积核