首页 > 其他分享 >RSTP 的机制

RSTP 的机制

时间:2024-04-01 17:55:05浏览次数:22  
标签:BPDU RSTP 端口 网桥 STP 机制 Forwarding

什么是 RSTP 协议

2001 年,IEEE 引入了快速生成树协议(RSTP)作为IEEE 802.1w。RSTP 随后被纳入 IEEE 802.1D-2004,使原来的生成树协议(STP)标准过时。RSTP 协议被设计为向后兼容的 STP 协议。

相比 STP 协议,RSTP 协议提供了更快的收敛速度,通过引入新的收敛行为和端口角色来实现这一点。STP 协议可能需要 30 到 50 秒才能响应拓扑更改,但 RSTP 通常能够在 3 × hello 时间(默认值:3 × 2 秒)或物理链路故障后的几毫秒内响应更改。

新的端口状态

RSTP 中只剩下三个端口状态。STP 中 Disable/Blocking/Listening 状态合并为唯一的 Discarding 状态。

STP 协议 RSTP 协议 端口是否包含在活跃拓扑中 端口是否学习 MAC 地址
Disabled Discarding no no
Blocking Discarding no no
Listening Discarding yes no
Learning Learning yes yes
Forwarding Forwarding yes yes

新的端口角色

在 RSTP 中,根端口(Root Port)和指定端口(Designated port)的角色保持不变,而阻塞端口(Blocking port)的角色被拆分为替换端口(Alternate port)和备份端口 (Backup port)角色。

替换端口与备份端口

这两个端口角色对应于 STP 的 Blocking 状态。端口需要接收 BPDU 才能保持阻塞状态。为此,RSTP 引入了这两个角色。

简单地说,替换端口是根端口的备份;备份端口是指定端口的备份。

新的 BPDU 处理方式

BPDU 每 Hello 时间发送一次

BPDU 每隔一段时间就会发送一次,而不再是简单地中继。使用 STP 时,非根网桥仅在根端口上接收到 BPDU 时才生成 BPDU。网桥转发 BPDU 的次数多于实际生成的 BPDU。RSTP 并非如此。网桥每 秒(默认为 2 秒)发送一个包含其当前信息的 BPDU,即使它没有从根网桥接收任何信息。

更快的信息老化速度

在指定端口上,如果连续三次未收到 hello,则协议信息可能会立即过期(或者 max_age 过期)。由于前面提到的协议修改,BPDU 现在被用作网桥之间的保持活动机制。如果网桥连续丢失三个 BPDU,则认为它将失去与其直接邻居根或指定网桥的连接。如果网桥无法从邻居那里接收 BPDU,那么可以确定它与邻居的连接已经丢失。这与 STP 相反,在 STP 中,问题可能位于根路径上的任何位置。

接受劣质 BPDU

这个概念构成了 BackboneFast 引擎的核心。IEEE 802.1w 委员会将类似的机制纳入了 RSTP。当网桥从其指定网桥或根网桥接收到劣质信息时,它会立即接受它并替换之前存储的信息。

因为网桥 C 仍然知道根是活的,所以它会立即向网桥 B 发送一个 BPDU,其中包含有关根网桥的信息。因此,网桥 B 不会再发送自己的 BPDU,而是接受通向网桥 C 的端口作为新的根端口。

快速过渡到 Forwarding 状态

快速转换是 RSTP 引入的最重要功能。传统 STP 被动地等待网络收敛,然后再将端口转换为 Forwarding 状态。为了实现更快的收敛只能对保守的默认参数(forward delay 和 max_age 定时器)做更改,并且经常使网络的稳定性受到威胁。新的 RSTP 能够主动确认端口可以安全地过渡到 Forwarding 状态,而无需依赖任何计时器配置。为了在端口上实现快速收敛,RSTP 协议依赖于两个新变量:边缘端口(edge port)和链路类型(link type)。

边缘端口

网桥中所有直连终端的端口都无法在网络中创造环路。因此,边缘端口可以直接过渡到 Forwarding 状态,跳过 Listening 和 Learning 阶段。当链路切换时,边缘端口不会导致拓扑更改。

接收 BPDU 的边缘端口会立即失去边缘端口状态,并成为正常的 STP 端口。

链路类型

RSTP 只能在边缘端口和点对点链路上快速过渡到 Forwarding 状态。假定在全双工中运行的端口是点对点的,而默认情况下,半双工端口被视为共享端口。在当今的交换网络中,大多数链路都以全双工模式运行,并被 RSTP 视为点对点链路。这使它们成为快速过渡到转发状态的候选者。

Proposal/Agreement 机制(提议/同意机制,或简称P/A机制)

在 STP 中,网桥选择某个端口作为指定端口时,仍会等待两次秒(默认情况下为2 x 15),然后才能将其转换为 Forwarding 状态。

