从 IP 地址的工作方式聊聊它们的划分规律

Matrix 首页推荐

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。

引言

欢迎来到网络世界,《小白也能看懂的网络基础》系列文章会从零开始帮助你构建网络的基础知识。如果你完全没有接触过网络相关的内容,那我们是一样的,在学习过程中我们肯定遇到了相同的问题!写下这些文章一方面要记录自己的学习历程,另一方面也希望帮到同样想要学习网络基础的小伙伴。

文章的部分内容与素材是我从 YouTube 频道 Network Direction 发布的系列视频学习和搜集过来的,翻译不易,部分内容可能无法做到尽善尽美,甚至可能会有部分瑕疵,我会尽力让文章内容通俗易懂,覆盖全面。若各位小伙伴发现任何问题,希望能够留言或私信告诉我,在下不胜感激!当然,我也会在第一时间进行更正。

在往后的每一篇文章中,我都会把看到文章的小伙伴当成是完全没有网络经验的小白,我的目标是和零基础小白一起建立坚实的网络基础,网络大神请略过此系列文章。

让我们开始网络之旅吧!

「地址」的重要性

在前面的课程中,我们已经见证了「地址」在网络中的重要性,网络设备需要地址,这也是他们能够将信息准确无误送达目的地的最根本的原因。说到地址,我们就不得不提一下 IP地址。

通过「IP地址」我们可以很轻松的找到一台已经接入网络中的设备。同时,我们不仅可以在本地网络通过「IP地址」定位到另一台设备。如果可以配合路由器,即便不在同一个网段的设备,我们依然能够轻易找到。

这就是「IP地址」的神奇之处!但,你真的了解「IP地址」吗?

一、IP地址的概念

IPv4与IPv6

IP 地址可以分成两种不同的形式,分别为 IPv4 和 IPv6。它们看起来截然不同,同时 IPv6 属于比较新的 IP 技术,暂未普及。而 IPv4 是我们最常见的地址形式,因此,本章节主要围绕 IPv4 展开讲解。

1.IPv4

首先,IPv4 地址是一段由四组数字组成的整体,每组数字中间使用来隔开,每组数字我们又称其为八位字节,原因是,我们把每组数字都以八位形式的二进制来表示,例如 0 = 0000 0000、255 = 1111 1111 等而因为它由四组数字组成,因此我们可以将其分成四组独立的八位字节。例如下面这个IP地址,如果使用八位二进制数来表示,则为:

二进制表示IP地址

IP 地址的四组数字均是由从 0~255 的数字组成,不可超过这个范围,其二进制数表示形式为:00000000~11111111。因此一个正确的 IP 地址除了可以使用阿拉伯数字表示,同样可以采用二进制数表示。

IP地址取值范围

而 00000000~11111111 或 0~255 这个地址范围,我们称其为 IP 空间。由此可见,二进制数据对于 IP 地址寻址的重要性,我们要学会简单的十进制与二进制数字的转换,这是为了方便后续的学习。

IP空间:0.0.0.0 ~ 255.255.255.255

IP 地址可以代表 「两个地址」 ,一个是 Host Address 也就是主机地址,另一个是 Network Address 也就是网络地址,这是怎么回事儿呢?

IP地址的两个含义

这里,我们拿 172.16.0.1 这个IP地址举例:其中 172.16 是网络地址,而后面的 0.1 是主机地址,参考下图可以理解各个部分的含义。

网络地址与主机地址

观察上图,我们可以发现,左侧以 172.16 开头的主机在同一个网络中,右侧以 172.17 开头的主机在另一个网络中。这是两个不同的网络,它们之间不能直接进行沟通!但是在同一网络中的设备可以进行通信,如果你有新的设备加入,只需要将地址设置为 172.16 或 172.17 即可。如果想要实现两个网段之间的通信,则需要借助路由器来实现。

通过路由其实现不同网段的通信

二、 类网络 Classful Networks

你可能想知道,IP 地址的前两个位置的数字是否总是代表网络地址呢?答案是否定的,那么问题来了,我们该怎么知道哪一部分是网络地址,哪一部分是主机地址呢?这个问题答案并不是固定的,它会根据实际情况进行变化。所以,要想深入了解这两个地址,我们就要从 IP 地址的历史开始进行追溯。

我们从 Internet 协议创立之初说起,在那个时候,IP地址的第一组数字第一个八位位组,始终代表网络地址;而随后的三个数字后三个八位位组,用于主机。

IP地址初始组成部分

这意味着,我们最多只能拥有 0~255 即 256 个网络空间,每个网络空间可以拥有 1600 万台主机,这种形式的划分非常不合理!但因为 Internet 刚开始出现时并不是国际性的,只有很少的组织使用它,因此这样划分也没有什么不妥。

随着互联网的飞速发展,各个国家、各个地区都需要使用到网络空间,此时,256 个网络空间显然是不够的。因此在 1981 年时,Internet 就引入了一种全新的方法,那就是将整个 IP 空间从 A 到 E 划分成了五个类别。

五类IP地址

这其中 A、B 和 C 类应用于设备寻址(也就是我们的电脑、打印机等设备可通过这类地址发现彼此);D 类用于组播(源主机分发信息到多台其他机器);E 类属于保留地址(特殊使用)。因此,A、B 和 C 类地址属于我们现在需要考虑的部分。

1. A类

A 类 IP 地址第一个八位位组是网络空间,后三个八位位组是地址空间;虽然拥有很少的网络空间,但是却拥有庞大的主机空间。这里需要注意的是,A 类地址八位位组中的第一位始终为 0 固定位,剩下的 7 位可供给我们进行分配,因此,我们只有 0~127 即 128 个网络空间可供分配,网络空间从 0.0.0.0 ~ 127.0.0.0。

A类地址

另外,由于第一个八位位组以 0 和 127 开头的网络空间是要用作保留的,所以实际可供分配网络空间为 126 个,其网络空间IP地址为 1.0.0.0 ~ 126.0.0.0。每个空间可供分配主机为16777216 台(2的24次方=16777216)。

2. B类

B 类网络适用于中等数量主机的情况,前两个八位位组用于网络空间划分,后面两个则用于主机地址划分,网络的前两个位始终为 1 和 0(10000000)即 128,可供我们设置的有 14 位,也就是 16384 个网络空间(2 的 14 次方=16384),其网络空间 IP 为 128.0.0.0 ~ 191.255.0.0,每个网络空间可以拥有 65536 台主机(2 的 16 次方=65536)。

B类地址

3. C类

C 类网络属于小型网络,这类网络IP地址的前三个数字为网络地址,最后一个是主机地址,且第一个八位位组的前三位固定位110(11000000)即 192,可供我们设置的有 21 位,也就是 2097152 个网络空间(2的21次方),其网络空间 IP 为 192.0.0.0~223.255.255.0,每个网络空间可以有 256 ( 2 的 8 次方)台主机。

C类地址

4. 总结

  1. A、B 和 C 类 IP 地址的网络空间范围:
    1. A 类 IP 地址:0.0.0.0 ~ 127.0.0.0
    2. B 类 IP 地址:128.0.0.0 ~ 191.255.0.0
    3. C 类 IP 地址:192.0.0.0 ~ 223.255.255.0

5. 问题

  1. 请问下面的 IP 分别属于第几类 IP 地址,请将答案写在 IP 地址后方。
    1. 9.4.3.47
    2. 203.42.62.1
    3. 103.88.77.22
    4. 151.10.13.55
    5. 222.127.16.4
  2. 请问下面的IP地址哪一部分是主机地址?哪一部分是网络地址
    1. 9.4.3.47
    2. 203.42.62.1
    3. 103.88.77.22
    4. 151.10.13.55
    5. 222.127.16.4

6. 小提示

观察上图,若 172.16 网段中的 0.1 主机想要发送信息给同网段中的 0.2 主机,0.1 主机首先就会查看 0.2 主机是否与自己在同一网段下,靠什么查看呢?

两种方式,一种是查看八位位组是否一致;另一种是查看IP地址的前两组数是否一致,若一致,则代表在同一网段,因此可以直接发送信息;

172.16 网段中的 0.1 主机想要发送信息给 172.17 网段中的 0.2 主机,同样是根据上述方法检测,此时发现 0.2 主机在另一网段,因此需要借助路由器来实现信息的交互。

这就是 IP 地址的运行机制,你学会了吗?

三、无类网络和子网划分

随着互联网的飞速发展,我们消耗 IP 的速度越来越快,IP 地址渐渐的又不够用了,因此,在 1993 年,引入了一种新的方法,称为无类别域间路由(Classless Inter-Domain Routing)简称 CIDR。

以前我们通过查看IP的前几位来识别 IP 地址类别,知道该 IP 类别后,我们就直到了 IP 中的哪一部分用于网络,哪一部分用于主机;但是现在,我们需要引入一种全新的概念——子网划分

1. 子网掩码

子网掩码同样由 4 个八位位组组成,与 IP 地址如出一辙;如图,255.255.0.0 就是 172.16.3.4 的子网掩码。

