STP学习
{所有内容均来自于西安欧鹏的陈俊老师}
STP生成树
当二层交换机意外成环路的时候会发生:
1.广播风暴:当广播帧进入环路时,会被不断复制并传输,导致网络中的广播流量急剧增加,消耗大量的网络带宽,降低网络性能,形成广播风暴。
2.MAC地址表的漂移(偏移)(不稳定):每一次数据帧在环路中循环,交换机的MAC地址表记录可能会不断更新,导致MAC地址表不稳定。
3.多帧复制:在二层网络中,由于环路的存在,导致同一数据帧被多次复制并传输到目的设备的现象(比如,如图所示环路,数据帧从PC1发出向LSW3,LSW3广播向LSW1、2,数据帧再从LSW1、2广播向LSW3,LSW3会向除了接收数据帧的接口再次广播其余接口,这是由PC1发出的数据帧就发回了PC1,由此除非环路解除,不然PC1回一直接收这段数据帧。)
破解环路最简单的办法就是截断某些链路,所以恭喜你发现生成树stp工作原理
stp生成树:将原来的环形拓扑结构转换为最短路径生成树,通过逻辑上阻塞一些接口,以生成最短路径生成树,在达到解决环形拓扑的目标,继续实时监控整个拓扑环境是否发生改变,若改变,则自动将原本阻塞接口重新打开再次生成最短路径生成树。
stp的分类:
STP---生成树协议
PVST PVST+----思科:是一种思科专有的生成树协议扩展,它允许在同一个交换机上为每个VLAN运行一个独立的生成树实例。这意味着每个VLAN都可以有自己的根桥和拓扑结构,从而提高了网络的灵活性和性能。
Rstp---快速生成树
Mstp---多生成树
stp传递的报文---BPDU:
1.配置BPDU:协商参数的报文
2.TCN-BPDU:实时的监听整个拓扑环境是否发生改变,一旦检测到变化会发出通告TCN-BPDU
【生成树所有协商的参数均为越小越优先】
补充:
PVI--协议版本号:
STP--0
RSTP--2
MSTP--3
TCN-BPDU
TCN-BPDU--作用
1.通告网络发生变化;
2.用来刷新MAC地址表中的错误记录--存在逐级上报的机制(避免重复刷新MAC地址表)。
TCN-BPDU报文的应用:
当某一端的设备检测到自身的网络结构发生改变时,会主动向所有运行STP设备发送TCN-BPDU,其他设备接收到之后会回复TCA标志位为1的配置BPDU用以向该设备确认,然后会逐级向上转发一直到根桥设备,之后根桥设备会主动发送TC标志位(拓扑发生改变的标志位)为1的配置BPDU,最终会传递到交换网络的所有设备,当这些收到TC标志位为1的报文,会将自身的MAC地址表老化时间设置为15s,用以刷新错误信息
角色选举
【当生成树生成后,只有根桥设备才会主动发送配置BPDU,其他非根桥设备仅转发由根桥设备发送的配置BPDU】
生成树一共要选举四种角色:根网桥RB,根端口RP,指定端口DP,非指定端口NDP
根网桥RB
根网桥RB--整个交换网络必须选择唯一的一个根桥设备。
通过比较BID最小的设备成为根桥设备
BID--网桥ID作用:
1.用来标识和区分不同的运行stp的交换机设备身份
2.用来协商生成树角色
组成:前16位二进制是优先级,后48位二进制是设备的MAC地址
比较规则:
1.比较优先级
2.比较MAC地址
[LSW1]display stp
-------[CIST Global Info][Mode MSTP]-------
CIST Bridge :32768.4c1f-cc1f-4349 //BID
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc1f-4349 / 0
CIST RegRoot/IRPC :32768.4c1f-cc1f-4349 / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
TC or TCN received :3
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:0m:24s
Number of TC :3
Last TC occurred :GigabitEthernet0/0/2
----[Port1(GigabitEthernet0/0/1)][FORWARDING]----
Port Protocol :Enabled
Port Role :Designated Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=20000
Designated Bridge/Port :32768.4c1f-cc1f-4349 / 128.1
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
Transit Limit :147 packets/hello-time
Protection Type :None
根端口RP
根端口RP--所有非根设备必须选择唯一一个端口成为根端口,用来接收根桥发送的配置BPDU。
RPC--根路径开销--设备接口到达根桥的开销值--类似cost。
生成树RPC(开销)的计算公式--等于沿途所有入接口的开销值累加和接口的开销值。
[LSW3]stp pathcost-standard ?
dot1d-1998 IEEE 802.1D-1998
dot1t IEEE 802.1T
legacy Legacy
比较规则:
1.会比较接口的入向RPC值,会选择入向RPC值更小的接口作为根端口
【入向RPC值----接口收到的配置BPDU中携带的开销值】
2.如果IRPC一致,那么会比较收到的配置BPDU中对端设备的BID大小,会选择BID更小的所对应的接口;
3.如果对端设备BID一致,那么会比较对端设备的PID,选择更小PID对应的接口;
4.如果对端设备PID一致,那么会比较自身设备的PID,选择更小PID对应的接口;
指定端口DP
指定端口DP---设备用来转发根网桥发送的配置BPDU的接口,每段链路都需 要选择一个接口成为指定端口
1.选择接口出向RPC值最小的端口作为根端口;
【出向RPC---设备发出的配置BPDU中携带的RPC值】
2.会比较自身本地的配置BPDU中携带的BID,选择数值更小的;
3.当本地bid一致那么会比较发出接口的pid选择接口pid小的接口作为指定端口;
4.当收到的配置BPDU报文pid一致,那么会直接阻塞该接口。
非指定端口NDP
非指定端口NDP--剩下所有没有角色的端口就是非指定端口,最终需要被阻塞的端口。
STP的接口状态:
阻塞状态:所有运行STP协议的接口最先进入的状态,为了避免此时协议刚起到,还没有彻底收敛,就已经出现环路问题。
【初次收敛时,因为所有设备的接口都是阻塞状态,会导致没有任何设备发送BPDU报文,无法协商参数,所以设备会自动关联最大寿命,如果20S没有收到任何BPDU报文,那么会视为根桥故障,会自动进入侦听状态,主动发送BPDU报文】
侦听状态:STP进行角色选举的状态,一旦接口被选举未根端口或者指定端口均会进入下一个状态(会经过15S的选举时间,为了让所有设备所有接口均完成角色选举,避免临时环路---一些设备任处于选举过程中,角色没有选完,自然不会阻塞接口),如果接口被选举未非指定端口,那么该接口最终回退到阻塞状态,被阻塞。
学习状态:STP为了尽量避免初次访问时,产生大量的广播报文影响通讯质量,尽量记录本设备用户的MAC地址信息。
STP首次收敛至少50S才能完成收敛,收敛速度很慢
[LSW1]undo stp enable 直接关闭协议
Warning: The global STP state will be changed. Continue? [Y/N]y
Info: This operation may take a few seconds. Please wait for a moment...done.
[LSW1]
Apr 4 2025 21:23:31-08:00 LSW1 DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.2
5.191.3.1 configurations have been changed. The current change number is 5, the
change loop count is 0, and the maximum number of records is 4095.
[LSW1]display stp
Protocol Status :Disabled
Protocol Standard :IEEE 802.1s
Version :3
CIST Bridge Priority :32768
MAC address :4c1f-cc1f-4349
Max age(s) :20
Forward delay(s) :15
Hello time(s) :2
Max hops :20
[LSW1]
Apr 4 2025 21:23:42-08:00 LSW1 %%01PHY/1/PHY(l)[0]: GigabitEthernet0/0/2: ch
ange status to down
Apr 4 2025 21:23:43-08:00 LSW1 %%01PHY/1/PHY(l)[1]: GigabitEthernet0/0/2: ch
ange status to up
[LSW3-GigabitEthernet0/0/1]undo stp enable 关闭单个接口stp协议
[LSW3-GigabitEthernet0/0/1]display this
#
interface GigabitEthernet0/0/1
stp disable
#
return
stp的重新收敛
就是当运行STP的设备网络结构发生改变而进行重新选举角色,将原本的非指定端口开放
1.根桥故障【需要50s进行重新收敛】
2.根桥直连链路故障【需要30s进行重新选举角色】
非根桥设备检测到自身的根端口所在链路发生故障,但是其他端口可以收到根桥发送的配置BPDU,此时会将自身被阻塞的端口打开并进入侦听状态,重新选举角色,但是不需要选举根桥
3.根桥非直连链路故障【需要50s重新收敛】
设备检测到自身根端口所在链路故障,但是不能通过其他端口收到根桥发出的配置BPDU,那么只有等待身背最大寿命20s后进行重新选举。需要经过15s的侦听喝15s学习状态。
STP配置
[LSW1]stp enable //开启设备stp协议
Warning: The global STP state will be changed. Continue? [Y/N]y
Info: This operation may take a few seconds. Please wait for a moment...done.
[LSW1]stp mode ? //所有设备需要确保协议一致,华为设备默认开启STP协议
mstp Multiple Spanning Tree Protocol (MSTP) mode
rstp Rapid Spanning Tree Protocol (RSTP) mode
stp Spanning Tree Protocol (STP) mode[LSW1]stp mode stp
Info: This operation may take a few seconds. Please wait for a moment...done.
[LSW1]display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING NONE
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
[LSW1]display stp
-------[CIST Global Info][Mode STP]-------
CIST Bridge :32768.4c1f-cc1f-4349
Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20
CIST Root/ERPC :32768.4c1f-cc1f-4349 / 0
CIST RegRoot/IRPC :32768.4c1f-cc1f-4349 / 0
CIST RootPortId :0.0
BPDU-Protection :Disabled
TC or TCN received :24
TC count per hello :0
STP Converge Mode :Normal
Time since last TC :0 days 0h:0m:31s
Number of TC :27
Last TC occurred :GigabitEthernet0/0/2
----[Port25(GigabitEthernet0/0/1)][FORWARDING]----
Port Protocol :Enabled
Port Role :Designated Port
Port Priority :128
Port Cost(Dot1T ) :Config=auto / Active=20000
Designated Bridge/Port :32768.4c1f-cc1f-4349 / 128.25
Port Edged :Config=default / Active=disabled
Point-to-point :Config=auto / Active=true
Transit Limit :147 packets/hello-time
Protection Type :NoneApr 5 2025 19:34:59-08:00 LSW1 %%01PHY/1/PHY(l)[0]: GigabitEthernet0/0/2: ch
ange status to down
Apr 5 2025 19:35:00-08:00 LSW1 %%01PHY/1/PHY(l)[1]: GigabitEthernet0/0/2: ch
ange status to up Port STP Mode :STP
[LSW1]stp priority 28672 //修改BID(32768-4096)【修改设备BID需要安4096为步 调加减
[LSW1]stp root primary //将某设备配置为根桥,本质上是将该设备优先级改为0
[LSW1]stp root secondary //将某设备配置为备份根桥,本质将该设备优先级改为4096
MSTP多生成树(802.M树--链路利用率)
MSTP提出可以将多个VLAN绑定在一起,提出实例instance的概念,实例的实质是12位二进制,范围是0~4095,其中默认存在实例0,初始所有VLAN均属于实例0,所有VLAN为一棵树。
单域MSTP的配置要求:
[LSW3-mst-region]display stp region-configuration
[LSW2-mst-region]display stp region-configuration
Oper configuration
Format selector :0
Region name :4c1fcc427b2c //默认设备存在名称(初始为设备的MAC地址)必须确保单域的name一致
Revision level :0 //修订等级(多域才会用,必须一致,单域随意)Instance VLANs Mapped //实例喝VLAN对应关系必须一致
0 1 to 4094
[LSW3-mst-region]
配置完成实例:
[LSW3-mst-region]display stp region-configuration
Oper configuration
Format selector :0
Region name :aa
Revision level :10Instance VLANs Mapped
0 21 to 4094
1 1 to 10
2 11 to 20
[LSW3-mst-region]
配置过程与解析:
[LSW3]stp enable //启动协议
[LSW3]stp mode mstp
[LSW3]stp region-configuration
[LSW3-mst-region]region-name aa //注意区别大小写
[LSW3-mst-region]revision-level 10
[LSW3-mst-region]instance 1 vlan 1 to 10 //根据需求配置VLAN喝实例的对应关系
[LSW3-mst-region]instance 2 vlan 11 to 20
[LSW3-mst-region]active region-configuration //激活配置!!!
Info: This operation may take a few seconds. Please wait for a moment...done.
[LSW3-mst-region]display this
#
stp region-configuration
region-name aa
revision-level 10
instance 1 vlan 1 to 10
instance 2 vlan 11 to 20
active region-configuration
#
return
[LSW3-mst-region]q
[LSW3]stp instance 1 root primary //将该设备配置为实例1的主根
[LSW3]stp instance 2 root secondary //将该设备配置为实例2的备份根桥
[LSW3]display this
#
sysname LSW3
#
vlan batch 2 to 20
#
stp instance 1 root primary
stp instance 2 root secondary
#
cluster enable
ntdp enable
ndp enable
#
drop illegal-mac alarm
#
return
[LSW3]stp region-configuration
[LSW3-mst-region]display stp region-configuration
Oper configuration
Format selector :0
Region name :aa
Revision level :10Instance VLANs Mapped
0 21 to 4094
1 1 to 10
2 11 to 20
[LSW3-mst-region]
RSTP快速生成树(802.W树--收敛速度)
RSTP的改进点:
1.变更端口角色
STP的端口角色:根端口,指定端口,非指定端口
RSTP/MSTP的端口角色::根端口,替代端口,备份端口
替代端口:作为根端口的替代,由于收到对端设备发送到饿配置BPDU儿导致参数不优最终被阻塞的端口。【作用:作为根端口的备份,当根端口出现故障时,设备会从自身所有的替代端口中找出参数最优的直接成为新的根端口。】
备份端口【back】:作为指定端口的备份,由于收到自身发送的配置BPDU从而参数不优而阻塞的端口,一个设备可能有多个备份端口。【作用:作为指定端口的备份,当指定端口出现故障时,设备会从自身所有的备份端口中找出参数最优的直接成为新的指定端口。】
2变更了端口状态:
STP的端口状态:禁用状态,阻塞状态,侦听状态,学习状态,转发状态
RSTP/MSTP将状态进行合并:
1.丢弃状态DISCARDING--该接口只能处理BPDU报文,不能收发数据流量,不能记录MAC 地址表
2.学习状态
3.转发状态
3.修改了配置BPDU报文的一些参数
RST-BPDU---P/A---RSTP利用该机制将STP的收敛速度从分钟级优化到秒级(主要针对指定端口的快速收敛机制)
4.加快了生成树的失效判断时间
优化根桥失效判断时间--将原本为MAX-Age默认20s,在RSTP协议下位3个hello时间--6s
5.快速收敛机制
1.根端口的快速切换;
2.设置边缘接口;(需要配置,可以将所有连接PC用户的接口配置为边缘接口)
[LSW3-GigabitEthernet0/0/2]stp edged-port enable //边缘接口
1.如果将连接PC的接口配置为边缘接口,那么该接口不需要进行STP选举,直接进入到转发状态。
2.如果边缘接口收到BPDU报文,那么会变成普通接口,重新协商。(防止将连接设备的接口配置为边缘接口)
3.一般连接 PC 的接口不需要接收 STP 的 bpdu 报文,所以会和边缘接口配置结合使用。[LSW3]stp bpdu-protection //BPDU保护(建议配置)如果边缘接口收到BPDU报文,则会直接物理关闭该接口,防止PC使用BPDU攻击[LSW3-GigabitEthernet0/0/2]stp bpdu-filter enable //过滤接口发出的BPDU报文
3.P/A机制 。
6.拓扑结构发生改变的处理机制
相关文章:
STP学习
{所有内容均来自于西安欧鹏的陈俊老师} STP生成树 当二层交换机意外成环路的时候会发生: 1.广播风暴:当广播帧进入环路时,会被不断复制并传输,导致网络中的广播流量急剧增加,消耗大量的网络带宽,降低网络…...
特征值与特征向量:从理论到应用的全面解析
特征值与特征向量:从理论到应用的全面解析 一、特征值与特征向量核心概念 定义 对于方阵 ( A ),若存在标量 ( \lambda ) 和非零向量 ( v ),使得: [ A v \lambda v ] 则 ( \lambda ) 为特征值,( v ) 为对应的特征向…...
【Python】数组的条件逻辑统计运算元素排序
【Python】数组的条件逻辑&统计运算&元素排序: 一.条件逻辑二.统计运算三.数组元素排序检索数组元素是否满足条件查找数组的唯一元素判断元素是否在其他数组中 一.条件逻辑 import numpy as np arr_x np.array([1, 5, 7]) arr_y np.array([2, 6, 8]) arr_…...
数据流和重定向
1、数据流 不管正确或错误的数据都是默认输出到屏幕上,所以屏幕是混乱的。所以就需要用数据流重定向将这两 条数据分开。数据流重定向可以将标准输出和标准错误输出分别传送到其他的文件或设备去 标准输入(standard input,简称stdinÿ…...
Jetpack Compose 自定义组件完全指南
Jetpack Compose 自定义组件完全指南 Compose 的声明式 UI 范式为创建自定义组件提供了前所未有的灵活性。本指南将带你从基础到高级全面掌握 Compose 自定义组件的开发技巧。 一、自定义组件基础 1.1 基本结构 一个最简单的自定义组件: Composable fun Greeti…...
ETF 场内基金是什么?佣金最低又是多少呢?
嘿,朋友们,大家好啊,我是StockMasterX,今天咱们就坐下来慢慢聊聊这个话题,ETF 场内基金到底是个啥东西,它的佣金最低能到多少,真的是个值得深挖的问题。 说起ETF,我还记得刚入行那会…...
【C++篇】类与对象(中篇) 解密C++类的核心:六大默认成员函数详解与避坑指南
文章目录 前言一、类的六个默认成员函数二、构造函数1. 概念2. 特性(牢记) 三、析构函数1. 概念2. 特性(牢记) 四、拷贝构造函数1. 概念2. 特性(牢记) 五、赋值运算符重载1. 运算符重载2. 赋值运算符重载前…...
001 vue
https://cn.vuejs.org/ 文章目录 v-bindv-modelv-on修饰符条件渲染/控制:v-if v-show列表渲染 M:即Model,模型,包括数据和一些基本操作 V:即View,视图,页面渲染结果 VM:即View-Mode…...
web forms可视化开发显示的网页是用ExpressionWebEditorFrame控件,是IE内核还是简单的HTML解析?如何让他加载CSS和JS?
web forms可视化开发显示的网页是用ExpressionWebEditorFrame控件,是IE内核还是简单的HTML解析?如何让他加载CSS和JS? 1. ExpressionWebEditorFrame 控件的内核及解析机制 在 Visual Studio 中用于 Web Forms 可视化开发的 ExpressionWebEditorFrame 控件主要基于 Internet…...
$R^n$超平面约束下的向量列
原向量: x → \overset{\rightarrow}{x} x→ 与 x → \overset{\rightarrow}{x} x→法向相同的法向量(与 x → \overset{\rightarrow}{x} x→同向) ( x → ⋅ n → ∣ n → ∣ 2 ) n → (\frac{\overset{\rightarrow}x\cdot\overset{\righta…...
英伟达新一代GPU架构(50系列显卡)PyTorch兼容性解决方案
随着NVIDIA不断推出基于新架构的GPU产品,机器学习框架需要相应地更新以支持这些硬件。本文记录了在RTX 5070 Ti上运行PyTorch时遇到的CUDA兼容性问题,并详细分析了问题根源及其解决方案,以期为遇到类似情况的开发者提供参考。 在Anaconda虚…...
16.2Linux自带的LED灯驱动实验(详细编写)_csdn
这个实验不用自己编写代码。 1、在linux源代码中,打开 stm32mp15-pinctrl.dtsi 文件并进行修改: make uImage LOADADDR0XC2000040 -j8 //编译内核然后: 2、修改设备节点,打开 stm32mp157d-atk.dts: 其中࿱…...
Java 大视界 -- Java 大数据在智慧交通停车场智能管理与车位预测中的应用实践(174)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
HashMap 底层原理详解
1. 核心数据结构 JDK 1.7 及之前:数组 链表 JDK 1.8 及之后:数组 链表/红黑树(链表长度 ≥8 时转红黑树,≤6 时退化为链表) // JDK 1.8 的 Node 定义(链表节点) static class Node<K,V&g…...
重生之我是去噪高手——diffusion model
diffusion model是如何运作的? 想象一下,你有一张清晰的图片。扩散模型的核心思想分为两个过程: 前向过程(Forward Process / Diffusion Process):逐步加噪反向过程(Reverse Process / Denois…...
FfreeRTOS有阻塞作用的API
在 FreeRTOS 中,阻塞 API 是指那些会导致调用任务进入阻塞状态(Blocked State)的函数,即任务会暂时让出 CPU,直到某个条件满足(如超时、信号量可用、队列数据到达等)。以下是常见的阻塞 API 分类及示例: 1. 任务延迟(延时) vTaskDelay() 使任务阻塞指定的时间(以系统…...
app逆向专题二:app逆向流程
app逆向专题二:app逆向流程 一、app逆向说明二、拿到APP应用的apk三、使用工具进行查壳四、有壳需要先进行脱壳,拿到dex文件进行反编译五、使用Jadx-Gui或其他工具进行反编译,分析源码;六、根据app的抓包情况拿到加密的关键词参数…...
VMware 安装 Ubuntu 全流程实战指南:从零搭建到深度优化
在软件开发、系统测试以及技术学习等诸多场景中,使用虚拟机安装操作系统是一种灵活且高效的方式。Ubuntu 作为一款优秀的开源操作系统,在 VMware 虚拟机上的安装与优化备受关注。接下来,将为大家带来 VMware 安装 Ubuntu 的全流程实战指南&am…...
论文阅读笔记——RDT-1B: A DIFFUSION FOUNDATION MODEL FOR BIMANUAL MANIPULATION
RDT-1B 论文 模型表达与泛化能力:由于双臂操作中动作空间维度是单臂空间的两倍,传统方法难以建模其多模态分布。 数据:双臂数据少且不同机器人的物理结构和动作空间差异(如关节数、运动范围)导致数据分布不一致&#x…...
如何一天背300到500个单词
买一本有结构分析或词源注释的目标词汇书。 买一盒口香糖。 准备一摞空白的A4纸。 找一间用于冥想的黑屋子(眼晴闭上就可以了)。 将要背诵的单词进行分组: 5个一小组10个一中组50个一大组100个一个基本包或单元。给自己一个约定,比如背完一中组或一大组单词,嚼一粒口香糖…...
vs环境中编译osg以及osgQt
1、下载 OpenSceneGraph 获取源代码 您可以通过以下方式获取 OSG 源代码: 官网下载:https://github.com/openscenegraph/OpenSceneGraph/releases 使用 git 克隆: git clone https://github.com/openscenegraph/OpenSceneGraph.git 2、下载必要的第三方依赖库 依赖库 ht…...
C++ - 头文件基础(常用标准库头文件、自定义头文件、头文件引入方式、防止头文件重复包含机制)
一、头文件 在 C 中,头文件(.h)用于函数声明、类定义、宏定义等等 在 Visual Studio 中,头文件通常放在头文件目录中,头文件实现通常放在源文件目录中 二、常用标准库头文件 1、输入输出 <iostream> 标准输入…...
12款字重国外法国风格复古报纸日历设计衬线英文字体安装包 Claire Font Family
Claire 是一个带有坚固衬线的字体系列。该系列中的几种粗细字体非常适合设置大量连续文本;另一方面,极轻和极重的字体在显示应用中配合使用效果很好。Clair 中的字体具有垂直轴,其设计让人联想到当代报纸字体以及 Century 模型中的十九世纪晚…...
Java 类型转换和泛型原理(JVM 层面)
一、类型转换 概念解释: 编译类型:在编译时确定,保存在虚拟机栈的栈帧中的局部变量表中; 运行类型:在运行时确定,由保存在局部变量表中变量指向的堆中对象实例的类型决定(存储在对象头中&…...
ffmpeg基础知识入门
文章目录 📦 1. **容器(Container)**✅ 定义:✅ 举例:✅ 功能: 📶 2. **媒体流(Stream)**✅ 定义:✅ 举例:✅ 流和容器关系: …...
k8s 1.23升级1.24
0、简介 这里只用3台服务器来做一个简单的集群,当前版本是1.23.17目标升级到1.24.17 地址主机名192.168.160.40kuber-master-1192.168.160.41kuber-master-2192.168.160.42kuber-node-1 我这里设置的master2可调度pod,将master2的污点去掉 kubectl de…...
MIPI与DVP接口摄像头:深度解析与应用指南
1、MIPI 1.1 MIPI简介 MIPI是什么?MIPI:mobile industry processor interface移动行业处理器接口。它是一个由Intel、Motorola、Nokia、NXP、Samsung、ST(意法半导体)和TI(德州仪器)等公司发起的开放标准…...
liunx输入法
1安装fcitx5 sudo apt update sudo apt install fcitx fcitx-pinyin 2配置为默认输入法 设置-》系统-》区域和语言 点击系统弹出语言和支持选择键盘输入法系统 3设置设置 fcitx-configtool 如果没显示需要重启电脑 4配置fcitx 把搜狗输入法放到第一位(点击下面…...
马吕斯定律(Malus‘s Law)
马吕斯定律(Maluss Law)详解 马吕斯定律是偏振光学中的基本定律,由法国物理学家**tienne-Louis Malus**于1809年发现,描述了**线偏振光**通过检偏器后的光强变化规律。 2. 实验验证 3. 数学推导 4. 关键应用 5. 特殊情况讨论 …...
大厂算法面试 7 天冲刺:第6天-树与图深度剖析——高频算法面试题 Java 实战
🧠 第6天:树与图深度剖析——高频算法面试题 & Java 实战 📚 一、核心知识概览 Overview 1. 树(Tree) 树是一种非线性数据结构,常见于面试中的二叉树(Binary Tree)、二叉搜索树…...
C语言编译和链接错题
一、错题重现 1.用在switch语句中的关键字不包含哪个?( ) A.continue B.break C.default D.case 2.下面代码的结果是:( ) A.3 B.4 C.随机值 D.5 3.下面那个不是转义字符? A.\n B.\060 C.\q D.\b 二、错因分析及思考 1.题目看…...
吴恩达深度学习复盘(7)一个简单训练示例
简介 本篇简单讲解简单的神经网络训练。通过回顾逻辑回归模型训练,了解神经网络训练的相关内容。比如训练步骤、损失函数、优化算法以及深度学习库的使用,了解训练过程中的相关概念。 例子 手写数字识别(判断是 0 还是 1)。这是…...
道路坑洼目标检测数据集-665-labelme
文章目录 1.介绍3.标签介绍4.标注工具5.数据集下载 1.介绍 目标:从道路图像中检测坑洼; 应用:检测道路地形和坑洼可实现平稳行驶,小型数据集常常用于学习和学术研究; 详细信息: 665 张图、1740个在坑洼处标…...
提升移动端用户体验:解决输入框被软键盘遮挡的有效方法
解决移动端输入框被软键盘覆盖的问题 在开发移动端网页时,如果页面包含输入框,则可能会遇到输入框被弹出的软键盘遮挡的问题。为了解决这个问题,我们需要理解两种常见的情况以及相应的解决策略。 浏览器未主动聚焦到输入框 现代浏览器和移…...
函数极限常见计算方法集锦
本文非常直接,如标题所见就是一个常见的计算方式极限方法的集锦。 所以内在逻辑性确实不强,主要通过例题的形式阐述。 添项减项 当题目出现了交错的形式便可以考虑添项减项。 一般而言我们会加一项交错项,减一项交错项。 例如出现 A B …...
Tomcat的部署
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和 并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还是一个Servlet和 JSP容器 官网:Apache Tomcat - Welco…...
Ubuntu(CentOS、Rockylinux等)快速进入深度学习pytorch环境
这里写自定义目录标题 安装进入系统(如Ubuntu22.04)安装anacondapip、conda换源pip换源conda换源 安装nvidia安装pytorch环境针对于wsl的优化 安装进入系统(如Ubuntu22.04) docker 、 wsl 、 双系统 、服务器系统 推荐 Ubuntu 20…...
AI 如何帮助我们提升自己,不被替代
在当今快速发展的时代,人工智能(AI)正逐渐渗透到生活的方方面面。许多人担心 AI 会取代人类的工作,然而,AI 更多的是作为一种强大的赋能工具,帮助我们提升自身能力,让我们在工作中更具竞争力。以…...
ROS2 多机时间同步(Chrony配置简明指南)
适用场景: 主机运行 ROS2 Humble(发布 /scan 等),板子运行 ROS2 Foxy(发布 /tf 等),两边通过 ROS_DOMAIN_ID 跨平台通讯。需要保证系统时间对齐,避免 TF 插值失败、建图抖动等问题。…...
C 语言排序算法:从基础到进阶的全面解析一、引言
一、引言 在 C 语言编程领域,排序算法是一项基础且核心的技能。无论是处理海量数据,还是优化程序性能,选择合适的排序算法都至关重要。本文将深入剖析 C 语言中常见的几种排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、…...
蓝桥云客--团队赛
2.团队赛【算法赛】 - 蓝桥云课 问题描述 蓝桥杯最近推出了一项团队赛模式,要求三人组队参赛,并规定其中一人必须担任队长。队长的资格很简单:其程序设计能力值必须严格大于其他两名队友程序设计能力值的总和。 小蓝、小桥和小杯正在考虑报名…...
VBA第三十八期 VBA自贡分把表格图表生成PPT
上一节讲到把数据区域自动生成PPT,这一实例是把图表自动生成PPT。 Sub CopyA11ChartsToPresenta() Dim PP As PowerPoint. Application Dim PPPres As PowerPoint. Presentation Dim PPSlide As PowerPoint. SlideDim i As Integer Shee…...
Linux字符驱动设备开发入门之框架搭建
声明 本博客所记录的关于正点原子i.MX6ULL开发板的学习笔记,(内容参照正点原子I.MX6U嵌入式linux驱动开发指南,可在正点原子官方获取正点原子Linux开发板 — 正点原子资料下载中心 1.0.0 文档),旨在如实记录我在学校学…...
Nextjs15 实战 - React Notes之SidebarNoteList优化和Suspense的使用
current branch 对应如下文档 redis ioredis 本专栏内容均可在Github:notes_02 找到 完整项目使用技术栈: Nextjs15 MySQL Redis Auth Prisma i18n strapi Docker vercel 一、本节目标 实现笔记列表展开回收和 Suspense 的实践 二、修改根…...
第三十章:Python-NetworkX库:创建、操作与研究复杂网络
一、NetworkX库简介 NetworkX是一个强大的Python库,用于创建、操作和研究复杂网络(图)的结构、动态和功能。它支持多种类型的图,包括无向图、有向图、加权图和多重图,并提供了丰富的图论算法和可视化工具。资源绑定附…...
cpp自学 day19(多态)
一、基本概念 同一操作作用于不同的对象,产生不同的执行结果 👉 就像「按F1键」:在Word弹出帮助文档,在PS弹出画笔设置,同一个按键触发不同功能 (1)多态类型 类型实现方式绑定时机静态多态…...
Unity:销毁(Destroy)
Destroy的基本概念 Destroy是Unity提供的一个方法,用于立即或延迟销毁游戏对象(GameObject)或其组件(Component)。它会从场景中移除对象,并释放相关资源(比如内存)。 语法 销毁Ga…...
【C++初阶】模板进阶
目录 模板参数 模板的特化 函数特化 类模板特化 全特化 偏特化 模板分离编译 分离编译 模板的分离编译 为什么模板不支持声明和定义分离呢? 解决方法 模板总结 优点 缺点 模板参数 模板参数分为类型形参和非类型参数 类型形参:出现在模板…...
BN 层的作用, 为什么有这个作用?
BN 层(Batch Normalization)——这是深度神经网络中非常重要的一环,它大大改善了网络的训练速度、稳定性和收敛效果。 🧠 一句话理解 BN 层的作用: Batch Normalization(批归一化)通过标准化每一…...
CNN 里面能自然起到防止过拟合的办法
在 CNN(卷积神经网络)中,其实有 一些结构和机制 天然就具有防止过拟合(overfitting)的作用,不完全依赖额外的正则化手段。 🧠 一、CNN 天然防过拟合的几个原因: 1️⃣ 局部连接&…...