RSTP基础要点(上)

news2024/12/23 17:53:55

RSTP基础

  • RSTP引入背景
  • STP所存在的问题
  • RSTP对于STP的改进
    • 端口角色重新划分
    • 端口状态重新划分
    • 快速收敛机制:PA机制
    • 端口快速切换
    • 边缘端口的引入

RSTP引入背景

STP协议虽然能够解决环路问题,但是由于网络拓扑收敛较慢,影响了用户通信质量,而且如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这也是用户无法忍受的。由于STP的不足,IEEE于2001年发布的802.1w标准定义了RSTP。RSTP在STP基础上进行了诸多改进优化,使得协议更加清晰、规范,同时也实现了二层网络拓扑的快速收敛。

STP所存在的问题

  1. 收敛时间长:STP有五个状态,从启动到开始进行转发要足足30s,博尔特跑100米才用10s,删除浏览记录也只要几秒,可以看出30s其实已经非常非常的长了。
  2. 故障恢复时间长:假设现在你已经忍受过了30s,交换机要试探你的底线,突然故障了一个BP或者RP端口,好(直连故障,可以直接感知)则30s可以恢复,坏(非直连故障,还要等20s的BPDU老化)则足足还要50s进行恢复,是不是决定扔掉交换机了。
  3. 终端接入交换机延迟时间:现在你满心欢喜,交换机的STP协议已经可以进行转发了,然后你把自己的电脑接入交换机,由于笨蛋交换机不知道你电脑连接的端口是边缘端口,所以又要等待30s,然后确认端口状态,才能进行转发。
  4. 拓扑变更:如果STP的网络拓扑发生变化,TCN,TCA,TC报文都会进行发送,如果这个交换机的深度有5层,那这个效率要有多低下。
  5. 端口状态:Disabled,Blocking,Listening三种状态虽然都不作为,但还是起了三个名字,徒增使用难度,这里建议合并。

RSTP对于STP的改进

端口角色重新划分

在STP中有:RP,DP,BP(Block Port),但是在RSTP中有以下角色:RP,DP,AP(Alternative Port),BP(Backup Port)。
接下来解释AP的产生与作用:当收到对端更优的BPDU时,就会变成AP,AP是作为RP的备份接口,RP倒下,AP顶上。
在最简单的三角形拓扑中,如下所示:
在这里插入图片描述

而BP则是收到自身传来的BPDU之后,就会变成BP端口,BP端口作为DP端口的备份。如下所示:
在这里插入图片描述

端口状态重新划分

基于STP的五状态基础之上,RSTP把状态精简为了三种,分别是Discarding(对应STP的Discarding,Blocking,Listening)、Learning(对应STP的Learning)、Forwarding(对应STP的Forwarding)。

快速收敛机制:PA机制

P(Proposal)建议,A(Agreement)同意,RSTP使用了flag位,flag位里面有P和A值为,当相应的bit变成1的时候,就代表是P或者A置位。工作机制是这样的,在互相连接的两台交换机之间,其中一台先从互联接口发送P置位,然后对端设备将除了互联接口之外的端口都给阻塞掉,然后用互联接口回应A置位,随后二者就进行转发,无需任何等待。等到协商完成,再将之前阻塞的接口放开,然后重复相同的流程。
RST选举原理和STP本质上相同:选举根交换机-选举非根交换机上的根端→选举指定端口-选举预备端口和备份端口。但是RSTP在选举的过程中加入了“发起请求-回复同意”(P/A机制)这种确认机制,由于每个步骤有确认就不需要依赖计时器来保证网络拓扑无环才去转发,只需要考虑BPDU发送报文并计算无环拓扑的时间(一般都是秒级)。

端口快速切换

  1. 根端口快速切换:一台交换机的两个端口分别是AP和RP,如果RP出现故障,那么AP可以在秒级的时间内进行接口的切换。
  2. 次优BPDU处理机制:也就是非直连故障,这个时候总有交换机会收到次优的BPDU,这个时候为了加快收敛速度,二者会直接进行PA机制选举端口角色。

边缘端口的引入

在RSTP之中,设置了边缘端口可以直接进入转发状态。边缘端口在收到了BPDU之后会丧失边缘端口的特性,然后直接变成普通的STP端口,并且重新进行生成树计算。

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

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

相关文章

分布式对象存储

参考《分布式对象存储----原理、架构以及Go语言实现》(作者:胡世杰) 对象存储简介 数据的管理方式 以对象的方式管理数据,一个对象包括:对象的数据、对象的元数据、对象的全局唯一标识符 访问数据的方式 可扩展的分…

useCallback、useMemo、React.memo

1、React.memo React.memo 是 React 中用于函数组件优化的高阶组件,可以在一定程度上减少组件的重渲染,提升应用性能。React.memo 的实现原理是对比组件的前后两次渲染传入的 props 是否相等,如果相等则不会触发重新渲染,否则会触…

使用 Nacos 搭建一个简单的微服务项目

Nacos Nacos 是阿里巴巴推出来的一个新开源项目,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 准备Nacos 将 nacos 安装成功之后,进入nacos的bin 目录下,通过命令sh startup.sh -m standalone启动nacos,然后…

ChatGPT概述:从模型训练到基本应用的介绍

