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

OSPF的多区域特性 (电子科技大学TCP/IP实验三)

一.实验目的

1、掌握OSPF 协议中区域的类型、特征和作用

2、掌握OSPF 路由器的类型、特征和作用

3、掌握OSPF LSA 分组的类型、特征和作用

4、理解OSPF 区域类型、路由器类型和OSPF LSA 分组类型间的相互关系

二.预备知识

1、静态路由选择和动态路由选择

2、内部网关协议和外部网关协议

3、链路状态路由选择

三.实验原理

OSPF 协议(RFC 2328)是一个基于链路状态路由选择的内部网关协议:路由器仅在网络拓扑变化时使用洪泛法(flooding)将自己的链路状态更新信息扩散到整个自治系统中。

为了增强OSPF 协议的可伸缩能力(Scalability),OSPF 协议引入了区域的概念来有效并及时的处理路由选择。OSPF 区域是包含在AS 中的一些网络、主机和路由器的集合, 自治系统中所有OSPF 区域必须连接到一个主干区域(Area 0)上。

区域内的OSPF 路由器(内部路由器,IR)使用洪泛法(flooding)传送本区域内的链路状态信息,区域边界的 OSPF 路由器(区域边界路由器,ABR)将本区域的信息汇总发给其他区域,自治系统边界的 OSPF 路由器(自治系统边界路由器,ASBR)将自治系统外的路由(外部路由)发布在自治系统中。主干区域中的 OSPF 路由器也称为“主干路由器”(BR)。ABR 不能向OSPF 残桩区域(Stub Area)通告外部路由。在多址网络中,为了避免不必要的链路状态洪泛,需要选举 1 个指定路由器(DR)和 1 个备份指定路由器(BDR)。

OSPF 协议有 5 种类型的报文,它们被直接封装在 IP 分组中多播发送。

  • 问候(Hello)报文:用来建立并维护 OSPF 邻接关系。在建立了邻接关系后,

OSPF 路由器会定期发送Hello 报文,来测试邻站的可达性。

  • 数据库描述(DBD)报文:描述OSPF 路由器的链路状态数据库的概要信息, 即数据库中每一行的标题,它在两台相邻路由器彼此建立邻接关系时发送的。
  • 链路状态请求(LSR)报文:由需要若干条特定路由信息的路由器发送出的, 它的回答是 LSU 报文。新接入的路由器在收到 DBD 报文后,可以使用 LSR 报文请求关于某些路由的更多信息。
  • 链路状态更新(LSU)报文:OSPF 的核心。OSPF 路由器使用 LSU 报文通告链路状态更新信息(即链路状态通告,LSA),每一个 LSU 报文可包含几个LSA。 OSPF 协议的 LSA 有 5 种常用类型:路由器链路 LSA、网络链路 LSA、汇总链路到网络 LSA、汇总链路到 ASBR LSA 和外部链路LSA。这 5 种类型的 LSA 由不同类型的OSPF 路由器产生,在特定类型的区域范围内扩散。
  • 链路状态确认(LSAck)报文:用来确认每一个收到的 LSU 报文,使得OSPF

协议的路由选择更加可靠。

四.实验内容

实验拓扑中 Dynamips 软件模拟实现的路由器R1~R6 互联了 2 个自治系统(AS 10 和 AS  20),路由器之间使用 OSPF 协议进行路由选择。AS  10 中有 5 个子网,划分了 3个区域:Area 0、Area 1 和 Area 2,其中 Area 2 是一个 Stub 区域。AS 20 中有 1 个子网, 其路由信息将以OSPF 的外部路由方式发布到AS 10 的OSPF 网络中。

实验者使用 Dynamips 软件捕获子网 1、2、3 上传送的 OSPF 报文,使用 Wireshark 软件查看捕获的 OSPF 报文,分析 OSPF 协议的路由更新过程,考察 OSPF 协议中不同类型的区域、路由器和 LSA 的特征和作用。

 

