华为---STP协议简介(一)

生成树协议简介

什么是生成树协议

        STP(Spanning Tree Protocol)是一种由交换机运行的、用来解决交换网络中环路问题的数据链路层协议。为提高网络可靠性,交换网络中通常会使用冗余链路,但是冗余链路会给交换网络带来环路风险,导致广播风暴以及MAC地址表不稳定等问题,影响用户通信质量。生成树协议STP可以在提高可靠性的同时又能避免环路带来的各种问题。

        注:屏蔽双绞线(ShieldedTwisted Pair)、信令转接点(SignalTransfer Point)等术语的缩写也是STP,应分清此 STP与彼 STP。


        没有冗余链路时,如上图所示某条链路出现故障,该链路交换机下的终端业务会中断。

        有冗余链路时,如上图所示某条链路出现故障,该链路交换机下的终端业务会中断,因为还有冗余链路保障网络连通;但是产生了环路。

生成树协议两个主要功能

  1. 消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
  2. 链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络通信。

网络环路产生的问题

        在有环路的交换网络中,会导致Mac地址表翻摆、广播风暴、多帧复制等问题。


名词解释

        桥(网桥):交换机早期的名字;
        桥(交换机)的Mac地址:每台交换机都有多个转发端口,每个端口有1个Mac地址,通常把端口编号最小的那个端口的Mac地址作为交换机的Mac地址;
        桥ID(BID):由桥优先级(2个字节,即16位二进制数)和桥Mac地址(6个字节,即48位二进制数)组成,优先级可以人为设置,取值范围是0~65535,步长为4096,默认为0x8000(十进制为32768);
        端口ID(PID):运行STP交换机的每个端口都有一个端口ID, 端口ID由端口优先级和端口号(即端口编号,如Ethernet0/0/3的端口编号为3)组成。 端口优先级取值范围是0到240, 步长为16, 即取值必须为16的整数倍,默认端口优先级为128;
        STP交换机:运行生成树协议的交换机;
        BPDU(Bridge Protocol Data Unit)网桥协议数据单元:是STP交换机相互交互的数据帧,BPDU是由STP交换机产生、交互和处理的,不是计算机等终端设备。


生成树协议工作原理

        STP协议的基本原理:在一个具有物理环路的交换网络中,交换机通过运行STP协议,自动生成一个没有环路的工作拓扑。该无环工作拓扑也称为STP树(STPTree),树节点为某些特定的交换机,树枝为某些特定的链路。一棵STP树包含唯一的一个根节点,任何一个节点到根节点的工作路径不但是唯一的,而且是最优的。当网络拓扑发生变化时,STP树也会发生相应变化。

生成树的产生过程

        交换网络中选举1台根桥(交换机) --> 非根桥(交换机)选举1个根端口 --> 选举指定端口 --> 阻塞剩余端口。

1.交换网络中选举1台根桥(交换机)

        根桥:网桥ID最小的为根桥,根桥是整个交换网络的逻辑中心,但不一定是物理中心,当网络拓扑发生变化时,根桥也可能发生变化。

        如上图所示,交换机默认优先级为32768,所有交换机优先级相同,则需要通过比较交换机Mac地址确定根桥,经过比较,交换机SW的BID最小,所以选举为根桥。

        如上图所示,对部分交换机优先级修改,交换机SW优先级最高(即,优先级值最小),交换机SW被选举为根桥。

2.非根桥(交换机)选举1个根端口

        根端口:是STP协议为非根桥选举出来的连接向根桥的端口,每台非根桥只能有1个根端口,根桥没有根端口。
       每台非根桥的STP交换机有多个用于连接网络的端口,通过比较每个连接网络端口的端口开销、端口对端网桥ID、端口对端端口ID来选举出1个根端口,以保证这个端口上的链路为到根桥的唯一1条最优路径。

        非根桥:没有被选举为根桥的STP交换机称为非根桥。
        端口的根路径开销(RPC-Root Path Cost):在运行STP协议的网络中,STP交换机端口到根桥的累计路径开销称为这个端口的根路径开销。
        端口的根路径开销与链路上的各个端口转发速率有关,端口转发速率越高开销越小。
        BID选举规则:先比较交换机优先级后比较交换机Mac地址,如果有1个优先级最高(优先级值最小)的交换机,则不需要再比较交换机Mac地址部分;如果有多个优先级最高(优先级值最小)的交换机,则需要再比较交换机Mac地址部分。
        PID选举规则:先比较交换机端口优先级后比较交换机端口号,如果有1个优先级最高(优先级值最小)的交换机端口,则不需要再比较交换机端口号部分;如果有多个优先级最高(优先级值最小)的交换机端口,则需要再比较交换机端口号部分。

