OSPF详解及简单配置

2023-11-05

动态路由协议:直连路由器之间构建邻居关系,通过收发各类数据包进行共享信息,来获取未知的路由信息,基于某种算法自动生成未知网段最优路径的解,将其加载在路由表中。
判断一个网络协议的好坏,通常关注三方面:

  • 收敛速度快
  • 占用资源少
  • 选路佳

各类协议的优缺点:
1、RIP
适用于小型网络中,选路依靠跳数(最大15跳),选路不佳
2、EIGRP和OSPF
两个协议都适用于大型网络中,EIGRP属于距离矢量型协议,在超大型网络中没有OSPF选路更佳,所以它采用丰富的度量来优选路径,收敛速度快,占用资源少;OSPF属于链路状态协议,共享拓扑选路佳,不易出环,但其收敛速度较慢,且占用资源大,在超大型网络中无法生存

在超大型网络中,我们一般跑EIGRP/ISIS,但EIGRP–私有,需要全网都为Cisco设备,ISIS–OSPF精简版,失去了选路精确能力

路由协议的分类
1、根据AS(自治系统)
IGP 内部网关协议,AS内适用-------RIP/OSPF/EIGRP/ISIS
EGP 外部网关协议,AS间适用--------EGP/BGP
2、IGP的分类
1)根据更新时是否携带掩码
有类别 不携带 RIPv1/EGP
无类别 携带 OSPF/EIGRP/ISIS/BGP
2)根据工作特点
链路状态型 共享拓扑 OSPF/ISIS
距离矢量型 共享路由表 RIP/EIGRP

RIP周期更新30s的作用: 用于保活,对端无法沟通时的确认,无需确认收到路由更新 EIGRP/OSPF: hello包 用于保活
更新信息非周期发送,需要确认包 OSPF虽有30min的周期更新是为了防止对路由信息的遗漏

OSPF详解

一、简单介绍
OSPF是无类别链路状态型协议,但具有距离矢量特征,基于拓扑收敛(防环,选路佳)更新量大,故为它设计了许多减少更新l量的方式
区域规划-----区域间传路由,区域内传拓扑
合理的IP规划-------一个区域汇总为一条路由,利用子网划分
特殊区域-----减少LSA的更新

二、OSPF的数据包
HELLO 发现、建立、保活邻居
DBD 数据库描述包–主从关系的选举,共享本端路由信息的条目
LSR 链路状态查询包–询问对端本端所需要的未知网段的信息
LSU 链路状态更新包–回答对端的LSR,携带各类LSA
LSACK 链路状态确认包—接收到对端的LSU做出确认,保障可靠性

三、OSPF的状态机
down 两个路由器互不认识,开始收发hello包进入下一状态
init 本端收到带有本端route-id的hello包,进入下一状态
two-way 邻居关系建立的标志
条件匹配 (以太网中,进行DR选举,30s)
成功进入下一状态,失败保持为邻居
exstart 向对端发送类hello的假DBD包进行主从关系的选举,route-id大的先进入下一状态
exchange 向对端发送DBD包共享本地数据库条目
loading state 基于收到的DBD向对端发送LSR,查询未知网段的路由信息,对端发送LSU,本端收到LSU发送LSACK应答
full 两端LSA更新完毕,邻接关系建立

四、OSPF的工作机制
启动宣告配置完成后,路由器通过组播224.0.0.5发送hello包,收到携带有本端route-id的hello包,建立邻居关系,生成邻居表。
基于表中所有邻居进行条件匹配,匹配失败则保持邻居关系,仅hello包保活即可,匹配成功,双方发送假的DBD包,不携带拓扑信息,进行主从关系的选举,route-id大的邻居先发送真的DBD数据库描述包,对端收到DBD后发送LSR查询未知路由条目的信息,本端用LSU进行应答,对端收到LSU后用LSACK应答,本地收到所有邻居的LSA后,生成LSDB数据库表。
LSDB基于SFP算法计算出所有未知网段的最优路径,加载到路由表中。
收敛完成,仅hello包周期保活所有邻居和邻接关系,30min周期进行DBD的收发来进行纠错。

OSPF的收敛行为----LSA的洪范,即LSDB的同步