实验拓扑中 Dynamips 软件模拟实现的路由器R1~R6 互联了 2 个自治系统(AS 10 和 AS  20),路由器之间使用 OSPF 协议进行路由选择。AS  10 中有 5 个子网,划分了 3个区域:Area 0、Area 1 和 Area 2,其中 Area 2 是一个 Stub 区域。AS 20 中有 1 个子网, 其路由信息将以OSPF 的外部路由方式发布到AS 10 的OSPF 网络中。

实验者使用 Dynamips 软件捕获子网 1、2、3 上传送的 OSPF 报文,使用 Wireshark 软件查看捕获的 OSPF 报文,分析 OSPF 协议的路由更新过程,考察 OSPF 协议中不同类型的区域、路由器和 LSA 的特征和作用。

五.实验步骤

实验步骤详见TCP//IP实验指导书。由于步骤过长,就在此不在赘述。

六、实验数据及结果分析

1、步骤 2 中根据 R1 路由表和 R4 路由表中的哪些信息可以确保实验网中的 OSPF

协议已经收敛?为什么?

1.路由表项的数目,稳定之后。路由表项的数目应该和整个网络网络的数目一致。

2.多次输入show ip route 命之后,显示的路由表项没有变化。

2、分析执行步骤 4 之前在 4 个子网上捕获的OSPF 报文。记录子网 2、3、4 和 5 上每一台路由器发送的 1 个OSPF Hello 报文的如下信息:

步骤3:子网2

路由器

R1

R2

IP分组首部

源IP

172.16.2.1

172.16.2.2

目的IP

224.0.0.5

224.0.0.5

OSPF报文首部

路由器ID

1.1.1.1

2.2.2.2

区域ID

0.0.0.1

0.0.0.1

Hello报文

网络掩码

255.255.255.252

255.255.255.252

Hello间隔

10s

10s

优先级

1

1

失效间隔

40s

40s

DR

0.0.0.0

0.0.0.0

BDR

0.0.0.0

0.0.0.0

邻居1

2.2.2.2

1.1.1.1

邻居2

-

-

步骤3:子网3

路由器

R2

R3

IP分组首部

源IP

172.16.3.2

172.16.3.3

目的IP

224.0.0.5

224.0.0.5

OSPF报文首部

路由器ID

2.2.2.2

3.3.3.3

区域ID

0.0.0.1

0.0.0.1

Hello报文

网络掩码

255.255.255.248

255.255.255.248

Hello间隔

10s

10s

优先级

1

1

失效间隔

40s

40s

DR

0.0.0.0

0.0.0.0

BDR

0.0.0.0

0.0.0.0

邻居1

3.3.3.3

2.2.2.2

邻居2

-

-

步骤3:子网4

路由器

R3

R4

R5

IP分组首部

源IP

172.16.4.3

172.16.4.4

172.16.4.5

目的IP

224.0.0.5

224.0.0.5

224.0.0.5

OSPF报文首部

路由器ID

3.3.3.3

4.4.4.4

5.5.5.5

区域ID

0.0.0.0

0.0.0.0

0.0.0.0

Hello报文

网络掩码

255.255.255.0

255.255.255.0

255.255.255.0

Hello间隔

10s

10s

10s

优先级

1

1

1

失效间隔

40s

40s

40s

DR

172.16.4.5

172.16.4.5

172.16.4.5

BDR

172.16.4.4

172.16.4.4

172.16.4.4

邻居1

5.5.5.5

5.5.5.5

4.4.4.4

邻居2

4.4.4.4

3.3.3.3

3.3.3.3

步骤3:子网5

路由器

R5

R6

IP分组首部

源IP

172.16.5.5

172.16.5.6

目的IP

224.0.0.5

224.0.0.5

OSPF报文首部

路由器ID

5.5.5.5

6.6.6.6

区域ID

0.0.0.2

0.0.0.2

Hello报文

网络掩码

255.255.255.0

255.255.255.0

Hello间隔

10s

10s

优先级

1

1

失效间隔

40s

40s

DR

172.16.5.6

172.16.5.6

BDR

172.16.5.5

172.16.5.5

邻居1

6.6.6.6

5.5.5.5

邻居2

-

-

【分析】

  1. 实验中的OSPF hello 间隔是多少秒?

