电子科技大学网络协议(TCP/IP作业答案)--网工(五次作业汇总)

news2025/2/28 23:42:52

目录

作业1:OSI/RM、TCP/IP编址和底层网络技术

作业2:IP地址规划与路由选择

作业3:ARP、IP、ICMP

作业4:UDP、Routing Protocol

作业五


作业1:OSI/RM、TCP/IP编址和底层网络技术

物理地址属于OSI/RM的哪一层?是否需要全球唯一?应在什么范围内唯一?Ethernet网卡的物理地址——MAC地址为什么要求全球唯一?

答:1.数据链路层;

2.不需要全球统一;

3.应该在同一个网段(或者说成局域网)里唯一,MAC(Media Access Control, 介质访问控制)地址是识别LAN(局域网)节点的标识;

4. MAC地址是网卡的物理地址, MAC地址由生产厂商分配,在同一个局域网内可能使用多个厂商生成的网卡,为了区分网卡,需要保证MAC地址全球唯一。

在使用Windows系统的PC机上配置Internet协议(TCP/IP)属性时,“默认网关”是指路由器(Router)还是网关(Gateway)?理由是什么?

答:路由器;

“默认网关”是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。从功能上来看主要执行的是数据包路由转发的功能,因此windows上的配置协议属性时默认网关是指路由器。

而网关主要是执行的是协议转换功能。

3、完成下面的struct语句,用它来描述Ethernet的帧格式(RFC 894,从“目的地址”开始)。

struct Ethernet_frame

{

……

unsigned long  intCRC;

};

struct Ethernet_frame

{

unsigned long int  DMAC ;

unsigned long int  SMAC ;

unsigned long int   Type ;

char *data;

unsigned long int CRC;

};

4、以太网的链路层(MAC子层)从物理层收上来的以太帧应包括哪些字段?为什么?以太网网卡的接口驱动软件收到的以太帧应包括哪些字段?为什么?

以太网的链路层(MAC子层)从物理层收上来的以太帧应包括哪些字段?

答:前同步码,帧开始定界符;目的MAC地址,源MAC地址,类型字段(上层协议的类型,Type/len),数据字段,校验字段;

原因:MAC层从物理层收上来的以太帧,是携带有物理层信息的,包含前同步码与帧开始定界符,以太网的链路层并没有处理这些信息。

以太网网卡的接口驱动软件收到的以太帧应包括哪些字段?

目的MAC地址,源MAC地址,类型字段(上层协议的类型),数据字段,校验字段;

原因:以太网网卡的接口驱动软件收到的以太帧是经过网卡处理之后的,前同步码,帧开始定界符这些物理层的信息已经被处理掉了。

但是用wireshark从网卡中分析帧的时候,是不含有校验字段的。

