OSPF路由协议

news2025/1/12 20:59:13

OSPF基本信息

OSPF(Open Shortest Path First)开放式最短路径优先协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。适用于IPv4的OSPFv2协议定义于RFC 2328,RFC 5340定义了适用于IPv6的OSPFv3。

性       质:链路状态型路由协议

分       类:无类别链路状态型路由协议(VLSM与CIDR,传递网络掩码)

方       法:多播(更新地址224.0.0.2和224.0.0.6)

更       新:触发更新+30分钟的周期更新

使用范围:IGP

协议封装:基于IP协议封装,协议号为89

协议号:IP包中指定上一层采用什么协议。比如IP封装的上一层时UDP传输,则IP包中采用的协议号一般为6

OSPF开销值:使用参考带宽/链路带宽(当值小于1时等于1,值大于1时省略小数点)来计算开销值,得到每段链路开销值,路由开销值为整条路径开销值之和

默认参考带宽100M;cost值向上取整数;故当接口带宽大于参考带宽时,cost值为1;可能导致选路不佳;可以手工修改默认的参考带宽:

[r1]ospf 1

[r1-ospf-1]bandwidth-reference ?

  INTEGER<1-2147483648>  The reference bandwidth (Mbits/s)

[r1-ospf-1]bandwidth-reference 1000

切记:一旦修改,全网所有设备需一致;

ospf协议默认将选择cost值之和最小的路径,为最短路径加表;

OSPF区域设计原则

  1. 必须存在且唯一的骨干区域(area 0),单区域可为area 0或不为area 0
  2. 若存在非骨干区域,非骨干区域必须与骨干区域直接相连

OSPF协议是链路状态型协议,所以本身需要传递的数据量就很大,并且它不同于RIP的传递只需相邻的两个路由器进行数据交互,OSPF的交互是将一个路由器的相关信息数据包传给所有路由器来进行交互,因此划分区域可以减少大部分路由器的负担,只需要边界路由将本区域,与相邻区域的LSDB都储存下来,从而降低了区域内部路由器的LSDB

OSPF支持区域划分的原因:

  1. 限制LSA的传播范围      
  2. 减少LSA的数量

OSPF 区域的划分:基于接口(链路),即划分区域只能以接口来作为点来画边界并且一条最小路由(相邻路由器与路由器之间的路径)不能划分为两个区域,只能作为一个区域一个整体

区域分类:1、骨干区域(0区域)   2、非骨干区域 (非0区域)

OSPF 区域的标识:

  1. 十进制数(0到2^32-1)
  2. 类似于IP地址 A.B.C.D(0.0.0.0到255.255.255.254)

无论是十进制标识还是类似IP地址的标识都是32位二进制

相关名词

LSA(Link-State Advertisement)链路状态通告:是链接状态协议使用的一个分组,它包括具体的每一条的拓扑或路由信息, LSA被路由器接收用于维护它们的路由选择表。

LSDB(Link State DataBase)链路状态数据库:由各种LSA构成。通过路由器间的路由信息交换,自治系统内部可以达到信息同步,即LSDB(链路状态数据库)描述的网络拓扑同步。

骨干路由器:路由器的所有接口都在骨干区域内

非骨干路由器:路由器之间的所有接口都在非骨干区域内

区域边界路由器(ABR):路由器处于骨干区域和非骨干区域的边界

自治系统边界路由器(ASBR):位于OSPF自主系统和非OSPF网络之间的路由器

OSPF状态机

OSPF共有8种状态机,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full,这八种状态机又可分成邻居阶段(前四个状态机)和邻接阶段(后四个状态机)

  1. Down:邻居会话的初始阶段,表示收到来自邻居路由器的Hello数据包 ,一旦收到来自对端的数据包会进入下一个状态机
  2. Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔超时前仍然没有回复Hello报文。此时路由器依然周期向对端发送Hello报文。
  3. Init:收到Hello报文后状态为Init,但报文中并没有自己的Router-id将会维持在该阶段,当报文中存有本端的RID则进入下一状态机
  4. 2-way:收到的Hello报文中包含有自己的Router ID,状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态
  5. Exstart:使用不携带数据库目录信息的DBD进行主从关系的选举,并确定DBD的序列号
  6. Exchange:主从关系协商完毕后开始使用携带数据库目录信息的DBD包进行目录共享
  7. Loading:查看完对端的DBD目录后,基于本地未知的LSA,使用LSR向对端查询,对端使用LSU来进行LSA内容共享应答;本端收到LSA后使用LSAck来进行应答,DD报文交换完成即Exchange done
  8. Full:LSR重传列表为空,邻接关系建立的标志即此时状态为Full