10s

2)是否 4 个子网上都选举有 DR 和 BDR?为什么?根据记录中的 DR 和 BDR 信息,用路由器编号写出图 A 中子网 4 上的 DR 和 BDR。在本实验的后续步骤中,各子网上的 DR 和 BDR 是否会改变?

1.不是每一个子网中都是有DR和BDR,只有在转接网络才需要指定路由器和备份指定路由器,而点到点链路和残桩链路不需要。

2.子网4中的DR是5.5.5.5,BDR是4.4.4.4

3.在本实验后续的步骤之中不会改变,因为子网4和子网5在后续的操作步骤中网络拓扑没有发生变化,因此DR和BDR不会改变

3、分析从执行步骤 4 开始到执行步骤 5 之前在 4 个子网上捕获的OSPF 报文。按报文的捕获顺序记录每个子网上捕获到的OSPF 报文概要,要求:从第 1 个非类型1(即 hello 报文)的 OSPF 报文开始记录,包括后续的类型 1(hello)报文,一直记录到最后 1 个非类型 1 的OSPF 报文。记录的信息如下:

步骤4:子网:2

IP分组首部

OSPF报文首部

捕获时间

源IP

目的IP

类型

路由器ID

区域ID

Time

172.16.2.1

224.0.0.5

LS Update

1.1.1.1

0.0.0.1

19:01:44

172.16.2.2

224.0.0.5

LS Acknowledge

2.2.2.2

0.0.0.1

19:01:46

步骤4:子网:3

IP分组首部

OSPF报文首部

捕获时间

源IP

目的IP

类型

路由器ID

区域ID

Time

172.16.3.2

224.0.0.5

LS Update

2.2.2.2

0.0.0.1

19:01:44

172.16.3.3

224.0.0.5

LS Acknowledge

3.3.3.3

0.0.0.1

19:01:46

步骤4:子网:4

IP分组首部

OSPF报文首部

捕获时间

源IP

目的IP

类型

路由器ID

区域ID

Time

172.16.4.3

224.0.0.6

LS Update

3.3.3.3

0.0.0.0

19:01:49

172.16.4.5

224.0.0.5

LS Update

5.5.5.5

0.0.0.0

19:01:49

172.16.4.3

224.0.0.5

Hello Packet

3.3.3.3

0.0.0.0

19:01:51

172.16.4.4

224.0.0.5

LS Acknowledge

4.4.4.4

0.0.0.0

19:01:51

步骤4:子网:5

IP分组首部

OSPF报文首部

捕获时间

源IP

目的IP

类型

路由器ID

区域ID

Time

172.16.5.5

224.0.0.5

LS Update

5.5.5.5

0.0.0.2

19:01:49

172.16.5.6

224.0.0.5

LS Acknowledge

6.6.6.6

0.0.0.2

19:01:51

【分析】

  1. 为什么会在实验中捕获到两种不同目的 IP 地址(224.0.0.6 和 224.0.0.5)的LSU 报文?

一般情况下都是组播地址244.0.0.5,但是在转接链路中,非BD和BDR的路由器只与DR/BDR是邻接关系,LSA只需要发送给DR/BDR即可,所以需要244.0.0.6这个组播地址。DR/BDR以目的IP为244.0.0.5发送LSU报文。在子网4当中,即存在DR/BDR,也存在非DR/BDR的路由器,所以会捕获到两种不同目的IP地址的LSU报文。

  1. OSPF 要求路由器确认收到的 LSA,即对收到的每个 LSU 报文进行确认。为什么在子网 4 上捕获到了 2 个 LSU 报文,但 LSAck 报文却只有 1 个?

OSPF对报文的确认方式有两种:显式和隐式

在子网4中,R3先对收到的LSA进行洪泛,但是R3不是指定路由器,目的IP是指定路由器的组播地址,所以收到该LSU的R5用过LSU洪泛进行隐式确认。此时R4收到目的224.0.0.5的LSU,知道是指定路由器发的,进行显式的回复。所以在子网4中有两个LSU,却只有一个LSAck。