SW4交换机根端口选举


如上图所示,SW4交换机到根桥SW有3条路径,路径开销分别为:

  1. SW4:GE 0/0/1-->SW:GE 0/0/2,SW4的E0/0/1端口路径开销为20000。
  2. SW4:GE 0/0/2-->SW2:GE0/0/2-->SW2:GE 0/0/1-->SW:GE 0/0/1
    SW4的E0/0/2端口路径开销为20000+20000=40000

  3. SW4:Ethernet 0/0/3-->SW3:Ethernet 0/0/2-->SW3:Ethernet 0/0/3-->SW2:Ethernet 0/0/2-->SW2:GE 0/0/1-->SW:GE 0/0/1
    SW4的E0/0/1端口路径开销为200000+200000+20000=420000

        注:从最后1条路径可以看出,路径开销不是SW4交换机和SW交换机之间的4个端口(SW3:Ethernet 0/0/2、SW3:Ethernet 0/0/3、SW2:Ethernet 0/0/2、SW2:GE 0/0/1)各自开销的累加,而是SW4交换机和SW交换机之间各个交换机之间路径(SW4-SW3、SW3-SW2、SW2-SW共3条路径)开销累加之和。

从3条路径开销得知SW4的GE 0/0/1端口路径开销最小,所以SW4交换机的根端口为GE 0/0/1。


SW3交换机根端口选举


如上图所示,SW3交换机到根桥SW有4条路径,路径开销分别为:

  1. SW3:E 0/0/2-->SW4:E 0/0/3-->SW4:GE 0/0/1-->SW:GE 0/0/2
    SW3的E 0/0/2端口路径开销为200000+20000=220000

  2. SW3:E 0/0/3-->SW2:E 0/0/2-->SW2:E 0/0/1-->SW:E 0/0/1
    SW3的E 0/0/3端口路径开销为200000+20000=220000

  3. SW3:E 0/0/3-->SW2:E 0/0/2-->SW2:GE 0/0/2-->SW4:GE 0/0/2-->SW4:GE 0/0/1-->SW:GE 0/0/2
    SW3的E 0/0/3端口路径开销为200000+20000+20000=240000

  4. SW3:E 0/0/2-->SW4:E 0/0/3-->SW4:GE 0/0/2-->SW2:GE 0/0/2-->SW2:GE 0/0/1-->SW:GE 0/0/1
    SW3的E 0/0/2端口路径开销为200000+20000+20000=240000

从4条路径开销得知SW4的E0/0/1端口路径开销最小的有2个,开销值都为220000,则需要比较BID(桥ID)来确定根端口。

SW3交换机去往根桥方向的相邻交换机ID为:SW2的ID为32768.4c1f-cc6b-343a,SW4的ID为32768.4c1f-cc6b-641e,SW2的BID小,则与SW2相连的SW3的E 0/0/3端口为SW3的根端口。


SW7交换机根端口选举

        SW7交换机到根桥SW有4条路径(跟SW3交换机相似,此处省略),端口路径开销和BID都相同,则需比较端口ID(PID)来确定根端口。

        SW7交换机去往根桥方向的相邻交换机端口ID为:SW3的Ethernet0/0/1端口ID为128.1,SW3的Ethernet0/0/4端口ID为128.4,SW3的Ethernet0/0/1端口ID小,则与SW3相连的SW7的E 0/0/1端口为SW7的根端口;
        如果手动修改SW3的Ethernet0/0/1端口ID为64.1,SW3的Ethernet0/0/4端口ID为48.4,SW3的Ethernet0/0/4端口优先级高(48<64),则与SW3相连的SW7的E 0/0/2端口为SW7的根端口;

        注:上图中,如果SW3和SW7之间用集线器HUB相连,则 SW7交换机Ethernet0/0/1端口和Ethernet0/0/2端口去往根桥方向的相邻交换机端口ID都为SW3的Ethernet0/0/1端口,PID是相同的,这种情况下则需要比较SW7自己的Ethernet0/0/1端口和Ethernet0/0/2端口PID来确定根端口。因为集线器HUB在实际应用中很少用,在此不再赘述。

3.选举指定端口

        指定端口用于确定除了根端口外要保留通信的端口,即连接两台STP交换机的两个端口,其中一个是指定端口,另外一个是根端口或者是阻塞端口。

指定端口举例说明

        上图按照根桥端口和根端口对端端口都是指定端口,标记出了部分指定端口;还剩下SW4:E0/0/3---SW3:E0/0/2、SW4:GE0/0/2---SW2:GE0/0/2、SW3:E0/0/1---SW7:E0/0/1共3条链路还没确定指定端口。

        按照端口根路径开销确定指定端口:
