RSTP对于STP改进点

主要改进点对比

特性维度 STP (IEEE 802.1D) RSTP (IEEE 802.1w) 改进点分析
收敛速度 (30-50秒) (1-2秒,理想情况下亚秒级) 这是最根本的改进。RSTP通过下面的一系列机制消除了STP中不必要的等待时间。
端口角色 3种: • 根端口 • 指定端口 • 阻塞端口 4种: • 根端口 • 指定端口 • 替代端口备份端口 关键改进 :增加了"替代端口"和"备份端口"。它们相当于备用端口 ,预先计算好替代方案。当根端口或指定端口失效时,可以立即切换,无需重新计算。
端口状态 5种: • 禁用 • 阻塞侦听学习 • 转发 精简为3种 : • 丢弃 • 学习 • 转发 状态简化 :RSTP将STP中的阻塞、侦听 状态合并为 "丢弃" 状态。端口要么在丢弃数据(但不学习MAC),要么在学习MAC,要么在转发数据。逻辑更清晰,去掉了不必要的中间状态。
收敛机制 依赖计时器 : • Max Age (20s) • Forward Delay (15s x 2) 必须等待计时器超时才能切换。 主动协商(P/A机制) : • 点到点链路通过提议/同意 握手机制。 • 可以在几秒内将端口快速转变为转发状态。 革命性改进 :P/A机制允许端口在确信不会形成环路后,跳过侦听和学习状态,直接进入转发状态。这极大地加快了新链路连接或根端口切换的速度。
BPDU处理 • 仅由根桥定期(每2秒)发送。 • 非根桥只是转发。 • 丢失3个BPDU才认为链路故障。 每个桥都会定期(每2秒)发送BPDU ,即使收不到根的BPDU。 • BPDU作为保活机制:连续3个Hello时间(6秒)没收到BPDU就认为邻居丢失。 增强稳定性:这使得故障检测更快、更可靠。交换机能主动感知链路故障,而不必被动等待根桥的BPDU。
对次优BPDU的处理 当收到一个次优BPDU(即比当前端口保存的BPDU更差)时,端口会忽略它,直到Max Age超时。 当收到一个次优BPDU时,端口会立即回复一个自己保存的更优的BPDU。 加速收敛:这能快速纠正因临时配置错误或BPDU丢失导致的网络拓扑不一致问题,使对方端口快速进入正确的角色和状态。

端口角色

通过端口角色的增补 简化了生成树协议的理解与部署

端口状态

RSTP的状态规范缩减为3种,根据端口是否转发用户流量和学习MAC地址来划分

  • discarding 不转发用户流量也不学习mac地址
  • learning 不转发用户流量但学习mac地址
  • forwarding 转发用户流量也学习mac地址

Flag位

RSTP配置BPDU充分利用STP报文中的Flag位置 明确端口角色 除了保证和STP格式基本一致外,RSTP做了如下变化:

  • Type字段:STP类型 配置BPDU类型不再是0而是2,所以STP设备收到RSTP设备的配置BPDU时会丢弃
  • Flag字段:使用了原来保留的中间6位,这样的改变的配置BPDU叫做RST BPDU

RST BPDU报文格式

配置BPDU的处理(1)

  • 在STP模式下 只有根桥可以主动发送BPDU报文 其他非根桥设备为接收与转发BPDU STP计算过程复杂且缓慢
  • RSTP模式 每台设备都可以自主的发送BPDU报文
  • 默认Hello Time时间为2秒

配置BPDU的处理(2)

  • 在STP模式下 需要等待超时时间后 才能判断根桥是否故障 MaxAge时间20秒
  • RSTP模式下 只需要等待6秒 即认为邻居失效 华为设备存在一个时间因子 时间因子可以修改 默认为 helloTime(2秒) ✕ 3 ✕ 时间因子(3) = 18秒

配置BPDU的处理(3)

  • STP模式下 只有指定接口会处理次优BPDU报文 其他端口会忽略次优BPDU
  • RSTP模式下 接收到次优的BPDU会与自身缓存的BPDU进行比较 选择更优的BPDU 且立即回应自身的BPDU
  • 图示下 SW2与上游链路故障 会认为自己是根桥 发送BPDU报文 然后SW3比较SW1与SW2的BPDU报文 选择优秀的BDPU,也就是选择更好的根桥 并且会把结果告诉给次优BPDU方向的SW2 告诉他不是根桥 (在STP下会忽略次优BPDU报文)

配置BPDU的处理总结

  • 每台设备可以自主的发送BPDU报文 加快收敛时间
  • 更短的BPDU超时时间 18s ( STP 20s )
  • 收到次优BPDU报文会选择更优并且回复消息

快速收敛机制

机制一 端口角色快速切换