4、按报文捕获顺序,记录从执行步骤 4 开始到执行步骤 5 之前在 4 个子网上捕获到的所有 LSU 报文的如下信息。

步骤4:子网:2

LSU首部

LSA#1首部

LSA#2首部

LSA数量

寿命

类型值

链路状态ID

通告路由器

序号

校验和

….

1

1s

Router-LSA

1.1.1.1

1.1.1.1

0x80000003

0x7c9a

步骤4:子网:3

LSU首部

LSA#1首部

LSA#2首部

LSA数量

寿命

类型值

链路状态ID

通告路由器

序号

校验和

….

1

2s

Router-LSA

1.1.1.1

1.1.1.1

0x80000003

0x7c9a

步骤4:子网:4

LSU首部

LSA#1首部

LSA#2首部

LSA数量

寿命

类型值

链路状态ID

通告路由器

序号

校验和

….

1

3600s

Summary-LSA(IP network)

172.16.1.0

3.3.3.3

0x80000002

0x9cd5

1

3600s

Summary-LSA(IP network)

172.16.1.0

3.3.3.3

0x80000002

0x9cd5

步骤4:子网:5

LSU首部

LSA#1首部

LSA#2首部

LSA数量

寿命

类型值

链路状态ID

通告路由器

序号

校验和

….

1

3600s

Summary-LSA(IP network)

172.16.1.0

5.5.5.5

0x80000002

0x7eed

【分析】

1)同一 Area 内不同发送者发送的LSU 报文(例如:Area 1 中子网 2 上 R1 发送的 LSU 报文和子网 3 上R2 发送的 LSU 报文)中携带的 LSA 内容是否完全一致?在 LSU 报文中,1 个 LSA 首部中的通告路由器、该 LSU 报文的OSPF 首部中的路由器 ID,以及封装该 OSPF 报文的 IP 分组首部中的源 IP 地址,它们指的是什么路由器?是否是同一台路由器?

(1)同一个区域上捕获到了不同发送者发送的LSU报文完全一致。

(2)LSA首部中的通告路由器是始发这条LSA通告的路由器,该LSU报文的OSPF首部中的路由器ID是发送这个LSU的路由器,封装该 OSPF 报文的 IP 分组首部中的源 IP 地址也是发送这个LSU的路由器。

(3)后面两者同一台路由器,但是三者不一定是同一台路由器。

2)每个子网上捕获到的 LSU 报文中的 LSA 是哪种类型的 LSA?每种类型的LSA 是由图 B 中的哪台路由器始发的?该路由器属于哪种类型的 OSPF 路由器?这些LSA 分别在图B 的哪些区域中洪泛?通告的是其洪泛区域内部的链路信息还是该区域外部的链路信息

(1)子网2:

    捕获的LSA类型是路由器链路LSA(Router-LSA)

    始发路由器:R1

    路由器类型:IR(内部路由器)

    洪泛区域:Area1

    通告的是其洪泛区域内部的链路信息

(2)子网3:

    捕获的LSA类型是路由器链路LSA(Router-LSA)

    始发路由器:R1

    路由器类型:IR(内部路由器)

    洪泛区域:Area1

    通告的是其洪泛区域内部的链路信息

(3)子网4:

    捕获的LSA类型是汇总链路到网络LSA(Summary-LSA(IP network))

    始发路由器:R3

    路由器类型:BR(主干路由器),ABR(区域边界路由器)

    洪泛区域:Area0

    通告的是该区域外部的链路信息

(4)子网5:

    捕获的LSA类型是汇总链路到网络LSA(Summary-LSA(IP network))

    始发路由器:R5

    路由器类型:BR(主干路由器),ABR(区域边界路由器)

    洪泛区域:Area2

    通告的是该区域外部的链路信息

3)除路由器 R1 外,其它路由器可以根据收到的 LSA 中的什么信息判定子网 1

不可达?(提示:对比记录 6 的信息)

   R2和R3根据收到的LSA消息没有子网1 的信息可以判断不可达;其他路由器根据子网1 的Metric值为16777215判断子网1不可达。