请访问IETF主页(http://www.ietf.org),找1~2个感兴趣的活动工作组(active working group),写出该工作组的全称、缩写和所属领域(英文),简要描述该工作组的主要研究内容(中文),并给出该工作组发布的最新一个RFC的编号、名称和状态。

答:

全称:Inter-Domain Routing

缩写:idr

所属领域:Routing Area (rtg)

主要研究内容:主要负责BGP的研究;IDR工作组将致力于准确性、稳健性和协议的可扩展性,以及协议的清晰度和准确性边界网关协议文档集

RFC编号:RFC9294

RFC名称:draft-ietf-idr-bgp-ls-app-specific-attr

RFC状态:Proposed Standard RFC

全称:Light-Weight Implementation Guidance (lwig)

缩写:lwig

所属领域:Internet Area

主要研究内容:搭建能够在大多数环境下工作最小但可互操作的ip设备;从IP栈中的使用中收集经验

RFC编号:RFC 9178

RFC名称:draft-ietf-lwig-cellular

RFC状态:Informational RFC


作业2:IP地址规划与路由选择

根据下图所示网络拓扑进行IP地址规划。

要求:

  1. 如果IP地址总空间是10.1.1.0/24,能否根据图中所示网络大小为每个IP网络分配适当的IP地址空间?如果可以,应如何编址?如果不行,请说明理由。\\

不可以;地址空间不够用;

解释:每个IP网的需要的地址数量=本子网内主机数 + 本子网内路由器接口数 + 2

从上述网络拓扑图当中可以看到,一共有10个子网,

分析有主机的子网:

子网1:地址数量=15+1+2=17,需要32个地址

子网2:地址数量=25+1+2=18,需要32个地址

子网3:地址数量=30+1+2=33,需要64个地址

子网4:地址数量=50+1+2=53,需要64个地址

子网5:地址数量=60+1+2=63,需要64个地址

子网6:地址数量=2+2=4,需要4个地址

子网7:地址数量=2+2=4,需要4个地址

子网8:地址数量=2+2=4,需要4个地址

子网9:地址数量=2+2=4,需要4个地址

子网10:地址数量=2+2=4,需要4个地址

现在地址块的地址数量为28 =256,而(32+32+64+64+64+4*5)>256,地址数量不够用

  1. IP地址总空间是10.1.0.0/16,请采用聚合设计,按照图中所示网络大小为每个IP网络分配适当的IP地址空间,从而使得每台路由器的路由表项数尽可能最少。写出每个IP网络的网络地址、掩码和直接广播地址,并写出每台路由器每个网络接口的IP地址,以及每个有主机的子网中一台主机的IP地址、子网掩码和缺省网关。

采用路由地址聚合:

分配的IP地址为10.1.0.0/16,网络需要的地址规模是32+32+64+64+64+4*5=276,

所以整个网络分配10.1.0.0/23地址块就行

采用聚合设计

3,4,9可以聚合成一个网络,需要地址64+64+4 一共256的地址

1单独一张网络,需要32地址

网络 1 ,6,7 ,10聚合成一个网络,需要64个地址

2 ,8 ,5聚合成一张网络,需要32+4+64,一共128地址

地址聚合示意图如下:

路由聚合表如下,每一个长条表示128大小的地址块

网络3

10.1.0.0/26

网络4

10.1.0.64/26

10.1.0.0/24

网络9

10.1.0.128/30

网络5

10.1.1.0/26

网络2  10.1.1.64 /27

网络8 10.1.1.96/30

10.1.1.0/25

网络6

10.1.1.128/30

网络7

10.1.1.132/30

网络10

10.1.1.136/30

网络1

10.1.1.160/27

10.1.1.128/25

网络名称

网络地址

子网掩码

广播地址

子网1

10.1.1.160

255.255.255.224

10.1.1.191

子网2

10.1.1.64

255.255.255.224

10.1.1.95

子网3

10.1.0.0

255.255.255.192

10.1.0.63

子网4

10.1.0.64

255.255.255.192

10.1.0.127

子网5

10.1.1.0

255.255.255.192

10.1.1.63

子网6

10.1.1.128

255.255.255.252

10.1.1.131

子网7

10.1.1.132

255.255.255.252

10.1.1.135

子网8

10.1.1.96

255.255.255.252

10.1.1.99

子网9

10.1.0.128

255.255.255.252

10.1.0.131

子网10

10.1.1.136

255.255.255.252

10.1.1.139

路由器

接口

IP地址

A

E1

10.1.1.161

S1

10.1.1.133

S0

10.1.1.129

B

S0

10.1.1.134

S1

10.1.1.137

S2

10.1.0.129

E0

10.1.0.65

C

S0

10.1.1.138

S1

10.1.1.130

S2

10.1.1.97

E0

10.1.1.65

D

S1

10.1.0.130

E0

10.1.0.1

E

S0

10.1.1.98

E0

10.1.1.1

每个有主机的子网中一台主机的IP地址、子网掩码和缺省网关。

网络名称

主机IP

子网掩码

缺省网关

子网1

10.1.1.162

255.255.255.224

10.1.1.161

子网2

10.1.1.66

255.255.255.224

10.1.1.65

子网3

10.1.0.2

255.255.255.192

10.1.0.1

子网4

10.1.0.66

255.255.255.192

10.1.0.65

子网5

10.1.1.2

255.255.255.192

10.1.1.1

(3)请根据(2)中的IP地址分配方案,按以下格式分别写出路由器A、B、C、D和E的路由选择表。

目的网络地址

目的掩码

下一跳IP地址

发送接口

路由器A的路由表:

目的网络地址

目的掩码

下一跳IP地址

发送接口

10.1.1.160

255.255.255.224

_

E1

10.1.0.0

255.255.255.0

10.1.1.134

S1

10.1.1.0

255.255.255.128

10.1.1.130

S0

路由器B的路由表:

目的网络地址

目的掩码

下一跳IP地址

发送接口

10.1.0.64

255.255.255.192

_

E0

10.1.1.160

255.255.255.224

10.1.1.133

S0

10.1.1.0

255.255.255.128

10.1.1.138

S1

10.1.0.0

255.255.255.192

10.1.0.130

S2

路由器C的路由表:

目的网络地址

目的掩码

下一跳IP地址

发送接口

10.1.1.64 

255.255.255.224

_

E0

10.1.0.0

255.255.255.0

10.1.1.137

S0

10.1.1.128

255.255.255.224

10.1.1.129

S1

10.1.1.0

255.255.255.192

10.1.1.1

S2

路由器D的路由表:

目的网络地址

目的掩码

下一跳IP地址

发送接口

10.1.0.0

255.255.255.192

_

E0

0.0.0.0

0.0.0.0

10.1.0.129

S1

路由器E的路由表:

目的网络地址

目的掩码

下一跳IP地址

发送接口

10.1.1.0

255.255.255.192

_

E0

0.0.0.0

0.0.0.0

10.1.1.97

S0

作业3:ARP、IP、ICMP

  1. 路由器A的一个网络接口的IP地址为195.23.67.3,掩码是255.255.255.0,以太网物理地址是0x2345AB4F67CD。路由器收到一个目的IP地址是185.11.78.10的IP分组,当路由器检查路由表时,它找出该分组应交付给下一跳路由器B,其IP地址是195.23.67.9,掩码是255.255.255.0,请写出路由器A发出的ARP请求分组和收到的ARP响应分组的内容,以及封装这两个分组的数据帧的首部字段。假设:195.23.67.9对应的MAC地址是0x154983AF6CD2,185.11.78.10对应的MAC地址是0x94EF65A3B2D7。

路由器A发出的ARP请求分组:

0x0001

0x0800

0x06

0x04

0x0001

0x2345AB4F67CD

195.23.67.3

0x000000000000

195.23.67.9

数据帧的首部字段:

前同步码

帧开始定界符

0xFFFFFFFFFFFF

0x2345AB4F67CD

0x0806

ARP分组和填充字段

FCS

路由器A收到的ARP响应分组:

0x0001

0x0800

0x06

0x04

0x0002

0x154983AF6CD2

195.23.67.9

0x2345AB4F67CD

195.23.67.3

数据帧的首部字段

前同步码

帧开始定界符

0x2345AB4F67CD

0x154983AF6CD2

0x0806

ARP分组和填充字段

FCS

分析RFC826中“Packet Reception”一节关于ARP分组的接收处理,指出教材8.4.4节的“表8.3 输入模块”中对ARP分组接收处理的不正确或不准确描述。

答:

  1. 首先没有检查是否支持收到包的硬件地址类型
  2. 其次,没有检查协议地址的类型,也没有检查协议地址的长度
  3. 再者,标准中没有提到PENDING,也没有之后的操作。RFC826提到的是Merge_flag状态的改变。
  4. 最后,判断是ARP请求之前,应该先判断自己是否为ARP分组里面的目的协议地址,如果不是应该丢弃

一个IP数据报到达时其首部信息如下:

45 00 00 54 00 03 00 00 20 06 00 00 7C 4E 03 02 B4 0E 0F 02

试回答以下问题:

    1. 该数据报有无选项字段?
    2. 是否被分片?
    3. 数据报中数据部分的长度是多少?
    4. 数据报中封装的是哪个高层协议数据?
    5. TTL值是多少?

答:

  1. 没有选项字段。因为一共20个字节。不会包含选项字段
  2. 没有被分片,分片标志位和分片偏移量都为0
  3. 64字节。
  4. TCP
  5. 32(十进制)

试用一张表来归纳说明:哪些类型的ICMP差错报告报文是由路由器发送的?哪些类型的ICMP差错报告报文是由目的主机发送的?

ICMP差错报文类型

路由器发送

目的主机发送

Code

内容

Code

内容

终点不可达

0

网络不可达(可能硬件问题)

2

协议不可达

1

主机不可达(可能是硬件问题)

3

端口不可达

4

需要进行分片

5

源路由不能完成

6

目的网络未知

7

目的主机未知

8

源主机被隔离了

9/10

从管理上禁止与目的网络通信

11/12

对指明的服务类型,主机不可达

13

主机不可达,因为管理员已经在主机上放置了过滤器

14

主机不可达,因为主机违反了优先级策略

15

主机不可达,因为它的优先级被截至

源点抑制

路由器因为拥塞或者流量控制丢弃报文

目的主机因为拥塞或者流量控制丢弃报文

超时

报文的生存时间变为了0

目的主机没有在规定时间内收到所有的分片

参数问题

0

路由器发现首部某个字段有差错或者二义性

0

目的主机发现首部某个字段有差错或者二义性

1

路由器发现表示缺少所需的选项部分

1

目的主机发现表示缺少所需的选项部分

路由重定向

0

对特定网络路由发生改变

1

对特定主机路由发生改变

2

基于指定服务类型的对特定网络路由发生改变

3

基于指定服务类型的对特定主机路由发生改变


作业4:UDP、Routing Protocol

  1. 路由器A的路由表如下:

目的网络

Metric

Next-hop

Net1

1

B

Net2

4

C

Net3

1

D

Net4

5

E

Net5

3

B

若该路由器收到来自路由器B的RIP报文如下:

目的网络

Metric

Net1

1

Net2

2

Net3

3

Net4

7

Net5

3

请按照RFC1058中定义的RIP更新算法,写出路由器A更新后的路由表。

答:

目的网络

Metric

Next-hop

Net1

2

B

Net2

3

B

Net3

1

D

Net4

5

E

Net5

4

B

  1. 试画出具有以下规约的自治系统:

a、共有8个网络:N1~N8,有8台路由器:R1~R8

b、共有4个OSPF区域:Area 0 ~ Area 3

c、N3、N5、N8是以太网,其余均为点到点网络

d、R1连接N1

e、R2连接N2

f、R3连接N1、N2和N3

g、R4连接N3和N4

h、R5连接N4和N5

i、R6连接N3和N6

j、R7连接N6和N7

k、R8连接N7和N8

l、N1和N2在Area 1中,N4和N5在Area 2中,N6~N8在Area 3中

m、N3在Area 0中

试回答以下问题:

    1. 该自治系统中的路由器分别是哪种类型的OSPF路由器?
    2. 该自治系统中会产生哪几种类型的OSPF LSA?
    3. 该自治系统中哪几台路由器的链路状态数据库完全一致?
    4. 该自治系统中有哪几种类型的OSPF链路?

答:

自治系统的拓扑如下:

a)   内部路由器:R1,R2,R5,R7,R8

