当前位置: 首页 > news >正文

STP协议

目录

STP的基本概念:

桥ID(Bridge ID):

根桥:

开销(Cost):

RPC(根路径开销):

Port ID:

BPDU:(网桥协议数据单元)

配置BPDU:STP计算拓扑的关键

 配置BPDU的原则:

BPDU转发过程:

TCNBPDU:

STP的计算过程:

 STP的接口状态:

拖布变更  -  根桥故障

 拖布变更  -  直连链路故障

  拖布变更  -  非直连链路故障

 拓扑变化导致Mac地址错误

STP基本配置


 单设备”链路备份“方案 —— STP

STP生成树技术:避免二层网络链路中出现环路的问题。

环路问题:形成广播风暴,消耗交换的资源,导致网络瘫痪

STP协议:可以解决网络中环路问题,也可以做到网络中的链路冗余,当网络中的拓扑结构发生变化时,STP能够感知和自适应生成新的拓扑结构,保证网络的可靠性。

STP的基本概念:

桥ID(Bridge ID):

IEEE802.1D规定BID由高16位的桥优先级和低48位的桥MAC地址构成。,每一台运行STP的交换机都拥有一个唯一桥ID,在STP中,BID最小的设备会被选作位根桥。

根桥:

STP主要作用是在整个交换网络中计算出一个无环的树,根桥是这个树的树根,STP在工作时,会先计算出树根,在从树根计算出一个无环的网络拓扑,在STP中,BID最小的会被选举为根桥。BID比较过程中,会先比较高16位的优先级,优先级相同则会比较低48位的Mac地址,拥有最下mac地址的位根桥。

开销(Cost):

每一个激活STP的接口,都会维护该接口到根交换机的路径开销。开销的大小与带宽,工作模式和STP Cost计算方法有关,用户也可以通过命令调整接口的COst值。

RPC(根路径开销):

交换机的某接口到根桥的开销总和,即为RPC。一个设备从某一接口到达根桥的RPC等于从根桥到交换机所有入接口的Cost总和

Port ID:

运行STP的交换机使用接口ID来表示每个接口,每个接口ID主要用于特定场景下的接口选举。

接口ID由两部分组成,高4位的接口优先级和低12位的接口编号。

在激活STP的接口会维护一个缺省的STP优先级,华为的是128。

BPDU:(网桥协议数据单元)

BPDU是STP协议的报文,使用STP协议的交换机之间,使用BPDU交换信息。

BPDU有两种:

配置BPDU:STP计算拓扑的关键

TCNBPDU:网络发生变化时,出发TCNBPDU(比如根桥宕机,从新选举根桥)

 配置BPDU的原则:

STP按照如下顺序进行配置最优BPDU:

1,最小的根桥ID(选根桥)

2,最小的RPC(选根接口)

3,最小的网桥ID

4,最小的接口ID

这里每个原则都对应STP报文中的字段,第一条是用来选举根桥,后面用来选举根接口和指定接口。

BPDU转发过程:

TCNBPDU:

拓扑变化时,发现故障的交换机会发送TCNBPDU,用来更新网络拓扑、根端口,指定端口,和Mac地址表。

STP的计算过程:

选举根桥  ——>  选举跟接口 ——> 选举制定接口 ——> 选举非指定接口(阻塞那些端口)

1,选举根桥

STP在交换网上工作时,每个交换机都会发送BDPU,认为自己是根桥,最后在比较过程中,选举BID最小的交换机作为根桥。

一个连续的交换网络中,只有一个根桥。

根桥的角色可以抢占,为了保护网络稳定,可以将根桥的优先级设置为0。

2,选举根端口(在每一个非根桥上选举根端口)

每一个交换上,有且只有一个距离根桥开销最小的接口,这就是根端口 

3,选举制定接口(在非根桥上选举一个发送端口,这个端口到根桥的开销也是最小的)

 

 如:

SW3发来的BPDU:根桥:SW1,RPC:20000,BID:SW3,port ID:128.23

SW2发来的BPDU:根桥:SW1,RPC:20000,BID:SW2,port ID:128.23

此时要选举出SW3和SW2之间的指定端口,那么就要比较他们的字段,根桥和RPC相同,sw2的BID小于sw3的BID,那么最后选择sw2的23接口作为sw2和sw3之间的指定端口。

4,选举非指定端口:(如果既不是指定端口,也不是根端口,那么就是非指定端口,堵塞)

 STP的接口状态:

禁用:接口被关闭