4)如果在图B 中,将子网 1 接到 R3 上,并且让子网 1 处于区域 0 中,那么此时在各个区域中会出现哪些路由器始发的哪些类型的 LSA?

Area0: R3始发的路由器链路LSA(Router-LSA)

Area1: R3始发的汇总链路到网络LSA(Summary-LSA(IP network))

Area2: R5始发的汇总链路到网络LSA(Summary-LSA(IP network))

5、按报文捕获顺序,记录从执行步骤 5 开始到执行步骤 6 之前在 4 个子网上捕获到的所有 LSU 报文,记录信息如下

步骤5:子网:2

LSU首部

LSA#1首部

LSA#2首部

LSA数量

寿命

类型值

链路状态ID

通告路由器

网络掩码

度量

….

1

1s

Router-LSA

1.1.1.1

1.1.1.1

-

-

1

3s

AS-External-LSA(ASBR)

20.0.0.0

4.4.4.4

255.255.0.0

20

1

2s

Summary-LSA(ASBR)

4.4.4.4

3.3.3.3

0.0.0.0

1

步骤5:子网:3

LSU首部

LSA#1首部

LSA#2首部

LSA数量

寿命

类型值

链路状态ID

通告路由器

网络掩码

度量

….

1

2s

Router-LSA

1.1.1.1

1.1.1.1

-

-

1

2s

AS-External-LSA(ASBR)

20.0.0.0

4.4.4.4

255.255.0.0

20

1

1s

Summary-LSA(ASBR)

4.4.4.4

3.3.3.3

0.0.0.0

1

步骤5:子网:4

LSU首部

LSA#1首部

LSA#2首部

LSA数量

寿命

类型值

链路状态ID

通告路由器

网络掩码

度量

….

1

1s

Summary-LSA(IP network)

172.16.1.0

3.3.3.3

255.255.255.0

129

1

2s

Summary-LSA(IP network)

172.16.1.0

3.3.3.3

255.255.255.0

129

1

1s

Router-LSA

4.4.4.4

4.4.4.4

-

-

1

1s

AS-External-LSA(ASBR)

20.0.0.0

4.4.4.4

255.255.0.0

20

步骤5:子网:5

LSU首部

LSA#1首部

LSA#2首部

LSA数量

寿命

类型值

链路状态ID

通告路由器

网络掩码

度量

….

1

1s

Summary-LSA(IP network)

172.16.1.0

5.5.5.5

255.255.255.0

130

【分析】

  1. 为什么子网 5 上只有类型 3 的 LSA?

因为子网5的拓扑结构没有发生变化,并且不在主干区域,且其为残桩区域。

  1. Area 1(子网 2、子网 3)中的类型 1 LSA 所通告的拓扑变化,在 Area 0( 子网 4)和 Area 2(子网 5)中分别使用哪种类型的 LSA 进行通告?

类型3

  1. Area 0(子网 4)中的类型 1 LSA 所通告的拓扑变化,在Area 1(子网 2、子网 3)中使用哪种类型的 LSA 进行通告?

类型4

  1. Area 0(子网 4)中的类型 5 LSA 所通告的拓扑变化,在Area 1(子网 2、子网 3)中使用哪种类型的 LSA 进行通告?

类型5

  1. 子网 2、3 和 4 上的类型 5 LSA 信息(包括 LSA 首部及其数据部分)是否完全一致?如有不同,请指出不同之处,并解释不同的原因?

首部和数据部分都会有所不同。

首部部分:LSA首部信息不同的主要是源路由器和OSPF的区域,

数据部分:数据部分OSPF的寿命和相关掩码也不同。

【思考题】

1、OSPF 协议有 5 种类型的报文,并能通告 5 种类型的 LSA。本实验中捕获到了哪些类型的 OSPF 报文和哪些类型的 LSA?请解释本实验中不能捕获到某些类型的 OSPF 报文和某些类型的 LSA 的原因。

