【网络协议详解】——STP技术(学习笔记)

STP详解 目录 前言 前言 STP:生成树协议 为了提高网络可靠性,交换机之间常常会进行设备冗余(备份),但这样会给交换网络带来环路风险,导致广播风暴以及MAC地址表不稳定等问题。STP生成树的作用就是为了解决避免二层环路,解决广播风暴。 广播风暴: 根据交换机的工作原理,从一个接口收到数据帧,先学习该数据帧的源MAC地址,并记录在交换机的MAC地址表中。并根据数据帧的目的MAC地址查找自己的MAC记录,若匹配成功,则从相应接口转发数据帧,若匹配失败,则将该数据帧泛洪到所有接口(将数据帧从所.. 阅读详情
AI摘要

本文详细介绍了STP(生成树协议)的工作原理,包括选举根交换机、根端口和指定端口的过程。此外,还阐述了BPDU(网桥协议数据单元)的角色,分为配置BPDU和TCNBPDU,以及它们在网络拓扑改变时如何协助重新计算生成树。最后,通过实验展示了STP在实际网络环境中的应用,如端口角色的变化和网络连通性的测试。

🕒 1. STP技术工作原理

以太网交换机使用生成树协议STP(Spanning Tree Protocol),可以在提高网络可靠性的同时又避免环路带来的各种问题。

生成树算法STA(Spanning Tree Algorithm)是生成树协议STP的核心。它的实现目标是:在包含有物理环路的网络中,构建出一个能够连通全网各节点的树型无环逻辑拓扑。

STP协议由IEEE 802.1D 定义,描述时使用的是“网桥”,由于“交换机”的本质是“多端口网桥”,接下来都使用“网桥”来描述。

生成树算法的三个步骤:

  1. “选举”根交换机
  2. “选举”根端口
  3. “选举”指定端口并阻塞备用端口

注:这里所谓的“选举”,是通过网络中各交换机相互发送生成树协议专用的数据帧来实现的,这些交换信息的报文称为网桥协议数据单元,简称BPDU。

选举根交换机:

  • 根交换机的选举条件:网桥ID(BID)最小者当选。
  • 网桥ID(BID)由以下两部分构成:
    • 优先级(2字节)
      • 范围:0 - 61440(也有说法是65535)
      • 步长:4096
      • 默认值:32768
    • 交换机的基本MAC地址(6字节)
  • 网桥ID (BID)的比较方法:
    • 优先级取值越小,则网桥ID(BID)就越小。
    • 若优先级相同,则比较MAC地址,从MAC地址的左侧开始依次比较,数值小的,则网桥ID(BID)就小。

选举根端口:

  • 在每一个非根交换机上选出一个根端口RP(Root Port),并且只能是一个。
  • 根端口RP用于接收根交换机发来的BPDU,也用来转发普通流量。
  • 根端口RP的选举条件:
    • BPDU接收端口到根交换机的路径成本(端口开销)最小。
       链路带宽   成本值  4 M b / s 250 10 M b / s 100 16 M b / s 62 100 M b / s 19 1 G b / s 4 10 G b / s 2 \begin{array}{|c|c|} \hline {\text { 链路带宽 }} & \text { 成本值 } \\ \hline 4 Mb/s & 250 \\ \hline 10 Mb/s & 100 \\ \hline 16 Mb/s & 62 \\ \hline 100 Mb/s & 19 \\ \hline 1 Gb/s & 4 \\ \hline 10 Gb/s & 2 \\ \hline \end{array}  链路带宽 4Mb/s10Mb/s16Mb/s100Mb/s1Gb/s10Gb/s​ 成本值 250100621942​​
    • 对端的网桥ID(BID)最小。
    • 对端的端口ID(PID)最小。
      • 优先级范围(1 - 4bit)
        • 范围:0 - 240
        • 步长:16
        • 默认值:128
      • 端口号(5 - 16bit)

选举指定端口(Designated Port)并阻塞备用端口(预备端口):

  • 在每一个网段上选出一个指定端口DP ( Designated Port)并且只能是一个。
  • 指定端口DP用于转发根交换机发来的BPDU,也用来转发普通流量。
  • 指定端口DP的选举条件:
    • 根交换机的所有端都是指定端口DP。
    • 根端口的对端端口一定是指定端口DP。
    • BPDU转发端口到根交换机的路径成本最小。
    • 本端的网桥ID(BID)最小。
    • 本端的端口ID(PID)最小。
  • 剩余端口成为备用端口AP(Alternate Port),将它们阻塞。

在这里插入图片描述

端口状态描述:

端口状态描 述
Disabled(端口没有启用)此状态下端口不转发数据帧,不学习MAC地址表,不参与生成树计算。
Listening(侦听状态)此状态下端口不转发数据帧,不学习MAC地址表,只参与生成树计算,接收并发送BPDU。
Blocking(阻塞状态)此状态下端口不转发数据帧,不学习MAC地址表,此状态下端口接收并处理BPDU,但是不向外发送BPDU。
Learning(学习状态)此状态下端口不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU。
Forwarding(转发状态)此状态下端口正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU。
  • 当端口正常启用之后,端口首先进入Listening状态,开始生成树的计算过程。
  • 如果经过计算,端口角色需要设置为预备端口(Alternate Port),则端口状态立即进入Blocking;
  • 如果经过计算,端口角色需要设置为根端口(Root Port)或指定端口(Designated Port),则端口状态在等待Forward Delay之后从Listening状态进入Learning状态,然后继续等待Forward Delay之后,从Learning状态进入Forwarding状态,正常转发数据帧。

🕒 2. BPDU报文

STP生成树的计算,根端口、指定端口的选举,都是借助BPDU(Configuration Bridge Protocol Data Unit)报文进行信息的传递和交换的。

BPDU报文有两类:配置BPDU和TCN BPDU

🕘 2.1 配置BPDU

在这里插入图片描述

  • 配置BPDU使用标准LLC格式封装在以太网数据帧中。
  • 配置BPDU只在指定端口(Designated Port)上发送。
  • DMAC:目的MAC地址。发送配置BPDU的数据帧使用保留的组MAC地址01-80-C2-00-00-00,此地址标识所有交换机,但是不能被交换机转发,也即只在本地链路有效。
  • LLC Header:目的服务访问点(Destination Service Access Point, DSAP)和源服务访问点(Source Service Access Point, SSAP)的值都设为二进制01000010。Ctrl字段的值设为3。

在这里插入图片描述

  • 当STP初始计算选举根交换机时,各个交换机主动生成并发送配置BPDU。
  • 选举结束后,只有根交换机才能主动生成并发送配置BPDU
  • 非根交换机只有在自己的根端口收到配置BPDU报文才能根据收到的报文生成配置BPDU从指定端口发送。

配置内容:
在这里插入图片描述

报文标识:

参数比特数描 述
Protocol Identifier (协议标识)16比特取值0x0000
Protocol Version Identifier (协议版本标识)8比特取值0x00
BPDU Type (BPDU类型)8比特配置BPDU报文取值0x00
拓扑改变通知BPDU报文取值0x80
Flags (标志)8比特配置BPDU报文取值0x00
拓扑改变配置BPDU报文取值0x01
拓扑改变确认配置BPDU报文取值0x80

STP计算:

参数比特数描 述
Root Identifier64比特当前根交换机的桥ID
Root Path Cost32比特发送该BPDU报文的交换机的根路径开销
Bridge Identifier64比特发送该BPDU报文的交换机的桥ID
Port Identifier16比特发送该BPDU报文的端口ID

时间参数:

参数比特数描 述
Message Age16比特该BPDU报文从根桥发送到当前交换机的总时间,随时间增长而变大,若达到Max Age,则此配置BPDU被认为已经过期
Max Age16比特BPDU报文的最大生命周期,默认取值20s
Hello Time16比特交换机发送配置BPDU的报文周期,默认取值2s
Forward Delay16比特端口Listening和Learning状态的持续时间,默认取值15s

🕘 2.2 TCN BPDU

如果网络拓扑发生了变化,会触发STP 的重新计算,新的生成树拓扑可能会跟原先的网络拓扑存在一定的差异。

在交换机上,指导报文转发的是MAC 地址表,默认的动态表项的生存时间是300 s,此时,数据转发如果仍然按照原有的MAC 地址表,会导致数据转发错误。

为防止拓扑变更情况下的数据发送错误,STP 中定义了拓扑改变消息泛洪机制。

当网络拓扑发生变化的时候,除了在整网泛洪拓扑改变信息外,同时修改MAC 地址表的生存期为一个较短的数值,等拓扑结构稳定之后,再恢复MAC 地址表的生存期。

在这里插入图片描述

在向整网泛洪拓扑改变信息的过程中,共涉及三种BPDU:

  1. 拓扑改变通知BPDU:TCN(Topology Change Notification) BPDU。用于非根交换机在根端口上向上行交换机通告拓扑改变信息,并且每隔Hello Time(2秒)发送一次,直到收到上行交换机的拓扑改变确认配置BPDU或者拓扑改变配置BPDU。
  2. 拓扑改变确认配置BPDU:TCAN(Topology Change Acknowledgment Configuration) BPDU。配置BPDU的一种,和普通配置BPDU不同的是此配置BPDU设置了一个Flag位。用于非根交换机在接收到拓扑改变通知BPDU的指定接口上向下行交换机发送拓扑改变通知的确认信息。
  3. 拓扑改变配置BPDU:TCC(Topology Change Configuration) BPDU。此配置BPDU设置了另外一个Flag位。用于从根交换机向整网泛洪拓扑改变信息,所有交换机都在自己所有的指定端口上泛洪此BPDU。

SWA收到SWB发送的拓扑改变通知BPDU之后,每隔2秒向网络中发送拓扑改变配置BPDU(设置了一个Flag位的配置BPDU),使网络中所有的交换机都把MAC地址表的生存期修改为Forward Delay(15秒),经过一段时间(Max Age加上Forward Delay,默认为35秒)之后,SWA(根交换机)在自己发送的配置BPDU中,清除Flag位,表示网络拓扑已经稳定,网络中的交换机恢复MAC地址生存期。

拓扑改变通知BPDU格式:

参数字节数内容
2字节Protocol Identifier0x0000
1字节Protocol Version Identifier0x00
1字节BPDU Type0x80

在这里插入图片描述
拓扑改变确认配置BPDU和拓扑改变配置BPDU都是配置BPDU的一种,和普通的配置BPDU不同的是:

  • 普通的配置BPDU中Flag字段全部设置为0;
  • 拓扑改变确认配置BPDU将Flag字段的第8位设置为1;
  • 拓扑改变配置BPDU将Flag字段的第1位设置为1。

🕒 3. 实验:了解STP生成过程

题目:作为公司的网络管理员,公司的网络使用了两层网络结构,核心层和接入层,在接入层采用了冗余网络,为避免存在的环路问题,决定使用STP 来进行环路控制。

在这里插入图片描述

设备接口接口类型所属VLAN允许通过VLAN
IOU1Ethernet 0/0TrunkALL
Ethernet 0/1TrunkALL
IOU2Ethernet 0/1TrunkALL
Ethernet 0/2TrunkALL
Ethernet 0/3AccessVLAN 10ALL
IOU3Ethernet 0/1TrunkALL
Ethernet 0/2TrunkALL
Ethernet 0/3AccessVLAN 10ALL
设备接口IP地址
PC-1Ethernet 0192.168.1.1/24
PC-2Ethernet 0192.168.1.2/24

实验步骤:
1、交换机基本配置
(1)在IOU1、IOU2、IOU3上创建vlan 10
(2)在IOU1、IOU2、IOU3上配置access口和trunk口

2、PC配置IP地址

3、STP基本配置
(1)在思科二层交换机中,STP是默认开启的。
(2)查看生成树的情况。(根网桥ID、交换机ID、各端口角色)

 IOU1#show spanning-tree
 IOU2#show spanning-tree
 IOU3#show spanning-tree

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
可以看到,对于IOU3,e0/1为根端口,e0/2为预备(alternative)端口。

(3)测试PC1到PC2的连通性
在这里插入图片描述

(4)关闭IOU3的e0/1口,再次查看生成树的情况

IOU3(config)#int e0/1
IOU3(config)#shutdown

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(5)再次测试PC1到PC2的连通性
在这里插入图片描述

(6)重新打开IOU3的e0/1口,更改IOU3的优先级,使其成为根网桥

IOU3(config)#spanning-tree vlan 1 priority 4096

(7)再次查看生成树的情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页

学习笔记——交换——STP(生成树)简介 当企业上下班时间,每个员工将自己的PC进行开关机的操作,现网当中就会出现大量的TCN BPDU,影响设备的性能,而PC机器其实不需要参加到生成树计算当中。,再加上30s的侦听(Listening)+学习(learning)),在这个时间段内,会导致网络长时间的中断。广播报文在两个或多个交换机间大量的、重复的、无休止的传递。 阅读详情

