跳转到内容

🌐 深入理解 IPv4:基础协议架构

🌱 创建: 2026/04/01 ⏱️ 更新: 2026/05/22

**IPv4(Internet Protocol version 4,互联网协议第四版)**是互联网运作的核心基础协议之一,定义于 1981 年的 RFC 791 标准中。它工作在 OSI 模型的第三层(网络层),主要负责为网络中的设备分配逻辑地址,并将数据包从源节点路由到目的节点。

尽管互联网正在向下一代协议演进,但 IPv4 依然是当今局域网(LAN)和广域网(WAN)中最普遍、最重要的通信基石。本指南将全面拆解 IPv4 的底层逻辑与配置规范。


在计算机的底层世界里,IPv4 地址并非我们常见的十进制数字,而是一串 32 位(bit) 的二进制代码。

因为地址长度固定为 32 位,所以 IPv4 所能提供的理论地址总数为 $2^32$ 个,即 4,294,967,296 个。这近 43 亿个地址就是整个 IPv4 互联网的全部“门牌号”库存。

1.2 点分十进制表示法(Dotted-Decimal Notation)

Section titled “1.2 点分十进制表示法(Dotted-Decimal Notation)”

为了让人类能够方便地阅读和记忆这 32 位的二进制数字,工程师们引入了“点分十进制”格式:

  1. 将 32 位二进制数平均分为 4 组,每组 8 位(称为一个八位元 / Octet)。
  2. 将每个八位元转换为十进制数字(范围必定在 0 到 255 之间)。
  3. 使用英文句号(.)将它们连接起来。

通用换算示例: 假设一台电脑的底层 IPv4 地址为: 11000000 10101000 00000001 00001010

按照每 8 位转换十进制后:

  • 11000000 = 192
  • 10101000 = 168
  • 00000001 = 1
  • 00001010 = 10

最终呈现给用户的 IPv4 地址就是:192.168.1.10


一个 IPv4 地址不能孤立地看作一个整体,它在逻辑上被划分为两部分。这就像我们的邮政地址必须包含“街道名”和“门牌号”一样。

  • 网络部分(Network ID):标识该设备所在的子网或“街道”。如果两台设备的网络 ID 相同,说明它们在同一个局域网内,可以直接通信(通过交换机)。
  • 主机部分(Host ID):标识该子网内的具体设备或“门牌号”。网络 ID 相同的设备,其主机 ID 必须唯一,否则会导致 IP 冲突。

计算机如何知道这 32 位地址中,哪几位是网络 ID,哪几位是主机 ID 呢?这完全依赖于子网掩码

子网掩码也是一个 32 位的数字。它的规则是:掩码中为 1 的位对应 IP 地址中的网络位,掩码中为 0 的位对应主机位。

通用案例: 假设你的电脑 IP 是 192.168.1.10,子网掩码是 255.255.255.0。 将掩码化为二进制:11111111.11111111.11111111.00000000 这表示前 24 位是网络 ID,后 8 位是主机 ID。

  • 网络地址192.168.1.0(代表这个网段本身)
  • 设备地址:在这个网段中,这台电脑的编号是 10

在现代网络配置中,为了书写简便,通常不写长串的子网掩码,而是用 CIDR(无类别域间路由) 格式,即在 IP 地址后加一个斜杠 /,然后写上子网掩码中连续 1 的个数。 例如,192.168.1.10 掩码为 255.255.255.0,可以简写为:192.168.1.10/24


3. IPv4 的地址分类与特殊保留网段

Section titled “3. IPv4 的地址分类与特殊保留网段”

IPv4 并非所有的地址都可以随意在互联网上分配和使用。IANA(互联网号码分配局)对地址空间进行了严格的规划。

3.1 早期分类网络(Classful Network)

Section titled “3.1 早期分类网络(Classful Network)”

在早期设计中,IP 地址被硬性分为五类(目前已被 CIDR 灵活划分取代,但概念依然常考):

  • A 类(/8):0.0.0.0 到 127.255.255.255。用于超大型网络,支持上千万台主机。
  • B 类(/16):128.0.0.0 到 191.255.255.255。用于中型网络,支持 65534 台主机。
  • C 类(/24):192.0.0.0 到 223.255.255.255。用于小型网络,支持 254 台主机。
  • D 类:224.0.0.0 起,专用于组播(Multicast)
  • E 类:240.0.0.0 起,保留用于研究和测试。

3.2 私有地址(Private IP - RFC 1918)

Section titled “3.2 私有地址(Private IP - RFC 1918)”

由于全球只有约 43 亿个公网 IP,为了避免地址枯竭,RFC 1918 规定了三块私有 IP 网段。 这些地址无法在互联网上路由,专供企业内部或家庭局域网免费、重复使用:

  • 10 局域网10.0.0.0 - 10.255.255.255 (即 10.0.0.0/8)
  • 172 局域网172.16.0.0 - 172.31.255.255 (即 172.16.0.0/12)
  • 192 局域网192.168.0.0 - 192.168.255.255 (即 192.168.0.0/16)

场景说明:无论你在北京的咖啡馆还是在纽约的图书馆,连上 Wi-Fi 后获取的 IP 可能都是 192.168.1.x。它们在各自的内网互不干扰。当这些设备需要访问互联网时,必须通过路由器上的 NAT(网络地址转换) 技术,将私有 IP 伪装成路由器的公网 IP 发送出去。

除了私有 IP,还有几个极其特殊的网段在排错时必须了解:

  • 127.0.0.0/8 (环回地址 / Loopback):主要指 127.0.0.1,代表“本机”。无论有没有网卡或网线,只要 ping 127.0.0.1 能通,说明操作系统的 TCP/IP 协议栈工作正常。
  • 169.254.0.0/16 (APIPA):链路本地地址。当一台电脑设置为自动获取 IP,但网络中的 DHCP 服务器宕机或不存在时,操作系统会无奈地给自己随机分配一个 169.254.x.x 的地址。看到这个网段,通常意味着 DHCP 分配失败。
  • 0.0.0.0:在路由表中代表“默认路由”(发往未知目的地的流量都走这条路);在服务监听中代表“监听本机所有网卡”。
  • 255.255.255.255:全局广播地址。发往此地址的数据包会被局域网内的所有设备接收。

4. IPv4 数据包基础(Packet Header)

Section titled “4. IPv4 数据包基础(Packet Header)”

IPv4 不仅仅是“一个地址”,它还定义了数据在网络中传输时的包裹格式。每个 IPv4 数据包都包含一个报头(Header),通常为 20 个字节,包含以下关键字段:

  • 源 IP 与 目的 IP:标注是谁发出的,要发给谁。
  • TTL(Time to Live,生存时间):这是一个极其巧妙的设计。数据包每经过一个路由器(一跳),TTL 值就减 1。当 TTL 减到 0 时,路由器会直接丢弃该包,并返回一个错误信息。这有效防止了路由配置错误导致数据包在网络中无限循环(路由环路)。
  • 协议号(Protocol):告诉目标计算机,这个包里装的是 TCP(协议号 6)、UDP(协议号 17)还是 ICMP(协议号 1,如 Ping 命令)。

  • RFC 791: Internet Protocol (1981 标准制定)
  • RFC 1918: Address Allocation for Private Internets (私有地址规范)
  • RFC 4632: Classless Inter-domain Routing (CIDR 规范)
  • Wikipedia: IPv4

最近更新: