当前位置: 首页 > news >正文

HCIP-5.4OSPF路由聚合、缺省路由

1、路由聚合

OSPF 是一种链路状态路由协议,因此 OSPF路由器不传输路由,而是传输链路状态信息。因此,OSPF 路由通过汇总 LSA 来控制链路状态信息的传输,从而减小 LSDB 数据库的大小,进而控制路由的汇总。

由于OSPF路由分为区域内路由、区域间路由和外部路由(即引入OSPF进程的路由),所以区域内路由不需要汇总。

路由聚合是指ABR可以将具有相同前缀的路由信息聚合到一起,只发布一条路由到其它区域。

区域间通过路由聚合,可以减少路由信息,从而减小路由表的规模,提高设备的性能。

OSPF有两种路由聚合方式:
1、ABR聚合
ABR向其它区域发送路由信息时,以网段为单位生成Type3 LSA。如果该区域中存在一些连续的网段,则可以通过命令将这些连续的网段聚合成一个网段。这样ABR只发送一条聚合后的LSA,所有属于命令指定的聚合网段范围的LSA将不会再被单独发送出去。

![在这里插入图片描述](https://img-blog.csdnimg.cn/a928057704aa4e1c90586a980eb4fbd6.png#pic_center =600x200
2、ASBR聚合
配置路由聚合后,如果本地设备是自治系统边界路由器ASBR,将对引入的聚合地址范围内的Type5 LSA进行聚合。当配置了NSSA区域时,还要对引入的聚合地址范围内的Type7 LSA进行聚合。
在这里插入图片描述

如果本地设备既是ASBR又是ABR,则对由Type7 LSA转化成的Type5 LSA进行聚合处理。

对于NSSA区域,当该区域的ABR将Type-7LSA转换为Type-5LSA时,该ABR也可以充当ASBR的角色,并对Type-5LSA进行聚合。

1.1、路由聚合算法:

案例1:

IP地址二进制
172.18.129.0/24129:10000001
172.18.130.0/24130:10000010
172.18.132.0/24132:10000100
172.18.133.0/24133:10000101
前5位10000 后3位不同

相同的前缀有21位,保留相同位数,将相同比特后面的数(到末尾)填充为0将不相同的3个001比特填充为0,得到10000000,根据8\4\2\1法计算出,十进制为128。

结果:路由汇聚的Ip地址就是172.18.128.0,172.18.128.0/21。掩码=8+8+5,前21位比特为1不能变,变化为后11位。

不变的10000:128+64+32+16+8=128+80+40=248掩码为255.255.248.0。

案例2:

IP地址二进制
202.113.79.128/27128:1000 0000
202.113.79.160/27160:1010 0000
202.113.79.192/27192:1100 0000
202.113.79.224/27133:1110 0000

相同的前缀有25位,保留相同位数,将不相同比特后面的数(到末尾)填充为0。

将不相同的比特填充为0,得到10000000,根据8\4\2\1法计算出,十进制为128。

结果:路由汇聚的Ip地址就是202.113.79.128。202.113.79.128/25。掩码=8+8+8+1,前25位比特为1不能变,变化为后7位。
可用地址数为2^7-2=126。

案例3:

IP地址相同位不同位
172.16.12.0/2410101100 00010000 00001100 00000000
172.16.13.0/2410101100 00010000 00001101 00000000
172.16.14.0/2410101100 00010000 00001110 00000000
172.16.15.0/2410101100 00010000 00001111 00000000
聚合路由172.16.120/22 22=8+8+6

1.2、案例:

在这里插入图片描述
交换机配置:

vlan batch 2 3 4 5
int Vlanif 2
ip add 172.16.1.100 24
int vlanif 3
ip add 172.16.2.100 24
int vlanif 4
ip add 172.16.3.100 24
int vlanif 5
ip add 172.16.4.1 24int g0/0/1
port link-type access 
port default vlan 2
int g0/0/2
port link-type access 
port default vlan 3
int g0/0/3
port link-type access 
port default vlan 4
int g0/0/4
port link-type access 
port default vlan 5

OSPF配置:

R1
ospf router-id 172.16.6.6
area 1
network 172.16.1.0 0.0.0.255
network 172.16.2.0 0.0.0.255
network 172.16.3.0 0.0.0.255
network 172.16.4.0 0.0.0.255
network 172.16.6.6 0.0.0.0R2
ospf router-id 10.0.2.2
area 0
network 10.0.12.0 0.0.0.255
area 2
network 10.0.24.0 0.0.0.255
network 10.0.2.2 0.0.0.0R3
ospf router-id 10.0.3.3
area 0
network 10.0.13.0 0.0.0.255
area 2
network 10.0.3.3 0.0.0.0
network 10.0.34.0 0.0.0.255
R4
ospf router-id 10.0.4.4
area 2
network 10.0.4.4 0.0.0.0
network 10.0.24.0 0.0.0.255
network 10.0.46.0 0.0.0.255
network 10.0.34.0 0.0.0.255
network 10.0.45.0 0.0.0.255

配置area2为NSSA区域

[R2]ospf 1
[R2-ospf-1]area 2
[R2-ospf-1-area-0.0.0.2]nssa
[R3]ospf 1
[R3-ospf-1]area 2
[R3-ospf-1-area-0.0.0.2]nssa 
[R4]ospf 1
[R4-ospf-1]area 2
[R4-ospf-1-area-0.0.0.2]nssa

配置去往外部网络的静态路由,并进行引入。

R4
ip route-static 10.100.5.1 32 10.0.46.6
ip route-static 10.100.5.2 32 10.0.46.6
ip route-static 10.100.5.3 32 10.0.46.6
ospf 
import-route static

在这里插入图片描述
查看DR和BDR及邻接关系

<R1>dis ospf peerOSPF Process 1 with Router ID 10.0.1.1Neighbors Area 0.0.0.0 interface 10.0.12.1(GigabitEthernet0/0/1)'s neighborsRouter ID: 10.0.2.2         Address: 10.0.12.2       State: Full  Mode:Nbr is  Master  Priority: 1DR: 10.0.12.1  BDR: 10.0.12.2  MTU: 0    Dead timer due in 40  sec Retrans timer interval: 5 Neighbor is up for 00:36:52     Authentication Sequence: [ 0 ]

查看R1上路由表

<R1>dis ip rou
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface10.0.12.0/24  Direct  0    0           D   10.0.12.1       G0/0/110.0.12.1/32  Direct  0    0           D   127.0.0.1       G0/0/110.0.13.0/24  Direct  0    0           D   10.0.13.1       G0/0/210.0.13.1/32  Direct  0    0           D   127.0.0.1       G0/0/210.0.24.0/24  OSPF    10   2           D   10.0.12.2       G0/0/110.0.34.0/24  OSPF    10   2           D   10.0.13.3       G0/0/210.0.46.0/24  OSPF    10   3           D   10.0.13.3       G0/0/210.100.5.1/32  O_ASE   150  1           D   10.0.13.3       G0/0/210.100.5.2/32  O_ASE   150  1           D   10.0.13.3       G0/0/210.100.5.3/32  O_ASE   150  1           D   10.0.13.3       G0/0/2172.16.1.0/24  OSPF    10   2           D   172.16.4.1      G0/0/0172.16.2.0/24  OSPF    10   2           D   172.16.4.1      G0/0/0172.16.3.0/24  OSPF    10   2           D   172.16.4.1      G0/0/0172.16.4.0/24  Direct  0    0           D   172.16.4.2      G0/0/0172.16.4.2/32  Direct  0    0           D   127.0.0.1       G0/0/0

查看LSA

<R2>dis ospf lsdb
Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
一类LSARouter    10.0.3.3        10.0.3.3          1742  36    80000006       1Router    10.0.2.2        10.0.2.2          1793  36    80000006       1Router    10.0.1.1        10.0.1.1           437  48    8000000D       1
二类LSANetwork   10.0.13.1       10.0.1.1           437  32    80000004       0Network   10.0.12.1       10.0.1.1           522  32    80000004       0
三类LSASum-Net   10.0.34.0       10.0.3.3          1742  28    80000003       1Sum-Net   10.0.24.0       10.0.2.2          1793  28    80000003       1Sum-Net   10.0.24.0       10.0.3.3          1704  28    80000002       2Sum-Net   172.16.3.0      10.0.1.1           229  28    80000004       2Sum-Net   172.16.2.0      10.0.1.1          1380  28    80000001       2Sum-Net   172.16.1.0      10.0.1.1          1712  28    80000005       2Sum-Net   172.16.4.0      10.0.1.1           646  28    80000003       1Sum-Net   10.0.46.0       10.0.3.3          1001  28    80000001       2AS External DatabaseType      LinkState ID    AdvRouter          Age  Len   Sequence   MetricExternal  10.100.5.1      10.0.3.3           296  36    80000001       1External  10.100.5.3      10.0.3.3           295  36    80000001       1External  10.100.5.2      10.0.3.3           299  36    80000001       1

案例中ABR聚合
只有在ABR上才能经行区域间路由聚合。
R1上使用abr-summary配置区域间路由聚合
172.16.1.0 00000001
172.16.2.0 00000010
172.16.3.0 00000011
172.16.0.0/22
配置:

ospf
area 1
abr-summary 172.16.0.0 255.255.252.0

R2查看路由表:

<R2>dis ip rou
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface172.16.0.0/22  OSPF    10   3           D   10.0.12.1       G0/0/1172.16.4.0/24  OSPF    10   2           D   10.0.12.1       G0/0/1

案例中ASBR聚合
配置外部路由聚合

[R4]ospf 1
[R4-ospf-1]a 2
[R4-ospf-1-area-0.0.0.2]asbr-summary 10.100.5.0 255.255.255.252

查看R2数据库表:

<R2>dis ospf lsdbOSPF Process 1 with Router ID 10.0.2.2Link State Database Area: 0.0.0.2Type      LinkState ID    AdvRouter          Age  Len   Sequence   MetricRouter    10.0.2.2        10.0.2.2           368  36    80000005       1Sum-Net   10.0.34.0       10.0.2.2            13  28    80000004       3Sum-Net   10.0.13.0       10.0.2.2            67  28    80000004       2Sum-Net   10.0.12.0       10.0.2.2            67  28    80000004       1Sum-Net   172.16.0.0      10.0.2.2           473  28    80000001       3Sum-Net   172.16.4.0      10.0.2.2            67  28    80000004       2Sum-Net   10.0.46.0       10.0.2.2          1074  28    80000002       4NSSA      0.0.0.0         10.0.2.2            67  36    80000004       1AS External DatabaseType      LinkState ID    AdvRouter          Age  Len   Sequence   MetricExternal  10.100.5.0      10.0.3.3            45  36    80000001       2

R2的LSDB中没有明细Type-5LSA和Type-7LSA,只有聚合后的Type-5LSA和Type-7LSA,R2的路由表中没有外部网络的明细路由,只有聚合后的路由。

在NSSA区域的ABR上配置外部路由聚合

由于区域2 是NSSA区域,该区域的ABR路由器会将Type-7LSA转换为Type-5LSA,并泛洪到区域0。

先删除R4上的路由聚合配置,然后再区域2的ABR路由器R2上配置外部路由聚合。

[R4-ospf-1]undo asbr-summary 10.100.5.0 255.255.255.252
[R2-ospf-1]asbr-summary 10.100.5.0 255.255.255.252
[R3-ospf-1]asbr-summary 10.100.5.0 255.255.255.252

注意:
R2和R3都ABR,这时是选取Router-ID较大的路由器作为ABR路由器,R3的上聚合才能生效,但是人我们还是会在R2配置asbr-summary,是作为备份使用,一旦R3路由发生中断事故,R2将作为ABR。

1.3、OSPF 缺省路由

通常企业网与ISP(互联网服务提供商)相连访问外部网络。通常情况下企业网络设备与ISP设备之间不会运行某种动态交换路由信息。企业无需知道和维护外部网络,而是通过缺省路由的方式来实现对外网的访问,这样可以精简路由表规模,同时当外部网络发生故障时,企业内部网络也不会受到影响,从而增强企业网络的安全性。

缺省路由是指目的地址和掩码都是0的路由。当设备无精确匹配的路由时,就可以通过缺省路由进行报文转发。由于OSPF路由的分级管理,Type3缺省路由的优先级高于Type5或Type7路由。

Type3缺省路由> Type5缺省路由or Type7缺省路由。

OSPF动态注入缺省路由通常应用于下面两种情况:

发布者描述
区域边界路由器(ABR)发布Type3缺省Summary LSA,用来指导区域内设备进行区域之间报文的转发。
自治系统边界路由器(ASBR)发布Type5外部缺省ASE LSA,或者Type7外部缺省NSSA LSA,用来指导自治系统(AS)内设备进行自治系统外报文的转发。

OSPF缺省路由的发布原则如下:

  • OSPF路由器只有具有对区域外的出口时,才能够发布缺省路由LSA。
  • 如果OSPF路由器已经发布了缺省路由LSA,那么不再学习其它路由器发布的相同类型缺省路由。即路由计算时不再计算其它路由器发布的相同类型的缺省路由 LSA,但数据库中存有对应LSA。
  • 外部缺省路由的发布如果要依赖于其它路由,那么被依赖的路由不能是本OSPF路由域内的路由,即不是本进程OSPF学习到的路由。因为外部缺省路由的作用是用于指导报文的域外转发,而本OSPF路由域的路由的下一跳都指向了域内,不能满足指导报文域外转发的要求。

在这里插入图片描述

1.3.1、向普通区域注入缺省路由

[R4]ip route-static 0.0.0.0 0.0.0.0 202.103.68.1
[R4]ospf 100
[R4-ospf-100]import-route static

LSDB没有出现0.0.0.0的LSA,表示OSPF网络规定不允许通过import-router static命令注入缺省路由。

在ASBR已经有缺省路由,执行default-route-advertise命令,将在整个OSPF区域中通告缺省路由0.0.0.0。

在R4上使用default-route-advertise命令注入一条缺省路由。

命令用来将缺省路由通告到普通OSPF区域。
[R4-ospf-100]default-route-advertise

查看LSA
[R4]dis ospf lsdb
在这里插入图片描述
这里可以看到LSDB引入了0.0.0.0的Type-5 LSA的缺省路由,因为Type-5的泛洪范围是整个OSPF网络,说明default-route-advertise命令注入缺省路由的方法已经生效了。

但是,在实际场景中,R4 与R5之间的链路出现故障,就会导致R4的静态缺省路由失效,那么R4路由表就会失去这条缺省路由,进而导致default-route-advertise发布的缺省路由也随之失效.当恢复之后,静态缺省路由又会出现在路由表中,而表示这条缺省路由大的Type-5 LSA又会再次被发布到OSPF中,这样链路不稳定,会造成缺省路由和路由表的不稳定。

为了避免链路不稳定带来的影响,提高网络的可靠性,我们希望R4上是否已经存在缺省路由,R4都能够向整个OPF网络注入缺省路由。

[R4]ospf 100
[R4-ospf-100]default-route-advertise always    //总是将缺省路由通告到普通OSPF区域。

OSPF可以配置多种下发方式:

  • 在ABR上下发
  • 在ASBR上下发
  • 强制下发
  • 非强制下发

OSPF下属非自动强制路由:

区域类型配置命令产生者LSA类型范围有没有缺省路由
普通default-route-advertiseASBR5路由域
普通default-route-advertise alwaysASBR5路由域

缺省情况下,在普通OSPF区域内的OSPF设备不产生缺省路由。

import-route (OSPF)命令不能引入外部路由的缺省路由。当需要引入其他协议产生的缺省路由时,必须在ASBR上配置default-route-advertise命令,发布缺省路由到整个普通OSPF区域。

ASBR已经有缺省路由,执行default-route-advertise命令,将在整个OSPF区域中通告缺省路由0.0.0.0。

配置always参数,无论ASBR是否有缺省路由都将在整个OSPF区域中通告缺省路由0.0.0.0,并且不再计算来自其他设备的缺省路由。

1.3.2、Stub区域ABR动态生成发布Type3缺省Summary LSA。

Area 2区域 R2、R3为Stub区域。ABR动态生成发布Type3缺省Summary LSA。
查看LSA
[R3]dis ospf lsdb

Sum-Net   0.0.0.0       10.0.3.3          1742  28    80000003       1
Sum-Net   10.0.34.0       10.0.3.3          1793  28    80000003       1

Area 2区域配置成为Totally STUB区域

[R3]ospf 100
[R3-ospf-100]area 2
[R3-ospf-100-area-0.0.0.1]stub no-summary

查看LSA
[R3]dis ospf lsdb

Sum-Net   0.0.0.0       10.0.3.3          53  28    80000024       1

其它三类LSA不存在,只剩一条Type3缺省Summary LSA。

区域类型配置命令产生者LSA类型范围有没有缺省路由
STUB自动产生ABR3STUB域
Totally STUB自动产生ABR3STUB域

1.3.3、NSSA区域或Totally-NSSA区域生成缺省路由。

配置NSSA区域或Totally NSSA区域时,该区域会自动向该区域注入表示缺省路由的Type-7LSA。

[R1]ospf 100
[R1-ospf-100]area 1
[R1-ospf-100-area-0.0.0.2]nssa
[R3]ospf 100
[R3-ospf-100]area 1	
[R3-ospf-100-area-0.0.0.2]nssa

[R3]dis ospf lsdb

 NSSA      0.0.0.0         10.0.3.3            67  36    80000004       1

配置区域2为Totally NSSA区域

[R3-ospf-100-area-0.0.0.2]nssa no-summary

结果是和上面Nssa是一样的。

1、Totally NSSA区域
Totally NSSA区域不允许携带区域间路由,ABR会自动生成一条第3类的缺省路由在完全NSSA区域内传播。

2、NSSA区域内两种缺省路由:

  • ABR产生的第三类缺省路由;
  • ASBR产生的第七类缺省路由。

1)、NSSA区域七类缺省路由:如果想让外部路由只通过本区域的NSSA ASBR到达,可以在ASBR上配置产生一条Type 7类的缺省路由0.0.0.0,该缺省路由的传播区域是整个NSSA区域内部。

  • 外部路由只通过NSSA ASBR到达NSSA区域内部。