相关推荐

生成树协议(STP)深度解析

生成树协议(STP)深度解析

cxbigfish的博客 2040

STP协议(生成树协议)

生成树协议(spanningtreeprotocol),是一种工作在OSI网络模型中第二层(数据链路层)的通信协议,是一种由交换机运行的,基本应用是防止交换机冗余链路产生的环路,用于确保以太网中无环路的逻辑拓扑结构,从而避免了广播风暴,大量占用交换机的资源,生成树协议工作原理桥早期交换机一般只有二个转发端口,所以那个时候的交换机常常被称为“网桥”,后来“桥”这个术语一直沿用至今,但并不是指只有二个转发端口的交换机了,而是泛指任意多端口的交换机,目前“桥”和“交换机”这二个术语是可以混用的。...

weixin_60067160的博客 4万+

【网络协议详解】—— STP 、RSTP、MSTP技术(学习笔记)

(IEEE 802.1D)是一种网络协议,用于在网络拓扑中防止环路的产生。在二层交换网络中,逻辑上阻塞部分接口,实现从根交换机到所有节点的最短路径 的属性结构,生成一个没有环路的拓扑。当其中最佳的路径出现故障时,则将个别阻塞的接口 打开,实现链路资源的备份。的缺点是收敛速度慢,因为它需要等待端口状态的转换。(ROOT):在一个交换网络中,有且只能有一个根桥(根交换机),STP的主要作用就是在一个交换网络中计算出一棵无环的STP树;:只要不是根桥,就是非根桥(非根交换机);