在 RSTP 中,此情况与具有指定角色但处于阻塞状态的端口相对应。下图说明了如何逐步实现快速转换。假设在根网桥和交换机 A 之间创建了一条新链路。此链路上的两个端口都置于指定的阻塞状态,直到它们从对等的端口收到 BPDU 为止。

当指定端口处于 Discarding 或 Learning 状态时(并且只有在这种情况下),它才会在其发送的 BPDU 中设置 Proposal 位。这是根网桥的端口 p0 所发生的情况,如上图的步骤 1 所示。由于交换机 A 收到高级信息,它会立即识别出 p1 是新的根端口。然后,交换机 A 开始同步(sync),以确保其所有端口均与此新信息同步。如果端口满足以下标准之一,则端口是同步的:

  • 端口处于阻塞状态,意味着稳定拓扑中的 Discarding 状态。

  • 端口是边缘端口。

为了说明同步机制对不同类型端口的影响,假设交换机 A 上存在替换端口 p2,指定转发端口 p3 和边缘端口 p4。请注意 p2 和 p4 已经满足其中一个条件。为了保持同步(参见上图的步骤2),交换机 A 只需阻塞端口 p3,并为其分配 Discarding 状态。既然其所有的端口都保持同步,交换机 A 就可以取消阻塞其新选择的根端口 p1 并发送 Proposal 信息以回复根网桥。(请参阅步骤 3。)此消息是 Proposal BPDU 的副本,其中设置了 Agreement 位而非 Proposal 位。这可确保端口 p0 确切地知道它接收的 Proposal 与哪个 Agreement 对应。

p0 收到该协议后,它可立即转换到 Forwarding 状态。这是上图的步骤4。请注意,同步之后,端口 p3 将继续保持指定的 Discarding 状态。在步骤 4 中,该端口所处的情况与步骤 1 中端口 p0 所处的情况完全相同。然后,它会开始向其相邻端口发出 Proposal,并且尝试快速转换到 Forwarding 状态。

由于 P/A 机制不依赖任何计时器,因此其速度非常快。此握手浪潮会快速传播到网络边缘,并在拓扑发生变化后快速恢复连接。

如果指定的 Discarding 端口在发送 Proposal 之后未收到 Agreement,它将缓慢转换到 Forwarding 状态,并退回到传统的 STP Listening/Learning 顺序。如果远端网桥不能理解 RSTP BPDU,或者如果远端网桥的端口处于阻塞状态,可能会发生这种情况。

新的拓扑更改机制

当 STP 网桥检测到拓扑更改时,它会使用可靠的机制首先通知根网桥。如下图所示:

一旦根网桥知道网络拓扑发生了变化,它就会在其发出的 BPDU 上设置 TC 标志,然后发送到网络中的所有网桥。当网桥收到设置了 TC 标志位的 BPDU 时,它会将其 MAC 地址表的老化时间缩短到 Forward delay 参数的秒数。这可以确保相对快速地刷新过期信息。此拓扑更改机制在 RSTP 中进行了很深层次的再造。

拓扑更改检测

在 RSTP 中,只有进入 Forwarding 状态的非边缘端口会导致拓扑更改。这意味着连接断开将不再视为拓扑更改,这与 STP 正好相反。当 RSTP 网桥检测到拓扑更改时,会发生以下操作:

  • 如有必要,它将为其所有非边缘指定端口和根端口启动 TC While 计时器,计时器的值为 hello-time 值的两倍。只要 TC While 计时器在端口上运行,从该端口发送的 BPDU 就会设置 TC 位。当计时器处于启动状态时,会向根端口上发送 BPDU。

  • 它将刷新与所有这些端口关联的 MAC 地址。

拓扑更改传播

当网桥从相邻网桥收到设置了 TC 位的 BPDU 时,会发生以下操作:

  • 它将清除其所有端口(接收 TC 的端口除外)上识别的 MAC 地址。

  • 它启动 TC While 计时器,并发送在所有指定端口和根端口上设置 TC 位的 BPDU(RSTP 不再使用特定的 TCN BPDU,除非传统网桥需要通知)。

这样,TCN 会快速传播到整个网络。TC 传播现在是一个单步过程。事实上,TC 的发起方会将此信息泛洪到整个网络,而 STP 则只有根网桥会泛洪此信息。此机制比 STP 的机制更快,无需等待通知根网桥,然后针对整个网络保持拓扑更改状态长达 <max age + forward delay> 秒钟。

仅在几秒钟或者几倍 hello-time 后,整个网络的 MAC 地址表中的大部分条目都将刷新。

兼容性

RSTP 可以与传统 STP 协议交互操作。但是务必注意,与传统网桥交互时,RSTP 固有的快速收敛优点将会丧失。

总结

无论在 STP 还是 RSTP 中,都不按照 VLAN 来定义端口,默认是全局定义。但是,在存在多个 VLAN 的以太网交换环境中,通常需要创建多个生成树,以便不同 VLAN 上的流量使用不同的链路。