[R3]ospf 100
[R3-ospf-100]area 1	
[R3-ospf-100-area-0.0.0.2]nssa
[R3-ospf-100-area-0.0.0.2]nssa default-route-advertise //在ASBR上配置产生缺省的Type7 LSA到NSSA区域

nssa default-route-advertise(ASBR)
注意:需要在本路由器上已存在一条其他路由协议产生或静态配置的缺省路由时,才会发布Type 7类缺省路由

  • 非自治系统的外部路由,NSSA ASBR的其它外部路由通过ABR传入其它区域。NSSA ABR上配置产生Type 7类的缺省路由0.0.0.0通告给整个NSSA区域内的路由器。

nssa default-route-advertise(ABR)
不论是否存在其他路由协议产生或静态配置的缺省路由,都会发布Type 7类的缺省路由。

2)、NSSA区域上ABR的缺省路由:
nssa no-summary(ABR)
自动产生第三类缺省路由。

在NSSA区域配置产生的是Type 7类或Type 3类缺省路由,传播的区域是整个NSSA区域。如果同时收到第三类缺省路由和Type 7类缺省路由,将会优选Type 3类缺省路由加入路由表。

区域类型配置命令产生者LSA类型范围有没有缺省路由
NSSAnssa default-route-advertiseASBR7NSSA域
NSSAnssa default-route-advertiseABR7NSSA域
Totally-NSSA自动产生ABR3NSSA域