子网掩码的每一位都与 IP 地址对齐,例如 172 与第一个 255 对齐,16 与第二个 255 对齐,通过图中我们可以发现,子网掩码设置为 255 的位,即为网络地址,设置位 0 的位,即为主机地址。

此时,我相信很多读者突然恍然大明白了,原来我们在自己电脑上设置IP地址信息时的子网掩码是这个意思呀,有了这样一个概念,我们就可以通过子网掩码很快的得知 IP 地址属于哪一类网络。

若子网掩码设置为 255.0.0.0 则为 A 类网络;255.255.0.0 则为 B 类网络;255.255.255.0 则为 C 类网络,So Easy~

此时,大家可能会说,就这?我们的问题是IP地址不够用的问题,你这不是说了个寂寞吗?仅仅能分辨 IP 地址类别有个卵用?

别急,接下来,咱们就看一下 CIDR 的真正强大之处。

2. 子网划分

将大型网络分解为小型网路的能力,我们称之为子网划分,假设你拥有一个 172.16.0.0 的网络空间,子网掩码为 255.255.0.0,这意味着我们可以在该网络空间布置 6.5 万台主机,试问,有那个公司敢说自己的办公室可以容得下这么多主机?即便有这么大的办公室,也没那么多员工啊?

假如我们只有几间小办公室,然后我们拥有 172.16.0.0 这个网络空间,这意味着每个办公室要划分 65000 台主机,如果用不完会对网络地址造成极大浪费!

所以,我们需要通过修改子网掩码来打破现在的这种网络划分结构,将原来的子网掩码 255.255.0.0 修改为 255.255.255.0,如此一来,我们就拥有了 256 个不同的子网,每个子网可以划分 256 台主机。

2.1 注意事项

同一子网,不同IP

这里我们需要强调一下,同一子网中的设备必须位于同一 IP 网段中,否则它们将无法进行通信;若同一子网中的设备被路由器隔开,即便是同一 IP 网段,同样无法进行通信。

2.2 小测试

如果,我们拥有一个 B 类地址,172.16.0.0,子网掩码为 255.255.0.0,我们使用子网划分将子网掩码设置为 255.255.240.0,请问:

  1. 问:我们此时拥有多少个子网空间?
    答:16 个,172.16.0.0 打开了八位位组的前 16 位,而【255.255.240.0】打开了八位位组的前 20 位,20-16=4 位,这是子网的另外 4 位,因此 2 的 4 次方=16,因此,我们此时拥有16个子网空间。分别为:
    1. 172.16.0.0
    2. 172.16.16.0
    3. 172.16.32.0
    4. 172.16.48.0
    5. 172.16.64.0
    6. 172.16.80.0
    7. 172.16.96.0
    8. 172.16.112.0
    9. 172.16.128.0
    10. 172.16.144.0
    11. 172.16.160.0
    12. 172.16.176.0
    13. 172.16.192.0
    14. 172.16.208.0
    15. 172.16.224.0
    16. 172.16.240.0
  2. 问:每个子网空间可以划分多少 IP 地址?【例如:176.16.0.1 ~176.16.15.255】
    答:每个子网有 16 * 256 = 4096 个 IP 地址。

如果你能够很快得出答案,祝贺你,你已经掌握了子网划分的技巧,并能够清晰的了解每个部分的含义。为了方便我们快速得知子网划分的个数,我们可以使用【CIDR记录法】来进行记录。

这里,我们拿 192.16.1.0 / 24 来举例,这个 /24 的意思,就是打开 IP 八位位组的前 24 为,即1111 1111.1111 1111.1111 1111.0000 0000,其子网掩码就是 255.255.255.0,因此 /24 = 255.255.255.0。

2.3 实战练习

了解了 CIDR 记录法,我们来看一个小练习,参考下图

问:为什么网段 A 中的设备无法通过路由器与网段 B 进行通信?

答:问题的重点在中间路由器所在的网段,通过 172.16.2.0/30 得知,八位位组的前30位都打开了,因此只留下 2 位允许划分空间,根据 2 的 2 次方=4 可以确定该网段之划分了 4 个 IP 地址 172.16.2.0~172.16.2.3。右侧的路由器 IP 为 172.16.2.20,很明显不在正确范围内。


原作者:

  • 原文作者:Network Direction
  • 链接地址:点击查看

作者的其他文章:

  1. 小白也能看懂的网络基础 01 | 什么是网络?
  2. 小白也能看懂的网络基础 02 | 连接设备
  3. 小白也能看懂的网络基础 03 | OSI 模型是如何工作的?
  4. 小白也能看懂的网络基础 04 | IP 地址是如何工作的?
  5. 小白也能看懂的网络基础05 | IP地址深度学习