2.10.0 以太网 传统STP生成树简介、STP工作方式简单介绍

news2024/11/18 19:56:30

2.10.0 以太网 传统STP生成树(简介、工作方式)

作用:

STP(Spanning Tree Prortoco)生成树协议,它的出现解决了交换机网络环路的问题。

交换机网络中收到BUM帧的时候,将会进行泛洪的操作,而在环形的交换网络中,这种泛洪操作将会引起广播风暴!

广播风暴不仅会降低交换机的处理性能,还会造成MAC地址在不同端口之间替换,从而使得正常的数据也无法进行正常的转发,这种现象称为:MAC地址飘移

BUM帧:广播帧(Broadcast)、未知单播帧(Unknow unicast)、组播帧(Multicast)

广播风暴:二层帧头中没有可以防止数据帧无限转发的字段,所以交换机收到广播帧后无限的进行转发从而产生广播风暴

细讲一下MAC地址飘移的过程:

在没有启动STP协议时的 “环形交换网络” 出现BUM帧:

  • 当PC1访问PC2时,需要发送ARP请求对方地址,因此产生一个ARP广播帧发送到交换网络中。
  • LSW收到广播帧,向LSW1、LSW3转发,LSW3收到广播帧后又向LSW2、LSW1转发,因此就陷入了无限转发ARP帧的情况。
  • 因为无限转发的原因,LSW1不断的从e0/0/1、e0/0/2口收到PC1数据帧,因此PC1MAC地址也在e0/0/2、e0/0/1口上不断变化。
  • 这种不断变化的现象就是MAC地址飘移

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

通过抓包可以看到交换设备不断的接收到ARP的广播帧
在这里插入图片描述

STP的工作方式:

STP生成树,如其名一般在逻辑上看开启了STP协议的交换网络就像一棵倒立的树状型。

在开启了STP协议的交换网络会根据选举的规则将环形网络的部分端口进行阻塞,破坏了环型也就防止了环路的产生。

以下是STP的选举规则:

  1. 选举根桥(即STP生成树的根部

    • 网络中选举根桥使用:设备优先级、MAC地址
    • 设备优先级默认为32768,优先级越小越优先
    • 优先级一样的情况下MAC地址小的更优先
    • 如图:LSW1的设备优先级更高,成为STP中的根桥

在这里插入图片描述

  1. 选举根端口(选举出距离根桥最近的端口)

    • 基于选举出来的根桥,计算非根桥设备到根桥设备之间的距离,距离的总合叫作根路径开销RPC(Root Path Cost)。
    • 默认根桥的接口开销为0,通过接收根桥的STP BPDU时来判断距离根桥的远近。
    • 如图:根桥发送的STP BPDU中路径开销会累加“接收端口”的开销,最终开销越小,说明该端口就是根端口。

在这里插入图片描述

  1. 选举指定端口

    • 默认情况下根桥所有端口都是指定端口
    • 非根桥设备的所有端口也是指定端口,但会因为端口选举的原因某些端口将会成为根端口、阻塞端口…
  2. 选举阻塞端口

    • 当两台非根桥设备连接的对端都是指定端口时,将会进行阻塞其中一个端口
    • 阻塞规则:
    • (1)比较设备优先级+MAC地址,MAC地址和优先级越小,越是能成为指定端口
    • (2)比较端口优先级+端口序号,端口序号越小,优先级越大,越是能成为指定端口
      • 端口优先级默认128,
      • 端口优先级的表示(前4bit是接口优先级、低12bit是接口编号)
      • 128.22[默认优先级128,接口号e0/0/22]
      • 个别端口如eth-trunk接口会默认分配一个接口编号
      • 为什么端口优先级的步长是16?
      • 已知PID占位4个字节(16bit)
        • xxxx 0000,0000 0000
        • 前4bit为优先级,后12bit为端口编号
        • 当第4个x置1,以每8位为一组数,也就是0001 0000 = 16
        • 当第3个x置1,也就是0010 0000=32.0
    • (3)如果存在多台交换的时候,就需要结合根桥ROOT所在位置决定
    • 如图:因为LSW2的设备优先级更高,LSW3比不过设备优先级,所以其对应的端口将被阻塞。

在这里插入图片描述

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

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

相关文章

HCIA 以太网的帧

一、前言 网络经常会遇到一些词汇,比如包、报文、帧,其概念如下: 1)帧(frame):数据链路层的协议数据单元,它包括三部分:帧头、数据部分、帧尾。其中,帧头和…

vector容器模拟实现(上)

1.1:模板设置 因为不能与库已经有的vector冲突,首先定义命名空间namespace my 使用类模板。 1.2:成员变量 vector有size,capacity,同时也要进行扩容操作和缩容(shrink to fit)操作,所以需要3个迭代器。 p…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java杨柳农贸市场摊位管理系统qr3ri

大四计算机专业的同学们即将面临大学4年的最后一次考验--毕业设计。通过完成毕业设计来对过去4年的大学学习生活做一个总结,也是检验我们学习成果的一种方式,毕业设计作品也是我们将来面试找工作的一个敲门砖。 选题前先看看自己掌握哪些技术点、擅长哪…

mysql首次安装error 1045 28000解决