主干路由器:R3、R6、R4

区域边界路由器:R3、R6、 R4,

AS边界路由器:无

b)Type1:Router-LSA(路由器链路通告)

   Type2:Network-LSA(网络链路通告)

   Type3:Summary-LSA(汇总链路到网络)

c)  R1和R2;

R7和R8;

R3 、R4和R6

d) 点到点链路(point-to-point)

   转接链路(transient)

   残桩链路(stub)

IP协议和UDP协议都是一种不可靠的无连接数据报交付协议,使用无连接、不可靠传输服务的应用进程为什么不能直接使用IP协议进行传输?

原因1:IP只能实现端到端的传输,传输层需要进程到进程,需要端口来识别,不同的应用进程需要不同的端口号(port)标识,而IP协议不提供端口号的标识,所以在此基础之上是无法替代的。

原因2:传输层和网络层在操作系统内的实现层次不同,给用户开放的权限也不同,并非所有用户都可以直接操作IP协议,出于安全和易操作性的考虑,现代操作系统往往不允许/不建议普通用户直接操作IP协议,一般是用户完成传输层协议封装,然后由操作系统进行网络层封装和校验和计算。

原因3:IP是需要进行验证,UDP不需要进行验证,速度快,

原因4:IP协议比较复杂,需要考虑路由等,而UDP协议简单,应用进程直接用UDP协议,会更加的简单化,用户操作性强。

