2021-08-13-IP 地址与子网掩码划分的心得

转载地址: https://www.sohu.com/a/457050748_594016

来源: sohu

著作权归作者所有,任何形式的转载都请联系作者

IP 地址与子网掩码划分的心得#

首先,不要管这个 IP 是 A 类还是 B 类还是 C 类,IP 是哪一类对于解题是没有任何意义的,因为在很多题中 B 类掩码和 A 类或是 C 类网络一起出现,不要把这认为是一个错误,很多时候都是这样出题的。
在这里插入图片描述

其次,应该掌握以下一些知识:
一、明确“子网”的函义:
子网就是把一个大网划分为几个小网,每个小网的 IP 地址数目都是一样多的。这个小网就叫做这个大网的子网。大网可以是 A 类大网(A 类网络),也可以是 B 类大网,还可能是 C 类大网。
⑴、二进制数转为十进制
(这里顺便说一下二进制数转为十进制的问题:
在不牵涉到 IP 地址时的二进制到十进制的转换,采用的是“低次方相加”的方式,但是牵涉到 IP 地址时(算广播地址时除外,算广播地址时还是采用“低次方相加”)的二进制到十进制的转换就不能采用这种方式了,而是直接用 2 的 N 次方的方法来转换:
比方说在不牵涉到 IP 地址的计算时,将二进制的 111 转换为十进制,采用的方法是(2 的 2 次方+2 的 1 次方+2 的 0 次方,即 4+2+1),得到的结果是十进制的 7。但是在计算 IP 地址时的的二进制到十进制的转换就不能采用这种方式了,二进制的 111 转换为十进制时,看到有几个“1”,就表示为 2 的几次方,这里有三个“1”,就是 2 的 3 次方,即在计算 IP 地址时,二进制的 111 转换为十进制就是 2 的 3 次方,2 的 3 次方的结果是 8。)
⑵、网络的总个数和可用个数
A 类网络的个数有 2 的 7 次方个,即 128 个。根据网络规范的规定,应该再去除 128 个中的第一个和最后一个,那么可用的 A 类网络的个数是 126 个。
B 类网络的个数有 2 的 14 次方个,即 16384 个。根据网络规范的规定,应该再去除 16384 个中的第一个和最后一个,那么可用的 B 类网络的个数是 16382 个。
C 类网络的个数有 2 的 21 次方个,即 2097152 个。根据网络规范的规定,应该再去除 16384 个中的第一个和最后一个,那么可用的 C 类网络的个数是 2097150 个。
⑶、网络的总 IP 数和可用 IP 地址数
每个 A 类大网(A 类网络)中容纳 2 的 24 次方个 IP 地址,即 16777216 个 IP 地址;每个 B 类大网中容纳着 2 的 16 次方个 IP 地址,即 65536 个 IP 地址;每个 C 类大网中容纳着 2 的 8 次方个 IP 地址,即 256 个 IP 地址。可用的 IP 地址数是在总 IP 地址数的基础上减 2 得到。
如果把一个 B 类大网划分为 32 个小网,那么每个小网的 IP 地址数目就是 65536/32=2048;如果把 C 类大网划分为 32 个小网,那么每个小网的 IP 地址数目就是 256/32=8。
二、明确“掩码”的函义:
掩码的作用就是用来告诉电脑把“大网”划分为多少个“小网”! 好多书上说,掩码是用来确定 IP 地址所在的网络号,用来判断另一个 IP 是不是与当前 IP 在同一个子网中。这也对,但是对于我们做题来说,意义不大。我们要明确:掩码的作用就是用来告诉电脑把“大网”划分为多少个“小网”! 掩码是用来确定子网数目的依据!
三、明确十进制数与 8 位二进制数的转换
做这类题要能够在心中将 255 以内的十进制数转换为对应的二进制数。可以参考这个公式表(第一行是二进制,第二行是十进制):
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
可以看到:
第一行左起第一个二进制 1 对应十进制的 128
第一行左起第二个 1 对应十进制的 64
第一行左起第三个 1 对应十进制的 32
第一行左起第四个 1 对应十进制的 16
第一行左起第五个 1 对应十进制的 8
第一行左起第六个 1 对应十进制的 4
第一行左起第七个 1 对应十进制的 2
第一行左起第八个 1 对应十进制的 1
在这里插入图片描述

