• 生成树协议STP(Spanning Tree Protocol)


    为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。

    技术提出起因

    在这里插入图片描述
    交换机主要靠MAC地址表转发数据,网络刚开始没有MAC地址表的时候,会从接口上学习MAC地址
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    当网络的交换机多起来,做了冗余后就会出现环路、出现广播风暴和MAC地址表震荡;交换机性能会因此急速下降,并会导致业务中断。

    在以太网中,二层网络的环路会带来广播风暴,MAC地址表震荡,重复数据帧等问题,为解决交换网络中的环路问题,提出了STP。
    STP的主要作用:

    • 消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
    • 链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。
      在这里插入图片描述

    STP中定义了三种端口角色:指定端口,根端口和预备端口。

    • 指定端口:指定端口是交换机向所连网段转发配置BPDU的端口,每个网段有且只能有一个指定端口。一般情况下,根桥的每个端口总是指定端口。
    • 根端口:非根交换机去往根桥路径最优的端口。在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。
    • 预备端口:如果一个端口既不是指定端口也不是根端口,则此端口为预备端口。预备端口将被阻塞。
      如上图所示:
      假设SWA为根桥,那么网络中的其他交换机则为非根桥
      由于上方指定端口的定义则SWA根桥交换机连接其他非根桥交换机的口都为指定端口
      那么非根桥SW连接 根桥SW的直连端口就为根端口;
      那么剩下的两个非根交换机相连的两个口只能是一个指定端口另一个就是预备端口了
      这个根端口是选举出来的,谁NB哪个口就是根端口。

    根桥选举

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    上图中所示为STP的端口状态迁移机制,运行STP协议的设备上端口状态有5种:

    • Forwarding:转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。
    • Learning:学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。
    • Listening:侦听状态。端口可以转发BPDU报文,但不能转发用户流量。
    • Blocking:阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。
    • Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。

    执行display stp brief命令查看STP信息
    执行display stp interface命令查看端口的STP状态

    目前的生成树协议有STP、MSTP、RSTP、PVST

    STP (Spanning Tree Protocol):

    • 最初的生成树协议,设计用于防止二层网络中的环路。
    • 收敛速度较慢,因为它的计时器较长(如Forward Delay默认为15秒)。
    • 不适用于大型复杂网络,因为所有VLAN共享同一棵生成树。

    RSTP (Rapid Spanning Tree Protocol):

    • STP的改进版,显著提高了收敛速度。
    • 引入了快速收敛机制,如边缘端口、快速转发等。
    • 更适合需要快速恢复的网络环境。

    MSTP (Multiple Spanning Tree Protocol):

    • 允许创建多个生成树实例,每个实例可以对应一组VLAN。
    • 提供了VLAN间负载均衡的能力,同时保持了RSTP的快速收敛特性。
    • 适用于需要更精细VLAN管理和负载分担的复杂网络环境。

    PVST/PVST+ (Per-VLAN Spanning Tree/Per-VLAN Spanning Tree Plus):

    • 思科私有协议,为每个VLAN创建一个独立的STP实例。
    • 能够在每个VLAN级别上避免环路,提供良好的隔离性。
    • 收敛速度较RSTP慢,但提供了高度的灵活性和故障隔离能力。
    • 需要更多的CPU和内存资源,因为每个VLAN都需要维护一个生成树实例。
  • 相关阅读:
    【C++初阶7-string】真方便,真舒服
    java中的全局异常捕获
    分布式系统中自适应统计信息收集策略
    把Stream流学透了你也能写出简洁高效的代码,来看看吧(建议收藏)
    GGTalk 开源即时通讯系统源码剖析之:服务端全局缓存
    使用C#创建安装Windows服务程序(干货)
    eclipse 根据wsdl文件生成Java文件 3种方式
    Windows命令--操作文件/目录
    从阿里云容器攻防矩阵&API安全生命周期,看如何构建金融安全云原生平台
    代码随想录算法训练营第四十四天 | 动态规划 part 6 | 完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ
  • 原文地址:https://blog.csdn.net/weixin_37571914/article/details/139300714