网络协议从入门到底层原理学习(二)—— Mac地址/IP地址

文章目录

    • 网络协议从入门到底层原理学习(二)—— Mac地址/IP地址
      • 1、MAC地址
      • 2、MAC地址的表示格式
      • 3、MAC地址表
      • 4、MAC地址操作
      • 5、MAC地址的获取
      • 6、ARP
      • 7、ICMP
      • 8、IP地址
      • 9、IP地址的分类和格式
      • 10、不同分类的IP地址的范围
      • 11、特殊 IP 地址
      • 12、子网掩码
      • 13、子网划分
      • 14、超网

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址

1、MAC地址

MAC地址(Media Access Control Address)也称为硬件地址或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。

MAC地址由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。

在这里插入图片描述
组织唯一标识符(OUI)由IEEE(电气和电子工程师协会)分配给厂商,它包含24位。厂商再用剩下的24位(EUI,扩展唯一标识符)为其生产的每个网卡分配一个全球唯一的全局管理地址,一般来说大厂商都会购买多个OUI。

I/G(Individual/Group)位,如果I/G=0,则是某台设备的MAC地址,即单播地址;如果I/G=1,则是多播地址(组播+广播=多播)。

G/L(Global/Local,也称为U/L位,其中U表示Universal)位,如果G/L=0,则是全局管理地址,由IEEE分配;如果G/L=1,则是本地管理地址,是网络管理员为了加强自己对网络管理而指定的地址。

2、MAC地址的表示格式

  • Windows

    • 40-55-82-0A-8C-6D
  • Linux、Android、Mac、iOS

    • 40:55:82:0A:8C:6D
  • Packet Tracer

    • 4055.820A.8C6D
  • 当48位全为1时,代表广播地址

    • FF-FF-FF-FF-FF-FF

MAC地址可以分为3种类型:

  • 物理MAC地址:这种类型的MAC地址唯一的标识了以太网上的一个终端,该地址为全球唯一的硬件地址;

  • 广播MAC地址:全1的MAC地址为广播地址(FF-FF-FF-FF-FF-FF),用来表示LAN上的所有终端设备;

  • 组播MAC地址:除广播地址外,第8bit为1的MAC地址为组播MAC地址(例如01-00-00-00-00-00),用来代表LAN上的一组终端。

3、MAC地址表

​ MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系,以及接口所属VLAN等信息。设备在转发报文时,根据报文的目的MAC地址查询MAC地址表,如果MAC地址表中包含与报文目的MAC地址对应的表项,则直接通过该表项中的出接口转发该报文;如果MAC地址表中没有包含报文目的MAC地址对应的表项时,设备将采取广播方式在所属VLAN内除接收接口外的所有接口转发该报文。

MAC地址表的分类

​ MAC地址表中的表项分为:动态表项、静态表项和黑洞表项。另外交换机的MAC地址表中还存在一种业务类型的MAC地址表项,譬如:安全MAC、MUX MAC、Authen MAC、Guest MAC等。该类MAC地址表项是由对应业务维护的,一般是通过动态表项转换来的。
在这里插入图片描述
MAC地址表的组成

​ MAC地址表是以MAC地址和VLAN ID或VSI为索引来唯一标识。当一台目的主机属于多个VLAN或VSI时,在MAC地址表中就会存在相同MAC地址拥有多个不同VLAN ID或VSI的情况。

MAC地址表的作用

​ MAC地址表用于指导报文进行单播转发。如图中,PC1发往PC3的报文,在到达交换机Switch时,根据报文中的目的MAC地址MAC3和VLAN10查询交换机的MAC地址表,获取出接口Port3,然后报文直接从接口Port3转发到PC3,完成数据的转发。

在这里插入图片描述

4、MAC地址操作

  • 查询方法

    在命令提示符下输入命令“ipconfig /all”回车之后就会显示当前计算机的一些网络信息,其中“Physical Address”(物理地址)字样的这一项就是当前计算机中网卡的 MAC地址。

请添加图片描述

  • 修改 MAC 地址

