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

这篇具有很好参考价值的文章主要介绍了网络协议从入门到底层原理学习(二)—— Mac地址/IP地址。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网络协议从入门到底层原理学习(二)—— 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位的。

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
组织唯一标识符(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地址/IP地址,网络协议,学习,macos
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,完成数据的转发。

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

4、MAC地址操作

  • 查询方法

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

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

  • 修改 MAC 地址

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

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

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

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地址,以保证通信的顺利进行。

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
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 报文基本结构如图所示。
网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
其中,类型表示 ICMP 的消息类型,代码表示对类型的进一步说明,校验和表示对整个报文的报文信息的校验。

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

类型 代码 含义
0 0 回显应答(ping 应答)
3 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
3 4 需要进行分片,但设置不分片位
3 5 源站选路失败
3 6 目的网络未知
3 7 目的主机未知
3 9 目的网络被强制禁止
3 10 目的主机被强制禁止
3 11 由于服务类型 TOS,网络不可达
3 12 由于服务类型 TOS,主机不可达
3 13 由于过滤,通信被强制禁止
3 14 主机越权
3 15 优先中止失效
4 0 源端被关闭(基本流控制)
5 0 对网络重定向
5 1 对主机重定向
5 2 对服务类型和网络重定向
5 3 对服务类型和主机重定向
8 0 回显请求(ping 请求)
9 0 路由器通告
10 0 路由器请求
11 0 传输期间生存时间为 0
11 1 在数据报组装期间生存时间为 0
12 0 坏的 IP 首部
12 1 缺少必需的选项
13 0 时间戳请求
14 0 时间戳应答
17 0 地址掩码请求
18 0 地址掩码应答

8、IP地址

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

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

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

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
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;该地址用于实验。

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
从上图中可以看出,每类 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。

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

  • 网络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。

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

  • 网络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。

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

  • 网络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。

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

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

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

  • E类:IP 地址范围为 240.0.0.0~255.255.255.254。
    网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos

  • 保留为今后使用

    ​ 第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个子网
网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
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个子网

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
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个子网的广播地址

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
等长子网划分——等分成8个子网

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
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类子网划分

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
等长子网划分——A类子网划分

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
变长子网划分

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

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

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

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
假设上图是对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台设备能正常通信么?

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
答:不可以, 计算机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位)

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

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

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

合并4个网段

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

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
将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位进行合并么?

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
合并网段的规律

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

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

网络协议从入门到底层原理学习(二)—— Mac地址/IP地址,网络协议,学习,macos
假设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类超网文章来源地址https://www.toymoban.com/news/detail-696242.html

到了这里,关于网络协议从入门到底层原理学习(二)—— Mac地址/IP地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包