作业五

试画出具有以下规约的自治系统:

a、共有8个网络:N1~N8,有8台路由器:R1~R8

b、共有4个OSPF区域:Area 0 ~ Area 3

c、N3、N5、N8是以太网,其余均为点到点网络

d、R1连接N1

e、R2连接N2

f、R3连接N1、N2和N3

g、R4连接N3和N4

h、R5连接N4和N5

i、R6连接N3和N6

j、R7连接N6和N7

k、R8连接N7和N8

l、N1和N2在Area 1中,N4和N5在Area 2中,N6~N8在Area 3中

m、N3在Area 0中

试回答以下问题:

    1. 该自治系统中的路由器分别是哪种类型的OSPF路由器?
    2. 该自治系统中会产生哪几种类型的OSPF LSA?
    3. 该自治系统中哪几台路由器的链路状态数据库完全一致?
    4. 该自治系统中有哪几种类型的OSPF链路?

a)   内部路由器:R1,R2,R5,R7,R8

主干路由器:R3、R6、R4

区域边界路由器:R3、R6、 R4,

AS边界路由器:无

b)Type1:Router-LSA(路由器链路通告)

   Type2:Network-LSA(网络链路通告)

   Type3:Summary-LSA(汇总链路到网络)

c)  R1和R2;

R7和R8;