更改适配器选项 —— 属性 —— 配置 —— 高级 —— 网络地址

  • 填写的时候需要把减号(-)去掉

在这里插入图片描述

5、MAC地址的获取

当不知道对方主机的 MAC 地址时,可以通过发送 ARP 广播获取对方的 MAC 地址

  • 获取成功后,会缓存IP地址、MAC地址的映射信息,俗称:ARP缓存

  • 通过ARP广播获取的MAC地址,属于动态(dynamic)缓存

    ✓ 存储时间比较短(默认是2分钟),过期了就自动删除

相关命令

  • arp -a [主机地址]:查询ARP缓存

  • arp -d [主机地址]:删除ARP缓存

  • arp -s 主机地址 MAC地址:增加一条缓存信息(这是静态缓存,存储时间较久,不同系统的存储时间不同)

6、ARP

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

在这里插入图片描述
RARP(Reverse Address Resolution Protocol),译为:逆地址解析协议

  • 使用与ARP相同的报头结构

  • 作用与ARP相反,用于将MAC地址转换为IP地址

  • 后来被BOOTP、DHCP所取代

7、ICMP

ICMP(Internet Control Message Protocol),译为:互联网控制消息协议

  • IPv4中的ICMP被称作ICMPv4,IPv6中的ICMP则被称作ICMPv6

  • 通常用于返回错误信息

    • 比如 TTL 值过期、目的不可达
  • ICMP的错误消息总是包括了源数据并返回给发送者

ICMP 报文结构

ICMP 报文一般为 8 个字节,包括类型、代码、校验和扩展内容字段。ICMP 报文基本结构如图所示。
在这里插入图片描述
其中,类型表示 ICMP 的消息类型,代码表示对类型的进一步说明,校验和表示对整个报文的报文信息的校验。

在 ICMP 报文中,如果类型和代码不同,ICMP 数据包报告的消息含义也会不同。常见的类型和代码的 ICMP 含义如表所示。

类型代码含义
00回显应答(ping 应答)
30网络不可达
31主机不可达
32协议不可达
33端口不可达
34需要进行分片,但设置不分片位
35源站选路失败
36目的网络未知
37目的主机未知
39目的网络被强制禁止
310目的主机被强制禁止
311由于服务类型 TOS,网络不可达
312由于服务类型 TOS,主机不可达
313由于过滤,通信被强制禁止
314主机越权
315优先中止失效
40源端被关闭(基本流控制)
50对网络重定向
51对主机重定向
52对服务类型和网络重定向
53对服务类型和主机重定向
80回显请求(ping 请求)
90路由器通告
100路由器请求
110传输期间生存时间为 0
111在数据报组装期间生存时间为 0
120坏的 IP 首部
121缺少必需的选项
130时间戳请求
140时间戳应答
170地址掩码请求
180地址掩码应答

8、IP地址

IP地址(Internet Protocol Address):互联网上的每一个主机都有一个IP地址

  • 最初是IPv4版本,32bit(4字节),2019年11月25日,全球的IP地址已经用完

  • 后面推出了IPv6版本,128bit(16字节)

在这里插入图片描述
IP地址的基本构成

为了便于寻址,了解目标主机的位置,每个 IP 地址包括两个标识码(ID),即网络 ID 和主机 ID。同一个物理网络上的所有主机都使用同一个网络 ID,网络上的一个主机(包括网络上的工作站、服务器和路由器等)有一个主机 ID 与其对应。

网络 ID 和主机 ID 含义如下:

  • 网络 ID:用于识别主机所在的网络,网络 ID 的位数直接决定了可以分配的网络数量。
  • 主机 ID:用于识别该网络中的主机,主机 ID 的位数则决定了网络中最大的主机数量。

通过子网掩码(subnet mask)可以得知网络ID 、主机ID

  • 主机所在的网段 = 子网掩码 & IP地址

计算机和其他计算机通信前,会先判断目标主机和自己是否在同一网段

  • 同一网段:不需要由路由器进行转发

  • 不同网段:交由路由器进行转发

9、IP地址的分类和格式

