华为---RSTP(三)---P/A机制及RSTP的生成树形成过程

目录

1. P/A机制简介

1.1 P/A机制的作用

1.2 P/A协商的前提条件

1.3 RSTP选举思路

2. P/A协商过程

3. 举例说明RSTP的生成树形成过程

3.1 示例环境要求

3.2 RSTP的生成树形成过程

3.2.1 SW和SW1之间链路上抓包分析

3.2.2 SW和SW2之间链路上抓包分析

3.2.3 SW1和SW2之间链路上抓包分析

3.2.4 SW2和SW3之间链路上抓包分析

3.2.5 SW1和SW3之间链路上抓包分析

3.2.6 备份端口选举抓包分析


1. P/A机制简介

P(Proposal)/A(Agreement)机制---请求/确认机制
        P/A机制        P:Proposal-协商        A:Agreement-同意
        P/A机制是RSTP( Rapid Spanning Tree Protocol,快速生成树协议)中的一个关键组成部分,它允许指定的端口在满足一定条件下快速进入转发状态,而无需等待定时器的超时。

1.1 P/A机制的作用

        为了使生成树链路上的端口(根端口、指定端口)快速进入转发状态,不用等待30秒延时(2个转发延时)。

1.2 P/A协商的前提条件

        P/A机制的触发前提是DP端口处于Discarding状态,两台交换设备之间链路必须是点对点的全双工模式,一旦P/A协商不成功,指定端口到转发状态就需要等待两个转发延时(30秒),协商过程与STP一样。

1.3 RSTP选举思路

        RSTP选举原理和STP本质上相同:选举根交换机->选举非根交换机上的根端口->选举指定端口->选举预备端口和备份端口。
        事实上对于STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少一个Forward Delay所有端口才能进行转发。而RSTP的主要目的就是消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制加快了上游端口转到Forwarding状态的速度。

        RSTP在选举的过程中加入了“发起请求-回复同意”(P/A机制)这种确认机制,由于每个步骤有确认就不需要依赖计时器来保证网络拓扑无环后才进入转发状态,只需要考虑BPDU发送报文并计算无环拓扑的时间(一般都是秒级)。解决了STP网络收敛慢问题。

2. P/A协商过程

        如下图所示,根桥S1和S2之间新添加了一条链路。在当前状态下,S2的另外几个端口p2是Alternate端口,p3是指定端口且处于Forwarding状态,p4是边缘端口。

        Proposal/Agreement过程示意图

新链路连接成功后,P/A机制协商过程如下:

  1. p0和p1两个端口马上都先成为指定端口,发送RST BPDU。
  2. S2的p1口收到更优的RST BPDU,马上意识到自己将成为根端口,而不是指定端口,停止发送RST BPDU。
  3. S1的p0进入Discarding状态,于是发送的RST BPDU中把proposal置1。
  4. S2收到根桥发送来的携带proposal的RST BPDU,开始将自己的所有端口进入sync变量置位。
  5. p2已经阻塞,状态不变;p4是边缘端口,不参与运算;所以只需要阻塞非边缘指定端口p3。
  6. 各端口的synced变量置位后,p2、p3进入Discarding状态,p1进入Forwarding状态并向S1返回Agreement位置位的回应RST BPDU。
  7. 当S1判断出这是对刚刚发出的Proposal的回应,于是端口p0马上进入Forwarding状态。

        上述P/A机制协商过程是华为官方资料描述,说明了两个RSTP交换机端口之间新加链路的P/A协商过程,没有讲述整个RSTP网络如何进行P/A协商的?生成树如何形成的?。

3. 举例说明RSTP的生成树形成过程

3.1 示例环境要求

        组网如下图所示,提前配置SW为根交换机,所有交换机都配置成RSTP模式。为便于网络数据抓取,每两台交换机之间用两台集线器hub相连,先开启所有集线器,然后在集线器间的节点上抓取数据,最后选中所有交换机点击开启设备。

3.2 RSTP的生成树形成过程

        通过抓包分析根交换机、根端口、指定端口、预备端口和备份端口的选举,RSTP的生成树形成过程。

3.2.1 SW和SW1之间链路上抓包分析


        SW的Eth 0/0/1和SW1的Eth 0/0/3两个端口马上都先成为指定端口,并处于Discarding状态,发送Proposal位置位1的RST BPDU。

        SW1的Eth 0/0/3口收到更优的Proposal位置位1的RST BPDU:
        (1)马上意识到自己将成为根端口,而不是指定端口;
        (2)阻塞除SW1的Eth 0/0/3口和边缘端口外的所有端口;
        (3)给SW的Eth 0/0/1口回复Agreement位置位1的RST BPDU;
        (4)SW1所有非边缘端口发送Topology Change位置位1的RST BPDU,更新Mac地址表;
        (5)停止发送RST BPDU。

        SW交换机收到P/A请求的回应后:
        (1)SW的Eth 0/0/1端口马上进入Forwarding状态;
        (2)SW的所有指定端口发送Topology Change位置位1的RST BPDU,更新Mac地址表。

        到此SW的Eth 0/0/1端口和SW1的Eth 0/0/3端口之间的链路P/A协商完成,SW为根交换机,SW的Eth 0/0/1为指定端口,SW1的Eth 0/0/3为根端口。