1)本实验中捕获到了OSPF协议的Hello报文、LSU报文和LSAck报文,没有捕获到LSR和DBD报文。DBD报文是在两台相邻路由器建立邻接关系的时发送的。但是在本次实验的过程中,捕获报文之前,相邻路由器都已经建立好关系。所以在实验过程中DBD报文不会产生。因为LSR报文是链路状态数据库同步过程中根据收到的DBD报文产生的,DBD报文没有产生,所以LSR报文不会产生。

2)本次实验过程中捕获到了1,3,4,5的LSA,没有捕获到类型2(Network-LSA)的LSA。因为类型2(Network-LSA)是由DR在转接链路内发布其所在Transit network上其它路由器信息。而在实验中两次网络拓扑变化都没有发生在子网4内,所以不会产生类型2

七、实验结论

1、本实验中,路由器 R1~R6 分别属于哪种类型的 OSPF 路由器?

R1:内部路由器

R2:内部路由器

R3:区域边界路由器,主干路由器

R4:在步骤五之前属于主干路由器,内部路由器;在步骤五之后属于主干路由器和AS边界路由器。

R5:主干路由器,区域边界路由器

R6:内部路由器

2、结合实验拓扑图和小组捕获的所有 OSPF 报文,总结 5 种 LSA 分别由哪种类型的 OSPF 路由器产生?通告了哪些信息?能在哪些区域范围内洪泛?

1)路由器链路LSA(Router-LSA):由网络中的每一台路由器产生,在本区域内发布所有邻居及其对应链路的信息,只能在始发区域洪泛(本区域)

2)网络链路LSA(Network-LSA):由DR(指定路由器)产生,由DR在本区域内发布其所在Transit network上其它路由器信息,只能在始发区域洪泛(本区域)

3)Summary–LSA(汇总链路到网络):由ABR区域边界路由器产生,在其所属的每个区域里中发布到达其它区域的路由信息,在这个区域内洪泛,但不能在残桩区域洪泛。

4)Summary–LSA (汇总链路到ASBR) :由ABR区域边界路由器产生,在本AS内的所有区域中发布到达ASBR的路径信息,可以洪泛到本AS内部所有非残桩区域中。

5)AS–external–LSAASBR产生,在本AS内的某些区域中发布到达AS以外网络的路径信息

八、总结及心得体会

1.通过本次实验体会到了OSPF路由的过程,包括OSPF各种LSA的类型和OSPF的四种报文类型,并对每一种报文进行了分析,对OSPF的工作流程有了更加深刻的认识。

2.同时

九、对本实验过程及方法、手段的改进建议

1.建议可以对子网4里面的网络拓扑进行改变,让学生体会一下类型2的LSA的变化。

相关文章:

OSPF的多区域特性 (电子科技大学TCP/IP实验三)

一.实验目的 1、掌握OSPF 协议中区域的类型、特征和作用 2、掌握OSPF 路由器的类型、特征和作用 3、掌握OSPF LSA 分组的类型、特征和作用 4、理解OSPF 区域类型、路由器类型和OSPF LSA 分组类型间的相互关系 二.预备知识 1、静态路由选择和动态路…...

(四十四)多个事务更新同一行数据时,是如何加锁避免脏写的?

之前我们已经用很多篇幅给大家讲解了多个事务并发运行的时候,如果同时要读写一批数据,此时读和写时间的关系是如何协调的,毕竟要是你不协调好的话,可能就会有脏读、不可重复读、幻读等一系列的问题。 简单来说,脏读、…...

【数据库】第十二章 数据库管理