R3 、R4和R6

d) 点到点链路(point-to-point)

   转接链路(transient)

   残桩链路(stub)

主机A的发送窗口大小为2000字节。第1秒钟,主机A向主机B发送了第1个报文段:序号为2001,发送了800字节数据,重传计时器为5秒。第2秒钟,主机A向主机B发送了第2个报文段:序号为2801,发送了800字节数据,重传计时器为5秒。第3秒钟,主机A收到来自主机B的1个TCP确认报文段:确认号为2801,窗口字段值为1600。此时,主机A的发送窗口将如何改变?如果主机A要在第4秒钟向主机B发送第3个TCP报文段,该报文段的序号是多少?该报文段中的数据长度是多少字节?

①主机A的发送窗口应该变为1600发送方的窗口将会根据接收方的窗口进行调整,主机A收到了TCP确认报文段,窗口字段值为1600,所哟主机A的发送窗口应该变为1600。

②序号为3601,报文长度最大为800字节报文数据长度小于等于800字节第四秒钟主机A向主机B发送第三个TCP报文段,由于之前发送了序号为2801,800字节的数据,此时的发送窗口为1600,而且还没有收到之前的确认报文段,所以还能发送序号为3601,报文长度最大为800字节

  1. 试举例说明什么情况下TCP会从FIN-WAIT-1状态转换到TIME-WAIT状态?

通信双方同时关闭连接

说明:在这种FIN-WAIT-1状态之下,一方发起关闭后,发送了FIN,等待对方ACK 的时候,正好被动方也发起关闭请求,发送了FIN这时客户端接收到了先前ACK, 也收到了对方的FIN,然后发送ACK(对对方FIN的回应)然后就进入TIME-WAIT 状态

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

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

相关文章

关于Linux内存管理的详细介绍,这篇万字长文值得你的收藏点赞

Linux内存管理一、Linux内存管理概述1.1 什么是内存管理1.2 内存管理的重要性1.3 内存管理的组成部分二、物理内存管理2.1 什么是物理内存2.2 物理内存管理方式2.2.1 连续内存管理2.2.2 非连续内存管理2.3 物理内存管理相关的函数及示例三、虚拟内存管理3.1 什么是虚拟内存3.2 …

HTML常用基础内容总结

文章目录一、对HTML的感性认知前置知识什么是web前端,什么是web后端前端技术栈、后端技术栈开发与运行的区别浏览器的功能是什么简介写一个简单可运行的的html代码前端开发方式二、VSCode的简单使用三、常用的HTML标签最最基本的HTML结构HTML代码特点注释标签标题标…

「JVM 高效并发」Java 内存模型

Amdahl 定律代替摩尔定律成为了计算机性能发展的新源动力,也是人类压榨计算机运算能力的最有力武器; 摩尔定律,描述处理器晶体管数量与运行效率之间的发展关系;Amdahl 定律,描述系统并行化与串行化的比重与系统运算加…

这9道软件测试面试题,就能刷掉90%的软件测试员

转眼就要到“金三银四”了,没点真本事真技术,没点面试经验,不了解点职场套路,如何过五关斩六将?如何打败面试官?如何拿下那梦寐以求的offer? 如果你的跳槽意向已经很确定,那么请往下…

【python量化】大幅提升预测性能,将NSTransformer用于股价预测