上面这些关系要牢记,这是进制转换的基础!
比方说将十进制的 133 转为二进制,可以这样想:因为 133 和 128 比较近,又由于公式表中左起第一个二进制 1 表示 128,所以可以马上将待转换成 8 位二进制的最左边的一位确定下来,定为 1。再接下来,看到 133 和 128 只相差 5,而 5 是 4 与 1 的和,而 4 与 1 分别对应公式表中的左起第 6 和第 8 位,所以十进制的 133 转换为 8 位二进制表示就是 10000101,对应如下:
1 0 0 0 0 1 0 1 (二进制表示的 133)
128 0 0 0 0 4 0 1 (十进制表示的 133)
其它 255 以内的十进制数转换为 8 位二进制数的方法依此类推。
四、牢记各类网络的默认掩码
A 类网络的默认掩码是 255.0.0.0,换算成二进制就是 11111111.00000000.00000000.00000000;默认掩码意味着没有将 A 类大网(A 类网络)再划分为若干个小网。掩码中的 1 表示网络号,24 个 0 表示在网络号确定的情况下(用二进制表示的 IP 地址的左边 8 位固定不变),用 24 位二进制数来表示 IP 地址的主机号部分。(IP 地址是由网络号+主机号两部分构成)
B 类网络的默认掩码是 255.255.0.0,换算成二进制就是 11111111.11111111.00000000.00000000;默认掩码意味着没有将 B 类大网再划分为若干个小网。16 个 0 表示在网络号确定的情况下(用二进制表示的 IP 地址的左边 16 位固定不变)可以用 16 位二进制数来表示 IP 地址的主机号部分。(可以把 B 类默认掩码理解为是将 A 类大网(A 类网络)划分为 2 的 8 次方(即 256)个小网)
C 类网络的默认掩码是 255.255.255.0,换算成二进制就是 11111111.11111111.11111111.00000000;默认掩码意味着没有将 C 类大网再划分为若干个小网。这里的 8 个 0 表示在网络号确定的情况下(用二进制表示的 IP 地址的左边 24 位固定不变),可以用 8 位二进制数来表示 IP 地址的主机部分。(可以把 C 类默认掩码理解为是将 A 类大网(A 类网络)划分为 2 的 16 次方(即 65536)个小网,是将 B 类大网划分为 2 的 8 次方(即 256)个小网)
在这里插入图片描述

五、关于正确有效的掩码:
正确有效的掩码应该满足一定的条件,即把十进制掩码换算成二进制后,掩码的左边部分一定要是全为 1 且中间不能有 0 出现。比方说将 255.255.248.0
转为二进制是 11111111.11111111.11111000.00000000,可以看到左边都是 1,在 1 的中间没有 0 出现(0 都在 1 的右边),这样就是一个有效的掩码。我们再来看 254.255.248.0,转成二进制是 11111110.11111111.11111000.00000000,这不是一个正确有效的掩码,因为在 1 中间有一个 0 的存在。再来看 255.255.249.0,转为二进制是 11111111.11111111.11111001.00000000,这也不是一个正确有效的掩码,因为在 1 中间也有 0 的存在。
六、关于子网掩码的另类表示法:
有些题目中不是出现如 255.255.248.0 这样的子网掩码,而是出现 IP 地址/数字 这样的形式,这里的/数字就是子网掩码的另类表示法。在做题时,我们要正确理解这种另类表示法。我们将 255.255.248.0 转为二进制的形式是 11111111.11111111.11111000.00000000,可以看到左边是有 21 个 1,所以我们可以将 255.255.248.0 这个掩码表示为/21。反过来,当我们看到/21 时,我们就把 32 位二进制的左边填上 21 个 1,将这个 32 位二进制数每 8 位做为一节用句点隔开,再转换为十进制,就是 255.255.248.0 了。
七、网络中有两个 IP 地址不可用:
不管是 A 类还是 B 类还是 C 类网络,在不划分子网的情况下,有两个 IP 地址不可用:网络号和广播地址。比如在一个没有划分子网的 C 类大网中用 202.203.34.0 来表示网络号,用 202.203.34.255 来表示广播地址,因为 C 类大网的 IP 地址有 256 个,现在减去这两个 IP 地址,那么可用的 IP 地址就只剩下 256-2=254 个了。如果题目问:把一个 C 类大网划分为 4 个子网,会增加多少个不可用的 IP 地址?
可以这样想:在 C 类大网不划分子网时,有两个 IP 地址不可用;现在将 C 类大网划分为 4 个子网,那么每个子网中都有 2 个 IP 地址不可用,所以 4 个子网中就有 8 个 IP 地址不可用,用 8 个 IP 地址减去没划分子网时的那两个不可用的 IP 地址,得到结果为 6 个。所以在将 C 类大网划分为 4 个子网后,将会多出 6 个不可用的 IP 地址。
八、根据掩码来确定子网的数目
首先看题中给出的掩码是属于哪个默认掩码的“范围”内,这样我们就可以知道是对 A 类还是 B 类还是 C 类大网来划分子网。比方说 202.117.12.36/30,我们先把/30 这种另类的掩码表示法转换为我们习惯的表示法:11111111.11111111.11111111.11111100,转为十进制是 255.255.255.252。
我们可以看到,这个掩码的左边三节与 C 类默认掩码相同,只有第四节与 C 类默认掩码不同,所以我们认为 255.255.255.252 这个掩码是在 C 类默认掩码的范围之内的,意味着我们将对 C 类网络进行子网划分。因为 C 类网络的默认掩码是 255.255.255.0,将 C 类默认掩码转换为二进制是 11111111.11111111.11111111.00000000,这里的 8 个 0 表示可以用 8 位二进制数来表示 IP 地址,也就是说 C 类大网中可有 2 的 8 次方个 IP 地址,也就是 256 个 IP 地址。这道题中的掩码的最后一节是 252,转换为二进制是 11111100,因为 1 表示网络号,所以 111111 就表示将 C 类大网划分为(111111)2 进制个子网。将 111111 转换为十进制是 64,所以就表示将 C 类大网划分为 64 个子网,每个子网的 IP 地址数目是 256/64=4,去除子网中的第一个表示子网号的 IP 地址和最后一个表示广播地址的 IP 地址,子网中的可分配的 IP 地址数目就是子网中的总的 IP 地址数目再减去 2,也就是 4-2=2 个。
在这里插入图片描述

