华为数通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/45302.html

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

相关文章

什么是Redis?

什么是Redis 什么是Redis一、特性1. 支持多种数据结构2. 读/写速度快&#xff0c;性能高。3. 支持持久化。4. 实现高可用主从复制&#xff0c;主节点做数据副本。5. 实现分布式集群和高可用。 二、基本数据类型string&#xff08;字符串&#xff09;list(双向链表)set(集合)zse…

PostgreSQL数据库动态共享内存管理器——Dynamic shared memory areas

dsm.c提供的功能允许创建后端进程间共享的共享内存段。DSA利用多个DSM段提供共享内存heap&#xff1b;DSA可以利用已经存在的共享内存&#xff08;DSM段&#xff09;也可以创建额外的DSM段。和系统heap使用指针不同的是&#xff0c;DSA提供伪指针&#xff0c;可以转换为backend…

Java的第十三篇文章——JAVA多线程

目录 学习目标 1. 线程的基本概念 1.1 进程 1.2 线程 2. Java实现线程程序 2.1 java.lang.Thread类 2.2 线程的内存图 2.3 Thread类的方法 3. Java实现线程程序 3.1 java.lang.Runnable接口 3.2 实现接口的好处 4. 线程安全 4.1 售票例子 4.2 同步代码块 4.3 同…

为什么视频画质会变差,如何提升视频画质清晰度。

在数字时代&#xff0c;视频已经成为我们生活中不可或缺的一部分。然而&#xff0c;随着视频的传输和处理过程中的多次压缩&#xff0c;画质损失逐渐凸显&#xff0c;影响了我们对影像的真实感受。为了让视频画质更加清晰、逼真&#xff0c;我们需要采取一些措施来保护和修复视…

物联网网关模块可以带几台plc设备吗?可以接几个modbus设备?

随着物联网技术的快速发展&#xff0c;物联网网关模块已经成为了实现物联网应用的重要工具。很多客户在选择物联网网关模块时想了解物联网网关模块的设备接入能力&#xff0c;一个物联网网关模块可以带几台PLC设备&#xff1f;可以接几个Modbus设备&#xff1f; 物联网网关模块…

基于Jquery EasyUI JSZip FileSaver的简单使用

一、前言 在前端的项目开发中 &#xff0c;下载文件压缩包是很重要的一个环节&#xff0c;那么怎么下载多个文件并压缩成ZIP下载呢&#xff1f; 二、使用步骤 1、引用库 <script type"text/javascript" src"~/Scripts/comm/jszip.min.js" ></…

【设计模式——学习笔记】23种设计模式——适配器模式Adapter(原理讲解+应用场景介绍+案例介绍+Java代码实现)

介绍 生活中的案例 不同国家的插座不同&#xff0c;出国旅游充电器不能直接使用&#xff0c;可以通过使用多功能转换插头来辅助使用 基础介绍 适配器模式将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;主的目的是兼容性&#xff0c;让原本因接口不匹配不能一起…

JVM理论(六)执行引擎--垃圾回收

概述 垃圾: 指的是在运行程序中没有任何指针指向的对象垃圾回收目的: 为了及时清理空间使得程序可以正常运行垃圾回收机制: JVM采取的是自动内存管理,即JVM负责对象的创建以及回收,将程序员从繁重的内存管理释放出来,更加专注业务的开发垃圾回收区域: 频繁收集Young区(新生代)…

【面试】 redis击穿现象?如何防止击穿?

文章目录 背景击穿案例解决方案:通过synchronized双重检查机制&#xff1a;某个key只让一个线程查询&#xff0c;阻塞其它线程设置value永不过期&#xff08;设置热点数据永不过期&#xff09;使用互斥锁(mutex key) 背景 大家都知道,计算机的瓶颈之一就是IO,为了解决内存与磁…

【深度学习】yolov 图片训练的时候的遇到的warning: corrupt JPEG restored and saved