1、点到点网络类型   down -->init -- >(前提为可以建立邻接)exstart -->exchange-->若查看邻接的DBD目录后发现不用进行LSA直接进入full  若查看后需要进行查询、应答先进入loading,在查询应答完后再进入full;

2、MA网络类型  down -->init -- >2way-->(前提为可以建立邻接,通过DR/BDR选举后来判断)exstart -->exchange-->若查看邻接的DBD目录后发现不用进行LSA直接进入full  若查看后需要进行查询、应答先进入loading,在查询应答完后再进入full;

3、当hello time较大时,状态机在down和init之间将出现尝试等待状态;

DBD包:DBD包中携带接口的MTU值,要求两端接口MTU一致,否则将卡在exstart状态机;华为设备默认不携带MTU值

[r1]interface g0/0/1

[r1-GigabitEthernet0/0/1]ospf mtu-enable  两端直连接口均需开启

DBD包中的描述位:

I 为1表示本地发出的第一个DBD

M 为0表示本地发出的最后一个DBD

MS 为1表示本地为主,为0表示本地为从

DBD使用序列号来进行隐性确认,从基于主的序列号进行;

DR与BDR选举

DR:指定路由器

BDR:备用指定路由器

选举规则:

  1. DR、BDR的选举基于接口优先级进行,优先级最高的接口被选举为DR,优先级为0则不参与选举
  2. 优先级相同时,则比较RID,RID大的为DR(没有RID则以IP最大的环回接口为RID,无环回则以IP最大的物理接口为RID)
[r1]int g0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 0

DR没有抢占性,即在DR未失效前有新的路由器加入时,不管该路由器的优先级是否大于原有DR的优先级,都不会对DR进行替换,但是在重新选举BDR时会加入选举

先选举BDR再选举DR,因为在刚开始时DR和BDR列表都是空的,都放在一个DR other的列表里,然后先对比优先级,优先级大的选为BDR;优先级相同的情况下,Router ID大的选为BDR。然后DR从BDR列表里面去选一个成为DR,BDR再从DR other列表中选一个做BDR

选举DR与BDR原因

1、在广播网络和NBMA网络中,任意两台路由器之间都要传递路由信息。如果网络中有n台路由器,则需要建立n*(n-1)/2个邻接关系。这会导致每次路由变化都会导致多次传递,浪费了带宽资源。因此OSPF定义了DR。通过选举产生DR后,所有其他设备都只将信息发送给DR,由DR将网络链路状态LSA广播出去。而为了防止DR发生故障,重新选举DR时会造成业务中断,除了DR之外,还会选举一个备份指定路由器BDR。这样除DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息,这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。

2、在MA网络中若两两间均建立邻接关系,将可能出现大量的重复更新;DV距离矢量路由协议可以使用接口水平分割来解决,由于OSPF协议邻接需要数据库比对,故不能设计接口水平分割;只能进行DR/BDR选举来解决;所有非DR/BDR之间为邻居关系,不进行数据库同步

点对点网络中,所有邻居关系均建立为邻接关系

MA(多路访问)网络中,将进行DR/BDR选举

修改优先级后,必须重启所有参选设备的OSPF协议

<R1>reset ospf process

OSPF数据包

OSPF中的数据包跨层封装于3层报头,协议号为89

中文名称英文全称,缩写作用
问候Hello10s或30s周期发送,用于发现和维护邻居关系
数据库描述

Database Description,

DBD

用于携带数据库目录

链路状态请求Link State Request,LSR

基于本地未知的LSA信息进行查询

链路状态更新Link State Update,LSU

用于传递具体的LSA信息,携带一条或多条LSA

链路状态确认Link State ACK,LSAck

保证可靠性,确认包 

