STP生成树

news2024/11/27 7:40:39

文章目录

  • 一、二层环路带来的问题
  • 二、生成树定义
  • 三、STP相关概念
    • BPDU(Bridge Protocol Data Unit)
      • 定义
      • 分类
      • 用来选举的参数
  • 四、STP的选举机制
  • 五、STP初始化流程
    • 交换机端口状态
  • 六、STP计时器
  • 七、STP拓扑变更机制
  • 八、STP的问题
  • 九、RSTP(Rapid Spanning Tree Protocol)
  • 十、MSTP(Multiple Spanning Tree Protocol)
  • 十一、STP常用命令

首先可以看下思维导图,以便更好的理解接下来的内容。
在这里插入图片描述

一、二层环路带来的问题

在网络中,二层环路是指交换机之间存在多条路径,导致数据在环路上不断循环,引发问题。这些问题包括:

广播风暴: 环路会导致广播帧在网络中无限循环,使网络中的每个交换机都不断收到相同的广播消息,占用带宽并导致网络拥堵。

在这里插入图片描述

MAC地址表漂移: 环路上的交换机可能因为广播风暴不断更新其MAC地址表,而这些表的更新会在环路中不断传播,造成网络不稳定,严重影响数据转发。

在这里插入图片描述

二、生成树定义

生成树协议(Spanning Tree Protocol,STP)被设计用来解决二层环路问题。它通过在网络中选择一个主干路径,将其他冗余路径进行屏蔽,以确保网络中不存在活动的环路。

三、STP相关概念

BPDU(Bridge Protocol Data Unit)

定义

桥协议数据单元,用于传递STP协议相关信息。

在这里插入图片描述

分类

配置BPDU:用于传递STP的配置信息。
TCN BPDU(Topology Change Notification BPDU):用于通告拓扑变更信息。

用来选举的参数

桥ID:由优先级和MAC地址组成,优先级默认32768。
根桥ID:拥有最小桥ID的交换机成为根网桥。
根桥开销(RPC):从交换机端口到根网桥的路径开销。
转发桥ID:指示数据帧从源交换机到目标交换机的路径。
指定端口ID:用于在物理段上选举指定端口。

四、STP的选举机制

  • 选举根网桥: 所有交换机中选举一个根网桥,规则是Bridge ID 最小的交换机成为根网桥,Bridge ID 由优先级和MAC地址组成。

在这里插入图片描述

  • 选举根端口和指定端口:
        根端口: 到达根网桥开销最小的端口。
        指定端口: 在每个物理段上选举出一个,到达根网桥开销最小的端口。

在这里插入图片描述

  • 选举闭塞端口: 剩下没有角色的端口就是闭塞端口(Blocked Port)。

五、STP初始化流程

交换机端口状态

交换机端口状态包括:disable、blocking、listening、learning 和 forwarding。

  • disable: 禁用状态,被关闭的端口。
  • blocking: 闭塞状态,在此状态下,端口能接收BPDU,但不发送BPDU,不学习MAC地址,不转发数据。
  • listening: 监听状态,接收并发送BPDU,不学习MAC地址,不转发数据,持续15秒。
  • learning: 学习状态,接收并发送BPDU,学习MAC地址,不转发数据,持续15秒。
  • forwarding: 转发状态,接收并发送BPDU,学习MAC地址,转发数据。

六、STP计时器

  • Hello Time(2秒): 配置BPDU的发送周期。
  • Max Age(20秒): 判断链路故障的时间,相当于10个Hello Time周期。
  • Forwarding Delay(15秒): 状态切换延迟。

七、STP拓扑变更机制

  • 1.当Max Age超时或有接口变更为转发状态,判断拓扑变更发生,交换机向根网桥发送TCN BPDU。
  • 2.收到TCN BPDU的交换机继续向根网桥转发TCN BPDU,直到到达根网桥为止。
  • 3.根网桥收到TCN BPDU后,向所有端口发起TC置位的配置BPDU。
  • 4.交换机收到TC置位的配置BPDU后,Mac地址表的老化时间缩短到15秒。

八、STP的问题

STP存在一些问题,如:

  • 收敛速度慢,故障切换时间长: 在STP中,网络中断的恢复速度较慢,需要等待Max Age的时间。
  • 大量主机频繁上下线导致TCN BPDU发送: 当网络中的主机频繁上下线,会导致大量的TCN BPDU发送,影响网络性能。

在这里插入图片描述

九、RSTP(Rapid Spanning Tree Protocol)