九、综合实例:
已知 172.31.128.255/18,试计算:
1、子网数目,
2、网络号,
3、主机号,
4、广播地址,
5、可分配 IP 的起止范围
解:
1、算子网数目
首先将/18 换成为我们习惯的表示法:
11111111.11111111.11000000.000000 转为十进制就是 255.255.192.0,可以看到这个掩码的左边两节和 B 类默认掩码是一致的,所以这个掩码是在 B 类默认掩码的范围内,意味着我们将对 B 类大网进行子网划分。B 类掩码默类是用 16 位(16 个 0)来表示可分配的 IP 地址,本题中的掩码在 B 类默认掩码的基础上多出了两个表示网络号的 1,这就是说是将 B 类大网划分为(11)2 进制个子网,将(11)2 进制转换为十进制就是 4,所以本题中是将 B 类大网划分为 4 个子网。
2、算网络号
用公式:将 IP 地址的二进制和子网掩码的二进制进行“与”(and)运算,得到的结果就是网络号。“与运算”的规则是 1 和 1 得 1,0 和 1 得 0,1 和 0 得 0。
172.31.128.255
转为二进制是 10101100.00011111.10000000.11111111,
掩码是:11111111.11111111.11000000.00000000
所以:
10101100.00011111.10000000.11111111
11111111.11111111.11000000.00000000
10101100.00011111.10000000.00000000
将 10101100.00011111.10000000.00000000
转换为十进制就是 172.31.128.0,所以网络号是 172.31.128.0
3、算主机号
也用公式:用 IP 地址的二进制和(子网掩码的二进制的反码)进行“与”运算,得到的结果就是主机号。反码就是将原本是 0 的变为 1,
原本是 1 的变为 0。
由于掩码是 11111111.11111111.11000000.00000000
所以其反码表示为 00000000.00000000.00111111.11111111,再将 IP 地址的二进制和掩码的反码表示法进行“与”运算:
10101100.00011111.10000000.11111111
00000000.00000000.00111111.11111111
00000000.00000000.00000000.11111111
将 00000000.00000000.00000000.11111111
转换为十进制是 0.0.0.255,我们将左边的 0 去掉,只留右边的数字,所以我们说这个 IP 的主机号是 255。主机号是表示网络号再加上 255 就是这个 IP 地址了。
4、算广播地址
也用公式:在得到网络号的基础上,将网络号右边的表示 IP 地址的主机部分的二进制位全部填上 1,再将得到的二进制数转换为十进制数就可以得到广播地址。因为本题中子网掩码是 11111111.11111111.11000000.00000000,网络号占了 18 位,所以本题中表示 IP 地址的主机部分的二进制位是 14 位,我们将网络号 172.31.128.0,转换为二进制是 10101100.00011111.10000000.00000000,然后从右边数起,将 14 个 0 全部替换为 1,即:10101100.00011111.10111111.11111111,这就是这个子网的广播地址的二进制表示法。将这个二进制广播地址转换为十进制就是 172.31.191.255
5、算可用 IP 地址范围
因为网络号是 172.31.128.0,广播地址是 172.31.191.255,所以子网中可用的 IP 地址范围就是从网络号+1 到广播地址-1,所以子网中的可用 IP 地址范围就是从 172.31.128.1-172.31.191.254。

作者

lxmuyu

发布于

2022-02-17

更新于

2022-02-17

许可协议