理解:数据包中有五种报文,Hello报文用来发现和维护邻居关系,防止其中一方突然出现故障导致的问题,DD报文用来查询信息是否有重复的以及发现自己于对方所没有的LSA,LSR报文请求对方发送LSA,LSU报文用来发送LSA,ACK报文表示确认收到对方发送的信息

OSPF工作过程

1、启动配置完成后,邻居间组播收发hello包,获取对端的RID,建立邻居关系,生成邻居表;

2、邻居关系建立后进行条件的匹配,匹配失败将维持邻居关系,仅hello包保活即可;

3、匹配成功者之间建立邻接(毗邻)关系,需要DBD共享数据库目录,LSR/LSU/LSack来获取未知的LSA信息,当收集完网络中所有的LSA后,生成数据库表LSDB

4、当数据库表同步完成后,本地使用SPF算法,将数据库表转换为有向图,再将有向图计算成为最短路径树,然后以本地为起点,计算到达所有未知网段的最短路径,然后将这些路由加载于本地的路由表中;收敛完成。

5、收敛完成后–hello包周期保活–30分钟周期的BDB比对,若不一致将会使用LSR/LSU/LSack重新获取

拓扑结构突变

  1. 新增网段:直连新增网段的设备,使用LSU直接向本地所有邻接进行触发更新,对端需要确认
  2. 断开网段:直连断开网段的设备,使用LSU直接向本地所有邻接进行触发更新,对端需要确认
  3. 无法沟通:没有周期的hello包;dead time为hello time的4倍--倒计时,正常被每一个新的hello包刷新,归0时断开邻居关系,删除该邻接共享的信息

六种LSA

每一条LSA(链路状态通告)携带具体的拓扑或者路由信息,不同环境下将产生不同类别的LSA

无论哪类LSA,均存在以下基本参数

  Type     : Router   类型名,此处为1类

  Ls id     : 1.1.1.1   link-id该条目在目录中的编号(页码号)

  Adv rtr  : 1.1.1.1   通告者 -- 该条LSA的更新源设备的RID

  Ls age  : 1666  老化时间,周期1800s刷新,触发马上刷新;最大老化3609s

  Len       : 48         数据包长度

  seq#     : 80000015   序列号     更新后变化

  chksum : 0x6f95      校验码号  更新后变化

类别类型名传播范围通告者携带信息
1Router单区域该区域的每台路由器本地直连拓扑
2Network单区域单网段内的DR单个MA网络内的拓扑
3Summary整个OSPF域ABR域间路由
4Asbr除ASBR所在区域外ARB  

ASBR位置信息

5Ase整个OSPF域ASBR域外路由
7Nssa单个NSSA区域内ASBR域外路由
类别类型名link-ID通告者
1Router通告者RID该区域的每台路由器
2NetworkDR在该网段接口的ip地址单网段内的DR
3Summary域间路由的目标网络号ABR 在经过下一台ABR,修改为新的ABR
4AsbrASBR的RIDABR 在经过下一台ABR,修改为新的ABR
5Ase域外路由的目标网络号ASBR
7Nssa域外路由的目标网络号

ASBR

注意:只有MA/NBMA网络才会产生2类LSA

5和7类的LSA路由会存在一个类型1、类型2 的区别:

类型2(默认)仅显示种子(起始)度量

类型1显示整段路径的总度量

类型2的路由,虽然仅显示起始度量,但实际选路时依然基于总度量选择

重发布缺省时,修改为类型1

[r9-ospf-2]default-route-advertise type 1  

类型1优于类型2

总结:无论类型1还是类型2,在选路均基于实际本地到达ASBR的距离来选路;因为重发布将清除原有协议的度量,故ospf默认的选路规则将可能选中非最佳路径;通过修改重发布过程中修改度量类型为1,实现快速人工干预

三张表

ospf内有三张十分重要的表,分别为邻居表、LSDB表和OSPF路由表

邻居表:显示了ospf路由器之间的邻居基本状态,也可以查看对端设备的Router ID和接口地址等等

<R1>display ospf peer 查看邻居表
<R1>display ospf peer brief  查看邻居简表

LSDB表:存放LSA的数据库

<R1>display ospf lsdb
查看具体的一条LSA信息
<R1>display  ospf lsdb network 12.1.1.1 
                        类别名  link-id