RSTP是快速生成树协议,相较于STP,它带来了以下改进:

  • 端口状态减少到3种: 替代了STP中的listening和learning状态,只有blocking、forwarding 和 disabled。
  • 端口角色增加到4种
    根端口和指定端口与STP相同。
    闭塞端口细分为两种:备份端口和替代端口,提高了冗余路径的利用。
  • 边缘端口机制: 当链路激活时,边缘端口会立即进入forwarding状态,不参与STP计算。边缘端口的UP/DOWN不会触发拓扑变更,建议将连接PC的端口配置为边缘端口。

在这里插入图片描述

十、MSTP(Multiple Spanning Tree Protocol)

MSTP是多生成树协议,它将多个VLAN捆绑到一个生成树实例,每个实例分别独立计算生成树,从而实现不同VLAN的流量负载均衡。

在这里插入图片描述

十一、STP常用命令

[h3c]display stp                                           #查看STP相关信息
[h3c]display stp brief                                     #查看STP端口状态
[h3c]stp global enable                                     #全局启用STP
[h3c-GigabitEthernet 1/0/1]undo stp enable                 #关闭端口上STP
[h3c]stp mode 'stp/rstp/mstp'                              #更改STP模式,默认模式是mstp
[h3c]stp priority 'priority'                               #更改交换机优先级
[h3c-GigabitEthernet 1/0/1]stp cost 'cost'                 #更改接口生成树的cost
[h3c-GigabitEthernet 1/0/1]stp edged-port                  #配置端口为边缘端口

如有不详或错误,敬请指出。

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

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

相关文章

200 Smart 与 PLC 4000 PN/PN Coupler通讯

1、打开200 smart 菜单栏选择工具,profinet网络,添加控制器 2、200 Smart PN /PN Coupler 做为控制器组态IO均配置128个BYTE. 3、S7400 在硬件配置里组态 PN/PN Coupler通讯 并添加报文长度为128BYTE 4、通过程序将200 msart中的IO点写到DB数据块内

c++11 标准模板(STL)(std::basic_stringstream)(一)

定义于头文件 <sstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_stringstream;(C11 前)template< class CharT, class Traits std::char_traits<CharT>, class Allocator std::alloc…

机器学习基础17-基于波士顿房价(Boston House Price)数据集训练模型的整个过程讲解

机器学习是一项经验技能&#xff0c;实践是掌握机器学习、提高利用机器学习 解决问题的能力的有效方法之一。那么如何通过机器学习来解决问题呢&#xff1f; 本节将通过一个实例来一步一步地介绍一个回归问题。 本章主要介绍以下内容&#xff1a; 如何端到端地完成一个回归问题…

Ansible学习笔记8

group模块&#xff1a; 创建一个group组&#xff1a; [rootlocalhost ~]# ansible group1 -m group -a "nameaaa gid5000" 192.168.17.105 | CHANGED > {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}…

【Tkinter系列05/15】小部件(框架标签和列表)

续接上文&#xff1a;【Tkinter系列04/15】界面小部件&#xff08;选择钮、行编辑器&#xff09; 11. 小部件Frame 框架基本上只是其他小部件的容器。 应用程序的根窗口基本上是一个框架。 每个框架都有自己的网格布局&#xff0c;因此每个框架中小部件的网格化 框架独立工作…

ARP欺骗(大白话)

前提条件&#xff1a; 有三台主机&#xff0c;PC1&#xff0c;PC2&#xff0c;PC3&#xff0c;现要实现PC1与PC2的关联&#xff08;如图&#xff09; 不存在ARP欺骗时 步骤&#xff1a; 首先查看arp表&#xff08;有ip和mac的关系&#xff09; 如果表中有PC2的信息&#xf…

图像二值化

目录 1.固定值二值化 2.自适应阈值二值化 3.Android JNI完整代码 1.固定值二值化 固定阈值二值化是OpenCV中一种简单而常用的图像处理技术&#xff0c;用于将图像转换为二值图像。在固定阈值二值化中&#xff0c;像素值根据一个预定义的阈值进行分类&#xff0c;大于阈值的…

使用kafka还在依赖Zookeeper,kraft模式了解下

Kafka的Kraft模式 概述 ​ Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。其核心组件包含Producer、Broker、Consumer&#xff0c;以及依赖的Zookeeper集群。其中Zookeeper集群是Kafka用来负责集群元数据的管理、控制器…

2023年高教社杯数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