3)、NSSA区域缺省路由配置错误可能产生的路由环路。
在这里插入图片描述
在NSSA区域的ABR在发布第三类缺省路由的同时也会学习其它ASBR发布的第七类缺省路由,配置时如果不注意将会在NSSA区域产生路由环路。

如上图,在ABR上配置NSSA区域为完全NSSA区域,因此ABR会自动在NSSA区域内发布Type 3类缺省路由;在ASBR上配置一条静态路由指向外部,同时配置nssa default-route-advertise命令发布Type 7类缺省路由。

对于R2来说,它会同时收到R1发来的ABR发布的Type 3类缺省路由和R3ASBR发布的Type 7类缺省路由,Type 3类优先,因此它会选择Type 3类缺省路由加入它的路由表,R3的路由表中缺省路由0.0.0.0的下一跳指向ABR。

对于R1来说,由于ABR会接收ASBR发布的Type 7类缺省路由,所以它会把Type 7类的缺省路由加入自己的路由表中,R1ABR到R3ASBR的下一跳是R2,因此R1的路由表中缺省路由0.0.0.0的下一跳指向R2;

这样在R1和R2之间就存在一条由缺省路由0.0.0.0产生的环路,导致R1和R2到外部区域的数据均不能正确转发。

相关文章:

HCIP-5.4OSPF路由聚合、缺省路由