OSPF路由表:OSPF路由表和路由器路由表是不一样的表项,OSPF路由表中路径有可能不只是一条,ospf路由表内会运行一种算法,算出一条通往目的设备的最优路径放在路由器路由表内

<R1>display ospf routing   

OSPF的接口网络类型

ospf协议在不同网络类型的接口上,有着不同的工作方式

查看OSPF协议在接口具体的工作方式名称
[r1]display  ospf interface g0/0/1  
接口类型OSPF工作方式
LoopBack华为显示p2p,实为环回专用工作方式  无hello包 以32位主机路由传递
点到点类型(HDLC/PPP/GRE)p2phello time10s  不选DR,邻居直接建立为邻接
BMA(以太网) Broadcasthello time10s  选DR/BDR 非DR/BDR间仅建立邻居关系
NBMA(MGRE)默认和普通GRE一样接口工作方式为p2p,该工作方式在华为设备上仅和最先收到的hello包建立邻居关系;

故在MGRE环境需要手工修改接口工作方式

[r1-Tunnel0/0/0]ospf network-type ?
  broadcast  Specify OSPF broadcast network
  nbma       Specify OSPF NBMA network
  p2mp       Specify OSPF point-to-multipoint network
  p2p        Specify OSPF point-to-point network

注:p2p 和broadcast 两种工作方式的hello time均为10s,故可以建立邻居关系,但在DR选举上不同,故无法正常交流LSA;

切记:邻居间ospf接口工作方式必须一致,才能正常建邻和正常收敛;

若将MGRE下所有接口的工作方式修改为broadcast,需要关注拓扑结构:

  1. 全连网状结构,可以正常工作,正常选举DR/BDR
  2. 非全连 ---管理员手工合理安排DR位置
  3. 星型结构-- 仅中心站点为DR,无BDR

基础配置

宣告配置全部完成后,邻居间周期组播收发hello包,建立邻居关系并生成邻居表

基础配置
[r1]ospf 1 router-id 1.1.1.1 启动时可以定义进程号和RID,进程号仅具有本地意义,默认为1

宣告:1)区域划分  2)激活接口OSPF协议   3、共享接口信息
[r1-ospf-1]area  0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0

邻居间hello包中必须完全一致的参数,否则无法建立邻居关系

必须完全一致的参数:Hello timedead time区域编号认证字段末梢区域标记、(在华为设备中邻居间hello包还将携带建邻的接口ip地址子网掩码,也必须和邻居一致)

扩展配置

1、手工认证

【1】接口认证:直连的邻居间,设定认证口令,进行身份核实,同时对双方交互的数据进行加密保护