ChatGPT概述:从模型训练到基本应用的介绍 目录 本文是对ChatGPT的由来、训练过程以及实际落地场景的解释,主要内容包括如下三个方面: 1、ChatGPT是什么 2、ChatGPT的原理 3、ChatGPT的思考 4、ChatGPT的应用 ChatGPT是什么 ChatGPT可能是近…

代码随想录算法训练营第四天| 24. 两两交换链表中的节点 、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142.环形链表II

24. 两两交换链表中的节点 24.两两交换链表中的节点介绍给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。思路上述是自己看到这道…

Zookeeper3.5.7版本——客户端命令行操作(命令行语法)

目录一、命令行语法二、help命令行语法示例一、命令行语法 命令行语法列表 命令基本语法功能描述help显示所有操作命令ls path使用 ls 命令来查看当前 znode 的子节点 [可监听]-w 监听子节点变化-s 附加次级信息create普通创建-s 含有序列-e 临时(重启或者超时消失…

【3.5】单调栈、回文数、子序列、编辑距离问题,MySQL、Redis

文章目录单调栈总结子序列问题总结编辑距离问题总结回文串问题总结MySQL 执行流程是怎样的?第一步:连接器第二步:查询缓存第三步:解析器 解析SQL第四步:执行 SQL2.2 MySQL 一行记录是怎么存储的?MySQL 的数…

ChatGPT vs Bard 背后的技术对比分析和未来发展趋势

ChatGPT vs Bard 背后的技术对比分析和未来发展趋势 目录 ChatGPT vs Bard 背后的技术对比分析和未来发展趋势

Vulnhub系列:VulnOSv2

老样子,kali ip:192.168.56.104,靶机ip利用nmap或arp-scan -l进行查看靶机ip为:192.168.56.124,利用nmap进行端口探测发现了22、80、6667端口,下一步就是进行web探测,输入靶机ip后发现页面存在个链接&#…

Qt中调用gtest进行单元测试及生成覆盖率报告

一.环境配置 googletest地址:https://github.com/google/googletest 我下载的是1.12.1,这是最后一个支持C++11的版本。 首先编译gtest,在windows上的编译方式和编译gRPC一模一样,详见Qt中调用gRPC,编译完了会生成几个静态库,如下图所示 本文主要用到了libgtest.a 下载ms…

多线程二 多线程了解与使用

文章目录synchronized 锁有两种synchronized异常捕获主线程和子线程volatile的作用notify是随机启动等待线程中的一个synchronized 锁有两种 类对象类的实例 第一种:锁类对象,有两种方式,如下: // 方法一:synchroni…

Dubbo源码解析-——服务导出

前言 在之前我们讲过Spring和Dubbo的集成,我们在服务上标注了DubboService的注解,然后最终Dubbo会调用到ServiceBean#export方法中,本次我们就来剖析下服务导出的全流程。 一、前置回顾 由于ServiceBean实现了ApplicationListener接口&…

基于图像识别的数据处理系统

基于EASYDL模型的图像识别数据处理系统 需求分析 1.1软件背景分析 世界已经进入工业自动化的时代。随着图像识别、语音识别、机械稳定化的发展。自动化已经成为公司或者企业发展的重要方向。自动化是指机器设备或生产过程在不需要人工直接干预情况下,按照预期的目…

Java分布式解决方案(二)

文章目录🔥分布式事务处理_认识本地事务🔥关系型数据库事务基础_并发事务带来的问题🔥关系型数据库事务基础_MySQL事务隔离级别🔥MySQL事务隔离级别_模拟异常发生之脏读🔥MySQL事务隔离级别_模拟异常发生之不可重复读&…

浏览器渲染原理

阶段 - Parse 1、解析HTML,浏览器将从服务器获取到的HTML文件之后,会产生一个渲染任务,交给消息队列(EventLoop/MessageLoop)。 2、在事件循环机制的作用下,会将渲染任务交给主线程 3、主线程在获取到渲染…

入门vue(1-10)

正确学习方式&#xff1a;视频->动手实操->压缩提取->记录表述 1基础结构 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"&…

LeetCode 1599. 经营摩天轮的最大利润

【LetMeFly】1599.经营摩天轮的最大利润 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-profit-of-operating-a-centennial-wheel/ 你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0c;每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮…

0103深度优先搜索和单点连通-无向图-数据结构和算法(Java)

文章目录1.1 走迷宫1.2 图的深度优先搜索实现1.3 算法分析及性能1. 4 单点连通性后记1.1 走迷宫 简单的迷宫&#xff0c;如下图1.1-1所示&#xff1a; 探索迷宫而不迷路&#xff0c;我们需要&#xff1a; 选择一条没有标记过的通道&#xff0c;在你走过的路上铺一条绳子&…

基于linux 实现DNS Client请求

DNS是什么&#xff1a; DNS是域名系统,Domain Name System的缩写,是一个服务。 作用&#xff1a; DNS就是把域名解析为IP地址&#xff0c;提供我们上网&#xff0c;我们能够上网最终是找到IP地址。 DNS请求报文格式&#xff1a; 分别包含 Transaction ID&#xff1a;会话标…

Linux环境开发stm32+vscode编码+gcc-arm编译+openocd烧录

文章目录Linux环境下STM32开发1前言2环境搭建3点灯&#xff1a;脚本方式命令行操作方式具体见参考2vscode将以上命令集成起来4总结Linux环境下STM32开发 1前言 最近在使用Keil开发STM32的时候总感觉代码写起来很很费劲&#xff0c;然后打算用vscode试试&#xff0c;刚开始用的…