STP技术:构建无环网络的基石

数通系列文章目录


文章目录

目录

系列文章目录

桥ID(BID):设备的唯一标识

Cost:链路质量的衡量标准

现网环路现象及其危害

STP技术的诞生背景

根桥选举与STP端口选举条件

STP端口的选举与状态转换

RPC与BPDU的作用

STP拓扑的建立与维护

STP的端口的状态

阻塞端口的断线恢复时间

两种BPDU

总结


前言

该文章介绍的为数通基础防环协议


STP技术详解:桥ID、Cost与无环网络的构建

在复杂的网络环境中,STP(生成树协议)作为确保二层网络无环的关键技术,扮演着至关重要的角色。STP通过一系列复杂的选举和状态转换机制,有效避免了广播风暴和MAC地址漂移等网络问题,保障了网络的稳定性和可靠性。本文将深入探讨STP技术中的桥ID、Cost以及STP的选举和状态转换过程。

桥ID(BID):设备的唯一标识

每个运行STP协议的设备都拥有一个独特的桥ID,该ID由设备的MAC地址和一个可调整的优先级值组成。由于MAC地址是设备固有的,无法更改,因此优先级值成为调整桥ID、影响STP选举结果的重要手段。优先级值以4096为倍数,默认值为32768。桥ID由16位的优先级和48位的MAC地址共同构成,确保了设备在网络中的唯一性。

Cost:链路质量的衡量标准

在STP网络中,Cost是衡量链路质量的重要指标,它代表了设备之间链路带宽的倒数。当网络中的设备选举出根桥后,其他设备在选择端口角色时,会基于Cost值来比较到根桥的链路消耗。Cost值越小,表示链路带宽越大,链路质量越高。通过比较不同路径的Cost总和,STP能够选择出最优的转发路径,并阻塞其他可能形成环路的路径。

现网环路现象及其危害

广播风暴:在成环的网络中,广播报文会像圆环一样无限循环传输,导致链路满载、资源浪费和网络拥堵。

MAC地址漂移:当设备的两个端口都学习到同一个MAC地址时,由于MAC表限制一个MAC只能绑定一个端口,因此端口的MAC地址会在两个端口间不断移动,造成网络的不稳定。

STP技术的诞生背景

STP技术的出现,正是为了解决上述现网中的环路问题。在二层网络中,为了提高可靠性和可用性,常常设计冗余链路。然而,这些冗余链路也带来了环路的风险。STP通过选举根桥、指定端口和阻塞端口,构建了一个无环的转发拓扑,从而有效避免了环路引起的各种问题。

根桥选举与STP端口选举条件

根桥选举:网络中的设备通过比较桥ID大小来选举根桥,桥ID越小的设备越优先成为根桥。

STP端口选举条件

  1. 根桥ID:8字节,用于选举根桥。
  2. RPC(根路径开销):4字节,表示设备到根桥链路上的开销总和。
  3. 桥ID:再次比较桥ID,用于确定指定端口(DP)和根端口(RP)。
  4. 端口ID:2字节,由优先级和端口号组成,用于进一步区分端口角色。

STP端口的选举与状态转换

STP端口的选举过程涉及BPDU(桥路径数据单元)的发送与接收。首先,所有设备都认为自己是根桥并发送配置BPDU。通过比较BPDU中的信息,设备最终选举出根桥、指定端口和根端口。阻塞端口则仅用于接收BPDU以维持STP网络的同步。

STP端口的状态转换包括阻塞状态、侦听状态、学习状态和转发状态。端口在这些状态之间转换,以确保网络在拓扑变化时能够平稳过渡并避免临时环路的出现。

RPC与BPDU的作用

RPC(根路径开销)是STP端口选举中的一个重要条件,它决定了设备选择哪条链路作为转发路径。BPDU则是STP设备之间交流的语言,包括配置BPDU和TCN BPDU两种。配置BPDU用于建立STP树形拓扑,而TCN BPDU则在网络拓扑发生变化时触发网络重新收敛。

STP拓扑的建立与维护

STP拓扑的建立过程是一个动态的过程,涉及设备的开机自检、BPDU的发送与接收、端口角色的选举与状态转换等多个环节。一旦STP拓扑建立完成,网络就进入了一个相对稳定的状态。然而,当网络拓扑发生变化时(如链路故障、设备重启等),STP会立即触发重新收敛过程,以确保网络的稳定性和可靠性。

一开始所有的设备都开机都认为设备自己为根桥,自身的端口都为指定端口,向其他设备发送自身的配置BPDU,同样的设备也接收其他设备的配置BPDU,当设备从不同的接口接到其他设备配置BPDU就会和自己从该端口发送出的配置BPDU进行一个比较,当设备发现自身该端口的配置BPDU更加优时,将丢弃该端口接收到BPDU,该指定端口的角色不发生该变,当设备的两个端口的角色都为指定端口时,该设备被认为是该网络当中的根桥,根桥会向其他设备一直发送自身的配置BPDU