[r9-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456 

邻居间认证模式、编号、密码必须完全一致

【2】区域认证:实际在该设备上所有属于同一区域的接口进行了接口认证配置(批量操作命令)

[r1]ospf 1

[r1-ospf-1]area  1

[r1-ospf-1-area-0.0.0.1]authentication-mode md5 1 cipher 123456

【3】虚链路认证

[r1-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 md5 1 cipher 123456

2、加快收敛

OSPF的hello time 默认为10或30s,dead time为hello time 的4倍,邻居间hello、dead time必须完全一致,否则无法建立邻居关系(修改本端的hello time,本端的dead time自动4倍关系匹配;不易修改的过小)

[r2-GigabitEthernet0/0/0]ospf timer hello 10

3、沉默接口

仅接收不发送路由协议信息

配置于被宣告的连接用户终端接口,不能配置于连接邻居的骨干接口,否则无法建立邻居关系

[r5]ospf 1

[r5-ospf-1]silent-interface GigabitEthernet 0/0/2

4、缺省路由

【1】自动产生缺省(3类、5类、7类)

3类缺省-- 特殊区域产生  末梢  完全末梢  完全NSSA  这三种特殊区域在配置完成后,连接骨干区域的ABR将向该区域发布3类缺省

5类缺省为手工配置产生;  

7类缺省--特殊区域产生  NSSA、完全NSSA均产生;但完全NSSA也产生3类缺省,3类优于7类;

【2】手工配置产生 ---- 5类缺省  

[r9]ospf 2 

[r9-ospf-2]default-route-advertise  

将本地路由表中无论何种来源产生的缺省路由,重发布到本地的OSPF进程2中

让其他与本地进程2在一个ospf域中的路由器,产生5类缺省,指向R9

注:以上命令若本地路由表中没有缺省,将无效

[r9]ospf 1

[r9-ospf-1]default-route-advertise always   

该指令为本地强制向邻接发送5类缺省路由,无论本地路由表是否存在缺省

OSPF的缺省注意事项:由于OSPF的特殊区域可以自动产生缺省路由指向骨干0区域;故ISP在网络中的位置将决定,网络是否会因为缺省路由产生环路;若ISP连接骨干区域,那么所有的非骨干可以正常定义为各种特殊区域;若ISP处于某个非骨干,或非骨干连接的其他协议,那么对应的该非骨干区域不能配置为任何特殊区域,必须手工进行优化管理;

5、汇总

区域内不可进行汇总,但是区域间的ARP进行路由共享时可进行汇总配置

[R2]ospf 1

[R2-ospf-1]area 0

[R2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.255.252.0

OSPF的不规则区域与解决方案

  1. 远离骨干非骨干区域
  2. 不连续骨干区域

解决方案:

1、tunnel ---点到点GRE

在合法与非ABR间建立隧道,然后将其宣告于OSPF协议中;

缺点:

  1. 周期和触发信息对中间穿越区域造成资源占用
  2. 选路不佳

2、OSPF虚链路

由合法ABR,给同一区域的非法ARB进行授权,之后非法ABR能够进行区域间路由共享

[r2]ospf 1

[r2-ospf-1]area  1  两台ABR均存在的区域

[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4  对端ABR的RID;两台ABR均需配置

优点:没有新的数据链路出现,故选路正常; 

缺点:两台ABR之间的周期信息,依然对中间区域造成影响,增加延时

cisco思科--- 取消两台ABR间所有的周期信息,仅存在触发更新-- 不可靠

华为 --- 保留所有的周期信息,对中间区域资源占用严重

3、多进程双向重发布(推荐)

多进程:一台路由器上允许的多个ospf进程,每个进程运行独立的接口(一个接口只能宣告于一个进程中)

多进程双向重发布可以将非法ABR上的不同接口宣告于不同的OSPF进程中造成独立的协议,再使用重发布进行,将该非法ABR转换为ASBR,进行协议间路由条目共享

优点:不存在选路不佳问题,不存在周期资源占用,和不可靠问题;存在独立的邻居、数据库且数据库间不做共享,仅将所有数据库计算所得的路由加载于同一路由表中

双向重发布

[r4]ospf 1

[r4-ospf-1]import-route ospf 2

[r4-ospf-1]q

[r4]ospf 2

[r4-ospf-2]import-route ospf  1

优化配置

优化OSPF的LSA   减少LSA的更新量

1、手工汇总:减少骨干区域的LSA

【1】域间路由汇总

只能在区域间传递3类LSA时,进行手工的路由汇总

在ABR上配置
[r1]ospf 1

[r1-ospf-1]area  2   本地通过该区域的1/2LSA拓扑计算所得路由才能汇总

[r1-ospf-1-area-0.0.0.2]abr-summary 5.5.4.0 255.255.254.0

【2】 域外路由汇总

当ASBR将其他协议产生的路由条目重发布进入OSPF域时,可以进行汇总配置

[r4]ospf 1

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

2、特殊区域:减少非骨干区域的LSA

【1】不是骨干区域、不存在虚链路、不存在ASBR的情况下

1」末梢区域:该区域拒绝,外部进入的4/5的LSA;由该区域连接骨干的ABR,向内部产生一条3类的缺省路由

[r5]ospf 1

[r5-ospf-1]area  2  该区域内所有路由器均需配置

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

2」完全末梢区域:在末梢区域的基础上,仅一步拒绝3类LSA的进入;仅保留一条3类缺省的进入先将该区域配置为末梢区域

然后仅在ABR上配置完全末梢即可

[r1]ospf 1

[r1-ospf-1]area  2

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

【2】不是骨干区域、不存在虚链路、存在ASBR的情况下

1」NSSA:非完全末梢区域;该区域拒绝4/5的LSA;本地ASBR产生的域外路由,使用7类在本NSSA区域传递,通过ABR进入骨干区域,被转换成5类;由该区域连接骨干的ABR向内部发送一条7类缺省;

其存在的价值,是为了让该区域拒绝其他区域的,ASBR产生的4/5类LSA进入

[r4]ospf 1

[r4-ospf-1]area  1

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

2」完全NSSA:在普通NSSA的基础上,进一步拒绝3的类LSA进入该区域;由该区域连接骨干的ABR向内部发布一条3类缺省

先将区域配置为NSSA,然后仅在连接骨干的ABR上,定义完全即可

[r3]ospf 1

[r3-ospf-1]area  1

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

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

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

相关文章

【论文通读】CLIP改进工作综述

CLIP改进工作综述 前言1. 语义分割1.1 Lseg1.2 GroupViT 2. 图像检测2.1 ViLD2.2 GLIP2.3 GLIPv2 3. 图像生成3.1 CLIPasso 4. 视频理解4.1 CLIP4Clip4.2 ActionCLIP 5. 其它领域5.1 CLIP-VIL5.2 AudioCLIP5.3 PointCLIP5.4 DepthCLIP 总结参考链接 前言 CLIP作为多模态对比学…

torch.nn中的L1Loss和MSELoss

我们打开Pytorch官网&#xff0c;找到torch.nn中的loss function&#xff0c;进去如下图所示。 L1LOSS 我们先来看看 L1LOSS 损失函数的使用。下图是官网给出的描述。 L1loss有两种方式&#xff0c;一种是将所有误差累加作为总损失&#xff0c;另一种是将所有误差累加之后求平…

java八股文面试[数据库]——一个B+树中大概能存放多少条索引记录

MySQL设计者将一个BTree的节点的大小设置为等于一个页. (这样做的目的是每个节点只需要一次I/O就可以完全载入), InnoDB的一个页的大小是16KB,所以每个节点的大小也是16KB, 并且BTree的根节点是保存在内存中的,子节点才是存储在磁盘上. 假设一个B树高为2&#xff0c;即存在一个…

Cyber RT基础入门与实践_Hello Apollo

Hello Apollo 进入云实验环境模块的模块内包的 进入云实验环境 <1> 创建本节实验工程目录&#xff0c;创建完成后&#xff0c;工程目录如下所示&#xff1a; cyber_demo |-- cyber_01 |-- demo_main | |-- BUILD | |-- main.cc |–BUILD |–cyberfile.xml |–cyber_demo.…

YOLO目标检测——火焰检测数据集+已标注xml和txt格式标签下载分享

实际项目应用&#xff1a;火灾预警系统、智能监控系统、工业安全管理、森林火灾监测以及城市规划和消防设计等应用场景中具有广泛的应用潜力&#xff0c;可以提高火灾检测的准确性和效率&#xff0c;保障人员和财产的安全。数据集说明&#xff1a;YOLO火焰目标检测数据集&#…

栈和队列经典笔试题

文章目录 栈和队列的回顾&#x1f4bb;栈&#x1fa73;队列&#x1f45f; 栈和队列经典笔试题&#x1f50b;有效的括号&#x1f3b8;用队列实现栈 &#x1f56f;用栈实现队列&#x1f52d;设计循环队列&#x1f9fc; 安静的夜晚 你在想谁吗 栈和队列的回顾&#x1f4bb; 栈&am…

在VR全景中嵌入3D模型有哪些优势?

现阶段&#xff0c;很多商企都会引入VR全景展示来宣传推广自己的产品、服务以及环境&#xff0c;但是环境展示凸显的沉浸式体验只是 VR全景一部分的价值所在&#xff0c;商企使用VR全景还有一个优势就是互动性&#xff0c;通过丰富多样的互动性&#xff0c;让用户同VR场景中的物…

Linux下systemd深入指南:如何优化Java服务管理与开机自启配置

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

网络编程day6作业

完成网络聊天室编写 ser #define ERR_MSG(msg) do{\fprintf(stderr,"__%d__",__LINE__);\perror(msg);\ }while(0) #define IP "127.0.0.1" #define PORT 6666 //创建链表 Linklistptr list_create(); Linklistptr node_buy(datatype e); int list_inser…

【三维重建】【深度学习】【数据集】基于COLMAP制作个人Gen6D测试数据集

【三维重建】【深度学习】【数据集】基于COLMAP制作个人Gen6D测试数据集 提示:最近开始在【三维重建】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。 文章目录 【三维重建】【深度学习】【数据集】基于COLMAP制作个人Gen6D测试数据集前言下载安装colmap软…

龙迅LT86102UX HDMI一进二出,支持分辨率4K60HZ

龙迅LT86102UXE 1. 描述 龙迅LT86102UX HDMI2.0 分路器具有符合 HDMI2.0/1.4 规范的 1&#xff1a;2 分路器、最大 6Gbps 高速数据速率、自适应均衡 RX 输入和预强调的 TX 输出&#xff0c;支持长电缆应用&#xff0c;板载无 XTAL&#xff0c;可节省 BOM 成本。 LT86102UX HDM…

海保人寿:开源治理保障科技与保险融合,助力保险业务数字化改革创新

海保人寿保险股份有限公司&#xff08;简称“海保人寿”&#xff09;是第一家在海南筹建开业的全国性保险机构。从成立之初&#xff0c;便深耕于数字化创新&#xff0c;在自身多业务环节中实现数字化转型&#xff0c;依托优秀的研发体系与数智融合的业务系统&#xff0c;不断推…

MAYA材质学习(各种好看的)

例子2 例子3 例子4 例子5 例子6 例子7

如何解决GitHub 访问不了?小白教程

GitHub 是全球最大的代码开源平台&#xff0c;小伙伴们平时都喜欢在那里找一些优质的开源项目来学习&#xff0c;以提升自己的编程技能。 但是很多小白初探GitHub 发现访问不了&#xff0c;不能访问 通过一下方法绕过这堵墙&#xff0c;成功下载 GitHub 上的项目。过程非常简单…

Ukey连接虚拟前置机,浦银安盛基金用USB Server解决

浦银安盛基金一直使用物理前置机来连接Ukey&#xff0c;物理前置机维护管理不便&#xff0c;严重影响金融交易效率。因此&#xff0c;浦银安盛基金想要推进企业虚拟化&#xff0c;通过在虚拟机中部署前置机程序的方式&#xff0c;将前置机部署到虚拟机中。但虚拟机中的前置机&a…

SpringCloud整体架构概述

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; SpringCloud整体架构概述 SpringCloud对常见的分布式系统模式提供了简单易用的编程模型&#xff0c;帮助开发者构建弹性、可靠、协调的应用程序。 SpringCloud是在Spr…

在线升级之ICAP,ISP,BIN,HEX,MCS

学到了ICAP&#xff0c;做做笔记。 具体可参考&#xff1a;FPGA中ICAP原语的使用——Multiboot功能的实现_朽月的博客-CSDN博客 ICAP是管理内部配置访问端口的原语&#xff0c;于是我学习的第一个原语。对于原语的概念简而言之就是类似IP核的存在&#xff0c;是既成的电路结构&…

使用Puppeteer爬取地图上的用户评价和评论

导语 在互联网时代&#xff0c;获取用户的反馈和意见是非常重要的&#xff0c;它可以帮助我们了解用户的需求和喜好&#xff0c;提高我们的产品和服务质量。有时候&#xff0c;我们需要从地图上爬取用户对某些地点或商家的评价和评论&#xff0c;这样我们就可以分析用户对不同…

C++内存管理(2)new、delete详解

目录 new operator&#xff08;new操作&#xff09; new类对象时加不加括号的差别 new工作任务 delete工作任务 new和delete 堆区空间操作&#xff08;对比malloc和free&#xff09; new和delete操作基本类型的空间 new和delete操作基本类型的数组 new和delete操作类的…

Layui快速入门之第二节布局容器(固定宽度与完整宽度)

目录 一&#xff1a;固定宽度 二&#xff1a; 完整宽度 一&#xff1a;固定宽度 将栅格放入一个带有 class"layui-container" 的特定容器中&#xff0c;以便在小屏幕以上的设备中固定宽度&#xff0c;让列可控(两侧有留白效果) <!--固定宽度(两侧有留白效果)--&…