[USACO07DEC] Sightseeing Cows G(分数规划+负权回路判定)

题面 [USACO07DEC] Sightseeing Cows G - 洛谷 题目大意&#xff1a; 给出一张n点m边的带点权带边权的有向图 求一个回路使得路上点权和除以边权和最大&#xff08;最优比率回路&#xff09; 题解 首先一定仔细读题&#xff0c;是回路不是路径 由于回路上所有点权只能获取…

自动化运维:Ansible之playbook基于ROLES部署LNMP平台

目录 一、理论 1.playbook剧本 2.ROLES角色 3.关系 4.Roles模块搭建LNMP架构 二、实验 1.Roles模块搭建LNMP架构 三、问题 1.剧本启动php报错语法问题 2.剧本启动mysql报错语法问题 3.剧本启动nginx开启失败 4.剧本安装php失败 5.使用yum时报错 6.rpm -Uvh https…

2023_Spark_实验一:Windows中基础环境安装

Ⅰ、WINDOWS中安装JDK1.8 一、下载安装包 链接&#xff1a;百度网盘 请输入提取码 所在文件夹&#xff1a;根目录或者大数据必备工具--》开发工具(前端后端)--》后端 下载文件名称&#xff1a;jdk-8u191-windows-x64.exe 二、安装JDK 1.现在转到下载的exe文件可用的文件夹&…

如何用Python爬虫持续监控商品价格

目录 持续监控商品价格步骤 1. 选择合适的爬虫库&#xff1a; 2. 选择目标网站&#xff1a; 3. 编写爬虫代码&#xff1a; 4. 设定监控频率&#xff1a; 5. 存储和展示数据&#xff1a; 6. 设置报警机制&#xff1a; 7. 异常处理和稳定性考虑&#xff1a; 可能会遇到的…

算法第一天——数组理论基础

数组 数组是存放连续内存空间上的相同类型数据的集合&#xff0c; 数组的下标都是从0开始&#xff0c; 数组内存空间的地址是连续的。 数组元素不能删除&#xff0c;只能修改。即数组数组一旦分配了内存空间就不能修改空间大小。 但是在java中&#xff0c;java的内存的空间地址…

说说Flink运行模式

分析&回答 1.开发者模式 在idea中运行Flink程序的方式就是开发模式。 2.local-cluster模式 Flink中的Local-cluster(本地集群)模式,单节点运行&#xff0c;主要用于测试, 学习。 3.Standalone模式 独立集群模式&#xff0c;由Flink自身提供计算资源。 4.Yarn模式 把Fl…

第2章 Linux多进程开发 2.19-2.23 与信号相关的函数

软件中断&#xff1a; 信号名称&#xff08;宏不会变&#xff09;&#xff0c;编号在不同的版本可能会变&#xff1a; core保存进程异常退出的信息&#xff1a; core.c: #include <stdio.h> #include <string.h>int main() {char * buf; // 指针 没有指…

【ACM出版】第四届人工智能与计算工程国际学术会议(ICAICE 2023)

ACM出版|第四届人工智能与计算工程国际学术会议 The 4th International Conference on Artificial Intelligence and Computer Engineering 为了在人工智能技术应用与计算工程领域进一步的探索&#xff0c;与国内外学界和业界相关人员交流新问题、新发现、新成果、新应用&…

各大時區問題

GMT和UTC代表的都是格林威治時間 當我們看到時間&#xff1a;2022-09-19T06:22:34.72Z 1.其中T代表的是日期和時間的分隔符&#xff0c;Z代表的是zero&#xff0c;零時區&#xff0c;也就是UTC時間 2.當我們看到&#xff1a;2022-09-19T06:22:3400:00 ,其中00:00代表的也是零時…

基于单片机教室人数实时检测系统

一、系统方案 主程序中main函数主要是引脚的初始化&#xff0c;给单片机引脚初始化&#xff0c;初始化LCD1602&#xff0c;初始化红外对管&#xff0c;通过对LCD1602赋值&#xff0c;采集进入教室的人数&#xff0c;显示在LCD1602上面进出人数我们采用按键的形式&#xff0c;检…

初始Redis之分布式

一.简单介绍: Redis是用来在内存中, 存储数据的, 他的初心是用来搞消息中间件(或者说消息队列 很熟悉了吧~~),但是呢用的不多,他现在主要是用来做 数据库,缓存 用来存储数据, 为什么不直接存储呢? Redis的优势就在于分布式系统 二.分布式系统 要说其分布式系统,简单想想都能…