当一个设备接收当其他设备发送的配置BPDU时,发现自身的BPDU没有对端发送的配置BPDU优时,则放弃自身的BPDU,将接收到的更优的配置BPDU替换为自己这个端口的桥BPDU,同时增加配置BPDU的cost累加,该端口替换为更优的配置BPDU的时,该端口角色就由指定端口转变为根端口

当一个设备的接到的两个端口的端口角色都由指定端口转变为根端口时,设备会将自身的根端口配置BPDU在进行计算,当端口的配置BPDU,没有经过计算的配置BPDU更加优时,要进行阻塞该端口。

BPDU的报文字段

转发时延

转发时延是为防止临时环路的出现,当多个设备同时相互连接形成一个环形网络时,要是所有的端口都处于转发状态就会造成临时环路的情况的发生,所以为避免临时环路的产生,让端口接入时不会立刻成为转发状态时,而是还有两个状态要进行分别是侦听和学习两种状态,给足了时间进行端口角色的选举。

老化时间

当根端口接收不到来自指定端口的BPDU多少时间就将阻塞端口变为根端口的时间为20s

消息期限

设备发送的BPDU在链路当中传输过程的每一台设备的都加一

hello time

运行STP的设备在每个hello time后会向其他设备发送hello报文确认该链路是否有故障,相邻两个BPDU的时间间隔

根桥

因为树根是没有环路的,所以我们在stp当中引入这个根桥这个概念,设备选举出的根桥为所有设备逻辑上的中心,根桥会一直像下游设备发送配置BPDU,保证拓扑信息的一直延续。

flags拓扑变化标志

最低位=TC,拓扑变化

最高位=TCA,拓扑变化确认

STP的端口的状态

阻塞状态

不学习不转发,但是接收对端传来的BPUD,但是是备用的端口,当根端口出现问题时启动。

侦听状态

不学习MAC不转发流量,但是接收BPDU,时间为15s

主要选举出指定端口和根端口,阻塞端口,过渡状态

学习状态

只学习MAC不转发流量,接收BPDU,时间为15s

过渡状态,为设备构建MAC地址表

转发状态

转发流量,并且转发配置BPDU

只有指定端口和根端口会为转发状态

禁用或down状态

为插电的状态或线路出现出现故障

端口的状态方面是可以相互进行转化的

阻塞端口的断线恢复时间

直接断线

因为是设备自身的出现的断线,设备直接就感受到的直接进行侦听,学习时间为30s

远端断线

不是设备本身出现的问题,所以要等定时器的超时时间20秒过后才开始进行侦听,学习,在转发,加起来为50s

两种BPDU

中文简称为桥路径数据单元

是运行STP设备之间交流的是一种报文或者是一种语言

配置BPDU,0x00

配置BPDU为设备将自身的的BPDU发出去进行配置比较,为了建立一个树

TCN BPDU,0x80

TCN BPDU

当一个网络当中的设备拓扑方式发生了改变,网络当中的一个设备接收到感知到变化的设备的一个TCN报文,接收设备接收到TCN报文后就会发出TCA报文给感知设备进行一个确认设备收到了该报文,接收设备就会向根桥发送一个TCN报文,当根桥收到其他设备发送的TCN报文时,根桥会向整个STP域当中的所有设备发送TC报文,让STP域当中是设备清除设备端口半袋绑定的MAC地址

当下层设备感知到网络拓扑发生变化时,向上层设备发送一个TCN BPDU,直到根桥接收到,根桥清除自身所有的端口的MAC地址,并向下层设备发送一个TC BPDU让所有的设备的清除自身设备的端口MAC地址

产生条件

端口变为forwarding状态

指定端口接收到TCN BPDU,复制TCN BPDU并发往根桥


总结

STP技术作为构建无环网络的重要基石,通过桥ID、Cost等机制有效避免了广播风暴和MAC地址漂移等网络问题。通过深入理解STP的工作原理和配置方法,网络管理员可以更加高效地管理和优化网络性能,确保网络的稳定性和可靠性。在未来的网络发展中,STP技术将继续发挥重要作用并推动网络技术的不断进步

相关推荐
_oP_i37 分钟前
HTTP 请求Media typetext/plain application/json text/json区别
网络协议·http·json
OkeyProxy2 小时前
HTTP、HTTPS和SOCKS5代理協議
网络协议·https·云计算·代理服务器·海外ip代理
zquwei2 小时前
SpringCloudGateway+Nacos注册与转发Netty+WebSocket
java·网络·分布式·后端·websocket·网络协议·spring
群联云防护小杜3 小时前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
ihengshuai3 小时前
HTTP协议及安全防范
网络协议·安全·http
野蛮的大西瓜3 小时前
开源呼叫中心中,如何将ASR与IVR菜单结合,实现动态的IVR交互
人工智能·机器人·自动化·音视频·信息与通信
MuLogin_Browser5 小时前
如何保障多个Facebook账号稳定运行:一账号一稳定IP?
服务器·tcp/ip·facebook
我叫czc7 小时前
【python高级】342-TCP服务器开发流程
服务器·网络·tcp/ip
a_weng087 小时前
CS 144 check6: buiding an IP router
网络·网络协议·计算机网络
码农丁丁7 小时前
[前端]HTTP库Axios
前端·网络协议·http·aixos