1、路由聚合 OSPF 是一种链路状态路由协议&#xff0c;因此 OSPF路由器不传输路由&#xff0c;而是传输链路状态信息。因此&#xff0c;OSPF 路由通过汇总 LSA 来控制链路状态信息的传输&#xff0c;从而减小 LSDB 数据库的大小&#xff0c;进而控制路由的汇总。 由于OSPF路由…...

【数据结构】——树与二叉树

文章目录树二叉树二叉树的性质完全二叉树二叉树的存储遍历二叉树和线索二叉树6.4 树和森林哈夫曼树应用树 树的定义&#xff1a;树是以分支关系定义的层次结构。 D; 树(Tree)是n(n≥0)个结点的有限集。 R 数据关系 有且仅有一个特定的称为根(Root) 的结点 当n>1时&…...

等离子纳秒高压脉冲电源维修HVP-20 P

等离子纳秒高压脉冲电源维修HVP-20 P;HVP-10B;HVP-05;HVP-02等型号均可维修 HVP-20 P(N)用于气体放电与低温等离子体的高性能纳秒高压脉冲电源。 HVP-20P(N)采用专有的marx电路&#xff0c;实现高压脉冲电源参数的便捷可调&#xff0c;包括峰值电压0 – 20 KV &#xff08;-2…...

