第 1 课,共 4 课 · 6 分钟
IP 地址:IPv4、IPv6,公有与私有
IP 地址到底是什么、为什么互联网要用两种不同的格式,以及为什么你笔记本电脑自己的地址,并不是陌生人看到的那个地址。
每一台联网设备都需要一个数字,而不是一个名字。互联网协议的核心规范 RFC 791 指出,地址“把源和目的地区分到主机这一级别”,也就是说每台设备都拥有自己的数字,这样数据包才能确切知道该去哪里。像 example.org 这样的名称只是方便人类使用,会由 DNS 解析成数字(在专门的课程中介绍);网络本身只认得数字。
IPv4:四十多亿个地址,仍然不够用
最初的格式 IPv4 使用 32 位地址,写成用点分隔的四个数字,例如 192.0.2.1。RFC 791 将其定义为“固定长度为四个字节(32 位)”。正如 Cloudflare 学习中心所解释的,32 位能容纳约 43 亿种独特组合。这个数字在 20 世纪 80 年代听起来相当庞大。但对于一个拥有数十亿部手机、笔记本电脑、路由器和智能设备的世界来说,这远远不够,这也是为什么会有一种更新、容量大得多的格式出现。
IPv6:足够容纳所有人,而且能用很久
IPv6 地址长度为 128 位,写成用冒号分隔的一组组十六进制数字,例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。正如 RFC 8200 所说,IPv6“把 IP 地址的长度从 32 位增加到 128 位,以支持更多层级的地址结构、多得多的可寻址节点数量,以及更简单的自动配置”。如今两个版本并行运行:你的 Mac 通常两种地址各有一个。
公有与私有:只有你的路由器知道的那个地址
并不是每个地址都需要能被整个互联网访问到。RFC 1918 专门划出了三段 IPv4 地址范围,供家庭、办公室和其他私有网络内部使用:
10.0.0.0到10.255.255.255172.16.0.0到172.31.255.255192.168.0.0到192.168.255.255(大多数家用路由器使用的范围)
RFC 1918 明确指出这些地址只在本地有效:“由于私有地址没有全球性的含义,关于私有网络的路由信息不应在企业间链路上传播,源地址或目的地址为私有地址的数据包也不应跨越这类链路转发。”互联网服务提供商理应拒绝任何试图把它们路由到公共互联网上的尝试。通常只需要一个地址——一般由你的路由器持有——是能被互联网其他部分找到的公有地址;这种共享方式是如何运作的,正是下一课的主题。
ipconfig getifaddr en0
192.168.1.12192.168.1.12 落在上面的私有范围之内:它在这台 Mac 自己的 Wi-Fi 网络中标识这台设备,但更广阔的互联网上没有任何计算机能直接向它发送数据包。Cloudflare 学习中心指出,大多数家庭连接从 ISP 得到的也是一个临时的“动态”公有地址,而不是一个固定地址,这个地址是从一个共享池中挑选出来的,因为对提供商和每一位客户来说,维护固定地址的成本都更高。
要点
- 设备是按数字而不是按名称寻址的;IPv4 使用 32 位地址,约有 43 亿种可能的组合。
- 根据 RFC 8200,IPv6 专门使用 128 位地址,为互联网留出了远远更大的增长空间。
- RFC 1918 为私有网络保留了三段范围(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16);它们从不会被路由到公共互联网上。
- 你 Mac 上像 192.168.1.12 这样的地址是私有的、本地的;互联网其他部分看到的公有地址由你的路由器持有。
- 大多数家庭互联网连接使用的是临时的(动态)公有地址,而不是固定地址。
自我检测
1. 32 位的 IPv4 格式大约能容纳多少个独特的地址?
- 约 43 亿个 — 正确。
- 无限多
- 约 65,000 个
- 恰好 100 万个
32 位能产生 2^32 种组合,约 43 亿种,Cloudflare 学习中心正是以此说明了 IPv4 地址最终为何会短缺。
2. 根据 RFC 8200,为什么 IPv6 使用 128 位地址而不是 32 位?
- 为了让地址更短、更好输入
- 为了支持更多层级的地址结构,以及数量多得多的可寻址节点 — 正确。
- 为了不再需要路由器
- 为了让 Wi-Fi 更快
RFC 8200 指出,更大的地址长度是“为了支持更多层级的地址结构、多得多的可寻址节点数量,以及更简单的自动配置”。
3. 以下哪一个是从不会被路由到公共互联网上的私有 IPv4 范围?
- 192.168.0.0/16 — 正确。
- 8.8.8.0/24
- 1.1.1.0/24
- 172.217.0.0/16
192.168.0.0/16 是 RFC 1918 为私有网络保留的三段范围之一;列表中的其他几个都是真实的公有地址。
4. 你的 Mac 显示地址为 192.168.1.12。这说明了什么?
- 这是互联网上陌生人用来直接联系你 Mac 的地址
- 这是一个私有地址,只在你自己的本地网络内有效 — 正确。
- 你的 Mac 没有 IP 地址
- 这是你互联网服务提供商的地址
192.168.1.12 落在 RFC 1918 的私有范围内;它只在家庭网络内标识这台 Mac,而不是对外部互联网。
用 FireAI 动手做
在你自己的 Mac 上练习这节课的内容。
来源
- RFC 791: Internet Protocol
- RFC 8200: Internet Protocol, Version 6 (IPv6) Specification
- RFC 1918: Address Allocation for Private Internets
- Cloudflare Learning: What is my IP address?
在你的 Mac 上实践
免费试用全部功能 17 天,无需绑定银行卡。