OSPF浅析
一、预习:
1、介绍:
是一种基于接口的典型的链路状态路由协议,协议号89,把大型网络分隔为多个较小、可管理的单元:Area,管理距离110;OSPF基于IP,使用了LSAck包来保证包数据的可靠性;
a.减少LSA泛洪范围,有效地把拓朴变化 控制在区域内,达到网络优化的目的
b.在区域边界做路由汇总,减少了路由表
c.充分利用ospf特殊区域的特性,进一步减少LSA泛洪,从而优化路由
d.多区域提高了网络的扩展性,有利于组建大规模的网络
2、定义了4种网络类型(接口视图下配置):
P2P、Broadcast、NBMA、P2MP,(其中p2p、p2mp不用选举DR、BDR)
3、5种包:
Hello、DD、LSR、LSU、LSAck(对LSA的确认)
4、7个状态:
down、init、2-way、Exstart、Exchange、Loading、Full
Attempt(一般称为7个状态,此第8种状态仅在 NBMA 网络类型下,单播建邻居时,用 peer 对端IP 的方式单播发 hello 后的状态)
5、OSPF之间,两种稳定的关系:
a. 邻居关系:DROther和DROther之间是邻居关系,状态停在2-way,它们之间只交换Hello包,不交换LSP报文,LSP报文只发给DR和BDR
b. 邻接关系:相互交换LSA的OSPF邻居关系建立邻接关系:DR和BDR、BDR和DR、DROther建立邻接关系,状态FULL,既发Hello包又交换LSA报文
6、6种区域:
a. 骨干区域:连接其它ospf区域的中央区域,通用用Area 0表示
b. 标准区域:通用区域,传输区域内、区域间路由和外部路由
c. Stub区域:拒绝4、5类路由,即外部路由消失,且ABR产生一条3类LSA默认路由;条件:area 0 不能配成stub区域;stub不允许有ASBR存在;stub不能允许有虚链路;stub无4类、5类lsa存在;stub区域的ABR会下发给stub区域一条去往其他区域的3类默认路由)
d. Totally Stub区域:拒绝3、4、5类路由,即仅剩域内路由,且ABR自动下发一条3类LSA默认路由
e. NSSA:拒绝4、5类LSA,即无外部路由,ABR产生一条7类默认路由(条件:area0不能配置成nssa;需要在区域内所有区域接口上配置;不允许虚链路)
f. Totally NSSA:拒绝3、4、5类LSA,引入7类LSA
7、LSA类型:
a. 1类:Router,每个设备都会产生,是始发路由器产生的 lsa,LinkState-ID 和 发布者 ADV 都是自己的路由ID,只有IP没有掩码,描述了设备的链路状态和开销,在所属区域内传播。内容中的 link-type 分为 stubnet、p2p、transnet、virtual;scope是区域内传播
b. 2类:Network,由 DR 产生(所以仅在选举 DR BDR 的 MA 和 NBMA 中产生),是 DR 的接口地址,描述的是本网段的链路状态,LinkState-ID 是 DR 的接口地址,ADV 是DR 的 route-id,有 IP 和掩码;scope 是区域内传播
c. 3类:Network-Sumary,由ABR产生,把收到的同区域一类和二类LSA,和其它ABR传来的三类LSA(Advertising Router改为自己)的路由汇总起来,然后在ospf区域内传播
d. 4类:是由ASBR区域的ABR生成的,用于描述ABR能够到达的ASBR的路由信息,Link ID 为目的ASBR的RID;ASBR路由在经过ABR时,ADV路由ID会改变为ABR的路由ID,通告给除ASBR所在区域的其他相关区域(dis ospf lsdb asbr)
e. 5类:AS-External,由ASBR产生,用于描述到ospf AS外的目标网段信息,Link ID是域外目标前缀,一条域外路由对应一条五类LSA,通告者的路由信息在传递过程不变,通告到所有区域,五类LSA不允许进入stub、nssa区域(dis ospf lsdb ase)
f. 7类:NSSA,由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播,在NSSA中ASBR针对外部网络产生类似于Type5的LSA,到达ABR的时候,nssr ABR 将7类转换为5类的外部路由传给area0区域(若有多个ABR,则由RID大的负责转换)(dis ospf lsdb nssa)
分别显示1\2\3\4\5\7类型路由:dis ospf lsdb router|network|summary|asbr|ase|nasa
8、ase外部路由类型:
type1:内部开销+外部开销
type2:外部开销
E1优于E2
9、组播地址:
OSPF的两个组播地址:224.0.0.5、224.0.0.6;5是通用的,所有启用OSPF的设备都监听这个地址,用这个地址收发Hello包;6是仅DR和BDR、和DROthers发送LSU报文给DR、BDR的目的地址,当DR收到此报文后,再将此LSA发给0.5的DROthers
10、DR、BDR选举:
a. 优先级大者优(0-255),默认1;0 不参加选举
b. 再比较RouterID,大者优
11、常用命令:
dis ospf lsdb | router |network |summary | nssa | ase | asbr 查看lsdb数据库
dis ospf peer brief 查看邻接关系
dis ospf interface g0/0/0 验证接口角色DR/BDR/DRother、连接类型、cost 值、Hello|Dead 时间、mtu(默认华为不检查 mtu,cisco 检查mtu)...这里显示的是端口状态,而不是路由器状态
dis ospf vlink 查看虚链路信息
dis ospf routing | dis ip routing-table protocol ospf 查看ospf路由
dis ospf abr-asbr 查看ABR和ASBR
dis ospf error 查看错误信息
dis ospf lsdb router originate-router 查看lsdb中的路由来源
network ip mask 区域视图下宣告IP地址|段
ospf enable area n 接口视图下开启ospf(同上条效果相同)
preference x ospf进程视图下,配置优先级,默认为10
ospf network-type p2p|p2mp|broadcast|nbma 接口视图下,更改网络连接类型
ospf dr-priority 0-255 接口视图下,配置ospf优先级,0 为不参加选举
ospf network-type p2p|p2mp|broadcast|nbma| 接口视图下,更改网络类型
ospf cost <1-65535> 接口视图下,更改网络开销
ospf filter-lsa-out all | acl xxx 接口视图下,过滤 lsa 报文
reset ospf process 用户视图下,重启ospf进程
default-route-advertise allways 出口设备注入默认路由
peer ip x.x.x.x ospf进程视图下,用单播建立邻居
silent-interface G0/0/0 | all ospf进程视图下,静默ospf(不收发 ospf 报文)
filter-policy acl xxx import ospf 进程视图下,根据 acl 表过滤相应的 lsa 报文
import route direct | bgp | isis | rip | static | unr [cost <1-255> | route-policy <xxx> | tag <xxx> | type <1|2>] 进程视图下,引入外部路由
abr-summary ip mask 区域视图下,手工汇总某段路由
vlink-peer <router-id> ospf区域下,建立虚链路
vlink-peer ip 区域视图下,配置对端虚链路IP,建立路由关系
default-cost <0-16777214> 区域视图下,配置默认cost值
dis ip int brief 查看所有接口的IP地址
dis osfp routing route-id x 查看去往route-id的路由
dis ospf error | interface G0/0/0 | lsa | packet #查看ospf错误信息
二、多区域ospf例子
1、查看3类lsa:
a、将区域2和区域0的设备打开,将区域2设置为stub区域,然后在R1上看可到三类的默认路由:
* stub和totally stub的区别:stub和totally stub配置后,都可看到ABR下发了一条3类LSA,但totally stub配置后,仅剩区域内路由和一条默认路由了,ABR会连其他区域的3类路由都不传递到stub区域内了;totally stub配置方法为stub后面加 no-summary,仅需在ABR上配这个参数即可
b、在R1上设置三个环回口,将区域2设置为totally stub,在R3上可看到3类lsa汇总路由,ADV都是BDR R2:
<R1>dis interface LoopBack | in 172
Internet Address is 172.1.1.1/24
Internet Address is 172.1.2.1/24
Internet Address is 172.1.3.1/24<R1>dis current-configuration configuration ospf
[V200R003C00]
#
ospf 1 router-id 1.1.1.1 import-route directarea 0.0.0.2 network 0.0.0.0 255.255.255.255 stub
#
return<R2>dis curr con ospf
[V200R003C00]
#
ospf 1 router-id 2.2.2.2 area 0.0.0.0 network 23.1.1.0 0.0.0.255 area 0.0.0.2 abr-summary 172.1.0.0 255.255.252.0network 10.1.1.0 0.0.0.255 stub
#
return
2、查看5类lsa:
打开区域100的设备,配置IP61.1.1.6、环回口6.6.6.6,可在R3上看到5类lsa:
<R6>dis ip interface brief
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
The number of interface that is UP in Physical is 3
The number of interface that is DOWN in Physical is 2
The number of interface that is UP in Protocol is 3
The number of interface that is DOWN in Protocol is 2Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 61.1.1.6/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
LoopBack0 6.6.6.6/32 up up(s)
NULL0 unassigned up up(s)
<R6>dis curr configuration ospf
[V200R003C00]
#
ospf 1 router-id 6.6.6.6 import-route directarea 0.0.0.100 network 0.0.0.0 255.255.255.255
#
3、查看4类lsa:
R3和R1处于不同的区域,对于R3来说,R1是ASBR,需要通过ABR R2将5类的lsa 转为4类的lsa,将AVR变为ABR的Router ID,才能和asbr的R1通信:
4、查看7类lsa:
开启area1区域内的设备,配置为nssa,可在R3上看到7类lsa
三、外部路由过滤(3类、5类LSA过滤)
两种方式:
1、在接口方式下配置ospf filter-lsa-out ase aclnumber针对5类lsa进行过滤(acl写匹配)
ospf filter-lsa-out|in all | ase | nssa | summery (所有lsa、3类、5类、7类)
2、在ospf进程下使用filter-policy aclnumber export针对5类lsa进行过滤
area 10]filter n export | import
acl number 2001rule deny source 192.168.0.0 0.0.255.255rule permit any
域内路由器可以在区域下,使用 filter-policy aclnumber import |export (加入路由表之前进行过滤),仅针对自己的入方向,如果在abr上做,则影响到相邻的区域,这时abr上会出现有lsa,但无路由传递的现象
另外 ,abr、asbr上也可以用参数not-advertise进行汇总不通告,也可以形成5类lsa的过滤:
abr-summary ip mask not-advertise
asbr-summary ip mask not-advertise
acl 2001 rule 5 permit source 6.0.0.0 0.255.255.255
#
route-policy abc permit node 10if-match acl 2001
#
ospf 10 route-id 6.6.6.6import -route direct route-policy abc
对于外部路由,也可以在区域引入时进行过滤:import-route direct route-policy acl
ospf import-route isis area 10filter-policy aclnumber export isis|direct|static
四、ospf路由控制:
1、调整接口开销
2、设置等价路由 maximum load-balance n //配置ospf的路由条目值,默认开启,默认8条
3、引入外部路由
4、路由聚合
5、缺少路由通告
6、filter-policy
7、对发送的lsa 进行过滤
五、ospf快速收敛概述:
1、PRC(partial Route Calculation)部分路由计算;ospf只有一种prc:当网络上路由发生变化 的时候,只对发生变化的路由进行重新计算,prc不计算节点路径,而是根据spf算法算出spf来更新路由
2、智能定时器作用:1、控制lsa的生成和接收;2、控制路由计算
3、ip frr(fast reroute)快速重路由实现备份链路的快速切换,也可与bfd联动实现对故障的快速感知。ospf ip frr是动态ip frr,利用lfa(loop-free alternates)算法预先计算出备份路径,保存在转发表中,以备在故障发生时快速切换到备份链路中,保证流量不中断,从而达到流量保护的目的,该功能可将故障恢复时间降低到50ms以内。
基本思路是:以可提供备份链路的邻居为根节点,利用spf算法计算出到目的节点的最短距离 。然后,按照不等式计算出开销最小且无环的备份链路
六、提个问题:如何让area 100的nssa区域的外部路由能和area0互访?
答案:在ASBR的R1上引入默认路由,这样就能让R6上的外部路由可以访问区域0
[R1-ospf-1]dis this
[V200R003C00]
#
ospf 1 router-id 1.1.1.1 default-route-advertise alwaysimport-route directarea 0.0.0.2 network 0.0.0.0 255.255.255.255 area 0.0.0.100 abr-summary 172.1.0.0 255.255.252.0network 61.1.1.0 0.0.0.255 nssa
#
return
* ABR和ASBR的区别:ABR是区域边界路由器,ASBR是连接其它自治系统的边界路由器,一个路由器可以有同时有两种角色
* stub和nssa的区别,nssa外部可以引入外部路由,能看到明细路由,stub外部看不到明细路由;nssa下发7类,stub下发3类
* 华为 ma 网络默认不检查 mtu 值,不同则卡 exstart 或者 exchange 状态,但 cisco 默认要检查,所以不同的设备建邻居时,华为改时用ospf mut enable,同时配置 mtu 值 ;思科改时用 ip ospf mtu-ignore
* tips1:重启ospf进程方法1:在DR、BDR接口视图下,声明ospf dr-priority 0,不参与DR选举后,ospf进程重置,立刻生效;2、ospf端口关闭重启;3、用户视图下:reset ospf process
* tips2:装HCL模拟器后,发现virtualbox版本高了,导致ensp里的设备无法启动,网上查了下,要下5.2.44版本可兼容两个模拟器: https://download.virtualbox.org/virtualbox/5.2.44/VirtualBox-5.2.44-139111-Win.exe
相关文章:
OSPF浅析
一、预习: 1、介绍: 是一种基于接口的典型的链路状态路由协议,协议号89,把大型网络分隔为多个较小、可管理的单元:Area,管理距离110;OSPF基于IP,使用了LSAck包来保证包数据的可靠性&…...
批量写入数据到数据库,卡顿怎么解决
在批量写入数据到数据库时,遇到卡顿或性能瓶颈是比较常见的问题。以下是一些可能的解决方案和优化策略,帮助你提高批量写入的性能: ### 1. **批量大小优化** - **调整批量大小**:尝试调整批量写入的数据量,找到一个平衡点。过大或过小的批量大小都可能影响性能。通常,批…...
Residency 与 Internship 的区别及用法解析
Residency 与 Internship 的区别及用法解析 在英文中,“residency” 和 “internship” 都与职业培训相关,但它们的使用场景和具体含义存在显著差异。本文将详细解析这两个词的区别,以及它们在不同语境下的应用。 Residency 的定义及使用场景…...
【数据结构-堆】力扣2530. 执行 K 次操作后的最大分数
给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你的 起始分数 为 0 。 在一步 操作 中: 选出一个满足 0 < i < nums.length 的下标 i , 将你的 分数 增加 nums[i] ,并且 将 nums[i] 替换为 ceil(nums[i] / 3) 。 返回在 恰好…...
基于生成式对抗网络(GAN)的前沿研究与应用
引言 人工智能(AI)领域在过去几年中经历了快速的发展,尤其是深度学习的兴起带来了许多变革。其中,生成式对抗网络(Generative Adversarial Network, GAN)因其强大的生成能力成为了研究热点。自2014年Ian G…...
stm32 移植RTL8201F(正点原子例程为例)
最近在工作中需要使用RTL8201F,在网上找了很多帖子,没有找到合适的,自己翻资料移植了一个。 模板工程使用的是正点原子的f407探索版的例程,原子使用的是LAN8720,需要把他的驱动修改成为我们自己用的RTL8201F。 1.将PHY_TYPE改成我…...
QT-TCP-server
为了实现高性能的TCP通讯,以下是一个基于Qt的示例,展示如何利用多个线程、非阻塞I/O、数据分块和自定义协议进行优化。该示例以TCP服务器和客户端的形式展示,能够承受高负载并实现快速数据传输。 高性能TCP Server示例 #include <QTcpSe…...
第 24 章 网络请求与远程资源
第 24 章 网络请求与远程资源 24.1 XMLHttpRequest 对象 所有现代浏览器都通过 XMLHttpRequest 构造函数原生支持 XHR 对象: let xhr new XMLHttpRequest()24.1.1 使用 XHR 使用 XHR 对象首先要调用 open()方法,这个方法接收 3 个参数:请…...
k8s dashboard离线部署步骤
确定k8s版本,以1.23为例。 部署metrics-server服务,最好用v0.5.2。 用v0.6.0,可能会报以下错误: nodekubemaster:~/Desktop/metric$ kubectl top nodes Error from server (ServiceUnavailable): the server is currently unabl…...
热备份路由HSRP及配置案例
✍作者:柒烨带你飞 💪格言:生活的情况越艰难,我越感到自己更坚强;我这个人走得很慢,但我从不后退。 📜系列专栏:网路安全入门系列 目录 一,HSRP的相关概念二,…...
【文本分类】bert二分类
import os import torch from torch.utils.data import DataLoader, Dataset from transformers import BertTokenizer, BertForSequenceClassification, AdamW from sklearn.metrics import accuracy_score, classification_report from tqdm import tqdm# 自定义数据集 class…...
计算机网络 (30)多协议标签交换MPLS
前言 多协议标签交换(Multi-Protocol Label Switching,MPLS)是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。 一、基本概念 MPLS是一种第三代网络架构技术,旨在提供高速、可靠的IP骨干网络交换。它通过将IP地址映…...
【Springer斯普林格出版,Ei稳定,往届快速见刊检索】第四届电子信息工程、大数据与计算机技术国际学术会议(EIBDCT 2025)
第四届电子信息工程、大数据与计算机技术国际学术会议(EIBDCT 2025)将于2025年2月21-23日在中国青岛举行。该会议主要围绕电子信息工程、大数据、计算机技术等研究领域展开讨论。会议旨在为从事相关科研领域的专家学者、工程技术人员、技术研发人员提供一…...
C# 修改项目类型 应用程序程序改类库
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
[开源]自动化定位建图系统
系统状态机: 效果展示: 1、 机器人建图定位系统-基础重定位,定位功能演示 2、 机器人建图定位系统-增量地图构建,手动回环检测演示 3、… 开源链接: https://gitee.com/li-wenhao-lwh/lifelong-backend Qt人机交互…...
OSPF使能配置
OSPF路由协议是用于网际协议(ip)网络的链路状态的路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。适用于IPV4的OSPFv2协议定义于RFC 2328,R…...
ES_如何设置ElasticSearch 8.0版本的匿名访问以及https_http模式的互相切换
总结: 设置匿名访问,只需要设置xpack.security.authc.anonymous.username和xpack.security.authc.anonymous.roles参数就行,设置好后,可以匿名访问也可以非匿名访问,但是非匿名访问的情况下必须保证用户名和密码正确 取…...
web移动端UI框架
文章目录 Vant简介主要特点和功能适用场景和用户评价 Mint UI简介主要特点和功能 cube-ui简介特性 iView Weapp简介 uni-app简介 Vant 使用vue3版本官网:https://vant-ui.github.io/vant/#/zh-CN/ 适用vue2版本官网:https://vant-ui.github.io/vant/v2/…...
数据库高安全—角色权限:权限管理权限检查
目录 3.3 权限管理 3.4 权限检查 书接上文数据库高安全—角色权限:角色创建角色管理,从角色创建和角色管理两方面对高斯数据库的角色权限进行了介绍,本篇将从权限管理和权限检查方面继续解读高斯数据库的角色权限。 3.3 权限管理 &#x…...
spring boot controller放到那一层
在 Spring Boot 应用程序中,Controller 层通常被放置在应用程序的 表示层(Presentation Layer) 或 用户界面层(UI Layer) 中。Controller 层的主要职责是处理用户的 HTTP 请求,并将请求转发给服务层进行业务…...
报错 - cannot import name ‘ExportOptions‘ from ‘torch.onnx._internal.exporter‘
调用库时出现错误: ImportError: cannot import name ‘ExportOptions’ from ‘torch.onnx._internal.exporter’ 尝试更新 onnx, onnxscript,diffusers 均没有解决问题 将 torch 升级(从 2.1.0 到 2.5.1)后解决了 具…...
恒压恒流原边反馈控制芯片 CRE6289F
CRE6289F 系列产品是一款内置高压 MOS 功率开关管的高性能多模式原边控制的开关电源芯片。较少的外围元器件、较低的系统成本设计出高性能的交直流转换开关电源。CRE6289F 系列产品提供了极为全面和性能优异的智能化保护功能,包括逐周期过流保护、软启动、芯片过温保…...
ffmpeg视频抽帧和合成
FFMPEG 抽取视频场景转换帧 ffmpeg -i input.mp4 -vf "selectgt(scene,0.4),showinfo" -vsync vfr output_%04d.jpg ffmpeg -i input.mp4 -vf "selectgt(scene,0.4),scale1280:720" -vsync vfr output_%03d.jpg # -vsync 已经弃用,最新版本不…...
七、Hadoop环境搭建之安装JDK
文章目录 一、卸载自带JDK二、传输jdk到服务器中三、解压四、配置JDK环境变量 一、卸载自带JDK 注意:安装JDK前,一定确保提前删除了虚拟机自带的JDK。 以下操作,请切换至root权限进行操作 输入:rpm -qa | grep jdk 会查询出系统…...
RocketMQ消息积压问题如何解决?
大家好,我是锋哥。今天分享关于【RocketMQ消息积压问题如何解决?】面试题。希望对大家有帮助; RocketMQ消息积压问题如何解决? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RocketMQ 消息积压问题通常是指消息队列中的消息堆积过多&…...
【Java基础】进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
1. 进程和线程 1.1 进程 几乎所有的操作系统都支持进程的概念,所有运行中的任务通常对应一个进程(Process)。 当一个程序进入内存运行时,即变成一个进程。 进程是处于运行过程中的程序,并且具有一定的独立功能&…...
CDN防御如何保护我们的网络安全?
在当今数字化时代,网络安全成为了一个至关重要的议题。随着网络攻击的日益频繁和复杂化,企业和个人都面临着前所未有的安全威胁。内容分发网络(CDN)作为一种分布式网络架构,不仅能够提高网站的访问速度和用户体验&…...
深度学习驱动的蛋白质设计技术与实践
通过设计特定的蛋白质结构,可以实现预期的生物功能,如催化特定化学反应、识别和结合特定分子、调控生物信号传导等,为生物医学、药物研发、生物技术等领域提供重要工具和解决方案。传统的蛋白质设计方法主要依赖于已知蛋白质结构的同源建模、…...
Centos7使用yum工具出现 Could not resolve host: mirrorlist.centos.org
在 CentOS 7 中使用 yum 工具时,出现 "Could not resolve host: mirrorlist.centos.org" 的错误,一般情况是因为默认的镜像源无法访问。 以下是一些常用的解决方法: 检查网络连接:首先使用 ping 命令测试网络连接是否…...
iOS - 原子操作
在 Objective-C 运行时中,原子操作主要通过以下几种方式实现: 1. 基本原子操作 // 原子操作的基本实现 #if __has_feature(c_atomic)#define OSAtomicIncrement32(p) __c11_atomic_add((_Atomic(int32_t) *)(p), 1, __ATOMIC_RELAXED) #define …...
PHP二维数组去除重复值
Date: 2025.01.07 20:45:01 author: lijianzhan PHP二维数组内根据ID或者名称去除重复值 代码示例如下: // 假设 data数组如下 $data [[id > 1, name > Type A],[id > 2, name > Type B],[id > 1, name > Type A] // 重复项 ];// 去重方法 $dat…...
【Flink部署】-- 部署 flink 1.19.1 standalone 集群
目录 1、环境准备 2、部署步骤 2.1、下载 flink 二进制包 2.2、配置全局环境变量 2.3、验证 flink 版本 2.4、配置 config.yaml 2.5、启动和停止本地 standalone 集群 2.6、提交测试作业 2.7、查询作业 3、参考 1、环境准备 jdk 11apache flink 1.19.1 安装包2、部署…...
关于物联网的基础知识(二)——物联网体系结构分层
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于物联网的基础知识(二&a…...
使用Paddledetection进行模型训练【Part2:数据准备+模型训练】
目录 写在前面 数据准备 模型优化 1. 使用自定义数据 2. 加载预训练模型 3. 启动训练 写在前面 在目标检测算法产业落地过程中,常常会出现需要额外训练以满足实际使用的要求,项目迭代过程中也会出先需要修改类别的情况。本文档详细介绍如何使用Pa…...
使用最广泛的FastAPI项目结构推荐,命名规范等
使用最广泛的FastAPI项目结构推荐,命名规范等 一、FastAPI项目结构如下:二、组件管理:使用依赖注入三、命名约定四、建议分层架构的设计五、文档和测试六、版本控制和持续集成七、环境和配置管理工具八、性能优化与权限安全 一、FastAPI项目结…...
【JAVA】java中将一个list进行拆解重新组装
一、使用场景 1、当需要对一个list中的元素属性进行重新赋值,比如一个list中存储了订单数据,我们需要改变list中每个订单的id,然后再重新输出订单list if(CollectionUtils.isNotEmpty(orderList)){ orderList.forEach(p->{ …...
怎样修改el-table主题样式
起因:el-table有主题样式,部分需要单独设置 环境:ideanodejs插件谷歌浏览器 第一步:找到scss文件: 谷歌浏览器打开表格页面,ctrlshifti打开开发者工具,点击后鼠标移动到表格单元格上单击一下…...
【Docker项目实战】使用Docker部署gallery轻量级图片管理系统
【Docker项目实战】使用Docker部署gallery轻量级图片管理系统 一、SFPG介绍1.1 应用简介1.2 主要特点1.3 主要使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载gallery…...
缓存-Redis-常见问题-缓存击穿-永不过期+逻辑过期(全面 易理解)
缓存击穿(Cache Breakdown) 是在高并发场景下,当某个热点数据在缓存中失效或不存在时,瞬间大量请求同时击中数据库,导致数据库压力骤增甚至崩溃的现象。为了解决这一问题,“永不过期” “逻辑过期” 的策略…...
【0x006D】HCI_Write_LE_Host_Support命令详解
目录 一、命令概述 二、命令格式及参数说明 2.1. HCI_Write_LE_Host_Support命令格式 2.2. LE_Supported_Host 三、生成事件及参数 3.1. HCI_Command_Complete 事件 3.2. Status 四、命令执行流程 4.1. 命令发起阶段(主机端) 4.2. 命令处理阶段…...
尚硅谷· vue3+ts 知识点学习整理 |14h的课程(持续更ing)
vue3 主要内容 核心:ref、reactive、computed、watch、生命周期 常用:hooks、自定义ref、路由、pinia、miit 面试:组件通信、响应式相关api ----> 笔记:ts快速梳理;vue3快速上手.pdf 笔记及大纲 如下ÿ…...
【JAVA】Java开发小游戏 - 简单的2D平台跳跃游戏 基本的2D平台跳跃游戏框架,适合初学者学习和理解Java游戏开发的基础概念
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…...
C++ constexpr(八股总结)
答:这个关键字用于指示一个变量、函数或者对象可以在编译时求值(即它们是常量表达式)。这意味着当程序编译时,编译器会尝试计算出该表达式的值,而不是在程序运行时计算它,从而提高了程序的性能。 常量表达…...
继承(5)
大家好,今天我们继续来学习继承的相关知识,来看看子类构造方法(也叫做构造器)是如何做的。 1.6 子类构造方法 父子父子,先有父再有子,即:子类对象构选时,需要先调用基类构造方法,然后执行子类的构造方法 ★此时虽然执行了父类的…...
Oracle Dataguard(主库为 RAC 双节点集群)配置详解(1):安装 Oracle11g RAC 双节点集群
Oracle Dataguard(主库为 RAC 双节点集群)配置详解(1):安装 Oracle11g RAC 双节点集群 目录 Oracle Dataguard(主库为 RAC 双节点集群)配置详解(1):安装 Orac…...
基于Matlab的变压器仿真模型建模方法(13):单相升压自耦变压器的等效电路和仿真模型
1.单相升压自耦变压器的基本方程和等效电路 单相升压自耦变压器的接线原理图如图1所示。在建立自耦变压器的基本方程时,仍然把它看成是从双绕组变压器演变而来。在图1中,设节点a到节点b部分的绕组的匝数为,对应于双绕组变压器的原边绕组;节点c到节点a部分的绕组的绕组匝数为…...
ffmpeg 常用命令
更详细请参考ffmpeg手册,下载ffmpegrelease版后在doc中就有,主页面。video filter 参考ffmpeg-filters.html -version -formats -demuxers -protocols -muxers -filters -devices —pix_fmts -codecs -sample_fmts -decoders -layouts -encoders -colors…...
c#集成itext7导出pdf,包含表格
在Nuget解决方案中搜索itext7,进行安装 同时还要安装 itext7.bouncy-castle-adapter。 否则 PdfWriter writer new PdfWriter(pdfOutputPath);执行时会报错unknown PdfException,然后生成一个空白的pdf,且显示已损坏。 捕获异常发现 ex.In…...
STM32-WWDG/IWDG看门狗
WWDG/IWDG一旦开启不能关闭,可通过选项字节在上电时启动硬件看门狗,看门狗计数只能写入不能读取。看门狗启用时,T6bit必须置1,防止立即重置。 一、原理 独立看门狗-超时复位 窗口看门狗-喂狗(重置计数器,…...
后台管理系统引导功能的实现
引导是软件中经常见到的一个功能,无论是在后台项目还是前台或者是移动端项目中。 那么对于引导页而言,它是如何实现的呢?通常情况下引导页是通过 聚焦 的方式,高亮一块视图,然后通过文字解释的形式来告知用户该功能的作…...