大型网络包含大量的主机,而小型网络包含少量的主机。根据用户需求不同,一个网络包含的主机数量也会不同。为了满足不同场景的需要,网络必须使用一种方式来判断 IP 地址中哪一部分是网络 ID,哪一部分是主机 ID。

IP 地址为 32 位地址,被分为 4 个 8 位段。为了方便对 IP 地址的管理,将 IP 地址基本分为三大类,每类地址的分类与含义如下:

  • A 类:前 8 位表示网络 ID,后 24 位表示主机 ID;该地址分配给政府机关单位使用。
  • B 类:前 16 位表示网络 ID,后 16 位表示主机 ID;该地址分配给中等规模的企业使用。
  • C 类:前 24 位表示网络 ID,后 8 位表示主机 ID;该地址分配给任何需要的人使用。

除了上述的 A、B、C 三类地址以外,还有两类隐藏地址,即 D 类地址和E类地址:

  • D 类:不分网络 ID 和主机 ID;该地址用于多播。
  • E 类:不分网络 ID 和主机 ID;该地址用于实验。

在这里插入图片描述
从上图中可以看出,每类 IP 地址都是以 32 位的二进制格式显示的,每类地址的区别如下:

  • A类:网络 ID 的第一位以 0 开始的地址。
  • B类:网络 ID 的第一位以 10 开始的地址。
  • C类:网络ID的第一位以 110 开始的地址。
  • D类:地址以 1110 开始的地址。
  • E类:地址以 11110 开始的地址。

10、不同分类的IP地址的范围

由于每类地址的开头是固定的,因此每类地址都有自己的范围:

  • A类:IP 地址范围为 0.0.0.0~127.255.255.255。

在这里插入图片描述

  • 网络ID

    • 0不能用,127作为保留网段。其中127.0.0.1是本地环回地址(Loopback),代表本机地址

    • 可以分配给主机的

      第1部分的取值范围是:1~126

    主机ID

    • 第2、3、4部分的取值范围是:0~255
    • 每个A类网络能容纳的最大主机数是:256 * 256 * 256 – 2 = 2的24次方 – 2 = 16777214
  • B类:IP 地址范围为 128.0.0.0~191.255.255.255。

在这里插入图片描述

  • 网络ID

    • 可以分配给主机的

    • 第1部分的取值范围是:128~191

    • 第2部分的取值范围是:0~255

    主机ID

    • 第3、4部分的取值范围是:0~255

    • 每个B类网络能容纳的最大主机数是:256 * 256 – 2 = 2的16次方 – 2 = 65534

  • C类:IP 地址范围为 192.0.0.0~223.255.255.255。

在这里插入图片描述

  • 网络ID

    • 可以分配给主机的

    • 第1部分的取值范围是:192~223

    • 第2、3部分的取值范围是:0~255

    主机ID

    • 第4部分的取值范围是:0~255

    • 每个C类网络能容纳的最大主机数是:256 – 2 = 254

  • D类:IP 地址范围为 224.0.0.0~239.255.255.255。

在这里插入图片描述

  • 没有子网掩码,用于多播(组播)地址

    第1部分取值范围是:224~239

  • E类:IP 地址范围为 240.0.0.0~255.255.255.254。
    在这里插入图片描述

  • 保留为今后使用

    ​ 第1部分取值范围是:240~255

11、特殊 IP 地址

在进行 IP 地址分配时,有一些 IP 地址具有特殊含义,不会分配给互联网的主机。例如,保留了一些 IP 地址范围,用于私有网络,这些地址被称为私有地址。再如,保留一部分地址用于测试,被称为保留地址。

A 类、B 类、C 类地址的地址范围及含义如下:

  1. A类地址
  • 私有地址范围为 10.0.0.0~10.255.255.255。
  • 保留地址范围为 127.0.0.0~127.255.255.255。
  1. B类地址
  • 私有地址范围为 172.16.0.0~172.31.255.255。
  • 保留地址为 169.254.X.X。
  1. C类地址
  • 私有地址范围为 192.168.0.0~192.168.255.255。

12、子网掩码

CIDR 无类域间路由(Classless Inter-Domain Routing,CIDR)