JavaScript内改变this指向

之前我们说的都是代码内 this 的默认指向今天我们要来说一下如何能改变 this 指向也就是说, 你指向哪我不管, 我让你指向哪, 你就得指向哪开局在函数的原型( Function.prototype ) 上有三个方法callapplybind既然是在函数的原型上, 那么只要是函数就可以调用这三个方法&#xf…...

Cobalt Strike---(2)

数据管理 Cobalt Strike 的团队服务器是行动期间Cobalt Strike 收集的所有信息的中间商。Cobalt Strike 解析来 自它的 Beacon payload 的输出&#xff0c;提取出目标、服务和凭据。 如果你想导出 Cobalt Strike 的数据&#xff0c;通过 Reporting → Export Data 。Cobalt Str…...

docker的命令使用和相关例子

Docker是一种流行的容器化平台&#xff0c;可以帮助开发人员更轻松地构建、发布和管理应用程序。下面是一些Docker的命令使用和相关例子&#xff1a; Docker镜像相关命令&#xff1a; 搜索Docker镜像&#xff1a; docker search 例子&#xff1a;docker search ubuntu 下载D…...

23模式--代理模式

本篇主要聊一些23中模型中的代理模式&#xff1a; 看一下百度百科的解释&#xff1a; 代理模式的定义&#xff1a;为其他对象提供一种代理以控制对这个对象的访问。在某些情况下&#xff0c;一个对象不适合或者不能直接引用另一个对象&#xff0c;而代理对象可以在客户端和目…...

【Linux】信号的产生、保存、捕捉处理 (四种信号产生、核心存储、用户态与内核态、信号集及其操作函数)

文章目录1、什么是信号&#xff1f;2、信号的产生2.1 通过键盘产生信号2.2 通过系统调用产生信号2.3 硬件异常产生的信号2.4 由软件条件产生的信号2.5 进程的核心转储3、信号的保存4、信号的捕捉4.1 用户态和内核态4.2 用户态到内核态的切换4.3 信号捕捉过程5、信号集操作函数以…...

redis经典五种数据类型及底层实现

目录一、Redis源代码的核心部分1.redis源码在哪里2.src源码包下面该如何看&#xff1f;二、我们平时说redis是字典数据库KV键值对到底是什么1.6大类型说明(粗分)2.6大类型说明3.上帝视角4.Redis定义了redisObject结构体4.1 C语言struct结构体语法简介4.2 字典、KV是什么4.3 red…...

三十而立却被裁,打工人要如何应对职场危机?

又到金三银四就业季&#xff0c;对于部分职场人来说&#xff0c;年龄成为了他们找工作的最大限制。 因为绝大部分企业招聘中层干部以下岗位的时候&#xff0c;都会要求年龄不超过35周岁&#xff0c;再加上每年千万毕业生涌入社会&#xff0c;竞争程度相当激烈&#xff0c;这就导…...

java面试-java基础

