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

生成树协议的构成(STP)

生成树协议(STP是最基础的)

生成树的了解

生成树协议一般对应的是接入层的设备,也就是网关设备 如:三层交换机

路由器:RIP协议等有自己的防环机制 所以不需要生成树协议来进行防环机制

因为生产树协议就是来进行防环操作的,所以我们先认识一下什么是环路。
在这里插入图片描述

如图,当PC1发出一个ARP的包后,上层交会复制转发这个请求包,先单论3号接口,会向LSW3转发,这个设备又会继续向LSW1转发,最后数据包又会回到LSW1,就形成了环路。这样的环路,会严重影响网络的性能,降低数据包的传输效率。
目标MAC全F 会洪泛

生成树的作用:专门解决二层环路问题的协议

二层环路问题有哪些:

1.广播风暴

2.MAC地址表的偏移(溢出)
在一个环路中,因为数据包会在环内一直传输,每一次传输到交换机就会记录一次MAC地址表,当环路稍微大一点的时候,交换机记录的MAC地址表的数量,超过了交换机能记录的限制,这被称为MAC地址表的溢出。(小的交换机能够接受1024条MAC地址表信息)
3.多帧复制
就是指,同一个数据包,因为环路问题导致一直在拓扑中进行传输,占据网络带宽

生成如何解决问题

生成树:需要将原本的环形拓扑结构转换为最短路径树。
生成树通过逻辑上阻塞一些接口,从而生成最短路径树,达到解决环形拓扑的目的,并且会实时的监听整个拓扑环境是否发生结构突变,并会自动将原本阻塞的一些接口重新打开,并新成新的拓扑结构

生成树分类

PVST ----PVST+ 这是思科的生成树

STP 生成树
RSTP 快速生成树
MSTP 多生成树
循序渐进

网桥(brige):简易版本的交换机 (只有两个接口,基于软件层面的转发 ,交换机迭代之前的东西)因为在STP中有很多的名词相关,但是在当今时代,不使用网桥来执行STP协议

STP 生成树协议

STP生成树协议的报文

生成树协议中的报文分为两类:
配置BPDU------用于构建生成树
TCN- BPDU----用来实时监听整个网络结构是否发生变化,一旦检测到结构变化会通告TCN-BPDU

BPDU 是在网桥在发出之间发出数据的数据存储单元的命名

配置BPDU:

这是一个配置BPDU的完整的数据报文,现在来对于每个数据进行补充说明:
在这里插入图片描述
1.PID 协议号 了解使用的是什么协议 在后面的使用中,通常是来验证对应的设备是否运行STP协议
一字节就是8比特 这里是两字节,所以就是16位二进制构成PID STP中默认值为:0

2.PVI 协议版本号,因为协议也会迭代更新 例如 配置BPDU和TCN–BPDU
STP中默认值为:0

3.BPDU Type 区分是配置BPDU和TCN–BPDU,因为TCN–BPDU只有这上面三个数据
配置BPDU 000 TCN–BPDU 080

4.flags 标志位(中文意思是旗帜):
最低位默认为0,变为1时,说明拓补结构发生变化—TCA。最高位默认为0,变为1时,对端确认收到了拓扑结构发生变化----TC
一字节但是实际上是8位二进制,在STP中只需要用到首尾俩位,中间6位是给RSTP和MSTP准备的(可以先不看)

5.Root ID 在没有选举根桥时,代表自己的BID(因为默认自己是根网桥) ,在选举后是被选举成根网桥的BID

6.RPC:非根设备到到根网桥设备的开销
开销:衡量路径优劣或资源使用程度的概念
STP中,利用比较这个值的大小,来判断,哪些路径该畅通,哪些路径应该堵塞,

7.BID 交换机的ID,用于标识网桥优先级,在选举根网桥的时候进行比较
8字节 64位二进制 由两个部分组成,前16位构成优先级,后面48构成设备的MAC地址,在选举根网桥的时候会细说。

8.PID 2字节,端口的ID 由16位二进制 ,前4位优先级,12位作为接口号

9.Message Age和时间无关,和次数有关,类似于TTL,这个值的默认值为20,每经过一个网桥减1约束交换网络的范围,超过则报文失效。

