计算机网络-RSTP工作过程与原理

前面我们已经学习了RSTP的一些基础概念以及对于STP的改进之处,因为RSTP兼容STP,所以实际上两者工作原理是一致的,这里只简单过一遍,然后进行一些基础实验即可,大致还是遵循选举根桥确定端口角色与状态全网收敛的思路。

一、RSTP 工作过程

1、初始化:RSTP收敛与STP收敛过程类似。每一台交换机启动RSTP后,都认为自己是"根桥",并且发送RST BPDU。所有端口都为指定端口,处于Discarding状态。
初始化

实际网络部署建议提前根据设备性能、网络架构规划网桥优先级。

2、上游链路的设备互联端口通过P/A机制,快速进入转发状态。

  • 缺省桥ID为32768,然后根据MAC地址确定根桥位置。
  • SW2收到更优的RST BPDU后,经比较认为SW1才是当前根桥,此时SW2的端口将成为根端口,而不是指定端口,停止发送RST BPDU。
  • SW1的端口进入Discarding状态,发送Proposal位置位的RST BPDU。SW2收到后阻塞除边缘端口以外的所有其他端口(该过程称为同步过程)。
  • SW2的各端口同步后,根端口立即进入Forwarding状态,并向SW1返回Agreement位置位的RST BPDU。SW1收到该报文后,会让指定端口立即进入Forwarding状态。

就是三台交换机互相发送RST BPDU,然后经过比较确定SW1为根桥 ,然后SW2和SW3连接SW1的接口为根端口。然后SW1通过两个接口发送Proposal位置位的RST BPDU ,SW2和SW3收到后将其它端口阻塞掉 ,确定SW2和SW3的各个端口角色(根端口、指定端口、边缘端口..),确定完成后根端口进入转发状态并回复SW1一个Agreement位置位的RST BPDU 。SW1收到后接口直接进入转发状态而不需要等待30S,实现指定端口快速转发与收敛。
P/A机制快速进行端口角色确认

3、下游链路的设备互联端口会进行新一轮的P/A协商,也就是SW2--SW3之间的端口角色确认。

如图,RSTP下游链路的设备互联端口会进入慢收敛过程,以SW2与SW3为例。
下游链路端口角色确认

其他下游设备比较:

  • 下游链路的设备互联端口会进行新一轮的P/A协商。
  • SW2的下游端口设置为指定端口,持续发送Proposal位置位的RST BPDU。
  • SW3的下游端口收到该BPDU后,发现不是本设备收到的最优BPDU,则会忽略,不会发送Agreement位置位的RST BPDU。
  • SW2的下游端口一直收不到Agreement位置位的回应报文,等待2倍的Forward Delay后,进入转发状态。

简单说就是SW2和SW3下游链路继续发送RST BPDU ,然后经过比较发现SW2的更优先,SW2就发送Proposal位置位的RST BPDU ,但是因为SW3从另外接口已经收到根桥的BPDU,因此SW2的不是最优,SW3不会回复Agreement位置位的回应报文 ,然后SW2经过30s自动进入转发状态,SW3的下游接口成为替代端口,最终整网拓扑收敛完成。

实际上SW1与SW2、SW3的P/A协商机制是同时进行,通过P/A快速确定根桥与根端口并进入转发状态,然后SW2与SW3因为不会发生A置位BPDU因此需要等待2个Forward Delay时间然后优先级更高的SW2成为指定端口。

二、Proposal/Agreement(P/A)协商机制

简单说P/A协商机制用于在初始化过程中或者新增链路时候使指定端口快速进入转发状态的机制。P/A机制是每段链路独立进行,速度较快。

下面以新增链路进行P/A协商为例:

1、新增链路端口都先成为指定端口发送RST BPDU
新增链路 发送RST BPDU

2、SW2 与SW1互联的端口收到更优的RST BPDU后成为根端口 ,那SW1端口就成为指定端口 了。然后SW1指定端口进入Discarding状态,发送Proposal位置位的RST BPSU。
通过BPDU确定互联端口角色

SW2收到P置位的报文,将除了根端口以外的端口进入Discarding状态(就是先禁用下),然后根端口进入转发状态并回复A置位的BPDU ,其它端口还是Discarding状态。

3、SW1收到A置位BPDU,指定端口立刻进入转发状态。
SW1收到A置位BPDU

因此SW1和SW2的根端口都进入了转发状态,SW2的下游端口继续进行P/A协商,一段段完成端口收敛。
下游链路继续协商

通过P/A协商机制可以使得指定端口快速进入转发状态,不需要等待2个Forward Delay时间。

总结:集团学习了RSTP的网络收敛与P/A协商机制。工作原理与STP大致一样,通过发送BPDU确定根桥,通过P/A机制使得指定端口与根端口快速进入转发状态。

本文由mdnice多平台发布

相关推荐
GPT012318 小时前
大模型日报 2024-12-20
程序人生
十二测试录21 小时前
Python基础——字符串
开发语言·经验分享·python·程序人生·职场发展
测试老哥1 天前
Python自动化测试图片比对算法
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
杰哥就是杰哥2 天前
坚持奋斗到底
程序人生
大鱼前端4 天前
React 19新特性探索:提升性能与开发者体验
程序人生
测试19984 天前
什么是自动化测试?
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
python_知世4 天前
基于LLaMA-Factory微调Llama3
人工智能·深度学习·程序人生·自然语言处理·大语言模型·llama·大模型微调
赵大仁5 天前
从零开始掌握Vue.js组件开发:详解原理与实践
前端·javascript·vue.js·经验分享·vscode·程序人生·前端框架