当设备根端口失效时,原本阻塞端口不需等待30s时间。直接成为Forwarding状态

  • 在STP模式下 根端口故障 阻塞端口切换为根端口需要30s时间
  • RSTP模式下 只要根端口存在故障 最优的阻塞端口会立即成为根端口

机制二 边缘端口

  • 边缘端口不参与RSTP计算 直接进入Forwarding状态 但是一但接收到BPDU报文 就会丧失BPDU边缘端口属性 成为STP端口 重新进行生成树计算 导致网络震荡

机制三 PA机制

  • 根桥指定端口 会发一个P位置1的报文 告诉别人自己想要进入Forwording状态 下联设备 发送A置位为1的报文 告诉上联接口可以并且将自己的根端口进入转发状态
  • STP(生成树协议)设计Forwarding Delay(转发延迟)的主要目的是为了在拓扑变化时给网络足够的时间来避免临时环路。下面详细解释原因。

PA机制详解

  • SW2收到根桥P置为的RST BPDU,开始将所有端口进入同步状态(不转发数据)上游端口进入转发状态并且回复A置位的RST bpdu 从而防止临时环路

拓扑变更机制(TC报文发送机制)

  • 一个非边缘端口(阻塞端口)变为Forwarding状态 即拓扑发生改变
  • 边缘端口因为不会参与到STP的计算 所以边缘端口由up到down 以及down到up都不会进行拓扑变更
  • SW3上行链路故障 原本AP接口切换为RP,进入转发状态。SW3接口会在hellotime的2倍时间,进行清除除边缘端口外所有端口的mac地址表项。同时会在根端口与指定端口发送TC置位的RST BPDU报文。一旦hellotime2倍时间超时,停止发送报文。其他接口收到RST-BPDU报文,清空除来源方向的所有接口的mac地址,同时启动TC While Time时间。
  • 当交换机检测到链路故障,其备用端口会转换为转发状态。此时,该交换机会生成并向外传播TC位置位的RSTP BPDU。收到该报文的交换机会清空除接收端口外所有端口的MAC地址表项,并继续泛洪此拓扑变更消息。

TC置位为1的BPDU报文

STP拓扑变更机制

  • STP只有根桥可以主动发送BPDU报文 所以在拓扑发生改变时候,需先向根桥发送TCN报文 然后由根桥发送TC报文

保护功能

BPDU保护

h3c 复制代码
# 在端口视图下开启
interface g1/0/1
 stp port bpdu-protection enable
 
# 开启后检测到bpdu报文后 会自动关闭接口 需要手动开启 或则配置自动启动时间

# 全局视图下开启 配置边缘端口自动生效
stp bpdu-protection
error-down auto-recovery cause bpdu-protection 300

根保护功能

  • 防止根桥被其他设备抢占 根桥不允许改变
h3c 复制代码
# 在接口下开启根保护功能(对接口保持为指定端口)
stp root-protection

# 在一个端口下 不可以同时配置根保护和环路保护功能

环路保护

  • 问题场景为光纤双纤 其中一纤发生故障 导致SW3收不到SW1根桥的bpdu 然后SW3的AP口切换为转发状态导致的网络环路问题

  • 开启环路保护功能后 如果在指定时间没有接收到上游交换机的bpdu报文 则直接进入Discarding状态

h3c 复制代码
# 全局开启环路检测,并检测所有VLAN
loopback-detection global enable vlan all

# 出现环路时,采取的动作是shutdown
loopback-detection global action shutdown

# 指定环路检测的时间间隔为10秒
loopback-detection interval-time 10

# 接口视图下配置
loopback-detection enable vlan all
loopback-detection action shutdown

防TC-BPDU保护

  • 限定一定时间内处理tc报文的个数 默认处理TC-BPDU时间为2秒 个数为1
h3c 复制代码
# 在一个周期内可以处理多少个tc-bpdu报文 默认为1
# 可以避免频繁的删除mac地址表项
# 全局视图下配置

stp tc-protection threshold <1-255>
相关推荐
无敌最俊朗@5 小时前
UDP 高频面试题解析
网络·网络协议·udp
烧冻鸡翅QAQ9 小时前
HTTP 1.0版本的webserver自主实现
网络·网络协议·http
想不明白的过度思考者11 小时前
TCP三次握手与四次挥手通俗理解
网络·网络协议·tcp/ip
せいしゅん青春之我1 天前
[JavaEE初阶] 传输层协议---UDP 相关笔记
网络·网络协议·java-ee
2301_772093561 天前
高并发webserver_interview
运维·服务器·数据库·后端·网络协议·mysql·wireshark
Fang_pi_dai_zhi1 天前
对TCP/IP协议的理解
网络·网络协议·tcp/ip
初学小白...1 天前
UDP多线程在线咨询
网络·网络协议·udp
咖啡教室1 天前
每日一个计算机小知识:MAC地址
后端·网络协议
咖啡教室1 天前
每日一个计算机小知识:LAN和WAN
后端·网络协议