3.2.2 SW和SW2之间链路上抓包分析

        分析过程和SW的Eth 0/0/1端口至SW1的Eth 0/0/3端口之间的链路P/A协商一样,不再赘述,确认SW为根交换机,SW的Eth 0/0/2为指定端口,SW2的Eth 0/0/3为根端口。

3.2.3 SW1和SW2之间链路上抓包分析


        SW1的Eth 0/0/1和SW2的Eth 0/0/1两个端口马上都先成为指定端口,并处于Discarding状态,发送Proposal位置位1的RST BPDU。

        上述图说明P/A协商失败,SW2交换机发送了约15秒的P置位 RST BPDU,SW2的Eth 0/0/1端口进入Learning状态,15秒后进入forwarding状态。

        一旦P/A协商不成功,指定端口的选择就需要等待两个Forward Delay,协商过程与STP一样,SW1和SW2交换机根交换机ID和根路径开销都一样,所以按照STP指定端口选举规则进行选举,需要通过比较各自的交换机ID(BID)选举指定端口,SW1的ID是32768.4c1f-ccbe-6957,SW2的ID是32768.4c1f-cc16-6c7a,SW1的ID大于SW2的ID,所以SW2的Eth 0/0/1口为指定端口,SW1的Eth 0/0/1口为预备端口。

3.2.4 SW2和SW3之间链路上抓包分析

        分析过程和SW的Eth 0/0/1端口至SW1的Eth 0/0/3端口之间的链路P/A协商一样,不再赘述,确认SW为根交换机,SW2的Eth 0/0/2为指定端口,SW3的Eth 0/0/1为根端口。

3.2.5 SW1和SW3之间链路上抓包分析

        SW1的Eth 0/0/2和SW3的Eth 0/0/2两个端口马上都先成为指定端口,并处于Discarding状态,发送Proposal位置位1的RST BPDU。

        上述图说明P/A协商失败,SW1交换机发送了约15秒的P置位 RST BPDU,SW1的Eth 0/0/2端口进入Learning状态,15秒后进入forwarding状态。

        一旦P/A协商不成功,指定端口的选择就需要等待两个Forward Delay,协商过程与STP一样。SW1和SW3交换机根交换机ID一样,SW1根路径开销是200000,SW3根路径开销是400000,按照STP指定端口选举规则进行选举,SW1根路径开销小,所以SW1的Eth 0/0/2口为指定端口,SW3的Eth 0/0/2口为预备端口。

3.2.6 备份端口选举抓包分析

        如上网络拓扑图所示,在链路6和链路7上抓包:


        从上图可以看出,数据都是从SW3的Eth 0/0/3口发出的RST BPDU,说明SW3在发送RST BPDU前,因为根交换机ID、跟路径开销、当前交换机ID都一样,所以通过比较端口ID(PID),选择小端口ID的Eth 0/0/3端口为指定端口,大端口ID的Eth 0/0/4端口为备份端口。

SW3的Eth 0/0/3口P/A协商是失败的,是按照STP指定端口选举规则进行选举的。

  • RSTP的生成树是每条链路之间进行P/A协商,有更优RST BPDU立即更新。
  • Alternate端口就是由于学习到其它交换机发来的更优配置BPDU报文(更小的RID)而阻塞的端口。
  • Backup端口就是由于学习到自己发送的更优配置BPDU报文而阻塞的端口。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode_Java_转变日期格式、种花问题(题目+思路+代码)