第12章 数据库管理 数据库的物理存储 关于内存、外存、磁盘、硬盘、软盘、光盘的区别_Allenzyg的博客-CSDN博客_磁盘和硬盘的区别 数据库记录在磁盘上的存储 定长,变长跨块,非跨快 文件的组织方方法: 无序记录文件(堆文件heap或pile file…...

Redis源码---整体架构

目录 前言 Redis目录结构 前言 deps目录 src 目录 tests 目录 utils 目录 重要的配置文件 Redis 功能模块与源码对应 前言 服务器实例 数据库数据类型与操作 高可靠性和高可扩展性 辅助功能 前言 以先面后点的方法推进无特殊说明,都是基于 Redis 5.0.…...

基于springboot+vue的校园招聘系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

SAP MM学习笔记1-SAP中扩张的概念,如何将一个物料从工厂A扩张到工厂B

MM中在创建物料的时候,最低也得创建如下5个view。 基本数据1 基本数据2 购买管理 会计1 会计2 1,扩张是什么 有时候,你想增加其他的View,比如保管场所 等,你不能用MM02来做编辑,要用MM01来做扩张。这就是扩…...

【Python】Numpy数组的切片、索引详解:取数组的特定行列

【Python】Numpy数组的切片、索引详解:取数组的特定行列 文章目录【Python】Numpy数组的切片、索引详解:取数组的特定行列1. 介绍2. 切片索引2.1 切片索引先验知识2.1 一维数组的切片索引2.3 多维数组的切片索引3. 数组索引(副本)…...

2023年全国最新交安安全员精选真题及答案6

百分百题库提供交安安全员考试试题、交安安全员考试预测题、交安安全员考试真题、交安安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 51.安全生产资金保障制度建立后关键在于落实,各施工企业在落实安全生…...

JavaScript 闭包【自留】

闭包的概念理解 闭包的定义 ✅ 这里先来看一下闭包的定义,分成两个:在计算机科学中和在JavaScript中。 ✅ 在计算机科学中对闭包的定义(维基百科): 闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures);是在支持头等函数…...

【MySQL】什么是意向锁 IS IX 及值得学习的思想

文章目录前言行锁和表锁使用意向锁意向锁的算法意向锁的思想JDK 中相似的思想前言 之前看 MySQL 都刻意忽略掉了 IS 和 IX 锁,今天看 《MySQL 是怎样运行的》,把意向锁讲的很通透,本篇博文提炼一下思想。 I: Intention Lock(意向…...

python多线程实现

用于线程实现的Python模块 Python线程有时称为轻量级进程,因为线程比进程占用的内存少得多。 线程允许一次执行多个任务。 在Python中,以下两个模块在一个程序中实现线程 - _thread模块threading模块 这两个模块之间的主要区别在于_thread模块将线程视…...

macOS使用CodeRunner快速配置fortran环境

个人网站:xzajyjs.cn 由于一些项目的缘故,需要有fortran的需求,但由于是M1 mac的缘故,不能像windows那样直接使用vsivf这种经典配置。搜了一下网上主流的跨平台方案,主要是gfortran,最近用Coderunner(主要…...

【云原生】k8s 离线部署讲解和实战操作

文章目录一、概述二、前期准备1)节点信息2)修改主机名和配置hosts3)配置ssh互信4)时间同步5)关闭防火墙6)关闭 swap7)禁用SELinux8)允许 iptables 检查桥接流量三、开始部署1&#x…...

【Kubernetes】第十一篇 - 滚动发布的介绍与实现

一,前言 上一篇,介绍了灰度发布和流量切分的集中方式,以及如何实现 k8s 的灰度发布; 本篇,介绍滚动发布的实现; 二,滚动发布简介 滚动发布 滚动发布,则是我们一般所说的无宕机发…...

【尊享版】如何系统构建你的思维认知模型?

超友们,早上好,国庆节快乐~ 今天为你带来的分享是《如何系统构建你的思维认知模型?》,主要分为三个部分: 第一部分:【实现爆发式成长的 10 个思维模型】 第二部分:【6 个不可不知的…...

urho3D编码约定

缩进样式类似于Allman(BSD),即在控制语句的下一行使用大括号,在同一级别缩进。在switch-case语句中,case与switch语句处于相同的缩进级别。 缩进使用4个空格而不是制表符。不应保留空行上的缩进。 类和结构名称以大写…...

Overleaf推广奖励:增加合作者的数量、解锁Dropbox同步和项目修改历史

Overleaf推广奖励 Overleaf是一个LaTeX\LaTeXLATE​X在线编译器,它可以让你与合作者共同在线编辑文档。但是默认的免费账号仅能邀请一个合作者。那么如何增加合作者的数量呢? Overleaf推出了一个奖励计划,你邀请其他人注册Overleaf&#xf…...

