跳转至

10 我可是住二环的人 - IP 地址的组成和分类

通过上一小节,相信你对 IP 有了一个初步的认识。这一小节,和我一起来了解一下 IP 地址的黑历史。以及它的演变进程。

分类网络

img

现在和我一起来一次时间旅行,boom!我们回到了 1981 年,这一年开始出现了分类网络。我们来看一下它的工作方式是什么。这是子网掩码出现之前的事情。因此,如果你生活在 1985 年,那么你要在设备上输入 IP 地址。是没有子网掩码的。我们不需要子网掩码,为什么?因为它还不存在呢。也就是说还没有出生呢。分类网络确定了网络部分和地址的主机部分。根据地址类别,我们有 5 个 A,B,C,D 和 E 类。具体的分类看下面

class                     Private IP Range
A              0.0.0,0           127.255.255.255
B             128.0.0.0         191.255.255.255
C             192.0.0.0         223.255.255.255
D             224.0.0.0         239.255.255.255 
E             240.0.0.0         255.255.255.255
复制

从上面的分类可以看出,每一个类别的 IP 地址是固定的。A 类地址是从 0 到 127.255.255.255。然后紧接着的就是 B 类从 128.0.0.0 到 191.255.255。你有没有发现 127.255.255.255 的后一个数值就是 128.0.0.0,所以 A 和 B 其实是紧紧相邻的。然后再来看 C 的开始 192.0.0.0 是不是也是紧接着 B 的最后一个也就是 191.255.255.255。所以 C 类地址就是 192.0.0.0 到 223.255.255.255。然后依次类推 D 类就是 224.0.0.0 到 239.255.255.255。最后的 E 类也就是 240.0.0.0 到 255.255.255.255 了。

我们来分析一下 A 类的地址,其实就是前 8 位的字节是网络部分。看下面的这个例子。

10.0.10.0
10是网络部分 后面的0.10.0 是主机部分
二进制的写法是
00001010 00000000 00001010 00001010
复制

B 类的地址就是前 16 位的字节是网络部分

172.16.10.10
172.16是网络部分 后面的10.10是主机部分
二进制的写法是
10101100 000010000 00001010 00001010
复制

C 类的地址就是前 24 位的字节是网络部分

192.168.0.10
192.168.0是网络部分 后面的10是主机部分
二进制的写法是
11000000 10101000 00000000 00001010
复制

D 类的地址就是前 32 位的字节是网络部分,没有主机部分

224.0.0.6
224.0.0.6是网络部分 
二进制的写法是
11100000 00000000 00000000 00000110
复制

D 类地址主要是用于广播。这是 CCNA 的一个很重要的考点,但是你不需要了解 CCNA,因为你不是网络工程师(这里指的是天天调试 Switch 和 Router 的工程师)。然后 E 类的地址只是用于实验,并不会实际的使用。所以你也能看到这种分法的使用其实很没有效率,这也是为什么有了子网掩码。当时设计的人可能做梦也没有想到会有物联网,就是你的冰箱和微波炉都需要一个 ip。

无类寻址(IPV4 最后的挣扎)

让我们再次坐上我们的时光机,来到 1995 年。从 1995 年以后,我们将开始谈论无类寻址,因为这完全是你在职业生涯中要做的事情。毕竟你现在是 2021 年的新新人类。它的工作方式是什么呢?那就是我们现在必须使用子网掩码。子网掩码是 1994,1995 年添加到 IP 地址上的一个技术。该技术的作用是说我们想要网络部分和地址的任何地方,我们将创建一个单独的数字,一个掩码。这是一个独立的数字,将全 1 放入我们要网络部分的相应位,将所有 0 放入主机的部分。看一下下面这个例子。

203.0.113.10
203.0.113是网络部分 后面的10 是主机部分
二进制的写法是
11001011 00000000 01110001 00001010
11111111 11111111 11111111 00000000 这部分就是子网掩码,写成十进制就是
255.255.255.0
复制

因此,看一下上面的例子,你可能会稍微清楚一点。以上发生的事情是我们有了 ipv4,然后在它的下面,有一个称为子网掩码的东西。主题掩码通过在子网掩码中放置一个或我们想要的网络部分,并在想要宿主部分的位置用零来告诉我们地址网络的哪个部分是主机。因此,如果将其转换回十进制,则二进制的 11111111 会转换为十进制的 255。因此,我们将此地址 203.0.113.10 与子网掩码 255.255.255.0 结合在一起,现在我们可以显式地将网络部分和主机部分分开。但是,子网掩码的值不一定必须为 255.255.255.0。使用无类寻址,我们可以将网络部分移动到所需的任何位置。因此,如果我们的网络部分只需要八字节,我们可以将子网掩码的前 8 位的掩码更改为 1,并将子网掩码的后 24 位更改为零。那看上去就是下面这样

10.0.0.10
10是网络部分 后面的0.0.10 是主机部分
二进制的写法是
00001010 00000000 00000000 00001010
11111111 00000000 00000000 00000000这部分就是子网掩码,写成十进制就是
255.0.0.0
复制

当我们转换它时,我们得到 255.0.0.0 作为掩码,这简单地意味着我们 IP 地址的前 8 位是我们的地址的网络部分。其余的地址是主机部分,子网掩码不必每 8 位变化。它可以变成或者放在我们想要放的任何地方。因此,如果需要的话,你可以设置一个子网掩码比如前 20 位是网络部分,最后 12 位是主机部分。那会给我一个 255.255.40.0 的掩码。例子如下

10.0.0.10
10是网络部分 后面的0.0.10 是主机部分
二进制的写法是
00001010 00000000 00000000 00001010
11111111 11111111 11110000 00000000这部分就是子网掩码,写成十进制就是
255.255.240.0
复制

当然这是一个不寻常的情况,子网掩码恰好位于八位字节的中间。稍后在进行子网划分时,这会导致一些异常的十进制数字从我们的 IP 地址中弹出。但是,实际上,我想提出的要点是子网掩码的功用。子网掩码是确定 IP 地址的哪一部分寻址网络部分以及哪一部分是主机部分的数字。

好,现在让我们温故知新一下,还记得上节课讲的地址类型吗,来做一下下面的这个练习题。

这个是什么地址?
203.0.113.53
255.255.255.0