结构突变情况下:
1、新增网段 触发更新,使用DBD来告知所有邻居,邻居进行LSR/LSU/LSACK收敛
2、断开网段 触发更新,使用DBD来告知所有邻居,邻居进行LSR/LSU/LSACK收敛
3、无法沟通 dead time以及最大老化时间解决
正常邻居间收发hello,若dead time依然没有hello,断开邻居关系,删掉从此邻居处学习到的路由
若邻居关系正常,hello正常,30min没有DBD更新,每条LSA后方有老化时间,最大3609s,到达最大老化时间删除此条LSA。

五、OSPF的基础配置
启动:

[r1]ospf 1 router-id 1.1.1.1  启动时需要定义进程号,仅具有本地意义;  建议同时配置ROUTER-ID;
                              手工---环回最大数值IP地址—物理接口最大数值IP地址

宣告:

[r2]ospf 1 router-id 2.2.2.2
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.0 0.0.0.255
[r2-ospf-1-area-0.0.0.0]q
[r2-ospf-1]area 1 
[r2-ospf-1-area-0.0.0.1]network 23.1.1.1 0.0.0.0

OSPF的区域划分规则:
1、 星型结构—所有的非骨干区域必须连接到的骨干区域,否则不能进行区域间路由共享
2、 ABR—区域边界路由器 同时工作的多个区域间;合法ABR必须同时工作在骨干区域,否则不能进行区域间的路由共享;
启动配置完成后,路由器间使用hello包收发建立邻居关系,生成邻居表

[r2]displayospf peer
Area 0.0.0.0 interface 12.1.1.2(GigabitEthernet0/0/0)'s neighbors
 Router ID: 1.1.1.1          Address: 12.1.1.1        
   State: Full  Mode:Nbr is  Slave  Priority: 1
   DR: 12.1.1.1  BDR: 12.1.1.2  MTU: 0    
   Dead timer due in 35  sec
Retrans timer interval: 5 
   Neighbor is up for 00:18:48     
   Authentication Sequence: [ 0 ]

邻居关系建立后,邻居间进行条件的匹配;匹配成功建立邻接关系,同步LSDB完成后,本地生成LSDB—数据库表

[r2]display ospflsdb   查看数据库的目录;内部存在各种类别的信息,需要具体查看

LSDB同步完成后,本地基于SFP算法,计算到达所有未知网段的最短路径,然后将其加载到路由表中;

[r3]display  ip routing-table  查看路由表
Destination/Mask    Proto   Pre  CostFlags NextHop         Interface
        1.1.1.1/32  OSPF    10   2           D   23.1.1.1        GigabitEthernet0/0/0
        2.2.2.2/32  OSPF   10   1           D   23.1.1.1        GigabitEthernet0/0/0
[r3]display ip routing-table protocol ospf  查看本地所有通过OSPF协议学习到的路由

[r1]display ospf routing    查看本地工作OSPF的直连,及本地通过OSPF学习到的路由
Destination        Cost  TypeNextHopAdvRouter       Area
 1.1.1.1/32         0     Stub       1.1.1.1         1.1.1.1         0.0.0.0
 12.1.1.0/24        1     Transit    12.1.1.1        1.1.1.1         0.0.0.0
 2.2.2.2/32         1     Stub       12.1.1.2        2.2.2.2         0.0.0.0
 3.3.3.3/32         2     Inter-area12.1.1.2        2.2.2.2         0.0.0.0
 23.1.1.0/24        2     Inter-area12.1.1.2        2.2.2.2         0.0.0.0
  类型标记为Inter-area代表其他区域产生的路由条目

OSPF的度量值: COST=接口带宽/参考带宽
默认参考带宽100M
若接口实际带宽大于默认带宽,COST为1,可能选路不佳,需要修改参考带宽,全网需一致

[r1]ospf 1
[r1-ospf-1]bandwidth-reference 1000

六、OSPF邻居关系成为邻接关系的条件----条件匹配

接口网络类型的分类: 基于接口的二层封装技术
点到点:一个网段只能存在两个节点,即使强制连接第三方也无法通信;串行链路上,二层封装为PPP或HDLC
MA:多路访问,一个网段可以存在多个节点
BMA:广播型多路访问,在一个MA网络中存在广播机制;二层封装为以太网
NBMA:非广播型多路访问,MA中不存在广播机制;二层封装为帧中继–串行链路 MGRE