阻塞:接口被STP阻塞,不能发送BPDU,但是会侦听BpDU,不能发送业务数据,也不会学习Mac地址

侦听:接口接受和转发BPDU,但是不能转发业务数据,用来选举根桥和根端口等

学习:接口侦听业务数据,但是不转发业务数据,在收到业务数据时学习Mac地址

转发:进行所有数据的转发,此时接口一定是跟接口或者是指定接口

 STP状态迁移场景:

拖布变更  -  根桥故障

 如果根桥故障:

等待20秒还没有收到根桥发来的BPDU,就会进行重新选举,在选举过程中,在侦听会由15秒的时间,用来选择根接口和指定接口、阻塞非指定端口,在学习状态会有15s的时间学习mac地址。

所以根桥故障会消耗50s的时间才能恢复链路运转。

 拖布变更  -  直连链路故障

如果直连出现问题,就会启动阻塞的端口,会由30s时间的侦听和学习。

  拖布变更  -  非直连链路故障

sw1和sw2之间出现故障,但是sw2可以通过sw3收到sw1的消息,就是非直连链路故障

sw2和sw1链路故障,此时sw2没有根接口,那么sw2就会发送BDPU宣称自己位根节点,此时sw3收到sw2的BPDU,也受到了sw1的BpDU,sw3会等待20s,如果20s内收到了sw1的BPDU,就会向sw2转发sw1的BPDU,此时sw2,就会进入侦听和学习状态,各是5秒,链路才能恢复。

所以工耗时50s。

 拓扑变化导致Mac地址错误

当链路发生拓扑变化,此时mac地址表会出现错误,那么就需要快速的老化mac地址表,从新学习

 所以在链路故障后,发现故障的交换机会发送TCNBPDU给相邻交换机,相邻交换机回复TCA,然后将TCN转发给根桥,根桥会恢复一个TC,告诉链路中所有的交换机,更新mac地址老化时间(300s -> 15s),重新学习mac地址

 

STP基本配置

配置STP协议

stp mode stp | rstp | mstp //配置stp或者rstp或者mstp

(可选)手动设置根交换机

stp root primary //设置根交换机,优先级0

(设置备份交换机)

stp root secondary //设置备份交换机,优先级4096

(可选)配置优先级

stp priority 值 //缺省情况下为32768

(可选)配置接口开销值

stp pathcost-standard  dotld-1998  | dotlt  | legacy //配置开算计算算法
stp cost 值 //设置接口开销值

(可选)配置接口优先级

stp priority 值//接口优先级默认128
stp enable  //启动stp

 

相关文章:

STP协议