2401_83342251的博客 1919

STP(生成树协议)

stp、生成树协议、stp的端口选举、stp的状态机、stp的拓扑变化、stp运算过程

weixin_71853810的博客 8336

STP详解-STP、RSTP、MSTP

STP详解 01 冗余链路中存在的问题 如图所示LSW1和LSW2之间有两条线路相连,它们之间任何一条链路出现故障另外一条线路可以马上顶替出现故障的那条链路,这样可以很好的解决单链路故障引起的网络中断,但在此之前有下面三个问题需要考虑。 广播风暴 以太网交换机传送的第二层数据帧不像路由器传送的第三层数据包有TTL(Time To Live),如果有环路存在第二层帧不能被适当的终止,他们将在交换机之间永无止境的传递下去。结合交换机的工作原理,来看一下上面这张拓扑中广...

HCIE666CCIE的博客 3784

HCIA 11-STP生成树技术

STP生成树技术,概述,过程

weixin_55519489的博客 1025

运维系列&网络设备系列【仅供参考】:【网络协议详解】——STP技术(学习笔记)

【网络协议详解】——STP技术(学习笔记)

weixin_54626591的博客 1098

MID360+fastlio功能笔记

前言。

qq_35598561的博客 5298

【网络协议详解】——MSTP技术(学习笔记)

RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但在划分VLAN的网络中运行RSTP/STP,局域网内所有的VLAN共享一棵生成树,被阻塞后的链路将不承载任何流量,无法在VLAN间实现数据流量的负载均衡,存在二层次优路径,导致链路带宽利用率、设备资源利用率较低。 为了弥补RSTP/STP的缺陷,IEEE于2002年发布的802.1S标准定义了MSTP(Multiple Spanning Tree Protocol,多生成树协议)。MSTP兼容STP和RSTP,通过建立多棵无环路的树,解决广播风暴

2201_75633021的博客 3507

告别设备管理器混乱!3分钟学会用STM32CubeMX+Zadig定制专属虚拟串口名称

本文详细介绍了如何利用STM32CubeMX和Zadig工具,为STM32的USB虚拟串口(VCP)定制专属设备名称,从而彻底解决多设备连接时设备管理器端口混乱的难题。通过修改产品字符串描述符并替换驱动,开发者可以在设备管理器中清晰识别不同开发板,显著提升调试效率,尤其适用于多设备协同的竞赛或项目开发场景。

a2b3c4d5e的博客 478

【Stata双重差分模型】双重差分DID的具体操作步骤

本案例将详细阐述如何使用双重差分法进行实证分析,并展示具体的STATA操作代码。

a519573917的博客 2万+

网络协议——STP协议是什么?是如何实现的?

本文将给大家讲解STP协议是什么?是如何实现的?以及STP协议的应用场景。

m0_73995538的博客 4614

银河麒麟V10系统grub崩溃急救指南:从光盘救援到完整恢复(附常见错误排查)

本文详细介绍了银河麒麟V10系统grub崩溃的急救方法,从使用安装光盘进入救援环境到完整恢复系统的全流程。针对不同损坏程度(轻度、中度、严重)提供了分级恢复策略,包括grub2-install和grub2-mkconfig等关键命令的使用,并附有常见错误排查表,帮助用户快速解决引导问题。

