HCIP STP协议
STP协议
- STP协议概念
- 生成树
- 为什么要用STP
- STP名词解释
- 根网桥
- 根端口
- 指定端口
- 非指定端口
- STP的版本
- 802.1D
- PVST
- PVST +
- 快速生成树
STP协议概念
IEEE 802.1d STP(生成树协议,Spanning-Tree Protocol)协议:
①使冗余端口置于“阻塞状态”
②网络中的计算机在通信时,只有一条链路生效
③当这个链路出现故障时,将处于“阻塞状态”的端口重新打开,从而确保网络连接稳定可靠
生成树
生成树:在一个二层交换网络中,生成一棵树型结构,逻辑的阻塞部分接口,使得从根到所有的节点仅存在唯一的路径;当最佳路径故障时,自动打开部分阻塞端口,来实现线路备份的作用;
生成树在生成过程中,应该尽量的生成一棵星型结构,且最短路径树;
存在算法: 802.1D PVST PVST+(CISCO) RSTP(802.1w) MSTP(802.1S)
为什么要用STP
为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。
为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来风险
1、 广播风暴
2、 MAC地址表翻滚 —在一台交换机上,同一个MAC地址只能映射唯一的接口;但同一个接口可以映射多个不同的MAC地址;
3、 同一数据帧的重复拷贝
4、 以上3个条件最终导致设备工作过载,导致重启保护
Stp通过阻塞端口来消除环路,并能够实现链路备份目的,消除了广播风暴,物理链路冗余,网络变成了层次化结构的网络
从根网桥到所有的节点实现唯一且尽量最短路径;其他的路径上会有备份的接口被逻辑的阻塞,不转发任何数据流量;当最佳路径故障时,部分的阻塞接口被启用,来恢复通讯;
STP名词解释
根网桥
根网桥 – 在一棵生成树实例中,有且仅有一台交换机为root;
BPDU中的 桥ID来决定
桥ID= 网桥优先级(0-65535公有) 默认32768 + MAC地址(只有存在svi接口的交换机才拥有mac地址,若存在多个mac选数值最小)
根网桥的选举 先比较优先级,小优; 若优先级相同,比较mac,数值小优;
根端口
根端口—在每台非根网桥上,有且仅有一个接口;本地离根网桥最近的接口(最短、星型),接收来自根网桥的BPDU,转发用户的流量(该接口不阻塞)
规则:
1、比较从根网桥发出后,通过该接口进入时最小的cost值;
2、入向cost值相同,比较该接口对端设备的BID,小优
3、对端BID也相同,比较该接口对端设备的接口的PID;先优先级小,若优先级一致,编号小
4、连对端PID也相同,比较本地PID,小优;
PID=端口ID 接口优先级(0-240,步长16,默认128) 接口编号
指定端口
指定端口,在每一段存在STP的物理链路上,有且仅有一个;转发来自根网桥的BPDU,同时可以转发用户流量(不阻塞);默认根网桥上所有接口为指定端口;
1、比较从根网桥发出后,通过该接口进入这段链路时的cost值最小(出向)
2、若出向cost值相同,必须本地的BID,小优;
3、本地BID相同,比较本地的PID;
4、本地PID,相同,直接阻塞该端口;
非指定端口
非指定端口(阻塞端口)当以上所有角色全部选举完成后,剩余没有任何角色的接口为非指定;
该接口逻辑阻塞,实际可以接收到信息,但不转发;
STP的版本
802.1D
接口状态:
down:没有BPDU收发,一旦可以进行BPDU收发进入下一状态
侦听:强制15s;所有交换机进行BPDU收发,选举所有角色;接口角色为非指定端口直接进入阻塞状态;
若为指定端口和根端口进入下一状态;
学习:强制15s; 指定端口和根端口学习所有接口连接设备的MAC地址,生成MAC表;之后进入下一状
态;
转发:指端端口和根端口进入,可以转发用户报文;
阻塞:逻辑阻塞;
注:只有到接口进入到转发状态后,才能为用户转发数据报文,之前的30s不能转发任何数据;
收敛时间:
初次收敛—30s = 15侦听+15s学习
结构变化:
存在直连检测:本地存在阻塞端口,若其他端口断开,该阻塞端口马上进入15是侦听(选举);结果若为
启用,那么将再进入15s学习—总30s
没有直连检测:本地不存在阻塞端口,若某个端口断开,将发送次优BPDU(以本地为根)给其他邻居交换机,其他交换机无视该数据,进行20s hold time计时,到时时阻塞接口进入15s侦听,15s学习=总50s
802.1D 缺点:
1、收敛慢
2、链路利用率低
PVST
PVST cisco私有 基于vlan的生成树协议
在每个vlan内,存在一棵树,每个树的工作原理同802.1d一致;不同vlan的BPDU区别在于优先级;
优先级=4096倍数+vlan id 人为仅可修改4096倍数备份,且只能修改为4096的整倍
仅支持 trunk干道封装为ISL(cisco私有封装)
PVST +
PVST + 在PVST的基础,兼容802.1q的trunk封装;且设计了部分的加速;
端口加速(进入层连接用户的接口) 上行链路加速-针对直连检测 骨干加速—针对次优BPDU
上行链路加速仅在接入层设备上配置,因为配置后,该交换机将自动加大本地的网桥优先级;
在直连检测条件下阻塞接口将跳过30s,直接进入转发状态–上行链路加速
骨干加速所有交换机均可配置,针对接收到次优BPDU的阻塞端口可以跳过20s的hold time;
缺点:1、收敛慢(加速不彻底) 2、树多(仅cisco存在单独的芯片,友商无法负荷)
快速生成树
公有RSTP(802.1w,整个交换网络一棵树是802.1d的升级
快速的原理:
1、取消了计时器,而是在一个状态工作完成后,直接进入下一状态;
2、分段式同步,两台设备间逐级收敛;使用请求和同意标记;依赖标记位的第1和第6位
3、BPDU的保活为6s;hello time 2s;
4、将端口加速(边缘接口)、上行链路加速、骨干加速集成了
5、兼容802.1d和PVST,但802.1d和PVST没有使用标记位中的第1-6位,故不能快速收敛;因此如果网络中有一台设备不支持快速收敛,那么其他开启快速收敛的设备也不能快速;
当tcn消息出现时,不需要等待根网桥的BPDU,就可以刷新本地的cam表;
切记:接口默认为半双工时,即便允许RSTP,依然基于慢速的802.1D算法来收敛;
相关文章:
HCIP STP协议
STP协议 STP协议概念生成树为什么要用STP STP名词解释根网桥根端口指定端口非指定端口 STP的版本802.1DPVSTPVST 快速生成树 STP协议概念 IEEE 802.1d STP(生成树协议,Spanning-Tree Protocol)协议: ①使冗余端口置于“阻塞状态”…...
链表的顶级理解
目录 1.链表的概念及结构 2.链表的分类 单向或者双向 带头或者不带头 循环或者非循环 3.无头单向非循环链表的实现 3.1创建单链表 3.2遍历链表 3.3得到单链表的长度 3.4查找是否包含关键字 3.5头插法 3.6尾插法 3.7任意位置插入 3.8删除第一次出现关键字为key的节点 …...
探索贪心算法:理解与实现JAVA语言
探索贪心算法:理解与实现 贪心算法(Greedy Algorithm)是一种基于每一步的最优选择来达到整体最优的算法思想。尽管贪心算法并不适用于所有问题,但它在很多情况下都能够提供高效、近似的解决方案。本文将深入探讨贪心算法的基本概…...
数字孪生技术对旅游行业能起到什么作用?
随着疫情对我们生活影响的淡化,旅游行业迎来了新的春天,暑期更是旅游行业的小高潮,那么作为一个钻研数字孪生行业的小白,本文就着旅游的话题以及对旅游的渴望带大家一起探讨一下数字孪生对智慧旅游发展的作用~ 数字孪生作为一种虚…...
攻防世界-Web_php_include
原题 解题思路 php://被替换了,但是只做了一次比对,改大小写就可以绕过。 用burp抓包,看看有哪些文件 flag明显在第一个PHP文件里,直接看...
Python Opencv实践 - 直方图显示
import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) print(img.shape)#图像直方图计算 #cv.calcHist(images, channels, mask, histSize, ranges, hist, accumulate) #images&…...
2分钟搭建自己的GPT网站
如果觉得官方免费的gpt(3.5)体验比较差,总是断开,或者不会fanqiang,那你可以自己搭建一个。但前提是你得有gpt apikey。年初注册的还有18美金的额度,4.1号后注册的就没有额度了。不过也可以自己充值。 有了…...
deepdiff比较两个json文件数据差异性
deepdiff比较两个json文件数据差异性 Python代码片: import json import sysfrom deepdiff import DeepDiff from deepdiff import grep, DeepSearch from deepdiff import DeepHash# print(DeepDiff("abc", "abcd", ignore_orderTrue))class …...
文件内容搜索工具 - Python实现
在本篇文章中,我们将介绍如何使用 wxPython 库创建一个简单的文件搜索工具。这个工具允许用户选择一个文件夹,并在该文件夹中的所有 .py 文件中查找指定的文字,并显示匹配的位置。 C:\pythoncode\blog\searchwordinpyfile.py 代码实现 我们首…...
vue静态html加载外部组件
当我们在开发vue应用时, 使用的是html页面开发, 需要引用外部vue组件, 怎么办呢, 首先我们引用http-vue-loader.js文件, 像下面这样: <script src"/assets/javascript/vue.min.js"></script> <script src"/assets/javascript/http-vue-loader.j…...
WebSocket 中的心跳是什么,有什么作用?
在网络应用开发中,WebSocket 是一种重要的通信协议,它允许客户端和服务器之间建立持久性的双向通信连接。然而,为了保持连接的稳定性,WebSocket 中的心跳是一个不可或缺的概念。本文将详细介绍 WebSocket 中的心跳是什么ÿ…...
Android类加载机制
要说Android的类加载机制 ,就离不开 类加载器ClassLoader,它是一个抽象接口 下面这个图还是比较好表达了类加载流程,但如果不看我红色画的线,就会感觉有点乱,需要注意是采用的是双亲委派模式,class加载要先…...
微信小程序列表加载更多
概述 基于小程序开发的列表加载更多例子。 详细 一、前言 基于小程序开发的列表加载更多例子。 二、运行效果 运行效果(演示的小视频,点击播放即可) 三、实现过程 总体思路如何: 1、通过scroll-view组件提供的bindscroll方法…...
数据库知识
怎么做 常见的数据库 Oracle Mysql SOLSever Navicat (新版可以链接mysql oracle) http://sqlfiddle.com/ 数据库操作在线练习 mysql自带四个数据库 数据库语言的使用 显示数据库:show databases; 创建数据库:…...
VUE 目录介绍
更新升级(npm - i)之后最终目录如下: total 1672 drwxr-xr-x 18 testrose staff 576 8 22 02:53 . drwxr-xr-x 24 testrose staff 768 8 22 02:50 .. -rw-r--r-- 1 testrose staff 402 8 22 02:52 .babelrc -rw…...
Selenium的基本使用
文章目录 引入一.选择元素的基本方法1.根据id 选择元素2.根据 class属性选择元素当元素有 多个class类型 时 3.根据 tag名 选择元素4.通过WebElement对象选择元素5.find_element 和 find_elements 的区别 二.等待界面元素出现1.隐式等待2.显示等待 三.操控元素的基本方法1.点击…...
数据结构-----树的易错点
1.树的度和m叉树 •度为m的树(度表示该结点有多少个孩子(分支)) 任意结点的度<m(最多m个孩子) 至少又一个结点度m(有m个孩子) 一定是非空树,至少有m1个结点 •m叉树 任意结点的度<m(最多有m个孩子) 允许所…...
写之前的项目关于使用git remote -v 找不到项目地址的解决方案
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、报错解析1. 报错内容2. 报错翻译3. 报错解析(1)使用git branch来查看git仓库有几个分支(2)使用git remote -v&am…...
STM32 F103C8T6学习笔记9:0.96寸单色OLED显示屏—自由取模显示—显示汉字与图片
今日学习0.96寸单色OLED显示屏的自由取模显示: 宋体汉字比较复杂,常用字符可以直接复制存下来,毕竟只有那么几十个字母字符,但汉字实在太多了,基本不会全部放在单片机里存着,一般用到多少个字就取几个字的模ÿ…...
直播平台源码搭建协议讲解篇:传输控制协议TCP
简介: 由于直播平台在当今时代发展的越来越迅速,使得直播平台的技术功能越来越智能,让用户在直播平台中能够和其他用户进行实时互动,让用户可以获取到全世界最新的资讯,让一些用户可以作为主播获得工作,让…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