10.Max Age 和时间有关,判断对端设备是否连接通畅,2秒一次,利用回包判断是否畅通,最大时间为默认为20秒,意思就是20秒内发了10次 hello包,都没有收到回包,就意味着对端设备发生故障了。

11.Hello Time 就是10点中的发包频率,一般默认2秒一次,也就是连续发送的时间间隔。

12.状态机 学到状态机再说

TCN -BPDU

只有这三个报文在这里插入图片描述
TCN-BPDU 会从被阻塞的拓扑进行发送报文,这也就是STP协议的特点,STP协议中的阻塞,不是物理意义上的阻塞,而是通过协议来阻塞,这种阻塞不会阻断STP本身的报文传输。

TCN–BPDU-----作用:
1.通告网络结构发生了变化
2.用来刷新MAc地址表中的错误记录-----存在逐级上报机制(避免重复的刷新MAC地址表)
非根设备检测到自身网络结构发生变化,会主动向所以运行了STP的接口发送TCN-BPDU,其他设备收到之后会回复TCA-标志位位1的配置BPDU用来回复,其次会不断逐级转发,一直传输到根桥设备,之后根桥设备会主动发送TC-标志位为1的配置BPDU,最终该报文会传递到整个交换网络所有设备,这些设备收到该TC-标志位为1的报文,会将自身MAC地址表的老化时间设置为15s(默认一般为300s)加速老化,然后根据新的拓扑结构来建立新的MAC地址表。(根网桥下发指令,才能刷新)

第二个作用,用来刷新MAC地址表中的错误记录,那怎么将错误的MAC地址表刷掉呢,把所有的MAC地址的老化时间,设置为15s。

TCN-BPDU的作用的例子:

在这里插入图片描述

简单叙述一下这个图所描述的过程,
在初期的拓扑是以SWA作为根节点,SWB和SWC是逻辑断开所以呈现的虚线,这个时候,主机B想向主机A发送数据,那么就会记录相应的MAC地址表 如 : 00-05-06-07-08-BB G0/0/1 这个时候,如果SWC和SWA之间发生故障,导致断开,这个时候,SWC和SWA应该都会发现异常,在这里为了理解,就只讨论SWC了。
1.TCN 当SWC发生异常时,会向其他运行stp协议的接口发送TCN数据包,告知拓扑结构发送改变了,在图中也就是SWC的0/0/2接口,这里的SWB和SWC之间的连接,是逻辑断开,只能传输在stp协议内的报文,不能传输其他的信息,这也是逻辑断开和物理断开的区分。这里就体现了第一个作用,告知对应的接受方,拓扑结构发生了改变,只是单纯的告知,并不会有其他行为。
2.TCA 这是SWB 对 SWC进行的一个回包,告知确实收到了之前发送的TCN包,这样可以使两者通讯更加严谨,如果SWC没有收到这个包,那么就会重新发送TCN包。
3.TCN 这里的TCN相当于是一个转发的包,但是这后面的转发会有一个特点,就是会逐级的向根节点发送这个报告异常的数据包
4.TC 当根节点,也就这个拓扑中的最高级领导,收到这个报告异常的数据包时,就会发出指令,告诉下面的节点更新MAC地址表,(实际上的作用是:收到这个TC包的节点都会将MAC地址表的老化时间,从300s调整到15s,达到删除MAC地址表的目的,然后重新记录MAC地址表,形成新的MAC地址表)
5.TC 这里也就是一个转发包的作用,让拓扑中的全部节点,更新MAC地址表。这就是TCN的第二个作用,更新MAC地址表

之所以在传输告知拓扑结构发生变化时,要采用逐级上报机制,是因为我们要找到一个能够发号施令的设备,来决定当拓扑发生结构发生变化后,应该怎么做。否则,当告知上层设备拓扑发生了变化,然后上层设备就向下发出指令,那更上次的设备呢,下达的指令是否一致。所以我们只需要一个声音来决定新的拓扑结构。

这其中的TCA和TC是通过标志位为1的配置BPDU来进行的。
实际上,当选举根桥之后,只有根桥设备会主动发送配置BPDU,其余设备实际上只能转发根桥发送的配置BPDU