SW4:E0/0/3---SW3:E0/0/2链路:SW4:E0/0/3的RPC为20000,SW3:E0/0/2的RPC为220000,SW4:E0/0/3的RPC<SW3:E0/0/2的RPC,SW4:E0/0/3为指定端口。


SW4:GE0/0/2---SW2:GE0/0/2链路:SW4:GE0/0/2的RPC为20000,SW2:GE0/0/2的RPC为20000,SW4:GE0/0/2的RPC=SW3:GE0/0/2的RPC,需要比较各自交换机ID才能确定指定端口。SW2的ID为32768.4c1f-cc6b-343a,SW4的ID为32768.4c1f-cc6b-641e,SW2的BID小,则SW2:GE0/0/2为指定端口。

SW3:E0/0/1---SW7:E0/0/1链路:SW3:E0/0/1的RPC为220000,SW7:E0/0/1的RPC为420000,SW3:E0/0/1的RPC<SW7:E0/0/1的RPC,SW3:E0/0/1为指定端口。

4.阻塞剩余端口

        阻塞端口用于切断网络环路,在交换网络中,STP交换机通过交互BPDU消息,如果发现有环路,则选择地阻塞某些端口,最终将环路网络修改成逻辑上无环路的树形网络结构。

 

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

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

相关文章

网工内推 | H3C售前工程师,上市公司,13薪,有带薪年假、年终奖

01 长虹佳华 招聘岗位&#xff1a;高级售前工程师&#xff08;H3C&#xff09; 职责描述&#xff1a; 1. 负责公司签约代理的网络安全产品在区域的项目售前技术支持工作&#xff0c;包括项目售前交流、方案编写、招投标、产品测试等相关支持工作&#xff1b; 2. 与厂商产品部门…

nodejs在pdf中绘制表格

需求 之前我已经了解过如何在pdf模板中填写字段了 nodejs根据pdf模板填入中文数据并生成新的pdf文件https://blog.csdn.net/ArmadaDK/article/details/132456324 但是当我具体使用的时候&#xff0c;我发现我的模板里面有表格&#xff0c;表格的长度是不固定的&#xff0c;所…

Python入门自学进阶-Web框架——42、Web框架了解-bottle、flask

WEB框架的三大组件&#xff1a;路由系统、控制器&#xff08;含模板渲染&#xff09;、数据库操作 微型框架&#xff1a;依赖第三方写的socket&#xff0c;WSGI&#xff0c; 本身功能少 安装&#xff1a; pip install bottle pip install flask 安装flask&#xff0c;同时安…

conan入门(二十七):因profile [env]字段废弃导致的boost/1.81.0 在aarch64-linux-gnu下交叉编译失败

今天在尝试用conan 1.60.0使用aarch64-linux-gnu编译器交叉编译boost/1.81.0时报错了&#xff1a; conan install boost/1.81.0 -pr:h aarch64-linux-gnu.jinja -pr:b default --build boost输出如下&#xff1a; Configuration (profile_host): [settings] archarmv8 arch_b…

SQL做流水号

SELECT REPLICATE(0, 3 - LEN(3)) 3 AS 流水号 SELECT REPLICATE(0, 5 - LEN(3)) 3 AS 流水号 SELECT REPLICATE(0, 8 - LEN(3)) 3 AS 流水号

Java中String转换为double类型

这次的java作业是写一个数字转换的小项目&#xff0c;其中从输入框中获取的是String类型&#xff0c;但是要进行数字操作&#xff0c;此时要用到很多操作String类型数据的方法了。 从javafx输入框中获取到String类型后&#xff0c;首先是要判断是否能转换为数字或者小数形式&a…

实验三十三、三端稳压器 LM7805 稳压性能的研究

一、题目 LM7805 输出电压、电压调整率、电流调整率以及输出纹波电压的研究。 二、仿真电路 电路如图1所示。集成稳压芯片采用 LM7805CT。 三、仿真内容 &#xff08;1&#xff09;测量图1&#xff08;a&#xff09;LM7805CT 的电压调整率&#xff0c;测量条件为 I O 50…

嵌入式Linux应用开发-基础知识-第十七章异常与中断的概念及处理流程

嵌入式Linux应用开发-基础知识-第十七章异常与中断的概念及处理流程 第十七章 异常与中断的概念及处理流程17.1 中断的引入17.1.1 妈妈怎么知道孩子醒了17.1.2 嵌入系统中也有类似的情况 17.2 中断的处理流程17.3 异常向量表17.4 参考资料 第十七章 异常与中断的概念及处理流程…