ChatGPT的互补工具Perplexity的详细使用方法(持续更新)

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…...

【Linux驱动开发100问】如何编译Linux内核?

🥇今日学习目标:如何编译Linux内核? 🤵‍♂️ 创作者:JamesBin ⏰预计时间:10分钟 🎉个人主页:嵌入式悦翔园个人主页 🍁专栏介绍:Linux驱动开发100问 如何编译…...

15、条件概率、全概率公式、贝叶斯公式、马尔科夫链

条件概率定义:设A、B是两个事件,且,P(A) > 0 则称 为事件A发生的条件下事件B的条件概率对这个式子进行变形,即可得到概率的乘法公式:P(A) > 0 时,则P(B) > 0 时,则乍一看,…...

Eureka服务注册与发现

注册中心是分布式开发的核心组件之一,而Eureka是spring cloud推荐的注册中心实现。简单分析一下Eureka的原理。Eureka基础概念与流程1、服务注册在微服务架构中,一个服务提供者本质上也是一个Eureka客户端。启动时,会调用Eureka所提供的服务注…...

20230226 引用类型和指针类型的区别 - chatGPT

绝了,把chatGPT当百度之后真爽! 引用类型和指针类型都是C语言中的重要概念,它们都提供了访问和操作内存的方法,但它们之间有几个关键的区别。 1. 定义和初始化方式不同 指针类型的变量定义和初始化的方式是通过使用*符号来声明…...

《操作系统》——第二章 进程与线程

目录 2.1.1进程的概念、组成、特征 2.1.2进程的状态与转换、进程的组织 2.1.3进程控制 2.1.4进程通信 2.1.5线程的概念 2.1.6线程的实现方式和多线程模型 2.2.1调度的概念、层次 2.2.2进程调度的时机、切换与过程、方式 2.2.4调度算法的评价指标 2.2.5调度算法(1) 2…...

网络原理之初识

目录 一. 网络互连 1. 局域网 2. 广域网 二. 网络通信基础 1. IP 地址 2. 端口号 3. 网络协议 4. 协议分层 5. TCP/IP 五层网络模型 (简述) 6. 网络数据传输的基本流程 一. 网络互连 随着时代的发展,越来越需要计算机之间互相通信&am…...

CAN总线开发一本全(4) - FlexCAN的驱动程序

CAN总线开发一本全(4) - FlexCAN的驱动程序 苏勇,2023年2月 文章目录CAN总线开发一本全(4) - FlexCAN的驱动程序引言从MindSDK获取FlexCAN驱动程序数据结构配置通信引擎的结构体类型访问MB的结构体类型配置ID过滤器的…...

如何分析linux tcp/ip 丢包问题

引用手把手教你用Dropwatch诊断问题通过dropwatch定位系统内核丢包Finding out if/why a server is dropping packetsgithub source coed: pavel-odintsov/drop_watchHow to drop a packet in Linux in more ways than one试试Linux下的ip命令,ifconfig已经过时了Ho…...

旅游规划(树型dp)

W 市的交通规划出现了重大问题,市政府下定决心在全市各大交通路口安排疏导员来疏导密集的车流。 但由于人员不足,W 市市长决定只在最需要安排人员的路口安排人员。 具体来说,W 市的交通网络十分简单,由 n 个交叉路口和 n−1 条街道…...

【C++】string类的模拟实现

当你将放弃作为一种习惯,你一辈子也不会有出息… 文章目录一、Default member functions1.Constructor2.Copy constructor(代码重构:传统写法和现代写法)3.operator(代码重构:传统写法和现代写法&#xff…...

笔记(一)——STL容器

容器分类:序列式容器:每个元素都有固定位置,取决于插入的时机和地点,和元素无关,如vector、deque、list、stack、queue。关联式容器:元素位置取决于特定的排序准则,和插入顺序无关,如…...

红黑树

红黑树是一个相对的平衡,减少了旋转的消耗 一个节点不是红的就是黑的根节点是黑的一个节点是红的,孩子是黑的(没有连续的红色节点)对于每个节点,从该节点到后代节点的简单路径,都包含相同的黑色&#xff0…...