子网掩码的CIDR表示方法

  • 192.168.1.100/24,代表子网掩码有24个1,也就是255.255.255.0

  • 123.210.100.200/16,代表子网掩码有16个1,也就是255.255.0.0

计算工具:https://www.sojson.com/convert/subnetmask.htm

为什么要进行子网划分?

如果需要让200台主机在同一个网段内,可以分配一个C类网段,比如192.168.1.0/24

  • 共254个可用IP地址:192.168.1.1~192.168.1.254

  • 多出54个空闲的IP地址,这种情况并不算浪费资源

如果需要让500台主机在同一个网段内,那就分配一个B类网段,比如191.100.0.0/16

  • 共65534个可用IP地址:191.100.0.1~191.100.255.254

  • 多出65034个空闲的IP地址,这种情况属于极大的浪费资源

如何尽量避免浪费IP地址资源?

  • 合理进行子网划分

无类域间路由(Classless Inter-Domain Routing,CIDR)可以将路由集中起来,在路由表中更灵活地定义地址。它不区分 A 类、B 类、C 类地址,而是使用 CIDR 前缀的值指定地址中作为网络 ID 的位数。

这个前缀可以位于地址空间的任何位置,让管理者能够以更灵活的方式定义子网,以简便的形式指定地址中网络 ID 部分和主机 ID 部分。

CIDR 标记使用一个斜线/分隔符,后面跟一个十进制数值表示地址中网络部分所占的位数。例如,205.123.196.183/25 中的 25 表示地址中 25 位用于网络 ID,相应的掩码为 255.255.255.128。

13、子网划分

子网划分:借用主机位作子网位,划分出多个子网

可用分为

  • 等长子网划分:将一个网段等分成多个子网,每个子网的可用IP地址数量是一样的

  • 变长子网划分:每个子网的可用IP地址数量可以是不一样的

子网划分器:http://www.ab126.com/web/3552.html

子网划分的步骤

  • 确定子网的子网掩码长度

  • 确定子网中第1个、最后1个主机可用的IP地址

等长子网划分——等分成2个子网
在这里插入图片描述
A子网

  • 子网掩码:255.255.255.128/25

  • 主机可用IP地址:192.168.0.1~192.168.0.126

B子网

  • 子网掩码:255.255.255.128/25

  • 主机可用IP地址:192.168.0.129~192.168.0.254

等长子网划分——等分成4个子网

在这里插入图片描述
4个子网的子网掩码都是:255.255.255.192/26

A子网的主机可用IP地址

  • 192.168.0.1~192.168.0.62

B子网的主机可用IP地址

  • 192.168.0.65~192.168.0.126

C子网的主机可用IP地址

  • 192.168.0.129~192.168.0.190

D子网的主机可用IP地址

  • 192.168.0.193~192.168.0.254

等长子网划分——等分成4个子网的广播地址

在这里插入图片描述
等长子网划分——等分成8个子网

在这里插入图片描述
8个子网的子网掩码都是:255.255.255.224/27

A子网:192.168.0.1~192.168.0.30

B子网:192.168.0.33~192.168.0.62

C子网:192.168.0.65~192.168.0.94

D子网:192.168.0.97~192.168.0.126

E子网:192.168.0.129~192.168.0.158

F子网:192.168.0.161~192.168.0.190

G子网:192.168.0.193~192.168.0.222

H子网:192.168.0.225~192.168.0.254

等长子网划分——B类子网划分

在这里插入图片描述
等长子网划分——A类子网划分

在这里插入图片描述
变长子网划分

如果一个子网地址块的长度是原网段的(1/2)^n,那么

  • 子网的子网掩码,就是在原网段的子网掩码基础上增加n个1

  • 不等长的子网,它们的子网掩码也不同

在这里插入图片描述
假设上图是对192.168.0.0/24进行变长子网划分

  • C网段:子网掩码是255.255.255.128/25

  • B网段:子网掩码是255.255.255.192/26

  • A网段:子网掩码是255.255.255.224/27

  • D网段:子网掩码是255.255.255.252/30

  • E网段:子网掩码是255.255.255.252/30

