华为数通HCIP-OSPF基础

路由协议

作用:用于路由设备学习非直连路由;

动态路由协议:使路由设备自动学习到非直连路由;

分类:

按照算法分类:

1、距离矢量路由协议;(RIP、BGP)

只交互路由信息,不交互拓扑信息,运行距离矢量路由协议的路由器,只关心目的网段如何到达,无法得知网络结构;

拓扑信息:用于描述网络结构的信息(如接口带宽、接口类型等)

路由信息:目的网段以及掩码;

2、链路状态路由协议;(ospf、isis)

既交互路由信息,也交互拓扑信息,运行链路状态路由协议的路由器,可以得出全网的网络结构,并且计算出去往目的网段的最优路由,进行访问;

按照工作范围分类:

1、IGP(内部网关协议)-ospf、isis;

工作在一个AS内的动态路由协议,实现AS内部的互通;

会周期更新路由(ospf 1800s/次,超时时间为3600s;isis 900s/次 超时时间1500s)

2、BGP(边界网关协议)

工作在AS之间,实现AS之间的互通;

不会周期更新路由,只会触发式更新;

AS(自治系统/路由域)

定义:运行相同路由协议,具有相同管理规则的区域(一般为一个企业网);

按照传递路由时是否携带掩码分类:

1、有类路由协议

路由传递时,无需携带掩码,对端收到后,根据网段的类别,自动生成掩码;

2、无类路由协议(ospf、isis、BGP)

传递路由时,会携带掩码

——————————

ospf(开放式最短路径优先协议)

分类:链路状态路由协议、IGP、无类;

工作过程:

1、建立ospf邻居关系;

2、建立ospf邻接关系(同步LSDB);

LSDB(链路状态数据库):每台运行了ospf的路由器都会有一个LSDB,里面会携带自身的LSA;

LSA(链路状态通告信息):携带自身的路由信息以及拓扑信息;

同步LSDB:邻居双方相互发送LSA,直至双方的LSDB完全一致,既包含自身的LSA,也包含对方的LSA;

3、每台ospf路由器都会根据同步完成的LSDB,进行spf计算,得出全网网络结构,算出去往每个目的网段的最优路由,放进路由表;

报文:

结构:ospf层——网络层——数据链路层

ospf工作在网络层,协议号为89;

报文发送方式:组播发送,组播地址224.0.0.5(所有ospf路由器均可以接收)、224.0.0.6(只有DR/BDR可以接收)

ospf层:ospf头部+报文详细信息;

其中ospf头部所有ospf报文都会携带,并且携带内容一致;

报文的详细信息:不同报文类型,携带不一致;

ospf头部详细信息:

1、版本:v2/v3,分别工作在ipv4/v6环境;

2、router id(发送端)

格式大小:跟ip地址完全一致;

作用:唯一标识一台ospf路由器(不能冲突)

获取方式:

(1)手工配置

[R1]ospf 1 router-id 1.1.1.1 //创建并且进入ospf进程1,并且指定router id为1.1.1.1

修改router id后,需要重启ospf进程才能使新的router id生效;

<R1>reset ospf process //重启ospf进程;

(2)如果没有手工指定,则会自动进行选举;

选举规则:先在loopback接口中,选择最大的一个作为router id;

如果没有配置loopback口,则在物理接口中选最大的一个作为router id;

在实际设备中,会选择最先启动的接口ip作为router id;

3、区域id(area id)

标识发送ospf报文的接口属于哪一个区域;

区域分类:骨干区域(area id=0):必须要有

非骨干区域(area id=/=0):可有可无

普通区域、特殊区域(stub、totally stub、nssa、totally nssa);

区域划分:

基于接口进行划分;

划分规则:

(1)骨干区域必须要有,有且仅有一个;

(2)非骨干区域必须围绕着骨干区域建立,非骨干区域之间的互通,必须经过骨干区域;

4、认证信息:默认为空,如果配置了,两端需要认证通过才能建立ospf邻居;

分类:

1、hello报文

作用:用于发现、建立、维护ospf邻居(10s/次相互发送hello报文维持邻居),并且可以感知邻居的离开(超时时间为hello时间的4倍,默认为40s);

携带内容:

(1)掩码:标识发送hello报文的端口的掩码;

(2)hello时间/超时时间

(3)DR优先级、DR与BDR的ip地址;

(4)活跃邻居列表:携带hello报文的发送者的邻居router id;

(5)option位:用于标识区域类型;

E=1 N=0 普通区域

E=0 N=1 NSSA、totally NSSA

E=0 N=0 STUB、totally STUB

2、DD(数据库描述报文)

作用:携带自身LSDB中所有LSA的摘要信息,用于告知邻居,自身的LSDB中包含哪些LSA;

携带内容:

(1)MTU:代表接口发送的最大的数据单元,默认位1500B;

(2)flags:

I:代表该DD报文,是否为本设备发送的第一份DD报文;

M:用于标识该设备后续是否还有DD报文需要发送;

MS:代表该DD报文的发送端,是否为主设备;

(3)序列号;

3、LSR(LSA请求报文)

作用:携带自身需要获取的LSA的摘要信息,用于在收到DD报文后,向邻居请求自身缺少的LSA;

4、LSU(LSA更新报文)

作用:携带LSA的详细信息,用于回应LSR的请求;

5、LSACK(LSA确认报文)

作用:携带LSA的摘要信息,用于在收到LSU报文后,进行回复,确认收到;

ospf邻居状态机(详细的工作过程)

1、down

ospf路由器刚运行的状态,在该状态下代表ospf路由器没有收到任何的ospf报文,但可以发送hello报文进行邻居发现;

2、init

ospf路由器收到hello报文,并且该hello报文的邻居列表不包含自身的router id,则进入该状态;

3、2-way

ospf路由器收到hello报文,并且该hello报文的邻居列表包含自身的router id,则进入该状态;

当双方都进入2-way状态,则ospf邻居关系建立完成;

会进行DR/BDR的选举,选举完成后进入下一个状态;

4、exstart

邻居双方会相互发送不携带lsa摘要信息的DD报文(空DD),用于确保后续同步LSDB过程的可靠性;

携带内容:MTU、m=1、i=1、ms=1、序列号(随机生成)

作用:1、用于选举主从路由器;

选举规则:router id大的为主;

2、协商MTU,如果不一致,则邻接关系无法建立,停留在exstart状态;

3、确定序列号,以主的序列号为准;

5、exchange

邻居双方相互发送携带自身LSA摘要信息的DD报文,用于告知对端自身的LSDB中含有哪些LSA;

过程:

(1)由从先发出DD报文,其中序列号,为主设备在exstart发送的DD报文的序列号;

(2)主设备收到从设备的DD报文后,自身需要发出的DD报文的序列号,为从设备发出的DD报文的序列号+1;

(3)从设备收到主设备发送的DD报文,自身需要发出的DD报文的序列号等于主设备发送的DD报文中的序列号

(4)双方发送的DD报文中的M位均为0时,代表双方的LSA摘要信息全部发送完成,进入下一个阶段;

6、loading

邻居双方相互发送LSR、LSU、LSACK报文进行LSDB的同步;

5s重传机制:如果ospf路由器发送LSR、LSU后,没有收到对应的回应,则会将该报文重新发送,5s/次;

当重传列表为空时,代表本设备没有需要请求的以及发送的LSA,则进入FULL状态;

7、full

进入该状态,说明邻接关系建立完成,开始计算路由;

DR/BDR

DR:指定路由器,一个网段中有且只有一个;

BDR:备份指定路由器,一个网段中有且只有一个;

DRother:一个网段中可以有0到多个;

作用:减少ospf邻接关系的数目,从而减少网络中报文交互的数目,从而节省链路资源;

原理:DR可以跟所有路由器建立邻接关系;

BDR可以跟所有路由器建立邻接关系;

DRother之间无法直接建立ospf邻接关系,它们之间会停留在邻居关系的状态,但可以通过DR/BDR完成LSDB的同步;

选举:

选举状态:2-way

选举报文:hello报文

选举规则:

(1)比较DR优先级,越大越优;(默认为1,可调范围0~255,其中0代表不参与选举)

(2)比较router id,越大越优;

特点:

1、不抢占:一旦网络中的DR/BDR确定,则除非它们故障,否则地位都不会改变;