于是,多生成树协议 (MSTP) 在 IEEE 802.1s-2002 中定义,后来合并到 IEEE 802.1Q-2005 中,它定义了对 RSTP 的扩展,以进一步开发 VLAN 的实用性。在 MSTP 下,可以为单个 VLAN 或 VLAN 组定义生成树,且 MSTP 与 RSTP 网桥完全兼容。

参考

[1] [Rapid Spanning Tree Protocol]: https://en.wikipedia.org/wiki/Spanning_Tree_Protocol#Rapid_Spanning_Tree_Protocol
[2] [Understand Rapid Spanning Tree Protocol (802.1w)]: https://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/24062-146.html

标签:BPDU,RSTP,端口,网桥,STP,机制,Forwarding
From: https://www.cnblogs.com/desireroot7/p/18107017

相关文章

  • 甘特图进度跟踪与风险预警机制
    项目管理就像一场跋涉,甘特图则是我们的路线图和指南针。制定好行程计划后,我们就要跟着它一路前行,时刻核对进度,防患于未然。一张优秀的甘特图不仅绘制了任务的起止时间,更重要的是它将各项工序的逻辑关系和制约条件清晰可见。我们遵循这个时间线前进,就能确保万无一失。通过实......
  • 泛型总结(擦除机制+泛型上界+通配符的上下界)
    文章目录泛型一、什么是泛型1.能用于多种类型,把类型当做参数1.1作用1.2语法二、擦除机制1.为什么采用擦除机制实现泛型?向后兼容性移植兼容性2.为什么不能使用“newT()”?3.创建类型T的数组3.1不安全的写法3.2官方的写法3.3正确的写法4.反编译后,对比方法......
  • 八股文——TCP四大机制!小白也能懂!(重传机制、滑动窗口、流量控制、拥塞控制)
    引言TCP巨复杂!同时在八股计算机网络中也经常被问到,必须会!这篇文章将让小白有个大体框架,知道怎么个事,面试中可以有话说,也能让佬更加巩固知识点。TCP是一个可靠的传输协议,为了保证它的可靠性,出现七七八八的机制,它可能有数据的破坏、丢包、重复以及分片顺序混乱等问题,TCP通过序......
  • 神经网络算法:一文搞懂Attention(注意力)机制
    本文将从Attention的本质、Attention的原理、Attention的应用三个方面,带您一文搞懂Attention(注意力)机制。Attention的本质核心逻辑:从关注全部到关注重点Attention机制处理长文本时,能从中抓住重点,不丢失重要信息。Attention机制像人类看图片的逻辑,当我们看一张图片的......
  • 详解MQTT(Message Queuing Telemetry Transport)通信机制
    目录概述1认识MQTT1.1MQTT的定义1.2MQTT实现原理1.3MQTT架构的几个概念1.3.1MQTTBroker1.3.2MQTTClient1.3.3发布消息1.3.4订阅消息2认识MQTT报文结构2.1MQTT消息体结构2.1.1认识主题(Topic)2.1.2认识QoS(QualityofServicelevels)2.1.3保留标志......
  • 【即插即用】SE通道注意力机制(附源码)
    原文地址:Squeeze-and-ExcitationNetworks源码地址:GitHub-hujie-frank/SENet:Squeeze-and-ExcitationNetworks摘要简介:卷积神经网络建立在卷积操作的基础上,它通过融合局部感受野内的空间信息和通道信息来提取有用的特征。近年来,为了提高网络的表示能力,多种方法显示出......
  • STP 的机制
    什么是STP协议?STP在最初被设计出来的时候,主要是用于防止二层环路导致的广播风暴,是一个破环协议。最初是在IEEE802.1d中被定义。STP的三种计时器hello:hello时间是在端口上发送的每个BPDU之间的时间。默认情况下,此时间为2秒。Forwarddelay:Forwarddelay是在List......
  • 【Java系列】-- 双亲委派机制
    原创:mikechen双亲委派机制......
  • openGauss 数据库认证机制
    数据库认证机制可获得性本特性自openGauss1.1.0版本开始引入。特性简介提供基于客户端/服务端(C/S)模式的客户端连接认证机制。客户价值加密认证过程中采用单向Hash不可逆加密算法PBKDF2,有效防止彩虹攻击。特性描述openGauss采用基本的客户端连接认证机制,客户端发起连接请......
  • openGauss 动态数据脱敏机制
    动态数据脱敏机制可获得性本特性自openGauss1.1.0版本开始引入。特性简介数据脱敏是行之有效的数据库隐私保护方案之一,可以在一定程度上限制非授权用户对隐私数据的窥探。动态数据脱敏机制是一种通过定制化制定脱敏策略从而实现对隐私数据保护的一种技术,可以有效地在保留原始......