生成树的选举过程:

先找到根,生成的树遵循最短路径的方法

生成树选举过程中的角色

在选举生成树的过程中,我们要选举4种角色(这也是选举的顺序):
根网桥(RB):整个交换网络必须选择唯一的一个根桥设备
根端口(RP):所有非根设备必须选择唯一一个端口成为根端口,用来接收根桥发送的配置BPDU
指定端口(DP):一段链路需要选举唯一的一个角色,用来转发根桥发送的配置BPDU
非指定端口(NDP):剩下所有没有角色的端口就是非指定端口,最终需要被阻塞的端口
首先了解到在STP协议中的各种参数中,数值都是越小越优先

根网桥:根据BID的比较来选出根,小的作为根桥

BID:前16位是优先级,理论上是0-65536,但是实际上是0-61440,一般的默认数值为32768差不多是一个中间值,在stp中只使用前4位,后面的12位(vlanid的范围)是在MSTP中使用,且不用作优先级的来判定,而是和vlan联合进行使用。在前4位上,不是传统意义上的0-15,而是4096的个数,通过4096的个数来判断其中的优先级,为什么是4096呢,是因为在这个16位二进制中,我们只使用前4位来代表优先级,而在这四位的最后一位中为1时,对于这个优先级的十进制数值就变化了4096,所以符合这个优先级数值的,一定是4096的倍数关系,不然无法识别,这是我们在配置过程中所需要注意的,而61440=15*4096,所以61440的实际意义上的最大值。

MSTP 有多个根网桥 STP只有一个

当比较的对象BID相同时,就比较MAC的大小,小的作为根桥

关于BID参数,验证优先级是采用4096来进行增加的截图:
在这里插入图片描述

根端口:

根端口(RP):所有非根设备必须选择唯一一个端口成为根端口,用来接收根桥发送的配置BPDU
选举规则:
1.会比较接口的入向RPC值,会选择入向RPC值更小的接口作为根端口
RPC的计算方法:生成树RPC(开销)的计算公式===等于沿途所有入接口的开销值累加和
入向RPC值----收到的配置BPDU接口中携带的开销值的累加和
在下面这个拓扑中,LWS1作为根网桥,而LSW2中的0/0/1接口就是计算这个接口的开销,称为入向RPC值

生成树RPC(开销)的计算公式===等于沿途所有入接口的开销值累加和接口的开销值
在这里插入图片描述

这是不同接口速率所在不用标准方法下,对应的不同的开销值。
在这里插入图片描述

2.如果IRPC一致,那么会比较收到的配置BPDU中对端设备的BID大小,会选择BID更小的所对应的接口。
为什么选择BID更小的:
因为如果发生意外,根桥发生故障时,在新的拓扑图中,BID更有机会成为根网桥

3.如果对端设备BID一致,那么会比较对端设备的PID,选择更小PID对应的接口

4.如果对端设备PID一致,那么会比较自身设备的PID,选择更小PID对应的

在这里插入图片描述
在实操中,最好将这个标准都改成dotlt,标准设置成为一致,方便后续参数的比较

指定端口(DP):一段链路需要选举唯一的一个角色,用来转发根桥发送的配置BPDU

生成树RPC(开销)的计算公式===等于沿途所有入接口的开销值累加和接口的开销值
指定端口DP—设备用来转发根网桥发送的配置BPDU的接口,每段链路都需
要选择一个接口成为指定端口
1.选择接口出向RPC值最小的端口作为指定端口
出向RPC—设备发出的配置BPDU中携带的RPC值
2.会比较自身本地的配置BPDU中携带的BID,选择数值更小的
3.当本地BID一致那么会比较发出接口的pid选择接口pid小的接口作为指定端口
本地BID一致:这种在一个设备上的,自己连自己的,称为自环。
4.当收到的配置BPDU报文pid一致,那么会直接阻塞该接口

出向RPC:发出的RPC值的累加
在这里插入图片描述

非指定端口(NDP):剩下所有没有角色的端口就是非指定端口,最终需要被阻塞的端口