写在前面NSTransformer模型来自NIPS 2022的一篇paper《Non-stationary Transformers: Exploring the Stationarity in Time Series Forecasting》。NSTransformer的目的主要是为了解决其他方法出现过平稳化处理的问题。其通过提出序列平稳化以及去平稳化注意力机制可以使得模型…

我眼中的柔宇科技

关注、星标公众号,直达精彩内容来源:技术让梦想更伟大作者:李肖遥很早就知道了柔宇科技,当时是因为知道创始人刘自鸿,23岁清华本硕毕业,26岁获斯坦福大学电子工程博士学位,历时不超过3年&#x…

你真的了解环形队列吗?(学习数据结构必须掌握的模型)

目录 0.前言 1. 什么是环形队列 2. 如何使用数组结构 / 链表结构 对环形队列封装 3. 代码手撕环形队列各个接口 3.1 代表封装一个环形队列 3.2 环形队列的初始化 3.3 环形队列的插入 3.4环形队列的删除 3.5环形队列的判空 3.6环形队列的判满 3.7环形队列的队头 3.8环…

NCNN量化详解2

1 NCNN量化算法简介 量化算法介绍的文章的话,下面这篇文章的大佬 @章小龙 介绍的比我好多啦。虽然介绍的是NVIDIA TensorRT的算法,但是NCNN是参考其算法做出来的,方法几乎一样 首先NVIDIA有一个PPT,很好的阐述了他们的方案,推荐大家也去看一下: https://link.zhihu.com…

我来了,RK第七届开发者大会

大家好,我是发哥的朋友windsnake「也是发哥文章里面经常出现的邓总」。今年终于是有时间参加了一次Rk的开发者大会,这篇文章记录下自己的所见所闻,算是对自己福州之行的一次总结。从深圳出发月亮还没睡醒的早上,坐5号线杀到深圳北…

【项目设计】高并发内存池(二)[高并发内存池整体框架设计|threadcache]

🎇C学习历程:入门 博客主页:一起去看日落吗持续分享博主的C学习历程博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 也许你现在做的事情,暂时看不到成果,但不要忘记&…

【无标题String、StringBuffer、StringBuilder区别】

一、背景。 这篇文章主要介绍了String、StringBuffer、StringBuilder的区别详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下。放假在家里休息,闲来无事,想…

华为OD机试题,用 Java 解【汽水瓶】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

【华为OD机试模拟题】用 C++ 实现 - 寻找路径 or 数组二叉树(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 获得完美走位(2023.Q1) 文章目录 最近更新的博客使用说明寻找路径 or 数组二叉树题目输入输出描述示例一输入输出示例二输入输出Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过…

华为开源自研AI框架昇思MindSpore数据变换:Transforms

目录一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例二、数据变换 TransformsCommon TransformsComposeVision TransformsRescaleNormalizeHWC2CWHText TransformsBasicTokenizerLookupLambda Transforms通常情况下,直接加载的原始数据并不能直接送入…

线程安全之synchronized和volatile

目录 1.线程不安全的原因 2.synchronized和volatile 2.1 synchronized 2.1.1 synchornized的特性 2.1.2 synchronized使用示例 2.2 volatile 我们先来看一段代码: 分析以上代码,t1和t2这两个线程的任务都是分别将count这个变量自增5000次&#xff…

redis(5)列表List

Redis列表 Redis单键多值:Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。 常…

【Linux学习笔记】7.Linux vi/vim

前言 本章介绍Linux的vi/vim。 Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性&#xff0c…

【华为OD机试模拟题】用 C++ 实现 - 优秀学员统计(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 货币单位换算(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 选座位(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 停车场最大距离(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 重组字符串(2023.Q1) 【华为OD机试模…

HashMap数据结构

HashMap概述 HashMap是基于哈希表的Map接口实现的&#xff0c;它存储的是内容是键值对<key,value>映射。此类不保证映 射的顺序&#xff0c;假定哈希函数将元素适当的分布在各桶之间&#xff0c;可为基本操作(get和put)提供稳定的性能。 HashMap在JDK1.8以前数据结构和存…

网络流与图(三)

经过两篇文章的篇幅&#xff0c;我们介绍了最小费用网络流模型以及解决的算法。今天我们介绍网络流模型的现实应用案例&#xff0c;并针对一些特殊的情景提出更高效的解决算法。传送门&#xff1a;网络流与图&#xff08;一&#xff09;网络流与图&#xff08;二&#xff09;1运…