在点到点网络中,OSPF邻居均正常从邻居关系变为邻接关系。
在MA网络中,若OSPF所有邻居关系均升为邻居关系将导致大量的重复更新,(距离矢量型路由协议RIP/EIGRP使用了接口水平分割),由于OSPF是基于数据库同步比对来进行收敛,故不支持接口水平分割。
OSPF在MA网段需要进行DR/BDR的选举,非DR/BDR不建立邻接关系。
选举规则:
1、比较接口优先级
0-255,大优,MA默认接口优先级为1,点到点链路接口中,默认不进行选举,接口优先级为0
2、比较route-id,大优
干涉选举:
修改接口优先级 默认非抢占原则,需重启OSPF进程
建议修改优先级为0,不参与选举

七、OSPF的数据库表–不同类型的LSA

每条LSA均存在以下信息:
type 类型
Ls id link-id
Adv rtr 通告者的route-id
Ls age 老化时间,正常下到1800s刷新,触发更新下直接变为0,3609s后没有变化直接删除LSA
Len 长度
Options 选项
Seq# 序列号
Chkm 校验和

什么情况下LSA会更新:
1、1800到期会更新
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)

OSPF的LSA是1800会更新一次更新一次序列号会加一
LSA的新旧比较
1、会先比较序列号,序列号越大越优,
2、如果序列号相同,会比较校验值(checksum)越大越优
3、如果校验值也相同,会比较LSA Age时间,是否等于MAX-age时间(3600)
4、如果age时间不等于max-age时间,会比较他们的差值,如果差值大15分钟(900秒),小的优
5、如果age时间不等于max-age时间,会比较他们的差值,如果差值小于15分钟,说明是同一条LSA,忽略其中一条

LSA类型 传播范围 通告者 携带信息
router 域内 区域内每台路由器 本设备直连拓扑
network 域内 每个网段的DR 每个MA网段的拓扑
sum-net 整个OSPF域 ABR 域间路由
sum-asbr 除ASBR所在区域的整个OSPF域,ASBR所在域基于1类LSA进行拓扑演算 ABR 标记ASBR的位置
external 整个OSPF域 ASBR,经过下一个ABR修改为新的ABR 域外路由
nssa 本地的NSSA区域,离开本地转为5类 ASBR 域外路由
LSA类别 link-id 通告者
router 通告者的router-id 本区域每台路由器
network DR的接口IP MA网段的DR的router-id
sum-net 域间路由的网段 ABR,经过下一个ABR时,修改为新的router-id
sum-asbr ASBR的router-id 和ASBR同一区域的 ABR,经过下一个ABR时修改为新的router-id
external 域外路由的网段 ASBR
nssa 域外路由网段 ASBR,离开本区域后变为新的ASBR
 [r4-ospf-1]import-route rip 1   将RIP进程1重发布到OSPF的进程1
 [r5]display ospf lsdb ase originate-router  查看5类LSA 
 ASBR—自治系统边界路由器—协议边界路由器

八、优化OSPF协议 减少LSA的更新量

正常1类LSA一个路由器一条LSA,2类LSA一条网段一条LSA,3类和5类一条路由一条LSA,4类是一个ABR产生一条

1、汇总–减少骨干区域的更新量
1)域间路由汇总,在ABR上,需手动在黑洞处空接口防环
不允许汇总自己学的路由,只能汇总本地通过该区域1、2类LSA产生的路由

[r1]ospf 1
[r1-ospf-1]area 2   只能汇总本地通过该区域1、2类LSA产生的路由
[r1-ospf-1-area-0.0.0.2]abr-summary 5.5.4.0 255.255.252.0 

2)域外路由的汇总,在ASBR上汇总

[r4]ospf 1
[r4-ospf-1]asbr-summary 99.1.0.0 255.255.252.0

2、特殊区域–减少非骨干区域的更新量 不存在骨干区域,不存在虚链路
1)不存在ASBR
末梢区域 stub
拒绝4、5类LSA,出现一条3类缺省,指向骨干区域;需在该区域所有路由器上配置

[r5]ospf 1   
[r5-ospf-1]area 2
[r5-ospf-1-area-0.0.0.2]stub

完全末梢区域 stub no-summary
末梢区域的基础上,进一步拒绝3类LSA,只存在一条3类缺省;仅在ABR上定义即可

