OSI 二层技术之STP生成树协议

2023-01-01 19:11:30 来源:51CTO博客

STP生成树协议

作用:在二层网络中有链路备份的情况下可能存在网络环路,STP生成树协议就是为了破除这个环路

工作原理:


(资料图)

一、选择根桥

交换机启动时,每个交换机都认为自己是根桥,发送自己交换机设备的配置BPDU参数来选举根桥,主要通过BID来确认根桥。

BID=优先级+MAC地址

先比较优先级,越小越优,在比较MAC地址,越小越优。

二、在非根桥上选举根端口

确定了根交换机后,然后选举根端口,根端口是非根交换机接收最好的配置BPDU的端口。根交换机确定后,非根桥在所有端口中选举出一个最优的BPDU端口作为根端口。通过配置BPDU的四个参数来比较

Root ID 根桥的BID

RPC 到根交换机的距离

BID 发送配置BPDU的交换机的BID

PID 端口的优先级+端口编号

三、选举指定端口

在非根交换机上确定了根端口后,通过根端口计算出指定端口的参数,然后用算出来的参数去比较设备本身的指定端口参数,如果计算出来的优,那么该端口为指定端口,如果设备本身的指定端口优,那么该端口为AP端口。

根交换机上的所有端口都是指定端口

四、确定端口状态

disable 关闭状态 端口物理层处于关闭或者shutdown,不处理任何数据。

blokning 阻塞状态 端口启用STP协议后进入到该状态,该状态下设备只接收处理配置BPDU,不发送任何数据,不学习MAC地址。

listning 监听状态 端口正在选举端口角色,该状态下设备接收处理配置BPDU,发送配置BPDU,不学习MAC地址,不转发用户数据。

learning 学习状态 端口认为自己是根端口或者指定端口的时候,该状态下,设备接收处理配置BPDU,发送配置BPDU,学习MAC地址,不转发用户数据。

forwarding 转发状态,该状态是最终状态, 接收处理配置BPDU,发送配置BPDU,学习MAC地址,转发用户数据。

在生成树中,只有blokning状态和forwarding状态是最终状态,代表最稳定。

五、当生成树出现问题。

1、当RP端口失效,且有AP端口的情况下,AP成为新的根端口。经过30S的转发延迟。

2、当RP端口失效,没有AP端口的情况下,DP成为新的根端口。经历50S的才能进入到转发状态。20S的端口配置BPDU的老化时间,30S的转发延迟。

3、当根桥失效,会重新选举根桥,需要50S才能恢复网络。

当DP变为RP时,状态从forwarding立即转变为discarding,在经历2个转发延迟,才进入到forwarding,所以至少需要30S

当交换机的端口角色发生变化时,MAC地址表固定的300S老化时间,导致在这段时间内 ,部分主机无法通信。所以STP改进了这个机制。拓扑变更通知简称TC泛洪。

拓扑变化的条件

1、所有端口进入到Forwarding状态,就会认为拓扑发生变化。

2、根端口失效或者恢复时,也会认为拓扑发生变化。

当拓扑发生变化时,MAC地址表如何老化?

1、当满足以上2个条件时,交换机则认为拓扑发生变化,沿着根端口发送,TCN BPDU,通知上游设备,

2、上游设备收到拓扑变更通知(TCN)后,会立即回复TAC确认消息,告诉下游设备收到了,下游设备立即停止发送TCN。上游设备会继续沿着根端口朝着根桥发送。

3、根桥收到会立即从所有的指定端口发送TC置位的BPDU。持续35S

4、非根交换机收到TC置为的BPDU后,将自己的MAC地址表项在15S内老化。

但是当主机连接到交换机时,交换机的端口forwarding了,会发生TCN拓扑变化通知,导致网络产生震荡。所以在STP,RSTP,MSTP的网络中,连接三层设备的接口都必须配置边缘端口。

边缘端口的好处:

1、配置边缘端口后,不发送TCN置位的BPDU,

2、配置边缘端口后,收到TC置位的BPDU,不老化MAC地址表

3、配置边缘端口后,端口从discarding状态立即变为Forwarding状态.

标签: 发生变化 接收处理 用户数据

上一篇:全球今头条!【JVM故障问题排查心得】「内存诊断系列」Xmx和Xms的大小是小于Docker容器以及Pod的大小的,为啥还是会出现OOMKilled?
下一篇:Python__20-- 常见Bug