STP与RSTP的区别
RSTP对STP做了如下改进:
1.RSTP增加2种端口角色
AP:收到其他交换机更好的BPDU而被阻塞,RP的备份端口
BP:收到自己更好的BPDU而被阻塞,DP的备份端口
2.简化端口状态

3.充分利用配置BPDU的Flag字段
Type字段:因此,在将BPDU类型的配置从0改为2后,STP设备无法接收RSTP相关的BPDU数据。
Flag字段:使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU。

4.配置BPDU的发送方式(拓扑稳定的情况下)
STP机制: 根据默认设置(2秒),根据Hello报文的时间段传输配置信息。当非主干端口设备接收到来自上层设备的Config-BPDUs时才开始进行数据传输。实际上,在没有接收到来自主干端口的任何Config-BPDUs的情况下,默认情况下该端口会保持关闭状态直到Max Age(默认为20秒)的时间限制结束。
RSTP: 无论非根桥端站是否接收到根桥端站发送的配置BPDU报文,在此情况下非根桥端站仍需遵循Hello Time规定的定时发送其自身的配置BPDU报告包,此行为完全自主于各相关设备
5.缩短配置BPDU的超时时间
STP:在配置时钟超时时间MaxAge内未接收到上游设备发送过来的配置BPDU,则该设备将被判定为邻居失效状态
RSTP协议指出,在重传 timeout 时间(Hello Time乘以3再乘以 Timer Factor,默认值为2秒乘以3再乘以3)之内未接收到上层设备发送的配置 BPDU 的情况下,则认为与当前邻居之间的协商未能成功。

6.更快处理次优BPDU
STP: 仅限指定接口立即处理次优BPDU。其余接口暂时不处理次优BPDU直至Max Age计时器触发后才开始考虑其有效性。之后发送自身的最优BPDU以启动新一轮的拓扑收敛过程。
RSTP: RSTP负责处理次优BPDU报文,并不依赖于任何定时器(即不依赖于BPDU老化)来解决拓扑收敛问题;此外,在RSTP框架下,每个端口角色都会发送次优BPDU以确保网络结构的快速恢复速度。
当一个设备接收到来自其上游指定桥发送过来的RST BPDU数据帧时,在线检测系统会比较自身的缓存数据帧与接收的数据帧
若该接口存储的RST BPDU优先级高于所接收的RST BPDU,则该接口将立即拒绝接收所接收的RST BPDU,并迅速反馈维护其缓存中的RST BPDU以加速收敛速度。

7.端口角色快速切换
RP失效,AP立即成为RP
DP失效,BP立即成为DP

8.边缘端口
- 这是一个属于动态优先级协议(DP)且与三层网络设备相关联的设备(包括终端网卡),可通过设置边缘端口属性(Edge Port Attribute)来实现。
- 在接收配置的 Bridging Priority Determination Unit (BPDU) 后会转为普通 STP 端口,并触发新的生成树计算过程。
- EP会发送 BPDU 信号以防止潜在的环路风险,在具体应用场景中例如两个 EP 直接相连可能会导致瞬间出现环路风险。
- 当 EP 不参与 RSTP 计算时,则可以直接通过 Discarding 模块过渡到 Forwarding 状态。
- EP 失效或进入 Forwarding 状态时会被视作未发生 STP 拓扑变化,并不会导致发送 TC RSTP BPDU 或 TCN BPDU 的行为发生,
这种情况下 MAC 地址表仍能保持其稳定性。 - 强烈建议启用该设备的边缘端口特性以确保保护核心交换机免受潜在的环路影响。
9.P/A机制
STP 的RP、DP由Discarding状态到Forwarding状态,至少需要30s
RSTP 的RP、DP由Discarding状态到Forwarding状态,大约1~2s甚至更快
10.拓扑变更机制
在STP协议中, 当网络拓扑发生变化时, 必须先通过根桥发送相应的TCN BPDU数据包, 然后根桥会通知相关节点关于拓扑的变化情况. 配置好的BPDU会在后续的泛洪过程中帮助传播这一信息
在RSTP协议中,仅有一个标准用于检测拓扑变化:即一个非边缘端口迁移到Forwarding状态.当检测到拓扑变化时,其相关的RST BPDU将迅速在网络范围内传播.

- SW3的根端口收不到从根桥发来的RST BPDU后,Alternate端口会快速切换为新的根端口,启动TC While Timer,并清空状态发生变化的端口学习到的MAC地址。然后向外发出TC置位的RST BPDU。
- SW2接收到RST BPDU后,会清空接收口以外所有端口学习到的MAC地址,同时开启计时器,并向外发送TC置位的RST BPDU。
- 最终,RST BPDU会在全网泛洪。
11.保护功能

- BPDU保护
1. 原因:当边缘端口接收到RST BPDU时,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。
2. 解决:交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管系统。 - 根保护
1. 原因:根桥具有可抢占性,有可能会收到优先级更高的RST BPDU,使得根桥失去根地位,从而引起网络拓扑结构的错误变动。
2. 解决:
启用根保护功能的指定端口,其端口角色只能保持为指定端口。
一旦启用根保护功能的指定端口收到优先级更高的RST BPDU时,端口将进入Discarding状态,不再转发报文。
经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。 - 环路保护
1. 原因:
RSTP的网络中,根端口状态是依靠不断接收来自上游交换设备的RST BPDU维持。
当由于链路拥塞或者单向链路故障导致根端口收不到来自上游交换设备的RST BPDU时,此时交换设备会重新选择根端口。
2. 解决:
启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),
Alternate端口则会一直保持在Discarding状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。 - 防TC-BPDU攻击
1. 原因:交换设备在接收到TC置位的RST BPDU报文后,会执行MAC地址表项的删除操作。
2. 解决:
启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理TC BPDU报文的次数可配置。
如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。
对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。