2、有备份:BDR作为DR的备份,一旦DR故障,BDR马上成为DR;

选举时间:等待时间(wait time),默认为120s

等待时间选举过程:

1、当ospf路由器刚启动,就会开始计时,在等待时间计时结束前,该路由器不会参与DR/BDR选举,并且如果在此过程中收到hello中DR/BDR有携带ip地址,则直接承认它们的地位;

2、当等待时间计时结束后,才会开始进行选举,并且将自己的ip地址填充进hello报文的DR字段中进行发送;

优先级最大的ospf路由器,一定为DR——x

最先启动的ospf路由器,一定为DR——√

网络中必须有DR,但不一定有BDR;

interface GigabitEthernet0/0/0

ospf dr-priority 2 //修改接口的dr优先级为2

基础配置

1、创建并且进入ospf进程,指定router id

[R1]ospf 1 router-id 1.1.1.1 /只有第一次创建进程时,需要指定router id,后续再进入无需指定

2、进入区域视图(以区域0为例)

[R1-ospf-1]area 0

3、宣告网段

[R1-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255 //以网段的方式进行宣告,网段后需要接反掩码(255.255.255.255-掩码得出);

network 10.1.12.2 0.0.0.0 //以接口ip的方式宣告(精确宣告)

**只能宣告自身的直连网段;

display ospf brief //查看ospf摘要信息,其中包含router id、hello时间、DR信息;

display ospf peer brief //查看ospf邻居

开销

ospf开销=接口参考带宽/实际带宽;

越小越优;

GE/E——1

点到点链路——48

interface GigabitEthernet0/0/0

ospf cost 2 //修改接口开销为2

网络类型

作用:用于使ospf适应不同的底层链路;

底层链路 是否选举DR/BDR hello时间/超时时间 报文发送方式

广播型网络(MA) 以太网链路 选 10s/40s 组播发送:hello报文、LSACK、LSU;单播发送:DD、LUR

P2P 点到点链路 不选举 10s/40s 所有报文均为组播

NBMA 帧中继网络 选 30s/120s 所有报文均为单播

P2MP 无(需要手动调整) 不选举 30s/120s 组播:hello,其余报文均为单播

P2P网络不选举DR/BDR的原因:

P2P网络一般只有两端的两台设备,如果选举的话,一台为DR、一台为BDR,都会建立邻接关系,因此在P2P网络中选举DR/BDR,无法减少邻接关系的数目,并且还需要消耗选举的时间以及开销,因此没有必要选举;

因此一般P2P网络ospf邻居的建立时间会快于广播型网络;

针对只有两台设备相连的以太网链路,可以将其ospf的网络类型修改为P2P,无需选举DR/BDR,加快邻居关系建立的速度;

interface GigabitEthernet0/0/1

ip address 10.1.24.2 255.255.255.0

ospf network-type p2p //修改接口的网络类型为P2P;

邻居关系:

1、广播型网络:能跟P2P建立、修改hello时间一致后可以跟P2MP建立邻居关系;

2、P2P:可以跟广播型网络建立,修改hello时间一致后可以跟P2MP建立邻居关系;

ospf认证

作用:提高ospf网络的安全性;

原理:只有认证通过才能建立ospf邻居关系;

认证通过:认证类型以及用户名、密码要一致;

认证方式:

接口认证:配置在接口下;

区域认证:配置在区域下;

认证类型:

明文认证(simple)

特点:配置时只需要指定密码;

抓包时可以看得见密码;

直接根据密码进行认证,密码一致则通过;

认证过程简单、节省报文空间,安全性差;

密文认证:(MD5、keychain)

特点:配置时需要指定key id以及密码;

抓包时可以看不见密码;

根据hash值(通过key id、密码以及加密序列号进行hash计算得出)进行认证,密码一致则通过;

认证过程复杂,安全性高;

配置参数:

plain:查看配置时可以看见密码;

cypher:查看配置时无法看见密码;

配置:

interface GigabitEthernet0/0/0

ospf authentication-mode simple plain huawei //接口下配置明文认证,密码为huawei

ospf 1 router-id 2.2.2.2

area 0.0.0.0

authentication-mode simple cipher huawei //区域下配置明文认证,密码为huawei

interface GigabitEthernet0/0/0

ospf authentication-mode md5 1 plain huawei //接口下配置密文认证,key id为1,密码为huawei

当一个区域下配置了认证,同时接口下也配置了认证,则该接口以接口配置的认证为准;

keychain认证:

定义:一个keychain由多个key id以及对应的密码组成,可以在不同的时间,使用不同的key id以及密码,提高网络的安全性;

配置

[R3]keychain 1 mode periodic daily //创建钥匙串,设置认证的模式为周期,周期为按天;

key-id 1 //创建key id 1

key-string plain huawei //设置密码为huawei

send-time daily 00:00 to 12:00 //在每天的0点到12点,使用key id 1,密码huawei进行认证;

receive-time daily 00:00 to 12:00

key-id 2

key-string plain huawei

send-time daily 12:01 to 23:59

receive-time daily 12:01 to 23:59

interface GigabitEthernet0/0/0

ospf authentication-mode keychain 1 //接口或者区域下调用;

LSA

LSA摘要信息:唯一标识一份lsa;

ls type:代表lsa的类型;

ls id;链路状态id,不同类型的lsa,代表含义不一样;

adv router:产生该lsa的设备的router id;

单区域:使用1、2类lsa;

在一个区域内,最终所有该区域的ospf路由器都会同步LSDB;

lsa-1

route lsa

所有的ospf路由器都会产生(仅产生一份);

传递范围:一个区域内;

防环:SPF算法;

摘要:

ls id:产生该LSA的设备的router id;

adv router:产生该LSA的设备的router id;

ls type:route

详细信息:

1、当设备存在p2p网络类型的接口时,会产生,描述p2p网络的拓扑信息;

link-type:p2p

link id:本设备通过P2P链路连接的对端的设备的router id;

data:接口ip;

开销:接口开销;

2、当设备存在广播型网络的接口时,会产生,用于描述广播型网络的拓扑信息;

link-type:transnet

link id:DR的ip地址

data:本接口ip

开销:接口开销;

**DR产生的transnet的信息,其中link id与data会一致;

3、当设备存在p2p网络类型的接口,或者存在宣告进ospf的loopback时,会产生,用于描述P2P网络以及loopback接口的路由信息

link-type:stubnet

link id:目的网段

data:掩码

开销:本设备去往该网段的ospf开销

4、当设备配置了v-link会产生;

link-type:virtual

link id:虚链路对端的ip

data:自身接口ip

开销:本设备去往对端开销

lsa-2

network-lsa

只有DR会产生,用于描述广播型网络的路由信息以及部分拓扑信息;

传递范围:区域内传递;

防环:SPF算法;

摘要信息:

ls type:network lsa;

ls id:DR的ip地址

产生者:DR的router id;

详细信息:

掩码;

加入进该网段的设备的router id;

display ospf lsdb //查看设备的ospf lsdb中的lsa的摘要信息;

display ospf lsdb router x.x.x.x //查看一类lsa的详细信息,其中x.x.x.x为需要查看的ls id

display ospf lsdb network x.x.x.x //查看二类lsa的详细信息,其中x.x.x.x为需要查看的ls id

FULL-SPF算法:

在网络刚启动ospf时,会进行计算;

定义:每台路由器,会根据自身收集到的区域内的一二类lsa,进行计算,画出SPF树,得出最优路由;

计算方式:

1、每台路由器都会把自己当成树根,进行计算,先查看自身产生的一类lsa,查看其中的拓扑信息;

根据开销,选择最小的拓扑信息,新增节点,如果link-type为transnet,新增的为伪节点,通过p2p类型新增的为实节点;

2、再根据新增的节点,去查找相关联的lsa,其中实节点,查找1类lsa,伪节点查找2类lsa,再继续新增新节点,直至网络中没有新节点增加为止;

3、在每个节点上,挂上路由信息,计算出最优路由;

区域间通信:

ABR(区域边界路由器)

定义:在骨干区域以及非骨干区域同时存在FULL邻接关系的ospf路由器;

lsa-3

由ABR产生,只携带路由信息;

传递范围:区域间;(除产生区域外的其他相邻区域,特殊区域除外)

产生过程:ABR会将区域内1、2类lsa中的路由信息,转成3类lsa在其他相邻的区域内传递,其他区域的设备收到后,会累加自身到ABR的开销,得出去往目的网段的路由;

摘要:

ls type:summary-lsa

ls id:目的网段;

产生者:ABR的router id;

详细信息:

掩码;

开销:产生该三类lsa的abr到目的网段的开销;

透传:

当ABR收到三类LSA时,会进行透传操作:

将产生者变为自己,开销修改为自身到目的网段的开销,在其他相邻的区域内传递(特殊区域除外);

防环:

1、水平分割规则:

当ABR从非骨干区域收到三类LSA时,执行只接收,不计算的、不透传的操作;

接收的原因:(1)用于备份路径;

(2)需要在区域内同步LSDB;

2、LSA-1、2优于LSA-3

当ABR同时收到描述相同路由的1、2类lsa以及3类lsa时,会优选1、2类lsa,同时不会将收到的3类lsa进行计算以及透传,作为备份路径使用;

vlink(虚链路)

定义:配置在边界设备上,配置后相当于在配置的两端另外单独建立了一个骨干区域(area 0)的邻接关系;

原理:vlink两端设备会以单播的形式同步area 0的数据库,另外也是通过单播发送hello报文维持邻接关系;

作用:解决因区域划分不规则导致的无法互访的问题;

配置:

ospf 1 router-id 2.2.2.2

area 0.0.0.2 //进入双方共处的区域

vlink-peer 4.4.4.4 //指定对端的router id

display ospf vlink //查看vlink邻接关系的建立情况

配置的注意事项:

1、vlink无法跨区域建立,因为需要通过1类lsa(virtual类型的link type)定位对端的位置,单播发送lsa;

2、骨干区域不可以配置;

3、特殊区域不能配置

危害:

1、增加网络的复杂度;

2、存在环路隐患;

路由引入:

将一个协议的路由以另一个协议路由的形式,在另一个协议中传递;

ospf外部路由:

通过其他协议引入进ospf的路由,优先级默认为150;

ASBR(自治系统边界路由器)

指进行了外部引入的ospf'设备;

LSA-5

用于描述外部路由,携带路由信息;

由ASBR产生;

传递范围:整个ospf域,特殊区域除外;

防环:根据1、2、3、4类lsa的防环规则防环;

摘要信息:

ls type:external

ls id:目的网段;

产生者:ASBR的router id;

详细信息:

掩码;

开销:外部开销;

外部开销:ASBR在进行路由引入时,指定的开销,默认为1;

内部开销:需要访问外部路由的设备到ASBR的开销;

type:代表开销计算方式,分为type 1以及type 2,默认为2;

type 2:直接比较外部开销,比不出来再比较内部开销,路由表上,只呈现外部开销;

type 1:直接比较内外开销之和,路由表上,呈现内部开销+外部开销之和;

为什么需要区分type 1以及type 2:可以在进行选路时,更加灵活控制流量走向;

tag:路由标记,用于匹配路由,默认为1

FA地址(转发地址)

默认为0.0.0.0

作用:解决次优以及环路的问题;

置位条件:

1、ASBR发送lsa-5的接口,跟它自身访问外部路由的出接口为同一接口;

2、上述接口宣告进ospf,并且没有静默;

满足置位条件后,FA会被置位为外部路由的下一跳;

原理:

1、当FA地址为0时,ospf设备通过4类lsa找到ASBR的位置去访问外部路由;

2、当FA地址不为0时,ospf设备直接通过1、2、3类lsa找到FA地址,从而访问外部路由

ospf 1 router-id 5.5.5.5

import-route static cost 2 //引入外部路由时,修改外部开销为2

import-route static cost 2 type 1 //修改开销计算类型

import-route static tag 10 //为引入的路由打上tag 10

display ospf lsdb ase 6.6.6.6 //查看5类lsa的详细信息;

LSA-4

作用:携带ASBR的router id(位置信息),其他ospf设备会根据该lsa找到ASBR,从而访问外部路由;

摘要:

ls type:asbr

ls id:ASBR的router id;

产生者:ABR的router id;

传递范围、防环规则、透传均跟lsa-3一致;

产生过程:

1、当一台ospf路由器引入了外部路由后,它产生的1类lsa中的option位asbr位置位为1;

2、同区域的ABR收到ABSR产生的1类lsa后,则会为该ASBR产生lsa-4,在其他相邻的ospf区域内传递(特殊区域出外)

特殊区域:

作用:保护性能较差的设备;

对性能要求:ASBR>ABR>骨干区域中间设备>普通区域中间设备>特殊区域中间设备;

1、stub区域

特点:不允许存在4、5、7类lsa;

当一个区域配置为stub区域时,该区域的ABR会下发一条描述默认路由的3类lsa,在stub区域内传递,该区域的设备就可以学习到默认路由,用于访问外部路由;

配置:

ospf 1 router-id 3.3.3.3

area 0.0.0.2

stub //把区域2,配置成stub区域,注意整个区域的所有设备均需要配置;

2、totally stub区域

特点:不允许存在4、5、7类以及明细的3类lsa;

当一个区域配置为totally stub区域时,该区域的ABR会下发一条描述默认路由的3类lsa,在totally stub区域内传递,该区域的设备就可以学习到默认路由,用于访问其他区域的路由以及外部路由;

配置:

ospf 1 router-id 3.3.3.3

area 0.0.0.2

stub no-summary //把区域2,配置成totally stub区域

缺陷:stub区域无法引入外部路由;

3、nssa区域

特点:不允许4、5lsa存在;

当一个区域配置为nssa区域时,该区域的ABR会下发一条描述默认路由的7类lsa,在nssa区域内传递,该区域的设备就可以学习到默认路由,用于访问其他区域引入外部路由;

nssa区域可以引入外部路由,引入的路由会以7类lsa的形式在nssa区域内传递;

当nssa区域的ABR在本区域收到7类lsa时,会进行7转5的操作:将类型修改为5类,产生者变为自己,在其余的ospf区域中传递(特殊区域除外),在其余区域的设备严重,该ABR为对应外部路由的ASBR;

当nssa区域中存在多台ABR时,只有router id大的可以进行7转5

lsa-7

用于描述在nssa区域内引入的外部路由,携带路由信息;

传递范围:nssa区域

摘要:

ls id:目的网段;

产生者:ASBR的router id;

type:nssa

详细信息:

掩码;

外部开销

开销计算类型

tag

FA地址(一般不为0)

选举规则:

(1)先看是否满足lsa-5的fa地址置位条件;

(2)在宣告进ospf中的loopback接口中选择最大的ip地址

(3)在宣告进ospf中的物理接口中选择最大的ip地址

作用:防止在nssa区域中存在多台ABR的情况下,只有一台进行7转5时,出现的次优路径问题;

配置:

ospf 1 router-id 3.3.3.3

area 0.0.0.2

nssa //把区域2,配置成nssa区域

4、totally nssa

特点:在nssa区域的基础上,进一步过滤了明细的三类lsa,ABR在下发一条描述默认路由的3类lsa,用于访问区域外的路由;

配置:

ospf 1 router-id 3.3.3.3

area 0.0.0.2

nssa no-summary //把区域2,配置成totally nssa区域

ospf路由汇总

作用:减少路由表/LSDB规模

分类:

1、在ABR上实现,针对lsa-3生效;

ospf 1 router-id 2.2.2.2

area 0.0.0.1 //进入产生3类lsa的区域;

abr-summary 1.1.1.0 255.255.255.0 //进行路由汇总,汇总的结果为1.1.1.0/24

可选参数:not-advertise(汇总不通告),将汇总后的路由进行抑制,起到过滤路由的效果;

2、针对引入路由,在ASBR上实现

ospf 1 router-id 3.3.3.3

asbr-summary 4.4.4.0 255.255.255.0 //进程下进行汇总,如果存在nssa区域,则可以选择在ASBR或者是NSSA区域中进行7转5的ABR上做

静默接口

作用:使接口不发送hello报文,但不影响该接口的网段通告出去;

应用:用于连接终端设备的接口;

配置

ospf 1 router-id 1.1.1.1

silent-interface GigabitEthernet0/0/1

影响ospf邻接关系建立因素

1、版本需要一致;

2、router id不能一致;

3、区域id要一致;

4、如果配置了认证,认证需要通过;

5、掩码要求一致(p2p网络不检查该项)

6、hello/超市时间一致;

7、option中的E以及N位要一致(区域类型要一致)

8、接口不能被静默

9、MTU要一致;

10、网络类型:广播型与p2p网络可以建立full的邻接关系,但是路由计算会出问题(用的lsa不一样,无法正常计算SPF树);

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

了解 3DS MAX 3D摄像机跟踪设置:第 4 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合成。 将“宽度”和“高度”值分别设置为 1280 和 720。将帧速率设置为 25&#xff0c;将持续时间设置为 12 秒。单…

前端开发中的常见优化

目录 外观 兼容 不同尺寸&#xff08;包裹&#xff0c;height:100%&#xff09; 不同 浏览器 隐藏滚动条 的 不同属性名 重排->重绘 不显示 display:none->禁用disable 性能 导航重复&#xff08;修改原型push、replace方法&#xff09; 搜索防抖 import { debo…

LLM - Chinese-Llama-2-7b 初体验

目录 一.引言 二.模型下载 三.快速测试 四.训练数据 五.总结 一.引言 自打 LLama-2 发布后就一直在等大佬们发布 LLama-2 的适配中文版&#xff0c;也是这几天蹲到了一版由 LinkSoul 发布的 Chinese-Llama-2-7b&#xff0c;其共发布了一个常规版本和一个 4-bit 的量化版本…

Animator Animator Controller Avatar relationship

Animator 组件用于将动画分配给场景中的游戏对象。Animator 需要对Animator Controller 的引用&#xff0c;该控制器定义要使用的动画剪辑&#xff0c;并控制何时以及如何在它们之间混合和过渡。 如果 GameObject 是具有 Avatar 定义的人形角色&#xff0c;则 Avatar 也应在此组…

FlatBuffers 使用编译器

1、前言 可能刚接触的人会思考为啥要使用编译器&#xff1a; 一般跨平台、跨语言的都有一套固定的流程&#xff0c;大致可分为&#xff1a; 撰写IDL文件 -> 使用对应语言的编译器&#xff0c;编译成对应的语言 -> 序列化 ->持久化 -> 反序列化 这里就对应着这个…

[ELK安装篇]:基于Docker虚拟容器化(主要LogStash)

文章目录 一&#xff1a;前置准备-(参考之前博客)&#xff1a;1.1&#xff1a;准备Elasticsearch和Kibana环境&#xff1a;1.1.1&#xff1a;地址&#xff1a;https://blog.csdn.net/Abraxs/article/details/128517777 二&#xff1a;Docker安装LogStash(数据收集引擎&#xff…

Flutter系列(2):解决Flutter打包成APP无法访问网络资源

将flutter项目打包成Android后&#xff0c;发现无法访问网络图片&#xff0c;权限不足&#xff0c;没有授权网络权限&#xff0c;解决办法如下&#xff1a; 在android/app/src/main/AndroidManifest.xml中添加如下代码即可 <uses-permission android:name"android.perm…

3、基于Zookeeper实现分布式锁

目录 3.1、Zookeeper安装和相关概念3.1.1 安装启动3.1.2 相关概念3.1.3 Java客户端 3.2 Zookeeper实现分布式锁的思路分析3.3 ZooKeeper分布式锁的基本实现 3.1、Zookeeper安装和相关概念 3.1.1 安装启动 # 解压到/mysoft文件夹下 tar -zxvf zookeeper-3.7.0-bin.tar.gz # 重…

剑指offer61.扑克牌中的顺子

我的想法非常简单&#xff0c;就是先给数组排序&#xff0c;然后统计里面有几个0&#xff0c;然后遍历数组&#xff0c;如果是0或者比后面一个数小1就直接进入下一次循环&#xff0c;如果比后面一个数小2&#xff0c;就用掉一个0&#xff0c;0的数量减1&#xff0c;如果比后面的…

MySQL基础(二)SQL语句

目录 前言 一、SQL语句类型 二、数据库操作 查看 创建 进入 删除 更改 三、数据表操作 &#xff08;一&#xff09;、数据类型 1.数值类型 2.时间\日期类型 3.字符串类型 4.二进制类型 &#xff08;二&#xff09;、查看 1.查看表内的数据 2.查看表格的属性 &…

【Java基础教程】(四十六)IO篇 · 下:System类对IO的支持:错误输出、信息输出、系统输入,字符缓冲流、扫描流和对象序列化流~

Java基础教程之IO操作 下 &#x1f539;本节学习目标1️⃣ System类对 IO 的支持1.1 错误输出&#xff1a;System.err1.2 信息输出&#xff1a;System.out1.3 系统输入&#xff1a;System. in 2️⃣ 字符缓冲流&#xff1a;BufferedReader3️⃣ 扫描流&#xff1a;Scanner4️⃣…

Python - Opencv应用实例之树叶自动分割、标签及统计分析系统

Python - Opencv应用实例之树叶自动分割、标签及统计分析系统 本文通过Python+opencv 实现这样的需求:输出位置和角度(x, y, r),并标记出轮廓基于传统图像处理算法实现,算法原理:输入图像 -> 灰度化 -> 二值化 -> 形态学处理 -> 轮廓提取 -> 树叶中心定位 -…

matlab二维图形的绘制(1)

概述 matlab数学计算中有时候需要将函数通过图形更加直观的展示给用户的时候就需要使用到二维绘图。绘图常常采用的绘图命令便是 plot &#xff0c;再添加一些辅助命令使得图形更加的形象直观。 二维绘图中也包括针状图&#xff0c;阶梯图&#xff0c;散点图&#xff0c;条形图…

解决行业反复“造轮子”现象,全新地平线RDK系列机器人开发者套件上线

7月25日&#xff0c;“地平线2023机器人开发者创享日”在深圳举办&#xff0c;地平线RDK系列机器人开发者套件正式上线&#xff0c;机器人操作系统TogetheROS.Bot™2.0版发布&#xff0c;应用中心NodeHub首发亮相&#xff0c;地平线开发者社区改版上线。 地平线2023机器人开发者…

文件读写流函数

文件 文件读写 链接 std::ifstream---std::ofstream 头文件--#include <fstream> 执行都是类&#xff0c;用这些类操作文件都要建立对象流。 1&#xff0c;建立对象流 流对象的建立有两种方式&#xff1a; &#xff08;1&#xff09;使用fstream类可以不指定文件和…

python+unittest+requests+HTMLRunner搭建接口测试框架,执行用例请求多个不同请求方式的接口

问题描述&#xff1a; 搭建接口测试框架&#xff0c;执行用例请求多个不同请求方式的接口 实现步骤&#xff1a; ① 创建配置文件config.ini&#xff0c;写入部分公用参数&#xff0c;如接口的基本url、测试报告文件路径、测试数据文件路径等配置项 1 [DATABASE] 2 data_add…

深入解析 Kubernetes 架构:掌握主节点、工作节点和容器运行时

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

级联下拉单选框的实现

需求背景 选择某个城市&#xff0c;所在区县与所选城市要一一对应。 开发思路 因为单选框使用的是公共组件&#xff0c;获取的val是“深圳市”&#xff0c;而不是索引&#xff0c;那么可以 先判断出选择的城市的索引值&#xff1b;由此所在区县的下拉框的数据直接由所获的索…

android studio JNI开发

一、JNI的作用&#xff1a; 1.使Java与本地其他类型语言&#xff08;C、C&#xff09;交互&#xff1b; 2.在Java代码调用C、C等语言的代码 或者 C、C调用Java代码。 由于JAVA具有跨平台的特点&#xff0c;所以JAVA与本地代码的交互能力弱&#xff0c;采用JNI特性可以增强JA…

HMM与CRF模型的使用过程有哪些差异?

在NLP领域, HMM用来解决文本序列标注问题. 如分词, 词性标注, 命名实体识别都可以看作是序列标注问题。同HMM一样, CRF一般也以文本序列数据为输入, 以该序列对应的隐含序列为输出。 HMM模型 HMM模型表示为: lambda HMM(A, B, pi), 其中A, B, pi都是模型的参数, 分别称作: 转…