weixin_30955617的博客 483

网络协议中STP根桥的选举

在L2网络(数据链路层)中,为避免某台网络设备故障导致网络中断,常常会使链路冗余,如下图所示:               当某一链路故障或单台交换机故障时,网络通信不会因此中断。但由此引入另一个问题–桥接环,即当所有设备、链路都是正常的时候,由主机1发给主机2的报文将在两台设备(5,6)之间形成广播风暴。原理是L2交换机在收到报文时,若找不到目的Mac将在除了接受端口外的其他端口广播,而3、4

qq_26654881的博客 8218

微前端实战:MicroApp内存泄漏优化策略与性能调优

本文分享了在大型后台管理系统微前端化过程中,使用MicroApp框架时遇到的内存泄漏实战问题与优化策略。通过深入分析沙箱机制,提出动态加载、精准卸载、沙箱配置优化及第三方库补丁等核心方案,并结合Vue/React子应用专项检查清单,有效解决了内存占用飙升问题,为微前端架构的性能调优提供了系统性解决方案。

weixin_29014939的博客 276

智能车图像处理1-基础图像规格

从厂家摄像头的库函数中,我们可以直接得到完整图像的灰度数组,经过二值化之后(算力允许,可以考虑大津法),就是我们要处理的0-1二值图像了。本系列所有的文章中,我们的图像规格如下。

taiyuezyh的博客 4322

【网络协议详解】——RSTP技术(学习笔记)

在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU,在两个Hello Time时间之后,便把自己的端口转换到STP工作模式,发送配置BPDU,从而实现了互相兼容。

2201_75633021的博客 1684

断层错动和近断层地震动联合作用下软岩隧洞衬砌损伤分析

摘要 本文提出了一种基于Python的软岩隧洞衬砌损伤分析系统,重点研究断层错动和近断层地震动的联合作用效应。系统采用有限元方法建立隧洞-围岩体系模型,通过非线性动力分析评估衬砌结构损伤。研究内容包括:1)建立考虑应变软化的软岩本构模型;2)基于位错理论模拟断层错动过程;3)合成具有速度脉冲效应的近断层地震动;4)开发完整的动力响应分析流程。结果表明,所提出的方法能有效评估软岩隧洞在复杂地质条件下的抗震性能,为工程设计提供理论依据。 关键词:软岩隧洞、断层错动、近断层地震动、损伤分析、Python、有限元法

max500600的博客 842

生成树协议(STP)技术详解:原理、演进与配置实践

STP 是一种二层网络协议,诞生于 1985 年由 Radia Perlman 提出,后于 1990 年被 IEEE 标准化为 802.1D。它的核心使命是防止交换网络中的环路,避免广播风暴导致网络瘫痪。在局域网中,为了提升可靠性,交换机常通过多条链路互联形成冗余拓扑。然而,若无控制,环路会导致数据包无限循环,迅速耗尽带宽。STP 通过构建一棵逻辑“生成树”,禁用冗余路径,确保单一最优路径,同时保留备份路径以应对故障切换。STP 的历史与局域网技术的发展息息相关。

zero_number的博客 5916

全能媒体工具深度测评(下篇一):AI图文生成+全能解压+图片去文字,一键搞定素材精修

解压50多种格式,文生图,图生图

cs821984831的博客 40

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

stp内容详解

影响根桥选举的因素:

m0_65665796的博客 1853

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

STP技术

STP(Spanning Tree Protocol,生成树协议)是一种用于防止以太网中环路的网络协议,广泛应用于二层网络中,以避免广播风暴和MAC地址表震荡等问题。

2501_92656792的博客 1334

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

STP学习笔记

STP称为生成树协议,是一种网络协议。

2301_80080336的博客 860

网络协议详解之STP

本地交换机链路故障后,STP重新收敛,为了快速刷新全网所有交换机的MAC表,将向本地所有STP接口发送TCN(标记位中的TCN位置1),邻居交换机收到TCN后,先标记为ACK位为回复,用于可靠传输消息;没有直连检测:本地不存在阻塞端口,若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s hold time计时,到时时阻塞接口进入15s侦听,15s学习=总50s。本地离根网桥最近的接口(最短、星型),接收来自根网桥的BPDU,转发用户的流量(该接口不阻塞)

AXDRXS的博客 4758
上一篇: 【网络协议详解】——VLAN技术(学习笔记)
下一篇: 【网络协议详解】——RIP协议(学习笔记)
HinsCoder
博客等级 码龄5年 1万+粉丝 220原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值