char 变量能不能存贮一个中文汉字&#xff1f;为什么&#xff1f; char 变量可以存贮一个汉字&#xff0c;因为 Java 中使用的默认编码是 Unicode &#xff0c;一个 char 类型占 2 个字节&#xff08;16 bit&#xff09;&#xff0c;一个汉字是2个字节&#xff0c;所以放一个中…...

Kafka 消息不丢失

Kafka 消息不丢失生产者丢失消费者丢失不丢失配置Kafka 保证消息不丢失&#xff1a;只对已提交的消息 (committed message) 做有限度的持久化保证 已提交的消息&#xff1a;当 n 个 Broker 成功接收到该消息并写入到日志文件后&#xff0c;就告诉生产者该消息已成功提交有限度…...

ASEMI高压MOS管10N65参数,10N65规格,10N65封装

编辑-Z ASEMI高压MOS管10N65参数&#xff1a; 型号&#xff1a;10N65 漏极-源极电压&#xff08;VDS&#xff09;&#xff1a;650V 栅源电压&#xff08;VGS&#xff09;&#xff1a;30V 漏极电流&#xff08;ID&#xff09;&#xff1a;10A 功耗&#xff08;PD&#xff…...

LeetCode-416. 分割等和子集

目录题目分析回溯法动态规划动态规划(压缩)题目来源 416. 分割等和子集 题目分析 这道题目是要找是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 那么只要找到集合里能够出现 sum / 2 的子集总和&#xff0c;就算是可以分割成两个相同元素和子集了…...

2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第2场省赛 2021.05.09】

一、试题A&#xff1a;求余&#xff08;本题总分&#xff1a;5 分&#xff09; 得&#xff1a;5分 本题总分&#xff1a;5 分 【问题描述】 在 C/C/Java/Python 等语言中&#xff0c;使用 % 表示求余&#xff0c;请问 2021%20 的值是多少&#xff1f; 【答案提交】 这是一道结果…...

elasticSearch写入原理

elasticSearch写入原理 最近学习完了es相关的课程整理除了es的核心内容&#xff0c;学习这东西知其然知其所以然&#xff0c;自己按照自己的理解整理了es相关的面试题。先热个身&#xff0c;整理一下es的写入原理&#xff0c;有不对的地方请大家指正。 这些原理的东西我觉得还是…...

第十四届蓝桥杯模拟赛(第三期)Python

1 进制转换 问题描述   请找到一个大于 2022 的最小数&#xff0c;这个数转换成十六进制之后&#xff0c;所有的数位&#xff08;不含前导 0&#xff09;都为字母&#xff08;A 到 F&#xff09;。   请将这个数的十进制形式作为答案提交。 答案&#xff1a;2730 def ch…...

Pytorch模型参数的保存和加载

目录 一、前言 二、参数保存 三、参数的加载 四、保存和加载整个模型 五、总结 一、前言 在模型训练完成后&#xff0c;我们需要保存模型参数值用于后续的测试过程。由于保存整个模型将耗费大量的存储&#xff0c;故推荐的做法是只保存参数&#xff0c;使用时只需在建好模…...

面试热点题:回溯算法之组合 组合与组合总和 III

什么是回溯算法&#xff1f; 回溯算法也可以叫回溯搜索算法&#xff0c;回溯是递归的"副产品",回溯的本质是穷举&#xff0c;然后选出我们需要的数据&#xff0c;回溯本身不是特别高效的算法&#xff0c;但我们可以通过"剪枝"来优化它。 理解回溯算法 回溯…...

java面试-jvm

JVM JVM 是 java 虚拟机&#xff0c;简单来说就是能执行标准 java 字节码的虚拟计算机 JVM 是如何工作的 首先程序在执行之前先要把 Java 代码&#xff08;.java&#xff09;转换成字节码&#xff08;.class&#xff09;&#xff0c;JVM 通过类加载器&#xff08;ClassLoade…...

vscode下载与使用

1.vscode下载 官网下载地址&#xff1a;Download Visual Studio Code - Mac, Linux, Windows下载太慢&#xff0c;推荐文章&#xff1a;解决VsCode下载慢问题_vscode下载太慢_迷小圈的博客-CSDN博客下载太慢&#xff0c;推荐下载链接&#xff1a;https://vscode.cdn.azure.cn/s…...

人员摔倒识别预警算法 opencv

人员摔倒识别预警算法通过opencv网络模型技术&#xff0c;人员摔倒识别预警算法能够智能检测现场画面中人员有没有摔倒&#xff0c;无需人为干预可以立刻抓拍告警。OpenCV的全称是Open Source Computer Vision Library&#xff0c;是一个跨平台的计算机视觉处理开源软件库&…...

华为OD机试题 - 火星文计算(JavaScript)| 机考必刷

更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:火星文计算题目输入输出示例一输入输出说明Code解题思路版权说明…...

AI人工智能 - 初探

1.应用场景 主要用于了解和系统学习AI&#xff0c;从而可以在工作生活中利用AI做一些事。 2.学习/操作 1.文档阅读 下面的内容来自于与chatGPT的对话 2.整理输出 介绍AI 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是计算机科学中的一个分支&…...