[r1-ospf-1-area-0.0.0.2]stub no-summary

2)存在ASBR
非完全末梢区域 NSSA
拒绝4、5类LSA
拒绝其他区域ASBR产生的4/5类LSA;本区域内的ASBR产生的5类LSA以7类在本区域传播,从本区域进入骨干区域时由新的ASBR将7类转为5类在其他区域传播,本地产生一条指向骨干的7类缺省
Cisco内:不产生缺省

[r4]ospf
[r4-ospf-1]are 1
[r4-ospf-1-area-0.0.0.1]nssa 

完全NSSA
在NSSA的基础上进一步拒绝3类LSA,只存在一条3类缺省

 [r3-ospf-1-area-0.0.0.1]nssa  no-summary

ISP连接网络后与特殊区域自动产生的缺省可能成环,则运营商在那个区域,哪个区域不能调为骨干区域

九、过滤OSPF的路由传输
利用OSPF的汇总,在汇总条目的同时要求OSPF协议传递这些汇总路由来实现路由过滤

ospf 1 router-id 4.4.4.4 
area 0.0.0.1 
abr-summary 192.168.1.144 255.255.255.248 not-advertise   该条路由将不能再传递—3类


[r6]ospf  1 
[r6-ospf-1]asbr-summary 192.168.1.144 255.255.255.248 not-advertise   
[r6-ospf-1]asbr-summary 192.168.1.132 255.255.255.252 not-advertise  拒绝7类的传递

注、此处的汇总网络号,实际可以是具体的明细路由

十、OSPF的不规则区域
规则区域:星型结构(骨干在中心,骨干与非骨干都有ABR连接)----减少LSA更新量,性价比高
为了实现以上规则,OSPF必须存在的硬性条件:
1、直连的邻居间hello包中区域ID必须完全一致;若不一致将无法建立邻居关系—ABR
2、一台ABR若没有连接到骨干区域,将不能进行区域间路由共享—星型结构
3、只要ABR连接到的骨干区域,可以同时再连接N个非骨干,且进行两两区域间路由共享

不规则区域:
1、原理骨干的非骨干区域
2、不连续骨干

在这里插入图片描述
解决方法:
1、tunnel
在两台ABR上建立tunnel,将其宣告到OSPF协议中,逻辑上将这条链路加到区域0中,直连两个ABR,实际数据加了一层封装还是走物理链路。
缺点:
周期和触发的信息将对中间的穿越区域造成资源的占用;选路不佳

区域2的路由会传给1,tunnel也会将2路由给1,2会选择tunnel学习2的路由,因为骨干区传的路由优于骨干区路由,造成选路不佳

interface Tunnel0/0/0
 ip address 10.1.1.1 255.255.255.0 
 tunnel-protocol gre
 source 34.1.1.1
destination 45.1.1.2

2、虚链路
网络中合法ABR和非法ABR之间建立一条虚链路,由合法ABR授权非法ABR进行区域间路由共享(两个ABR上都要定义)
优点:没有新生链路,选路正常
缺点:cisco设备中OSPF虚链路为避免对中间穿越区域周期保活和更新产生资源占用,取消了周期的hello包和周期更新;---- 不可靠,不稳定
华为设备中依然保留周期的hello包和更新----占用中间区域资源

 [r3]ospf 1 
 [r3-ospf-1]area 1 
 [r3-ospf-1-area-0.0.0.1]vlink-peer 5.5.5.5    此处5.5.5.5为对端ABR的router-id
 [r3]display ospf vlink

3、OSPF多进程双向重发布(建议)
OSPF多进程,进程号仅具有本地意义,邻居间建立邻居关系时可以使用不同的进程号,若在一台设备上同时启动多个进程,那么不同进程存在自己的邻居关系,生成不同的数据库(不共享);最终将所有的数据库计算的路由加载到同一张路由表中。
在解决不规则区域时,可以让非法ABR将不同OSPF区域工作在不同的OSPF进程中,之后双方双向重发布来实现路由共享。
优点:选路正常,无周期信息,但依然可靠(触发更新,邻居关系周期保障)

[r2]ospf  1 
[r2-ospf-1]import-route  ospf  2 
[r2-ospf-1]q
[r2]ospf  2 
[r2-ospf-2]import-route  ospf  1

