小白也能看懂的网络基础 04 | IP地址是如何工作的
Matrix 首页推荐
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
引言
欢迎来到网络世界,《小白也能看懂的网络基础》系列文章会从零开始帮助你构建网络的基础知识。如果你完全没有接触过网络相关的内容,那我们是一样的,在学习过程中我们肯定遇到了相同的问题!写下这些文章一方面要记录自己的学习历程,另一方面也希望帮到同样想要学习网络基础的小伙伴。
文章的部分内容与素材是我从 YouTube 频道 Network Direction 发布的系列视频学习和搜集过来的,翻译不易,部分内容可能无法做到尽善尽美,甚至可能会有部分瑕疵,我会尽力让文章内容通俗易懂,覆盖全面。若各位小伙伴发现任何问题,希望能够留言或私信告诉我,在下不胜感激!当然,我也会在第一时间进行更正。
在往后的每一篇文章中,我都会把看到文章的小伙伴当成是完全没有网络经验的小白,我的目标是和零基础小白一起建立坚实的网络基础,网络大神请略过此系列文章。
让我们开始网络之旅吧!
「地址」的重要性
在前面的课程中,我们已经见证了「地址」在网络中的重要性,网络设备需要地址,这也是他们能够将信息准确无误送达目的地的最根本的原因。说到地址,我们就不得不提一下 IP地址。
通过「IP地址」我们可以很轻松的找到一台已经接入网络中的设备。同时,我们不仅可以在本地网络通过「IP地址」定位到另一台设备。如果可以配合路由器,即便不在同一个网段的设备,我们依然能够轻易找到。
这就是「IP地址」的神奇之处!但,你真的了解「IP地址」吗?
一、IP地址的概念
IP 地址可以分成两种不同的形式,分别为 IPv4 和 IPv6。它们看起来截然不同,同时 IPv6 属于比较新的 IP 技术,暂未普及。而 IPv4 是我们最常见的地址形式,因此,本章节主要围绕 IPv4 展开讲解。
1.IPv4
首先,IPv4 地址是一段由四组数字组成的整体,每组数字中间使用点来隔开,每组数字我们又称其为八位字节,原因是,我们把每组数字都以八位形式的二进制来表示,例如 0 = 0000 0000、255 = 1111 1111 等而因为它由四组数字组成,因此我们可以将其分成四组独立的八位字节。例如下面这个IP地址,如果使用八位二进制数来表示,则为:
IP 地址的四组数字均是由从 0~255 的数字组成,不可超过这个范围,其二进制数表示形式为:00000000~11111111。因此一个正确的 IP 地址除了可以使用阿拉伯数字表示,同样可以采用二进制数表示。
而 00000000~11111111 或 0~255 这个地址范围,我们称其为 IP 空间。由此可见,二进制数据对于 IP 地址寻址的重要性,我们要学会简单的十进制与二进制数字的转换,这是为了方便后续的学习。
IP 地址可以代表 「两个地址」 ,一个是 Host Address 也就是主机地址,另一个是 Network Address 也就是网络地址,这是怎么回事儿呢?
这里,我们拿 172.16.0.1 这个IP地址举例:其中 172.16 是网络地址,而后面的 0.1 是主机地址,参考下图可以理解各个部分的含义。
观察上图,我们可以发现,左侧以 172.16 开头的主机在同一个网络中,右侧以 172.17 开头的主机在另一个网络中。这是两个不同的网络,它们之间不能直接进行沟通!但是在同一网络中的设备可以进行通信,如果你有新的设备加入,只需要将地址设置为 172.16 或 172.17 即可。如果想要实现两个网段之间的通信,则需要借助路由器来实现。
二、 类网络 Classful Networks
你可能想知道,IP 地址的前两个位置的数字是否总是代表网络地址呢?答案是否定的,那么问题来了,我们该怎么知道哪一部分是网络地址,哪一部分是主机地址呢?这个问题答案并不是固定的,它会根据实际情况进行变化。所以,要想深入了解这两个地址,我们就要从 IP 地址的历史开始进行追溯。
我们从 Internet 协议创立之初说起,在那个时候,IP地址的第一组数字第一个八位位组,始终代表网络地址;而随后的三个数字后三个八位位组,用于主机。
这意味着,我们最多只能拥有 0~255 即 256 个网络空间,每个网络空间可以拥有 1600 万台主机,这种形式的划分非常不合理!但因为 Internet 刚开始出现时并不是国际性的,只有很少的组织使用它,因此这样划分也没有什么不妥。
随着互联网的飞速发展,各个国家、各个地区都需要使用到网络空间,此时,256 个网络空间显然是不够的。因此在 1981 年时,Internet 就引入了一种全新的方法,那就是将整个 IP 空间从 A 到 E 划分成了五个类别。
这其中 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。
另外,由于第一个八位位组以 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)。
3. C类
C 类网络属于小型网络,这类网络IP地址的前三个数字为网络地址,最后一个是主机地址,且第一个八位位组的前三位固定位110(11000000)即 192,可供我们设置的有 21 位,也就是 2097152 个网络空间(2的21次方),其网络空间 IP 为 192.0.0.0~223.255.255.0,每个网络空间可以有 256 ( 2 的 8 次方)台主机。
4. 总结
- A、B 和 C 类 IP 地址的网络空间范围:
- A 类 IP 地址:0.0.0.0 ~ 127.0.0.0
- B 类 IP 地址:128.0.0.0 ~ 191.255.0.0
- C 类 IP 地址:192.0.0.0 ~ 223.255.255.0
5. 问题
- 请问下面的 IP 分别属于第几类 IP 地址,请将答案写在 IP 地址后方。
- 9.4.3.47
- 203.42.62.1
- 103.88.77.22
- 151.10.13.55
- 222.127.16.4
- 请问下面的IP地址哪一部分是主机地址?哪一部分是网络地址?
- 9.4.3.47
- 203.42.62.1
- 103.88.77.22
- 151.10.13.55
- 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 网段,同样无法进行通信。
2.2 小测试
如果,我们拥有一个 B 类地址,172.16.0.0,子网掩码为 255.255.0.0,我们使用子网划分将子网掩码设置为 255.255.240.0,请问:
- 问:我们此时拥有多少个子网空间?
答:16 个,172.16.0.0 打开了八位位组的前 16 位,而【255.255.240.0】打开了八位位组的前 20 位,20-16=4 位,这是子网的另外 4 位,因此 2 的 4 次方=16,因此,我们此时拥有16个子网空间。分别为:- 172.16.0.0
- 172.16.16.0
- 172.16.32.0
- 172.16.48.0
- 172.16.64.0
- 172.16.80.0
- 172.16.96.0
- 172.16.112.0
- 172.16.128.0
- 172.16.144.0
- 172.16.160.0
- 172.16.176.0
- 172.16.192.0
- 172.16.208.0
- 172.16.224.0
- 172.16.240.0
- 问:每个子网空间可以划分多少 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
- 链接地址:点击查看
作者的其他文章:
书本、RSS、新闻、社交网络都是获取信息的途径。如何筛选这些信息、用什么 App 阅读、阅读后如何整理,这些都是我们关心的问题。欢迎你在这个专栏分享中分享阅读的方法与体会。