思考题

这2台设备能正常通信么?

在这里插入图片描述
答:不可以, 计算机1可以发信息给计算机0, 计算机1不能发信息给计算机0,不算是可以通信

14、超网

超网:跟子网反过来,它是将多个连续的网段合并成一个更大的网段

需求:原本有200台计算机使用192.168.0.0/24网段,现在希望增加200台设备到同一个网段

  • 200台在192.168.0.0/24网段,200台在192.168.1.0/24网段

  • 合并192.168.0.0/24、192.168.1.0/24为一个网段:192.168.0.0/23(子网掩码往左移动1位)

在这里插入图片描述
思考

192.168.0.255/23这个IP地址,可以分配给计算机使用么?

答: 可以。主机位并不是全为1,并不是广播地址,所以可以分配给计算机使用

合并4个网段

子网掩码向左移动2位,可以合并4个网段

在这里插入图片描述
将192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24合并为192.168.0.0/22网段

思考

下面的2个网段,能通过子网掩码向左移动1位进行合并么?

在这里插入图片描述
合并网段的规律

假设n是2的k次幂(k≥1)

子网掩码左移k位能够将能够合并n个网段

在这里插入图片描述
假设n是2的k次幂(k≥1)

  • 如果第一个网段的网络号能被n整除,那么由它开始连续的n个网段,能通过左移k位子网掩码进行合并

比如

  • 第一个网段的网络号以二进制0结尾,那么由它开始连续的2个网段,能通过左移1位子网掩码进行合并

  • 第一个网段的网络号以二进制00结尾,那么由它开始连续的4个网段,能通过左移2位子网掩码进行合并

  • 第一个网段的网络号以二进制000结尾,那么由它开始连续的8个网段,能通过左移3位子网掩码进行合并

判断一个网段是子网还是超网

首先

  • 看看该网段的类型,是A类网络、B类网络、C类网络?

  • 默认情况下,A类子网掩码的位数是8,B类子网掩码的位数是16,C类子网掩码的位数是24

然后

  • 如果该网段的子网掩码位数比默认子网掩码多,就是子网

  • 如果该网段的子网掩码位数比默认子网掩码少,则是超网

比如

  • 25.100.0.0/16是一个A类子网

  • 200.100.0.0/16是一个C类超网

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch,Logstash和Kibana安装部署(ELK Stack)

前言 当今数字化时代,信息的快速增长使得各类组织和企业面临着海量数据的处理和分析挑战。在这样的背景下,ELK Stack(Elasticsearch、Logstash 和 Kibana)作为一套强大的开源工具组合,成为了解决数据管理、搜索和可视…

【电压质量】提高隔离电源系统的电压质量(Simulink实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

使用rabbitmq进行支付之后的消息通知

订单服务完成支付后将支付结果发给每一个与订单服务对接的微服务,订单服务将消息发给交换机,由交换机广播消息,每个订阅消息的微服务都可以接收到支付结果. 微服务收到支付结果根据订单的类型去更新自己的业务数据。 相关技术方案 使用消息…

leetcode172. 阶乘后的零(java)

阶乘后的零 题目描述巧妙的解法代码演示 上期经典 题目描述 难度 - 中等 172. 阶乘后的零 给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * … * 3 * 2 * 1 示例 1: 输入:n 3 输出:0 解释&#…

【计算机基础】Git从安装到使用,详细每一步!扩展Github\Gitlab

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

面试题速记:JavaScript有哪些数据类型,它们的区别是?

JavaScript有哪些数据类型,它们的区别? JavaScript共有八种数据类型,分别是 Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是ES6 中新增的数据类型: ●Symbol 代表创建后独一无二…

《安富莱嵌入式周报》第321期:开源12导联便携心电仪,PCB AI设计,150M示波器差分探头,谷歌全栈环境IDX,微软在Excel推出Python

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1ju4y1D7A8/ 《安富莱嵌入式周报》第321期:开源12导…

机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)