目录 1507. 转变日期格式 605.种花问题 1507. 转变日期格式 给你一个字符串 date ,它的格式为 Day Month Year ,其中: Day 是集合 {"1st", "2nd", "3rd", "4th", ..., "30th", "3…

【计算机图形学】Where2Act: From Pixels to Actions for Articulated 3D Objects

文章目录 1.论文做了件什么事儿2. 论文为什么要做这件事3. 介绍Introduction4. 相关工作预测语义表达推理几何和物体属性从被动观察中学习Affordance从交互中学习感知 5. 问题陈述6. 方法6.1 网络模块主干特征提取器可运动性评分模块运动建议模块运动评分模块 6.2 训练数据收集…

路由器端口映射如何配置?

在网络通信中,路由器是一个重要的设备,它负责将数据包从一个网络传输到另一个网络。路由器的端口映射配置是一种重要的设置,可以使外部网络中的计算机通过访问路由器上的特定端口与内部网络中的计算机进行通信。本文将介绍什么是路由器端口映…

k8s pv与pvc理解与实践

参考文章: https://blog.csdn.net/qq_41337034/article/details/117220475 一、 pv/pvc简述 Pv是指PersistentVolume,中文含义是持久化存储卷是对底层的共享存储的一种抽象,Pv由管理员进行配置和创建,只要包含存储能力&#xff…

【DL】深度学习之语音识别

目录 1 核心概念 2 安装依赖库 3 实践 语音信号处理(Speech Signal Processing)简称语音处理。 语音识别(ASR)和自然语言处理(NLP):语音识别就是将语音信号转化成文字文本,简单实…

Redis 服务集群、哨兵、缓存及持久化的实现原理和应用场景

Redis 是一种高性能的键值存储系统,已经成为了许多企业和互联网公司的核心技术之一。本文将介绍 Redis 的服务集群、哨兵以及缓存实现原理和应用场景,以帮助读者更好地理解和使用 Redis。 引言: 随着互联网应用规模不断扩大,Redi…

Laravel04 eloquent

eloquent 1. eloquent2. 创建eloquent model 以及 取数据 1. eloquent 文档地址: https://learnku.com/docs/laravel/8.x/eloquent/9406 下面是我们,通过laravel的DB类从数据库中获取了post记录,那么有没有可能我们直接获取一个post对象&am…

[算法沉淀记录]排序算法 —— 快速排序

排序算法 —— 快速排序介绍 基本概念 快速排序(Quicksort)是一种排序算法,最早由东尼霍尔提出。在平均状况下,排序 n 个项目要 Ο(n log n) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上&…

Arduino单片机基础介绍

(本文为简单介绍,内容源于网络和AI) Arduino单片机,自2005年诞生以来,已经成为全球爱好者和专业工程师们快速实现创意原型的重要工具。Arduino的普及不仅因其强大的功能和简易的操作,还在于其背后强大的社…

【数据结构】队列OJ题《用队列实现栈》(题库+解析+代码)

1.前言 通过前面队列的实现和详解大家对队列应该有一定熟悉了,现在上强度开始做题吧 队列详解:http://t.csdnimg.cn/dvTsW 2.OJ题目训练225. 用队列实现栈 题目分析 请你仅使用两个队列实现一个后入先出(LIFO)的栈&#xff0…

亿道丨三防平板丨手持平板丨加固平板丨助力地震救援

自土耳其发生7.8级大地震以来,一直都牵动着世人的心。2023年2月10日,据法新社最新消息,强震已造成土耳其和叙利亚两国超2万人遇难。报道称,相关官员和医护人员表示,地震造成土耳其17674人死亡,叙利亚则有33…

洛谷C++简单题小练习day22—小鱼记忆小程序!一题五解,高效学习

day22--小鱼记忆--2.26 习题概述 题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字 ai​(长度不一定,以 0 结束),记住了然后反着念出来(表示结束的数字 0 就不要念出来了)。…

iOS App 上架指南及关键

引言 上架App Store是将iOS应用提交申请并上线的过程,旨在让应用在App Store上展示,吸引用户并获取流量。本文将介绍iOS上架的整体流程,并提供一些建议和注意事项。 一、iOS上架的整体流程 1. 申请开发者账号 首先,需要申请苹…

08_css

文章目录 CSS概念在HTML中引入CSS的三种方式CSS的选择器标签选择器类选择器id选择器后代选择器子类选择器并集选择器伪类选择器伪元素选择器属性选择器选择器的优先顺序 盒子模型边框的写法内外边距的写法外边距合并 标签的分类块级元素行级元素行内块 浮动 CSS 概念 css是层…

共同学习|Spring Cloud Alibaba一一服务网关Gateway

目录 服务网关-Gateway 环境搭建 负载均衡 Gateway Predicates Path After Before Cookie Header Weight GatewayFilter Factories StripPrefix AddResponseHeader 自定义全局Filter 网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连&…

北斗卫星赋能,宠物定位新篇章—追踪宠物,不再是难题

北斗卫星赋能,宠物定位新篇章—追踪宠物,不再是难题 随着社会的快速发展与科技的不断进步,人们的生活方式也在不断改变。宠物已经成为越来越多家庭的重要成员,在这个宠爱宠物的时代,如何确保宠物的安全,特…

js之继承

js之继承 1、原型 prototype 和 __proto__2、原型链3、继承4、hasOwnProperty 1、原型 prototype 和 proto 每个对象都有一个__proto__属性,并且指向它的prototype原型对象每个构造函数都有一个prototype原型对象prototype原型对象里的constructor指向构造函数本身…

淘金优化算法GRO求解不闭合SD-MTSP,可以修改旅行商个数及起点(提供MATLAB代码)

一、淘金优化算法GRO 淘金优化算法(Gold rush optimizer,GRO)由Kamran Zolf于2023年提出,其灵感来自淘金热,模拟淘金者进行黄金勘探行为。淘金优化算法(Gold rush optimizer,GRO)提…

vscode与vue/react环境配置

一、下载并安装VScode 安装VScode 官网下载 二、配置node.js环境 安装node.js 官网下载 会自动配置环境变量和安装npm包(npm的作用就是对Node.js依赖的包进行管理),此时可以执行 node -v 和 npm -v 分别查看node和npm的版本号: 配置系统变量 因为在执…

Cloudera虚拟机配置(虚拟机环境自带Hadoop、Impala等大数据处理应用)

上学期的大数据处理课程,笔者被分配到Impala的汇报主题。然而汇报内容如果单纯只介绍Impala的理论知识,实在是有些太过肤浅,最起码得有一些实际操作来展示一下Impala的功能。但是Impala的配置实在是有些困难与繁琐,于是笔者通过各…
最新文章