十一、OSPF扩展知识点
1、link-id相同
若一台ABR将两条3类LSA导入其他区域(一条汇总一条明细);同时这两条LSA的link-id会相同;
假设:短掩码网段先进入,link-id正常显示;长掩码进入时link-id加反掩码
20.1.0.0/16–link-id 20.1.0.0
20.1.0.0/24–link-id 20.1.0.255
2、OSPF选路规则
(1)AD管理距离无关的一种情况:

r2(config)#router ospf 1 
r2(config-router)#distance 109 1.1.1.1 0.0.0.0

本地从RID为1.1.1.1的设备处学习到路由条目,管理距离修改109;
一台路由器从两个OSPF邻居处学习到了两条相同的路由时,仅比较度量值,不关注管理距离;因为仅针对一台邻居进行管理距离修改的结果是要么两台都被改,要么修改失败;-关注IOS版本—有时修改RID大路由器管理距离生效,有时需要修改RID小的设备;

(1)AD管理距离无关的第二种情况
在这里插入图片描述O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,仅关注cost值,不关注管理距离;
若一条通过骨干区域传递,另一条同过非骨干区域传递–非骨干传递的路由无效
OSPF的水平分割:区域标号为A的3类LSA,不能回到区域A;

两条均为OE2或者均为N2,起始度量相同; 关注沿途的累加度量 (OE2路由在表中度量默认不显示内部度量,仅显示起始度量)
两条均为OE2或者均为N2,起始度量不同;优先起始度量小的路径;
注:以上设计是便于管理员快速干涉选路;

3、优先级
拓扑优于路由 1/2LSA计算所得路由优于3/4/5/7类计算所得
内部优于外部 3类优于4/5/7类
类型1优于类型2 E1优于E2,N1优于N2,E1优于N2,N1优于E2;
E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于7类

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OSPF详解及简单配置 的相关文章

  • Linux如何(永久)关闭SElinux和firewalld防火墙

    本文基于Linux上CentOS 7版本进行演示 目录 一 关闭SElinux 1 临时关闭 2 永久关闭 二 关闭防火墙 firewalld服务 1 查看防火墙状态 2 关闭防火墙 一 关闭SElinux 1 临时关闭 使用setenfo
  • CAN接受和发送失败的原因有哪些---之前调试MCP2515驱动时,数据一直发不出去,三个发送邮箱都被占满.至今未解决,读寄存器-总线错误

    0 CAN总线错误分析与解决 讲的最精辟的放在最前面 我们知道CAN总线上的每个节点往总线上发送数据的同时会同时读取总线上的数据 并与自己发送的数据作对比 CAN仲裁 CAN总线错误分别有发送和接收错误计数 计数达到一定的累计以后就会产生C
  • InnoDB存储引擎 3文件

    参数 查看information schema下的GLOBAL VARIABLES查找参数 但是在mysql8 0 21没有这张表格 视图 出错 SELECT FROM global variables WHERE VARIABLE NAM
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • count(1)、count(*)与count(列名)的执行区别

    执行效果 1 count 1 and count 当表的数据量大些时 对表作分析之后 使用count 1 还要比使用count 用时多了 从执行计划来看 count 1 和count 的效果是一样的 但是在表做过分析之后 count 1 会
  • Python计算水仙花数

    水仙花数是指一个 3 位数 它的每个位上的数字的 3次幂之和等于它本身 例如 1 3 5 3 3 3 153 方法1 用 for循环 控制1000以内的3位数 依次求出该3位数中的个十百位 判断是否是水仙花数 方法2 x y z分别表示一个
  • 如何创建并发布你的angular组件库

    本例创建一个天气组件 ng new weatherwidget createApplication false 选择不要路由 选择scss cd weatherwidget 用vs code打开本项目 创建组件库weather ng gen
  • 给学习C语言的朋友推荐一本好书!

    友情提示 本图书链接指向第二书店的图书详细页面 近期公司要开展技术学习及培训 推荐使用了两本教材 一本是清华大学出版社的 计算机科学概念 第8版 人民邮电出版社出版了该书的第7版 另一本则是电子工业社出版的Programming in C
  • drools规则引擎的在项目中的使用手记

    需求 按照登录用户的会员等级 和签到周期 根据一定的计算规则送积分 由于之前都是通过if else去做的控制 规则变更的时候可能需要重新调整代码甚至发布服务 由于不想再每次规则变更后需要调整代码 于是最近在确认方案 于是最好找到了规则引擎
  • python3 条件语句

    条件语句 if 判断条件 执行语句 else 执行语句 if 判断条件1 执行语句1 elif 判断条件2 执行语句2 elif 判断条件3 执行语句3 else 执行语句4 python 并不支持 switch 语句 如果多个条件需同时判
  • uniapp打包app,对接华为厂商,实现unipush离线消息推送

    今天终于可以抽出点时间 来记录一下这几天心塞的心情 上周公司派过来一个活 说是使用uniapp制作一个app 同时要实现在线消息推送和离线消息推送 啥话没说就揽了下来 不过说实在的 从来没有开发过app 好歹会点vue 可想而知 接下来的几
  • arduino基础25个实验代码

    arduino基础25个实验代码 双色LED灯项目源码 int redPin 11 红色LED引脚 int greenPin 10 绿色LED引脚 int val 0 PWM输出值 void setup pinMode redPin OUT
  • 华为打造狼性团队的22条军规

    打造狼性团队的22条军规 领导者要读3遍 打出来 贴到桌子上 做老板的 无不对华为公司的狼性团队推崇有加 华为的狼性文化之所以如此成功 三大因素缺一不可 一是具有诱惑力的薪酬 这是自驱力 二是内部竞争机制 这是推动力 三是执行力文化 这是牵
  • 类的静态成员变量为什么不能再h文件类外初始化

    h文件 class Image public static void AddProtoType Image iamge Prototype nsize iamge private static Image Prototype 10 stat
  • pandas练习题

    按要求创建Dataframe df 并通过分组得到以下结果 以A分组 求出C D的分组平均值 以A B分组 求出D E的分组求和 以A分组 得到所有分组 以字典显示 按照数值类型分组 求和 将C D作为一组分出来 并计算求和 以B分组 求出
  • git撤销一次代码提交方法

    以下方法亲测有效 但是根据需求选择哦 友情提示 注意备份 方法一 1 删除上一次提交 或者撤销上一次合并 reset方式是将HEAD指针指到指定提交 历史记录则不会出现你删除的上步commit记录等 合并时间线等都会删除彻底 并删除 mer