【C语言】快速排序

文章目录 一、hoare版本二、挖坑法三、前后指针法四、非递归快排五、快速排序优化1、三数取中选key值2、小区间优化 六、代码测试 一、hoare版本 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法&#xff0c;其基本思想为&#xff1a;任取待排序元素序列中的某元素…

今天刷到一条有用的抖音---网站文档copy的解禁

有的时候在网上查找一些资料&#xff0c;发现些有用的东西的时候&#xff0c;兴高采烈的复制一下&#xff0c;然后网站弹出一个菜单让你付钱~~如下图&#xff1a; 此时&#xff0c;可以在该网页上&#xff0c;按F12&#xff0c;召唤出调试窗口&#xff0c;在事件监听器中&#…

美国零售电商平台Target,值得入驻吗?如何入驻?

Target 是美国最大的零售商之一&#xff0c;在品牌出海为大势所趋的背景下&#xff0c;它在北美电商中的地位节节攀升。Target 商店在众多垂直领域提供各种价格实惠的自有品牌&#xff0c;吸引越来越多的跨境商家入驻&#xff0c;如美妆、家居、鞋服、日用百货等&#xff0c;随…

【STM32笔记】HAL库I2C通信配置、读写操作及通用函数定义

【STM32笔记】HAL库I2C通信配置、读写操作及通用函数定义 文章目录 I2C协议I2C配置I2C操作判断I2C是否响应I2C读写 附录&#xff1a;Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏定义总…

Python爬虫教程——解析网页中的元素

前言&#xff1a; 嗨喽~大家好呀&#xff0c;这里是小曼呐 ~ 在我们理解了网页中标签是如何嵌套&#xff0c;以及网页的构成之后&#xff0c; 我们就是可以开始学习使用python中的第三方库BeautifulSoup筛选出一个网页中我们想要得到的数据。 接下来我们了解一下爬取网页信息…

基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2015/CEC2018/CEC2023(MATLAB代码)

一、动态多目标优化问题 1.1问题定义 1.2 动态支配关系定义 二、 基于自适应启动策略的混合交叉动态多目标优化算法 基于自适应启动策略的混合交叉动态多目标优化算法&#xff08;Mixture Crossover Dynamic Constrained Multi-objective Evolutionary Algorithm Based on Se…

高速数字化仪为您带来高效RF测量秘籍!

模块数字化仪能够以16 bit高分辨率采集2 GHz带宽的RF信号。虹数字化仪能够使用许多RF和较低频率微波的测试。本文重点介绍使用虹科数字化仪进行RF测量相关内容。 高数据通量测试 基于多通道PCIe的数字化仪&#xff0c;可以以高达12.8 GBytes/s的速度传输数据&#xff0c;从而…

云中网络的隔离GREVXLAN

底层的物理网络设备组成的网络我们称为 Underlay 网络&#xff0c;而用于虚拟机和云中的这些技术组成的网络称为 Overlay 网络&#xff0c;这是一种基于物理网络的虚拟化网络实现。 第一个技术是 GRE&#xff0c;全称 Generic Routing Encapsulation&#xff0c;它是一种 IP-o…

Serverless 数仓技术与挑战(内含 PPT 下载)

近期&#xff0c;Databend Labs 联合创始人张雁飞发表了题为「Serverless 数仓技术与挑战」的主题分享。以下为本次分享的精彩内容&#xff1a; 主题&#xff1a; 「Serverless 数仓技术与挑战」 演讲嘉宾&#xff1a; 张雁飞 嘉宾介绍&#xff1a; Databend Labs 联合创始人…

c++迷宫小游戏

一、总结 一句话总结&#xff1a; 显示&#xff1a;根据map数组输出图像 走动&#xff1a;修改map数组的值&#xff0c;每走一步重新刷新一下图像就好 1、如果走函数用z()&#xff0c;出现输入s会向下走多步的情况&#xff0c;原因是什么&#xff1f; 向下走两层循环ij增加&a…

openlayers-18-聚合显示补充(切换聚合与非聚合状态)

最近有一些网友问我&#xff0c;聚合显示怎么实现聚合与不聚合之间的切换&#xff0c;有很多方法能够实现&#xff0c;下面是一个示例作为参考。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-…

LabVIEW开发低成本静脉监测和控制输液系统

LabVIEW开发低成本静脉监测和控制输液系统 信息技术的使用和进步彻底改变了现代医疗保健的面貌。医院、疗养院和其他姑息治疗院需要不同的人力资源&#xff0c;如医生、技术人员、护士和其他工作人员&#xff0c;他们共同提供最先进的医疗保健。COVID-19大流行表现出严重缺乏此…