IPv4 地址的子网划分与子网掩码 | 含练习题与解析

Posted Fxtack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPv4 地址的子网划分与子网掩码 | 含练习题与解析相关的知识,希望对你有一定的参考价值。

IPv4 地址的子网划分与子网掩码 | 含练习题与解析


文章目录


一. 子网掩码介绍

提示


  • 该颜色的 IP 位, 表示该位是 IP 的网络号对应的位
  • 该颜色的 IP 位,表示该位是 IP 的子网号对应的位
  • 该颜色的 IP 位,表示该位是 IP 的主机号对应的位

1. 什么是子网掩码

子网掩码又叫做网络掩码、子网络遮罩,它是一种用来指明一个 IP 地址哪些位是用来标识该 IP 主机的子网号,哪些位是标识该 IP 主机的主机号的 32 位地址


2. 子网掩码作用

子网掩码的出现是在 IPv4 地址资源日益匮乏的情况下,为了解决 IP 地址分配的问题而产生的虚拟 IP 技术。通过子网掩码,可将 A、B、C 三类地址再划分为多个子网,以提高 IP 地址的利用率。


3. 子网掩码形式

由 RFC950 文档中定义,子网掩码是一个 32 位的二进制地址 。

(地址的十进制与二进制转换将会在下文中频繁进行,可参考文章:IPv4 十进制点分表示法转换

子网掩码与原主机的 IPv4 地址一一对应,主机 IP 的网络号对应的位在子网掩码中的位对应为 1;主机号对应的位在子网掩码中的位对应为 0。

因此对于A、B、C类 IP 都有默认子网掩码。(地址分类可参考文章:IPv4 地址分类详解)

IP 类别地址二进制十进制
A IPv40100 0010 0000 0101 0000 0100 0000 001066.5.4.2
子网掩码1111 11110000 0000  0000 0000 0000 0000255.0.0.0
B IPv41000 0010  0000 0101 0000 0100 0000 0010130.5.4.2
子网掩码1111 1111  1111 11110000 0000 0000 0000255.255.0.0
C IPv41100 0010  0000 0101 0000 0100 0000 0010194.5.4.2
子网掩码1111 1111 1111 1111  1111 1111 0000 0000255.255.255.0

特别的,子网掩码之所以能划分子网,是因为子网掩码与原 IP 对应有子网号的位为 1


二. 子网划分

1. 什么是子网

若不考虑子网,一台主机将的 IP 通过网络号和主机号完成定位。而如果要在同网络号下更细粒度的划分网络或者说划分子网络,然后在子网中再定位主机,这就需要划分出子网。如下图所示。


图中在网络 202.119.100.0 中进行子网划分,
202.119.100.16-202.119.100.32 划分为一个子网;
202.119.100.32-202.119.100.48 划分为一个子网;
以此类推。再在子网中为主机配置 IP。

问题


为什么子网的划分不是将 202.119.100.0-202.119.100.16 划分为一个子网呢。
这是因为子网号在文档 RFC-95 中规定不能全为 1 。为了更好理解可以继续往下看。

2. 如何实现子网划分

子网掩码是如何做到子网划分的呢。看以下例子。

IP 地址202.119.100.202
子网掩码255.255.255.240

首先,可以看到这是一个 C 类 IP。但是其对应的子网掩码显然不再是 C 类 IP 的默认子网掩码。这正是因为子网掩码起到了对 IP 进行子网划分的作用。我们考虑 IP 地址与子网掩码的二进制表示形式:

IP 地址1100 1010 0111 0111 0110 0100 1100 1010
子网掩码1111 1111 1111 1111 1111 1111 1111 0000

IP 的黄色位为 C 类 IP 的网络号对应的位。可以看到在子网掩码中有 4 位不是属于网络号的位(绿色位),但是也为 1。这些位对应的就是子网号

4 位子网号的大小范围为 0-15,但是在 RFC-95 中规定子网号不能全为 0 或 1,所以实际范围为 1-14。这也就意味着,在使用 255.255.255.240 为子网掩码时,原 IP 网络被划分为 14 个子网。这 14 个子网分别为:

子网二进制十进制
11100 1010  0111 0111  0110 0100  0001 0000202.119.100.16
21100 1010  0111 0111  0110 0100  0010 0000202.119.100.32
31100 1010  0111 0111  0110 0100  0011 0000202.119.100.48
41100 1010  0111 0111  0110 0100  0100 0000202.119.100.64
......
141100 1010  0111 0111  0110 0100  1110 0000202.119.100.224

子网掩码为 0 的位对应的是 IP 地址的主机号,本例中有 4 位主机号,每个子网可以分配 1-14 台主机。因此在子网 202.119.100.16 中,可分配以下 IP 给主机(其他子网同理):

主机二进制十进制
11100 1010  0111 0111  0110 0100  0001 0001202.119.100.17
21100 1010  0111 0111  0110 0100  0001 0010202.119.100.18
31100 1010  0111 0111  0110 0100  0001 0011202.119.100.19
41100 1010  0111 0111  0110 0100  0001 0100202.119.100.20
......

那么对于开始提到的 IP 202.119.100.202 在子网掩码 255.255.255.240 的配合可解释为:该主机是位于 202.119.100.0 网络下的 202.119.100.192 子网中的主机 202.119.100.202。这样直接用十进制表示可能不太好理解,可以看一下表格中的二进制表示进行理解。(主机号为全为 0 表示整个网络)

二进制十进制
网络1100 1010  0111 0111  0110 0100  0000 0000202.119.100.0
子网1100 1010  0111 0111  0110 0100  1100 0000202.119.100.192
主机1100 1010  0111 0111  0110 0100  1100 1010202.119.100.202

问题


子网掩码是如何提高对 IPv4 地址资源的利用呢?
上文中采用的例子,202.119.100.202 在配合子网掩码 255.255.255.240 时,被解释为在
202.119.100.0 网络的
202.119.100.192 子网中的
202.119.100.202 主机


但若子网掩码不为 255.255.255.240 则情况不同。
假如,子网掩码为 255.255.255.248,则子网号为 5 位,主机号为 3 位,202.119.100.202 被解释为在
202.119.100.0 网络的
202.119.100.200 子网中的
202.119.100.202 主机


可以看出,即便相同的 IPv4 地址,在配合不同的子网掩码下可表示不同网络情况,因此这提高了 IPv4 地址资源的利用率。



总结


在使用子网掩码划子网时进行以下步骤

  • 得出网络号对应的位: 判断 IP 地址属于哪类 IP,以确定 IP 的网络号为几位。
  • 得出子网号对应的位 比较 IP 地址的网络号位与子网掩码的位,多出的值为 1 的位,对应到原 IP 为子网号的位,从而在原 IP 上得出子网号对应的位。
  • 得出主机信息: 根据以上两步得到的信息,切分原 IP ,得到该主机所在的网络与子网信息。


提示


在一些教学书籍中为了利用子网掩码得到网络与子网信息,会使用子网掩码与原 IP 按位进行与运算。例如:
IP:202.119.100.202
子网掩码:255.255.255.240

IP 地址1100 1010 0111 0111 0110 0100 1100 1010
子网掩码1111 1111 1111 1111 1111 1111 1111 0000
与运算1100 1010 0111 0111 0110 0100 1100 0000

该种方法也可以获得相关网络信息。


三. 子网掩码练习题

1. 一个 B 类网络地址的子网掩码为 255.255.248.0 其划分了多少个子网,每个子网有多少台主机?

已知 B 类 IP 地址的网络号为 16 位,对应子网掩码的 255.255.0.0,因此 0.0.248.0 对应的是子网号。248 转换为二进制是 1111 1000 因此有 5 位子网号,3 + 8 位主机号(8 位来自 248 后的 0)。所以可划分 25-2 个子网,每个子网有 211-2 台主机。


2. IP 为 120.127.0.23120.96.0.23 的主机若处于同一子网中,则可以使用的子网掩码有哪些?

若两 IP 处于同一子网,则子网号应当相同。

首先可以判断 120.127.0.23120.96.0.23 都属于 A 类 IP,网络号为 8 位。因此 120 属于网络号。
将两 IP 转换为二进制表示法进行理解:

120.127.0.230111 1000 0111 1111 0000 0000 0001 0111
120.96.0.230111 1000 0110 0000 0000 0000 0001 0111

若子网号相同,则自网络号后 n 位的子网号对应的位,两 IP 的值应当相同,并将这 n 位作为子网号对应的位。则所求子网掩码为网络号与子网号对应的位为 1。

二进制十进制
IP 10111 10000111 1111 0000 0000  0001 0111120.127.0.23
IP 20111 10000110 0000  0000 0000  0001 0111120.96.0.23
子网掩码1111 11111100 0000  0000 0000   0000 0000255.192.0.0

该子网掩码可使两 IP 处于同一子网。但除了该子网掩码还有一种情况也可以满足条件:

二进制十进制
IP 10111 10000111 1111 0000 0000  0001 0111120.127.0.23
IP 20111 10000110 0000  0000 0000  0001 0111120.96.0.23
子网掩码1111 11111110 0000  0000 0000   0000 0000255.224.0.0

若子网掩码继续向下一位为 1,该位对应的 IP 1 与 IP 2 值不相同,则两 IP 将处于不同子网,不满足题意。


3. 分配一个 C 类 IP 网络,要求最少能够分配 5 个子网,每个子网至少有 28 台主机。求用于划分子网的子网掩码。

首先 C 类 IP 的网络号为 24 位。
至少5个子网,因为 23-2 < 5 < 22-2,因此子网掩码的子网号位应该大于 2 位,至少为 3 位。
每个子网有 28 台主机,因为 25-2 < 28 < 24-2,因此子网掩码的主机位应该大于 4 位,至少为 5 位。

二进制十进制
C 类 IP 默认子网掩码1111 1111 1111 1111 1111 1111  0000 0000255.255.255.0
满足条件的子网掩码1111 1111 1111 1111 1111 11111110 0000255.255.255.224
因为 C 类的默认子网掩码只剩下 8 位可分配,因此子网号的位和主机号的位数之和必须为 8。因此子网号分配 3 位,主机号分配 5 位,刚好满足条件。此子网掩码即为答案。

问题


虽然说子网号至少为 5 位,答案也刚好为 5 位,但能不能为 6 位了呢?
答案是不能,因为若子网号为 6 位,由于只有 8 位可分配,则主机号对应的位只能为 4 位,不足以让每个子网分配 28 台主机,不满足题意。


其他相关文章

文章名称更新时间
IPv4 十进制点分表示法2020-10-29
IPv4 地址分类2020-11-8
IPv4 地址与子网掩码2020-11-16
IPv4 CIDR 无类别域间路由2021-1-14

文章内容来自个人学习总结
欢迎指出本文中存在的问题
未经本人同意禁止转载,不得用于商业用途

以上是关于IPv4 地址的子网划分与子网掩码 | 含练习题与解析的主要内容,如果未能解决你的问题,请参考以下文章

子网掩码是啥?

王道计算机网络网络层

王道计算机网络网络层

IP地址和子网划分学习笔记之《子网划分详解》

[CCNA]-04-IP地址和子网掩码详解(主要介绍IPv4)

计算机网络—— 网络层:IPv4地址