机器学习笔记之最优化理论与方法——基于无约束优化问题的常用求解方法[上] 引言总体介绍回顾:线搜索下降算法收敛速度的衡量方式线性收敛范围高阶收敛范围 二次终止性朴素算法:坐标轴交替下降法最速下降法(梯度下降法)梯度下降法的特点 针对最速下降法缺…

《vue3实战》运用push()方法实现电影评价系统的添加功能

目录 前言 电影评价系统的添加功能是什么? 电影评价系统的添加功能有什么作用? 一、push()方法是什么?它有什么作用? 含义: 作用: 二、功能实现 这段是添加开始时点击按钮使…

用户端APP自动化测试_L2

目录: appium server 环境安装capability 进阶用法元素定位工具高级定位技巧-xpath 定位高级定位技巧-css 定位与原生定位特殊控件 toast 识别显式等待高级使用高级控件交互方法设备交互api模拟器控制雪球财经app股票详情功能点自动化测试实战 1.appium server 环…

Podman安装与使用

1.Podman简介 Podman是一个无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器。 Podman的主要功能包括: 创建和管理容器:Podman可以创建、启动、停止和删除容器,以及管理容器的生命周期。容器镜像管理&#xff1…

WSL中为Ubuntu和Debian设置固定IP的终极指南

文章目录 **WSL中为Ubuntu和Debian设置固定IP的终极指南****引言/背景****1. 传统方法****2. 新方法:添加指定IP而不是更改IP****结论**WSL中为Ubuntu和Debian设置固定IP的终极指南 引言/背景 随着WSL(Windows Subsystem for Linux)的普及,越来越多的开发者开始在Windows…

77 # koa 中间件的应用

调用 next() 表示执行下一个中间件 const Koa require("koa");const app new Koa();app.use(async (ctx, next) > {console.log(1);next();console.log(2); });app.use(async (ctx, next) > {console.log(3);next();console.log(4); });app.use(async (ctx,…

说说 TCP的粘包、拆包

分析&回答 拆包和粘包是在socket编程中经常出现的情况, 在socket通讯过程中,如果通讯的一端一次性连续发送多条数据包,tcp协议会将多个数据包打包成一个tcp报文发送出去,这就是所谓的粘包。如果通讯的一端发送的数据包超过一…

MRI多任务技术及应用

目录 一、定量心血管磁共振成像(CMR)的改进方法二、磁共振多任务三、磁共振多任务的成像框架四、磁共振多任务的图像模型和采样和重建策略五、利用MR多任务进行快速三维稳态CEST(ss-CEST)成像5.1 利用MR多任务进行快速三维稳态CEST(ss-CEST)成像介绍5.2 …

【数据结构】链表

【数据结构】 链表 1.链表的概念及结构 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。…

C# void 关键字学习

C#中void关键字是System.Void的别名; 可以将 void 用作方法(或本地函数)的返回类型来指定该方法不返回值; 如果C#方法中没有参数,则不能将void用作参数;这是与C语言不同的,C语言有…

rk3568 SDK的buildroot添加package

开发源码工程 首先进入<SDK>/app 目录下&#xff0c;在该目录下创建一个名为“mypackage”的文件夹。 在 mypackage 目录下创建一个.c 源文件 main.c&#xff0c;以及一个 Makefile 文件。 大家可以自己在 main.c 源文件中编写一个简单的测试代码&#xff0c;譬如打印一…

设计模式-建造者(生成器)模式

文章目录 简介建造者模式的核心概念产品&#xff08;Product&#xff09;建造者&#xff08;Builder&#xff09;指挥者&#xff08;Director&#xff09;建造者模式与其他设计模式的关系工厂模式和建造者模式uml对比 建造者模式的实现步骤建造者模式的应用场景spring中应用 建…

RabbtiMQ的安装与使用

一、安装Erlang与Rabbitmq 安装教程本教程是在centos8下试验的&#xff0c;其实linux系统的都差不多RabbitMQ官方&#xff1a;Messaging that just works — RabbitMQRabbitMQ是开源AMQP实现&#xff0c;服务器端用Erlang语言编写&#xff0c;Python、Ruby、 NET、Java、JMS、c…