报错原因 是图片在dataset.py 走验证时报的错误。 if im.format.lower() in (jpg, jpeg):with open(im_file, rb) as f:f.seek(-2, 2)if f.read() ! b\xff\xd9: # corrupt JPEGImageOps.exif_transpose(Image.open(im_file)).save(im_file, JPEG, subsampling0, quality100)m…

数据结构——顺序表

即使你内心没有一尊明月&#xff0c;也要给自己留下一方皎洁 文章目录 什么是顺序表 顺序表的实现 顺序表内部基础设置 结构体数据类型重定义 顺序表结构定义 顺序表空间初始化及扩容设置 顺序表空间的初始化及销毁 顺序表的扩容 顺序表基本功能 尾插尾删 头插头删…

css设置八等分圆

现需要上图样式的布局&#xff0c;我通过两张向右方的图片&#xff0c;通过定位和旋转完成了布局。 问题&#xff1a; 由于是通过旋转获取到的样式&#xff0c;实际的盒子是一个长方形&#xff0c;当鼠标移入对应的箭头时选中的可能是其他盒子&#xff0c;如第一张设计稿可以看…

10.函数

10.1为什么需要函数 ●函数: function&#xff0c;是被设计为 执行特定任务的代码块 ●作用&#xff1a; 精简代码方便复用&#xff08;实现代码复用&#xff0c;提高开发效率&#xff09; 比如我们前面使用的alert()、prompt() 和console.log()都是一些js函数&#xff0c;只不…

编译/反编译

1.Android APK 1.软件 1.apktool 1.作用&#xff1a;反编译apk或重新打包apk 2.dex2jar 1.作用&#xff1a;将Android的可执行文件.dex转换为.jar 3.jd-gui 1.作用&#xff1a;方便阅读jar文件的代码工具 2.步骤 1.通过apktool将apk软件反编译2.使用dex2jar将classes.dex文件转…

(十五) InfluxDB服务进程参数(influxd命令的用法)

以下内容来自 尚硅谷&#xff0c;写这一系列的文章&#xff0c;主要是为了方便后续自己的查看&#xff0c;不用带着个PDF找来找去的&#xff0c;太麻烦&#xff01; 第 15 章 InfluxDB服务进程参数&#xff08;influxd命令的用法&#xff09; 15.1 influxd命令罗列 1、我们的…

Django 图书管理系统

一、功能及页面设计 二、页面展示 (1)首页 (2)注册 (3)登录 (4)普通用户登录 4.1查看图书页面 4.2查看图书详情页 4.3修改密码 (5)管理员登录 5.1添加图书 5.2添加图片 三、代码展示 因为代码太多不好一个个展示 所以需要源码的小伙伴可以找我要代码 感谢三连支持&#xff0…

【C++】多态原理剖析,Visual Studio开发人员工具使用查看类结构cl /d1 reportSingleClassLayout

author&#xff1a;&Carlton tag&#xff1a;C topic&#xff1a;【C】多态原理剖析&#xff0c;Visual Studio开发人员工具使用查看类结构cl /d1 reportSingleClassLayout website:黑马程序员C tool&#xff1a;Visual Studio 2019 date&#xff1a;2023年7月24日 目…

最快桌面UI:Siticone Desktop UI 2.1.1 cRACK

富图尔主义控制 80 多个 .NET UI 组件和控件 现代未来 UI/UX 组件 为 Visual Studio 开发做好准备 无限的免费产品支持案例 超轻量和快速性能 广泛可定制和主题化 低资源消耗和占地面积 免版税开发和部署 NET 的最佳 UI 和 UX 库 从最好的图书馆探索无缝流畅的体验 使…

二、SQL-5.DQL-9.执行顺序

一、案例&#xff1a; 查询年龄大于15的员工的姓名、年龄&#xff0c;并根据年龄进行升序排序 select name, age from emp where age > 15 order by age asc; 先执行①from&#xff08;定义emp的别名为e&#xff09;&#xff0c;再执行②where&#xff08;调用别名e&…

SpringBoot集成Druid实现数据库连接池

一、引入依赖 完整的pom文件如下所示: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http…