Spring-AOP工作流程

Spring-AOP工作流程 3&#xff0c;AOP工作流程 3.1 AOP工作流程 由于AOP是基于Spring容器管理的bean做的增强&#xff0c;所以整个工作过程需要从Spring加载bean说起: 流程1:Spring容器启动 容器启动就需要去加载bean,哪些类需要被加载呢?需要被增强的类&#xff0c;如:B…...

C51---串口发送指令,控制LED灯亮灭

1.Code: #include "reg52.h" #include "intrins.h" sfr AUXR 0x8E; sbit D5 P3^7; void UartInit(void) //9600bps11.0592MHz { //PCON & 0x7F; //波特率不倍速 AUXR 0x01; SCON 0x50; //8位数据,可变波…...

【Wiki】XWiki数据备份

XWiki为主题使用java开发的开源wiki&#xff0c;官网地址如下&#xff1a; https://www.xwiki.org/xwiki/bin/view/Main/ 目录1、 XWiki升级数据备份1.1、 获取XWiki配置的数据库与持久化目录信息1.2 备份数据库信息1.3 备份持久化目录2、XWiki数据迁移如果一个知识库不能确保数…...

ctk框架开发Qt插件应用示例工程

目录 前言 约定 插件工程pluginApp: 主启动工程StartApp: 效果演示 结语...

spring5源码篇(4)——beanFactoryPostProcessor执行/注解bean的装配

spring-framework 版本&#xff1a;v5.3.19 前面研究了beanDefinition的注册&#xff0c;但也仅仅是注册这一动作。那么在spring容器启动的过程中&#xff0c;是何时/如何装配的&#xff1f;以及装配的bean是如何注入的&#xff1f; &#xff08;考虑到xml方式基本不用了以及篇…...

masstransit的message几个高级用法

1&#xff09;问题&#xff0c;Class MessageA 基类&#xff0c;Class MessageB继承自MessageA&#xff1b; 用bus.Publish方法本想把有些消息只发给B队列&#xff0c;结果由于其继承关系A队列也获得了消息&#xff1b; 解决方法用send&#xff0c; Uri uri new Uri(RabbitM…...

漏洞分析丨cve-2012-0003

作者:黑蛋一、漏洞简介这次漏洞属于堆溢出漏洞&#xff0c;他是MIDI文件中存在的堆溢出漏洞。在IE6&#xff0c;IE7&#xff0c;IE8中都存在这个漏洞。而这个漏洞是Winmm.dll中产生的。二、漏洞环境虚拟机调试工具目标软件辅助工具XP-SP3、KaliOD、IDAIE6Windbg组件gflags.exe三…...

rm命令——删除文件或目录

rm命令是英文单词remove的缩写&#xff0c;主要功能是删除文件或目录。 因为删除文件是一个破坏性动作&#xff0c;因此&#xff0c;在使用时需要格外小心&#xff0c;在执行之前一定要再三确认删除的是哪个目录中的什么文件。 rm命令的语法格式如下&#xff1a; rm [选项] …...

【零基础入门学习Python---Python的基本语法使用】

一.Python基本语法使用 Python是一种易学且功能强大的编程语言,具有简洁的语法和广泛的应用领域。在本文中,我们将介绍Python的基本语法使用,以帮助初学者快速入门Python编程。 1.1 注释 Python 支持两种类型的注释:单行注释和多行注释。 单行注释:以 # 符号开头,从 # …...

数据仓库相关概念的解释

数据仓库相关概念的解释 文章目录数据仓库相关概念的解释1 ETL是什么&#xff1f;ETL体系结构2 数据流向何为数仓DW3 ODS 是什么&#xff1f;4 数据仓库层DWDWD 明细层DWD 轻度汇总层&#xff08;MID或DWB&#xff0c;data warehouse basis&#xff09;DWS 主题层&#xff08;D…...

1/4车、1/2车、整车悬架模糊PID控制仿真合集

目录 前言 1. 1/4悬架系统 1.1数学模型 1.2仿真分析 2. 1/2悬架系统 2.1数学模型 2.2仿真模型 2.3仿真分析 3. 整车悬架系统 3.1数学模型 3.2仿真分析 4.总结 前言 前面几篇文章介绍了LQR、SkyHook、H2/H∞、PID控制&#xff0c;接下来会继续介绍滑模、反步法、M…...

Linux性能补丁升级,避免不必要的跨核Wake-Up

导读一个由英特尔发起的、旨在改进Linux内核公平调度程序代码的补丁系列&#xff0c;也看到了来自AMD工程师和其他利益相关者的测试/反馈&#xff0c;并继续进行改进。这个补丁系列的重点是避免在不必要的情况下发生过多的跨核唤醒(Cross-CPU Wake-up)。这样一来&#xff0c;这…...

Spring Cloud Alibaba全家桶(六)——微服务组件Sentinel介绍与使用

前言 本文小新为大家带来 微服务组件Sentinel介绍与使用 相关知识&#xff0c;具体内容包括分布式系统存在的问题&#xff0c;分布式系统问题的解决方案&#xff0c;Sentinel介绍&#xff0c;Sentinel快速开始&#xff08;包括&#xff1a;API实现Sentinel资源保护&#xff0c;…...