目录 STP的基本概念: 桥ID(Bridge ID): 根桥: 开销(Cost): RPC(根路径开销): Port ID: BPDU:(网桥协议…...

方法——检查参数的有效性

检查参数的有效性 绝大多数方法和构造方法对于传递给它们的参数都会有某些限制,比如对象引用不能为null,比如必须是正数等.你应该在文档中(或者注释中)清楚地指出所有这些限制,并且在方法体的开头检查参数,并且强制施加这些限制.如果做不到这一点,检测出错误的可能性就很小,即…...

七、Docker仓库之nexus搭建(四)

Nexus简介 使用 Docker 官方的 Registry 创建的仓库面临一些维护问题。比如某些镜像删除以后空间默认是不会回收的,需要一些命令去回收空间然后重启 Registry。在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 Nexus3.x 全面支持 Doc…...

MySQL 锁机制

1.概述 锁是计算机协调多个进程或线程并发访问某一种资源的机制。 在数据库中,除去计算机硬件资源(CPU、RAM、I/O等)的争用外,数据也是一种供许多用户共享的资源。如何保证并发访问数据的一致性、有效性是所有数据库必须解决的一…...

HACKER KID: 1.0.1实战演练

文章目录 HACKER KID: 1.0.1实战演练一、前期准备1、相关信息 二、信息收集1、端口扫描2、访问网站3、扫描目录4、查看源码5、请求参数6、burpsuite批量请求7、编辑hosts文件8、DNS区域传输9、编辑hosts10、访问网站11、注册账号12、burpsuite抓包13、XML注入14、解密15、登录网…...

Android车载学习笔记1——车载整体系统简介

一、汽车操作系统 汽车操作系统包括安全车载操作系统、智能驾驶操作系统和智能座舱操作系统。 1. 安全车载操作系统 安全车载操作系统主要面向经典车辆控制领域,如动力系统、底盘系统和车身系统等,该类操作系统对实时性和安全性要求极高,生态…...

Apache Doris

Apache Doris教程 1.Doris 简介 1.1 Doris 概述 Apache Doris 由百度大数据部研发(之前叫百度 Palo,2018 年贡献到 Apache 社区后, 更名为 Doris ),在百度内部,有超过 200 个产品线在使用,…...

GB28181 对接海康平台,解决音视频卡顿问题

GB28181 对接海康平台,解决音视频卡顿问题 一、概述二、问题分析1、设备对比分析2、抓包对比分析3、验证分析结果三、总结四、讨论一、概述 设备使用GB28181协议对接海康平台时,发现音频和视频存在卡顿现象,不是一直卡顿,有时候卡有时候不卡,但是卡顿的时候音视频一起卡顿…...

Linux系统编程面试题

1. 什么是系统调用?它与普通函数调用有什么不同? 系统调用和普通函数调用的区别在于它们执行的上下文和权限不同。系统调用是操作系统内核提供的一组接口,允许用户程序请求操作系统执行特权操作,例如打开或关闭文件、创建新进程等…...

计算机网络 - 网络层的数据平面

Overview 首先Network Layer负责的是host to host的传输, 然后可以分为两个平面, 控制平面以及数据平面. 数据平面: 负责forward datagrams from input to output links 决定路由器从input到output 转发功能: 基于目标地址 转发表 SDN方式基于多个字段流表 控制平面: 调…...

《Spring Guides系列学习》guide41 - guide45

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…...

数据库基础——1.数据库概述

从这篇文章我们开始学习数据库的相关知识 目录 1.为什么要使用数据库 2.数据库与数据库管理系统 2.1相关概念 2.2数据库与数据库管理系统的关系 ​编辑2.3常见的数据库管理系统 2.4常见的数据库介绍 3.MySQL介绍 3.1概述 3.2关于MySQL8.0 3.3 Oracle vs MySQL 4.RD…...

2023 光亚展|乐鑫将携 AI、Wi-Fi 6、私有云和 Matter 方案精彩亮相

2023 广州国际照明展览会(光亚展)将于 6 月 9 至 12 日在广州琶洲展馆启幕。本届展会以“光未来”为主题,畅想未来生活方式的无限可能。乐鑫科技 (688018.SH) 将在 B 区 9.2 号厅 D55 展位,带来具有前瞻性的智能照明解决方案和实体…...

用反射设计通用的实例化对象方案

需求 对象的相关信息存储在javabean.properties文件中,通过读取properties文件中的信息,实例化对象,要求程序不能硬编码,即程序可以通用,针对不同的对象,都可以实例化。仅需修改配置文件,不需要…...

破坏单例模式--存在的问题---问题的解决

目录 破坏单例模式--存在的问题---问题的解决 问题演示 破坏单例模式: 序列化 反射 序列化反序列化: 代码: 运行结果: 反射 代码: 运行结果: 问题的解决 序列化、反序列方式破坏单例模式的解…...

SpringCloud微服务踩坑系列-java.lang.IllegalStateException

异常如下: 2023-05-24 08:47:10.764 ERROR 118400 --- [nio-8084-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exceptio…...

Linux-地址空间

文章目录 问题引入操作系统宏观认识操作系统与进程程序地址空间进程地址空间问题解释 问题引入 在Linux操作系统中、vim编译器下,出现了变量同地址但不同值的现象。 下面以解释该现象产生的原因为主线,在过程中学习Linux操作系统的知识。 运行代码展示…...

【EKS】基于Amazon EKS搭建kubernetes集群

文章目录 前言 | 亚马逊云科技 re:Invent前沿资讯一、介绍篇🎨什么是AWS 云计算什么是Amazon EKS 二、部署篇🔨1、创建集群VPC2、创建集群子网3、创建IGW网关4、创建路由表与子网绑定5、EKS集群创建6、创建kubeconfig配置文件7、添加计算节点组8、查看EK…...

Tomcat安装与启动和配置

目录 Tomcat 简介 Tomcat 安装 Tomcat 启动和配置 文件夹作用 启动,关闭Tomcat; 常见问题 配置 环境变量 IDEA中配置Tomcat Tomcat 简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在…...

ruoyi-vue版本(十八)创建自己的项目,使用若依里面的技术,多数据源的实现

目录 1 创建自己的项目2 连接MySQL数据库(多数据源)2.1 若依实现多数据源2.1.1 主要思想2.2 第三方的依赖的实现1 创建自己的项目 1 创建一个空文件夹 2 idea 里面创建项目...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

测试markdown--肇兴

day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...