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

news2024/10/23 20:12:42

前面我们已经学习了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机制快速进行端口角色确认
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
发送RST BPDU

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

通过BPDU确定互联端口角色
通过BPDU确定互联端口角色

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

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

SW1收到A置位BPDU
SW1收到A置位BPDU

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

下游链路继续协商
下游链路继续协商

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

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

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2221839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS 8 Stream环境下通过yum安装Mysql

1.在Mysql下载页面MySQL :: Download MySQL Community Server页尾 点击 “MD5 checksums and GnuPG signatures” 进入下一页面 2.打开下载yum repo文件页面 (MySQL :: Download MySQL Yum Repository) 3.点击"DownLoad"按钮,打开下载页面, 4.…

GB/T28181-2022规范解读、应用场景和技术实现探究

GB/T28181-2022和GB/T28181-2016区别 GB/T28181-2022《公共安全视频监控联网系统信息传输、交换、控制技术要求》与 GB/T28181-2016 相比,主要有以下区别: 术语和定义方面: 术语删减:GB/T28181-2022 删除了 “联网系统信息”“数…

大模型LLM学习路线图2024年最新版!全面掌握学习路径,非常详细,零基础想学大模型收藏这一篇就够了

ChatGPT的出现在全球掀起了AI大模型的浪潮,2023年可以被称为AI元年,AI大模型以一种野蛮的方式,闯入你我的生活之中。 从问答对话到辅助编程,从图画解析到自主创作,AI所展现出来的能力,超出了多数人的预料&…

【redis】redis的多线程和IO多路复用

【redis】redis的多线程和IO多路复用 【一】前言【二】Redis单线程和多线程问题的背景【1】Redis的单线程【2】Redis为什么选择单线程?【3】Redis为什么开始利用多核?【4】Redis当前的性能瓶颈【5】Redis的主线程如何和IO线程协同 【三】IO多路复用的理解…

【Trick】IOS系统解决“未受信任的企业级开发者”问题

问题: 本人通过扫码下载了一个软件,下载完毕后出现以下提示: 解决方法: 这个主要是操作系统的问题,需要在设置里面更改,具体步骤如下: 【1】打开设置,选择【通用】 【2】选择【VP…

千鹿 AI ——AI一键生成模特上身图,零成本制作服装电商图片,AI换模特/背景/批量抠图,一个网站就够了!

前言 在电商行业,卖产品主要是卖图片。拍一套产品图加上美工费用,基本要大几百上千,对新手卖家是不小的支出。服装类目的 SKU 很多,一个链接下有几十个款式很常见。 AI 出现对跨境电商有好处是大家都知道的。现在看看电商领域的…

rust aarch64开发-编译

1. 实验代码下载 本实验基于github或gitee上的开源实现。 // 无法访问github可以通过如下地址下载 git clone https://gitee.com/yang_jun_yi/armv8-rust-hypervisor.git // github下载 git clone https://github.com/Comet959/armv8-rust-hypervisor.git2. 编译 make start…

PG实践|数学函数及其操作(一)

文章目录 引言1.1 ABS() - 取绝对值1.2 CEIL() 或 CEILING() - 向上取整1.3 FLOOR() - 向下取整1.4 ROUND() - 四舍五入1.5 TRUNC() - 截断/截取小数总结 📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程…

Spring配置/管理bean-IOC(控制反转) 非常详细!基于XML及其注解!案例分析! 建议复习收藏!

目录 1.Spring配置/管理bean介绍 2.基于XML配置bean 2.1基于id来获取bean对象 2.2基于类型获取bean对象 2.3通过指定构造器配置bean对象 2.4通过p名称空间配置bean 2.5通过ref配置bean(实现依赖注入) 2.6注入内部Bean对象,依赖注入另一种方式 2.7 注入集合…

AWD的复现

学习awd的相关资料:速成AWD并获奖的学习方法和思考记录- Track 知识社区 - 掌控安全在线教育 - Powered by 掌控者(包含使用脚本去批量修改密码) 在复现之前去了解了以下AWD的相关脚本 资料:AWD批量攻击脚本使用教程-CSDN博客 …

网络安全有关法律法规

1. 前言 在当今数字化高速发展的时代,网络安全已成为关乎国家、企业和个人的重要议题。为了应对日益复杂的网络安全挑战,一系列网络安全法律法规应运而生,它们如同坚实的盾牌,守护着我们的数字世界。现在是2024年10月&#xff0c…

军团服务QA角度总结

需求背景: 军团业务诞生的时候承接家族群组功能,玩法邀请成员做任务->积分升级->发送奖励。还是拉收入的一个业务载体。收入才是王道。 军团服务端核心就三个:军团创建,人员管理和军团奖励。 军团创建: 创建…

每天练打字8:今日状况——常用字后五百击键4.5第1遍进行中,赛文速度105.75

今日跟打:738字 总跟打:125701字 记录天数:2459天 (实际没有这么多天,这个是注册账号的天数) 平均每天:50字 本周目标完成进度: 练习常用单字后500,击键3.5,…

kernel32.dll的功能、作用,教大家几种修复kernel32.dll错误的办法

当这个文件出现问题时,用户可能会遇到各种错误消息,例如“缺失kernel32.dll”或“kernel32.dll发生错误”。这些错误不仅令人困扰,还可能威胁到您的数据安全和系统性能。接下来,本文将教大家几种修复kernel32.dll错误的有效方法&a…

群控系统服务端开发模式-业务流程图补充

进天有读者给我反馈,业务流程图看的不是很明确,所以我把未画完的业务流程图补充完毕。也希望以后更多的读者给我评论及意见。 一、业务流程梳理 1、非业务流程 a、添加部门、添加级别、添加执行方式。因为这些参数都是要被其他地方调用的,更…

word中的内容旋转90度

在vsto、Aspose.Words 中,默认没有直接的 API 可以让表格整体旋转 90 度。然而,我们可以通过一些方式来实现类似的效果,具体思路如下: 将表格插入到一个形状(Shape)或文本框中,然后旋转该形状。…

影刀RPA实战番外:excel函数应用指南

Excel函数是用于执行特定计算、分析和数据处理任务的预定义公式。它们可处理数学计算、文本处理、逻辑判断、日期和时间运算、查找和引用数据等。例如,SUM函数可以计算一系列数字的总和,IF函数进行逻辑测试,VLOOKUP函数在表格中查找数据&…

Oracle CONNECT BY、PRIOR和START WITH关键字详解

Oracle CONNECT BY、PRIOR和START WITH关键字详解 1. 基本概念2. 数据示例3. SQL示例3.1. 查询所有员工及其上级3.2. 显示层次结构3.3. 查询特定员工的子级 4. 结论 在Oracle数据库中,CONNECT BY、PRIOR和START WITH关键字主要用于处理层次结构数据,例如…

我悟了,华为FreeBuds 6i这样戴更稳了!

谁懂啊,才知道华为FreeBuds 6i标配多种尺寸的耳塞(如S、M、L),方便大家根据自己耳道大小自由选择。如果耳机戴上后感到耳朵不适或松动,可能是耳塞尺寸不匹配。 小提示: 耳塞过大 可能会造成压迫感&#xf…

kafka自定义配置信息踩坑

org.apache.kafka.common.config.ConfigException: Invalid value 0 for configuration acks: Expected value to be a string, but it was a java.lang.Integer 场景描述: 单个kafka使用springboot框架自带的 yml 配置完全OK(因为底层会帮我们处理好类…