10 我可是住二环的人 - IP地址的组成和分类 通过上一小节,相信你对IP有了一个初步的认识。这一小节,和我一起来了解一下IP地址的黑历史。以及它的演变进程。

分类网络

在这里插入图片描述

现在和我一起来一次时间旅行,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

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e5%85%a8%e8%a7%a3%e7%bd%91%e7%bb%9c%e5%8d%8f%e8%ae%ae/10%20%e6%88%91%e5%8f%af%e6%98%af%e4%bd%8f%e4%ba%8c%e7%8e%af%e7%9a%84%e4%ba%ba%20-%20IP%e5%9c%b0%e5%9d%80%e7%9a%84%e7%bb%84%e6%88%90%e5%92%8c%e5%88%86%e7%b1%bb.md