随机推荐

  • 分享是个好习惯

    无止境的求索 把脚印记下来 累了 迷茫了 回头望望 记住来时的路 收拾收拾行囊 云淡风轻
  • C++字符指针的特殊

    如果我们对一个非字符的指针进行操作 方法是这样的 注意 int p 则p i 等价于 p i 定义 1 int a 7 int p a 或者 2 int a 7 int p p a 或者 3 int a 7 int p p a 1 这样定义
  • matlab将一个数组中的元素转换为整型_科学计算

    最近期末考试结束了 自己立下了一个flag 自学MATLAB 写这篇文章的目的就在于将自己所学的知识输出 希望能够帮到你 大家一起相互学习吧 话不多说 下面直接进入主题 01matlab系统环境 1 matlab操作界面的组成 matlab
  • Go语言 之 变量声明

    声明变量 能声明的数据类型 https www runoob com go go data types html 变量可以声明为全局变量和局部变量 在函数外声明为全局变量 函数内声明为局部变量 声明变量方式为 var 变量名 数据类型 pa
  • 这个 Chrome 插件,让你的 ChatGPT 不再报错

    ChatGPT的官网最近几天报错越来越频繁了 相信大家都发现了 一旦你离开页面时间比较久 再度返回跟它进行对话 就会出现如下报错 虽然这个报错信息以前也出现过 但现在的频率确实过高 对于每天需要使用 ChatGPT 处理大量任务的用户来说
  • [ kvm ] 进程的处理器亲和性和vCPU的绑定

    cpu调用进程或线程的方式 Linux内核的进程调度器根据自有的调度策略将系统中的一个进程调度到某个CPU上执行 一个进程在前一个执行时间是在cpuM上运行 而在后一个执行时间则是在cpuN上运行 这样的情况在cpu中是很可能发生的 因为l
  • 有关CSS3 3D盒子模型的一些总结

    以前就想学CSS3动画 觉得挺高级的 但后来因为一些原因 没能理解好 也没有时间 最近重新学了一波 为了帮助那些像我一样理解能力不太好的人 同时也使自己更好的理解知识点 这里做一下总结 主要是我在学习过程中遇到的一些问题 如果有写的不清晰的
  • 安防天下5、6——视频编码器技术DVS、网络录像机(NVR)技术

    视频编码器技术DVS DVS Digital vedio server 的出现 标志着视频监控系统进入了网络时代 编码器的主要功能是编码压缩及网络传输 适合应用再监控点比较分散的应用环境中 但从本质上讲 DVS还不是纯粹的网络监控设备 因为
  • Linux常用命令大全(详细版)

    目录 1 Linux管理文件和目录的命令 2 有关磁盘空间的命令 3 文件备份和压缩命令 4 有关关机和查看系统信息的命令 5 管理使用者和设立权限的命令 6 线上查询的命令 7 文件阅读的命令 8 网络操作命令 9 其他命令 详细版本 1
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全

    Bean public ColorFactoryBean colorFactoryBean return new ColorFactoryBean 创建一个spring定义的FactoryBean public class ColorFac
  • 原生js实现导航栏拖拽滑动(适用于pc端和手机端)

    先贴一张动图看看效果吧 下面把代码贴上注释都在代码边上
  • 【PyTorch】torch.utils.data.Dataset 介绍与实战

    文章目录 一 前言 二 torch utils data Dataset 是什么 1 干什么用的 2 长什么样子 三 通过继承 torch utils data Dataset 定义自己的数据集类 四 为什么要定义自己的数据集类 五 实战
  • 什么是多态?如何实现?只看这一篇就够了

    1 多态的概念 1 1 概念 多态的概念 通俗来说 就是多种形态 具体点就是去完成某个行为 当不同的对象去完成时会产生出不同的状态 2 多态的定义及实现 2 1多态的构成条件 多态是在不同继承关系的类对象 去调用同一函数 产生了不同的行为
  • 在任务管理器结束某些任务后电脑突然白屏

    1 问题描述 任务管理器 可以通过单击右键电脑底部任务栏找到 快捷键 ctrl shfit esc 一般我们可以在 任务管理器 中强制结束一些任务 尤其是电脑特别卡的时候 但是 有时候一不留神 不知道结束了什么任务 电脑突然就白屏了 2 解
  • 【算法与数据结构】530、LeetCode二叉搜索树的最小绝对差

    文章目录 一 题目 二 解法 三 完整代码 所有的LeetCode题解索引 可以看这篇文章 算法和数据结构 LeetCode题解 一 题目 二 解法 思路分析 二叉搜索树的性质是左子树的所有节点键值小于中间节点键值 右子树的所有节点键值大于
  • C语言快速入门(2)

    目录 1 常量 1 1字面常量 1 2const修饰的常变量 1 3 define定义的标识符常量 1 4枚举常量 2 字符串和转义字符 2 1字符串 2 2转义字符 3 注释 4 选择语句 5 循环语句 6 函数 7 数组 7 1数组的定
  • css实现单行,多行文本超出文本显示省略号

    1 单行文本 div width 100px 必须要设置 overflow hidden 超出部分隐藏 white space nowrap 禁止换行 强制文本在一行显示 text overflow ellipsis 溢出文本显示省略号 使
  • to load JavaHL Library解决方法

    解决方法 Window Preferences Team SVN 在SVN接口的下拉框可以看到 默认选择的是JavaHL JNI Not Available 手动更改为SVNKit Pure Java SVNKit v1 3 5 7406
  • msys2安装与配置: 在windows上使用linux工具链g++和包管理工具pacman C++开发

    文章目录 为什么用这个msys2 下载 doc 安装 很简单 初次运行 做些配置 更新 软件安装与卸载方法 安装必要的软件包 设置win环境变量 在windows terminal中使用 在vscode中使用 为什么用这个msys2 方便w
  • OSPF详解及简单配置

    动态路由协议 直连路由器之间构建邻居关系 通过收发各类数据包进行共享信息 来获取未知的路由信息 基于某种算法自动生成未知网段最优路径的解 将其加载在路由表中 判断一个网络协议的好坏 通常关注三方面 收敛速度快 占用资源少 选路佳 各类协议的