拼多多2021笔试真题集 -- 3. 多多的求和计算

多多的求和计算 多多路上从左到右有N棵树&#xff08;编号1&#xff5e;N&#xff09;&#xff0c;其中第i个颗树有和谐值Ai。 多多鸡认为&#xff0c;如果一段连续的树&#xff0c;它们的和谐值之和可以被M整除&#xff0c;那么这个区间整体看起来就是和谐的。 现在多多鸡想请…...

DP算法:动态规划算法

步骤&#xff08;1&#xff09;确定初始状态&#xff08;2&#xff09;确定转移矩阵&#xff0c;得到每个阶段的状态&#xff0c;由上一阶段推到出来&#xff08;3&#xff09;确定边界条件。例题蓝桥杯——印章&#xff08;python实现&#xff09;使用dp记录状态&#xff0c;d…...

一三四——一六七

一三四、JavaScript——_DOM简介 MDNq前端参考文档&#xff1a;DOM 概述 - Web API 接口参考 | MDN (mozilla.org) 一三五、JavaScript——HelloWorld <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta h…...

day29_JS

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、事件 二、DOM操作 三、案例 零、 复习昨日 js 脚本语言,弱类型 引入方案: 3种 js的内容: 语法dombom 语法 变量 var 数据类型 引用类型 - 对象,J…...

【HTTP协议与Web服务器】

HTTP协议与Web服务器浏览器与服务器通信过程HTTP的请求报头HTTP请求报头结构HTTP的请求方法HTTP应答报头HTTP应答报头结构应答状态web服务器的c语言实现浏览器与服务器通信过程 浏览器与Web服务器再应用层通信使用的是HTTP协议&#xff0c;而HTTP协议在传输层使用的是TCP协议。…...

Idea+maven+spring-cloud项目搭建系列--12 整合grpc

前言&#xff1a; grpc 是geogle 开源的rpc 通信框架&#xff0c;通过定义proto生成通信存根&#xff0c;像本地调用服务一样&#xff0c;进行远程服务的调用&#xff1b; 1 消费端服务提供&#xff1a; 1.1 引入grpc 和 protobuf <!-- RPC --> <!-- RPC 服务调用 …...

Revit开洞问题:结构专业开洞口剖面显示及一键开洞

一、Revit中关于结构专业开洞口剖面显示问题 Revit作业的时候&#xff0c;我们不仅只为了一个最后的三维立体模型,我们需要的是一个符合国家以及本院制图标准的一个出图样式,这时候就会出现各种各样的显示问题&#xff0c;本期就一个结构专业开洞显示问题&#xff0c;跟大家一起…...

0107连通分量-无向图-数据结构和算法(Java)

文章目录1 API2 代码实现和分析测试后记1 API 深度优先搜索下一个直接应用就是找出一幅图中的连通分量,定义如下API。 public class CCCC(Graph g)预处理构造函数booleanconnected(int v, int w)v和w连通吗intcount()连通分量数intid(int v)v所在的连通分量标识符(0~count()-…...

[学习笔记]黑马程序员python教程

文章目录思维导图Python基础知识图谱面向对象SQL入门和实战Python高阶技巧第一阶段第九章&#xff1a;Python异常、模块与包1.9.1异常的捕获1.9.1.1 为什么要捕获异常1.9.1.2 捕获常规的异常1.9.1.3 捕获指定的异常1.9.1.4 捕获多个异常1.9.1.5 捕获全部异常1.9.1.6 异常的else…...

如何配置用于构建 FastReport Online Designer 的 API ?

FastReport Online Designer 是一个跨平台的报表设计器&#xff0c;允许通过任何平台的移动设备创建和编辑报表。今天我们就一起来看看在2023版中新增和改进的功能有哪些&#xff0c;点击下方可以获取最新版免费试用哦&#xff01; FastReport Onlin Designe最新版试用https:/…...

【嵌入式Linux内核驱动】02_字符设备驱动

字符设备驱动 〇、基本知识 设备驱动分类 &#xff08;按共性分类方便管理&#xff09; 1.字符设备驱动 字符设备指那些必须按字节流传输&#xff0c;以串行顺序依次进行访问的设备。它们是我们日常最常见的驱动了&#xff0c;像鼠标、键盘、打印机、触摸屏&#xff0c;还有…...

【零散整理】

1-1 git查看代码的项目总行数 git log --prettytformat: --numstat | awk ‘{ add $1; subs $2; loc $1 - $2 } END { printf “added lines: %s, removed lines: %s, total lines: %s\n”, add, subs, loc }’ - 1-2 cookie const cookies document.cookie.split(; )for…...

RocketMQ重复消费的症状以及解决方案

RocketMQ重复消费的症状以及解决方案 生产消息时重复 症状 当一条消息已被成功发送到 消费者 并完成持久化&#xff0c;此时出现了网络闪断或者客户端宕机&#xff0c;导致服务端对客户端应答失败。 如果此时 生产者 意识到消息发送失败并尝试再次发送消息&#xff0c;消费者…...