除根端口和指定端口外的其他端口通常被定义为非指定端口

AI资料:

在生成树协议(STP)中,RPC(Root Path Cost,根路径开销)是指从某个网桥(交换机)到根网桥的累计路径开销,它在生成树的计算中起着关键作用。虽然一般不特别强调 “入向RPC” 和 “出向RPC” 的严格区分,但可以从数据流向和端口角度来理解可能存在的差异:

入向RPC

  1. 定义:可以理解为从一个端口接收到的BPDU中所携带的、指示从对端网桥到根网桥的根路径开销值。当一个网桥从某个端口收到其他网桥发送的配置BPDU时,该BPDU里包含的Root Path Cost就是这个端口的入向RPC。
  2. 作用:用于本网桥判断从该端口进入的路径对于到达根网桥的开销情况。网桥通过比较不同端口的入向RPC,来确定哪个端口是到根网桥的最优路径,进而选择该端口作为根端口。例如,网桥有端口A和端口B,从端口A收到的BPDU中入向RPC为100,从端口B收到的BPDU中入向RPC为200,在其他条件相同的情况下,网桥会选择端口A作为根端口,因为它提供了到根网桥开销更小的路径。

出向RPC

  1. 定义:是指网桥从自身某个端口发送出去的配置BPDU中所携带的、本网桥计算的到根网桥的根路径开销值。当网桥向其他网桥发送配置BPDU时,会将自己到根网桥的累计路径开销放入BPDU中,这个开销值对于接收方网桥而言就是入向RPC,而对于发送方网桥就是出向RPC。
  2. 作用:向其他网桥传达本网桥到根网桥的路径开销信息,帮助其他网桥进行路径选择和生成树计算。例如,网桥X计算出自己到根网桥的路径开销为150,当它通过端口1向网桥Y发送配置BPDU时,会将这个150的出向RPC值包含在BPDU中。网桥Y收到后,根据这个入向RPC(从网桥X的角度就是出向RPC),结合自身情况判断是否通过与网桥X相连的端口来选择到根网桥的路径。

总体而言,入向RPC和出向RPC本质上都是根路径开销,只是从不同的数据流向和端口视角进行描述,它们共同服务于生成树协议中各网桥对根路径的判断和生成树拓扑的构建 。

相关文章:

  • 贝叶斯均衡
  • 快速认识:数据库、数仓(数据仓库)、数据湖与数据运河
  • 2025第十七届“华中杯”大学生数学建模挑战赛题目B 题 校园共享单车的调度与维护问题完整成品正文33页(不含附录)文章思路 模型 代码 结果分享
  • 【技术派后端篇】canal实现MySQL/Redis缓存一致性
  • OpenAI 推出一对 AI 推理模型 o3 和 o4-mini
  • 【数据结构_10】二叉树(1)
  • 解析检验平板:设备还是非设备?深入了解其功能与应用(北重铸铁平台厂家)
  • 三、小白如何用Pygame制作一款跑酷类游戏(按键图片和距离的计算)
  • Android Mainline简介
  • 16位海明码解码电路设计教程
  • Web安全和渗透测试--day6--sql注入--part 1
  • ​使用APlayer前端封装音频播放
  • SPI和IIC的区别
  • 项目优化中ini配置文件解析器
  • 【深度学习】详解矩阵乘法、点积,内积,外积、哈达玛积极其应用|tensor系列02
  • 数据中台(大数据平台)之数据质量管理
  • QML之Overlay
  • 目标分割模型优化自身参数都是梯度下降算法吗?
  • 【shell】终端文本的颜色和样式打印
  • 滑动窗口209. 长度最小的子数组
  • 习近平向“和平薪火 时代新章——纪念中国人民抗日战争和苏联伟大卫国战争胜利80周年中俄人文交流活动”致贺信
  • 央行:全力推进一揽子金融政策加快落地
  • 央行:5月15日起下调金融机构存款准备金率0.5个百分点
  • 美政府称不再对哈佛大学提供联邦资助
  • 特朗普:对所有在国外制作进入美国的电影征收100%关税
  • 贵州黔西市游船倾覆事故致9人死亡1人失联