RSTP的工作原理

RSTP

  1. 端口角色(根据阻塞状态的原因定义了不同端口角色)

    AP:收到其他交换机更好的BPDU而被阻塞的接口,功能:RP的备用接口

    BP:收到自己的更好的BPDU而被阻塞的接口,功能DP的备用接口

  2. RSTP的P/A协商(P:提议,A:协定)

    • 触发的前提:
      • DP处于Discarding状态时
      • 该链路位P2P全双工的链路
    • 目的:让链路在没有临时环路的情况下,快速进入到转发状态,不用再等待计时器超时,提高RSTP协议的收敛速度
    • 工作原理
      • 当两台交换机连接新链路时,双发都会认为自己的接口是DP,都处于Discarding状态互相发送P置1的BPDU希望和对方做P/A协商。互相交换后选举出DP和RP。
      • 交换机收到后通过这个BPDU判断自己是RP,会阻塞除边缘端口外的其他端口。然后直接将RP端口状态直接变成Forwarding,然后发送A置1的BPDU给对方。如果判断自己是AP则直接继续阻塞。
      • 根桥交换机收到后直接将DP状态变成forwarding。
  3. BPDU flags格式

  4. 根端口的快速切换机制


    当交换机RP接口失效时为了加快收敛速度,如果该交换机有AP接口则直接将AP接口设置为forwarding状态,因为根端口为去往根桥唯一路径,根端口失效则去往根桥的唯一路径失效,此时直接将AP立即过渡到转发不会引起环路,此时是没有P/A协商机制的

  5. 次级BPDU处理机制


    交换机的RP接口失效时,会将DP接口的状态设置为discarding状态,此时这个DP接口会发送P置位的以自己作为根的BPDU。

    • 对方收到后对比交换机之前收到的BPDU发现收到的为次级BPDU,之后会立即处理进行选举,由于RP还在,所以认为自己是DP并发送P置位的以交换机A作为根BPDU。

    • 交换机收到后,通过生成树的计算,发现自己不再是根桥,接口为根端口并回复A置位的BPDU

    • 过程图

  6. 边缘端口的引入

    • 边缘端口是指启用边缘端口的指定端口,会发送BPDU,在收到BPDU会丧失边缘端口的属性重新参与STP的计算,交换机上终端设备的接口连接设置为边缘端口后,会立刻进入转发状态。
    • 边缘端口为什么会发送BPDU
      • 边缘端口依然是指定端口
      • 如果边缘端口下行为了产生环路,无法防环。
    • 如果边缘端口收到了自己的BPDU会阻塞掉自己防止环路,但依旧可能存在瞬间环路
  7. 拓扑变更的机制优化

    一个非边缘端口进入forwarding状态


    当一个非边缘的端口失效时
    *

    • 其他端口向对端进行P/A协商,协商完成一旦到转发状态,交换机向所有非边缘端口发送TC置位的RST BPDU。
    • 发送方会马上清空发送变化的端口上学习到的MAC地址。4秒后TC While Timer超时,则停止发送RST PBDU
    • 接受方收到TC后会清空除收到TC BPDU接口和边缘接口的其他接口MAC地址,并继续从被清空的接口发送TC BPDU
相关推荐
guo_wen_qiang1 小时前
mac中docker desktop服务端开启远程访问
运维·服务器·macos·docker
小五传输2 小时前
消防总队信创改造实践:国产文件传输服务器解决文件传输难题
大数据·运维·安全
云飞云共享云桌面2 小时前
医疗器械设备研发:多人同时操作 SolidWorks,怎样依靠单台服务器替代多工作站
运维·服务器·网络·数据库·制造
T型码农要学习2 小时前
开源项目5|FileBrowser:免费在线文件管理器!随时随地管控服务器文件
运维·服务器·人工智能·开源
朱 欢 庆2 小时前
云服务器附件备份到本机内网服务器
运维·服务器·前端·经验分享
Sylvia33.2 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
梦想不只是梦与想2 小时前
Web 服务器网关协议:ASGI 和 WSGI
服务器·python·fastapi
智恒百亿2 小时前
8 卡 RTX 5090 服务器深度实测:256GB 显存能否支撑 70B 模型微调?选型参考
大数据·运维·服务器·人工智能
鼹鼠SDN5 小时前
没有公网 IP,如何在外面访问家里的打印机、摄像头和整个局域网?
网络·网络协议·tcp/ip
志栋智能7 小时前
超自动化运维如何支持合规审计?
运维·自动化