mysql首次安装error 1045 28000解决 首先找到了这个教程,按其操作一步一步来,发现到登录输入密码这一步,怎么样都报错 2021MySql-8.0.26安装详细教程(保姆级) 然后按照这篇操作,但还是不行 MySQL安装1045错…

[附源码]Python计算机毕业设计Djangoospringboot作业管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

通过窗口看世界之 界面制作如此简单-带你制作旅游观光系统界面-----效果图展示

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏 玩归玩闹归闹,别拿java开玩笑 ⭐旅游管理系统部分效果图展示⭐ 文章目录⭐旅游管理系统部分效果图…

持久化的配置都不知道,也敢说精通Redis?

前言 所谓持久化可以简单理解为将内存中的数据保存到硬盘上存储的过程。持久化之后的数据在系统重启或者宕机之后依然可以进行访问,保证了数据的安全性。一键获取最先java文档。 Redis有两种持久化方案,一种是快照方式(SNAPSHOTTING&#xff…

前端 | 前端设计设计及代码收集

全部来源于Github,侵权删! 1.Maxime Euzire 2.Shubham Singh | Resume 3.Natasha Theodora Petrus 4.Ana Mara Martnez Gmez 5.bagussona.github.io 6.leodevbro.github.io 7.yuanlinping.github.io 8.Dr.Q 9.sureshmurali.github.io 10.Chandrika Deb | Software…

常见的接口测试面试题

1、按你的理解,软件接口是什么? 答: 就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。 2、HTTP和HTTPS协议区别? 答: https协议需要到CA(Certificate Authority,证…

[附源码]JAVA毕业设计医疗器械销售电子商城(系统+LW)

[附源码]JAVA毕业设计医疗器械销售电子商城(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目…

Spring:Ioc

目录 一、Spring的两大核心机制 1、IOC/ DI:控制反转和依赖注入 2、AOP:面向切面编程 二、IOC/ DI:控制反转 / 依赖注入: 1、bean的基础配置: 2、bean的实例化 3、配置bean 4、依赖注入方式 三、注解开发定义bean 注解依赖注入 Spring设计理念 …

Spring推断构造方法源码深度解析

文章目录前言思考目标一、bean的实例化入口-createBeanInstance1、源码逻辑思路**核心点,主要做了几件事情**2、instantiateBean-默认无参实例化3、instantiate-实例化4、instantiateClass-实例化类二、获取构造函数候选数组-determineConstructorsFromBeanPostProc…

这十套练习,教你如何用Pandas做数据分析(04)

练习4-Apply函数 探索1960 - 2014 美国犯罪数据 步骤1 导入必要的库 运行以下代码 import numpy as np import pandas as pd 步骤2 从以下地址导入数据集 运行以下代码 path4 ‘…/input/pandas_exercise/pandas_exercise/exercise_data/US_Crime_Rates_1960_2014.csv’…

微信小程序|入门进阶

接下来点击新建项目就可以在主界面中预览到我们的豆瓣电影示例了 小程序开发初体验 Hello world 希望是一个从零到一的转换过程~ 创建项目 接下来创建一个新的项目,理解小程序项目的基本结构和一些基础语法。 官方的开发工具为此准备了一个QuickStart项目。在创建过程中,…

利用jrebel与arthas在centos7 springboot热部署

jrebel 热部署 jrebel在本地是可以class xml一起热部署,但是远程热部署xml不行,所以用arthas代替去热部署xml 1.jrebel 反向代理 因为jrebel是收费插件,所以要高一些小动作咱们才能‘正常’使用,当然你也可以拿别人代理好的操作…

并发基础(五):ThreadPoolExecutor源码解析

尺有所短,寸有所长;不忘初心,方得始终。 请关注公众号:星河之码 在JDK提供的几种线程池技术,除了JDK8新加的newWorkStealingPool之外,其余的几种线程池都是通过ThreadPoolExecutor 来实现线程池技术&#x…

本周大新闻|FDA公布XR认证医疗名单,索尼推数字孪生平台Mapray

本周大新闻,AR方面,苹果首款MR头显或推迟至2023年下半年发布;FDA官网公布经过认真的AR/VR医疗方案名单;索尼预测AR/VR光学发展路径;索尼公布3D数字孪生平台Mapray;索尼公布ToF AR SDK。 VR方面&#xff0c…

Docker简介与安装

一、Docker 简介 1.1 为什么选择Docker? 更高效的利用系统资源更快速的启动时间一致的运行环境持续交付和部署更轻松的迁移更轻松的维护和扩展 1.2 Docker组件 1.2.1 Docker服务器与客户端 Docker是一个客户端-服务器(cs)架构程序。Docker客户端只…

linux下共享内存和消息队列实现多进程间数据收发

linux下进程通信的方式有很多,共享内存,消息队列,管道等。共享内存可以传输大量数据,但是多个进程同时读取共享内存就会出现脏读,可以借助消息队列实现多进程消息发送和接收。这种组合方式在实际开发中应用还是很多的&…

计算机网络复习(五)

考点:UDP 拥塞控制 TCP三次握手四次握手 P247 熟知端口号 P215 TCP报文计算5-36.假定TCP采用一种仅使用线性增大和乘法减小的简单拥塞控制算法,而不使用慢开始。发送窗口不采用字节为计算单位,而是使用分组pkt为计算单位。在一开始发送窗口为…