1. IPv4地址结构
IPv4 地址长度为32 bit,常用表示法为点分十进制,即 4 个字节,每个字节范围 0–255
,例:192.168.1.1
。
32 位的 IPv4 地址被逻辑上划分为两个主要组成部分:网络部分(Network Part)和主机部分(Host Part)。网络部分用于识别设备所在的特定子网或网络,而主机部分则用于识别该网络内的特定设备 。
2. IPv4地址分类
分类寻址模式
在 无类别域间路由(CIDR)出现之前,IPv4 采用的是分类寻址(Classful Addressing)模式。这种模型将地址空间划分为 A、B、C、D、E 五个类别,并为每个类别设定了固定的网络与主机边界 。提供一种简单的网络扩展机制,允许大型网络使用 A 类或 B 类地址,小型网络使用 C 类子网 。地址类别通过地址的第一个字节来确定。
类别 | 起始地址范围 | 默认子网掩码 | 网络位数 | 主机位数 | 用途 |
---|---|---|---|---|---|
A 类 | 0.0.0.0 – 127.255.255.255 | 255.0.0.0 | 8 | 24 | 大型网络 |
B 类 | 128.0.0.0 – 191.255.255.255 | 255.255.0.0 | 16 | 16 | 中型网络 |
C 类 | 192.0.0.0 – 223.255.255.255 | 255.255.255.0 | 24 | 8 | 小型网络 |
D 类 | 224.0.0.0 – 239.255.255.255 | — | — | — | 组播 |
E 类 | 240.0.0.0 – 255.255.255.255 | — | — | — | 保留(实验用) |
无类别域间路由 (CIDR)
CIDR 是一种 IP 地址分配方法,它根据网络前缀(network prefix)而非过时的地址类别来进行地址分配和路由,显著提高了互联网上的数据路由效率和 IP 地址分配的灵活性。
CIDR 采用斜线表示法(Slash Notation)来明确指示地址的网络前缀长度,其格式为:IP 地址/前缀长度。例如,192.168.1.0/22
表示一个 IP 地址块,其中前 22 位用于网络标识符。前缀长度明确定义了网络部分和主机部分之间的边界,彻底打破了 A、B、C 类的僵硬约束。
CIDR 块是一组共享相同网络前缀和位数的 IP 地址集合。国际互联网号码分配机构(IANA)将最大的 CIDR 块(通常是 /8)分配给区域互联网注册管理机构(RIR)。随后,RIR 再将较小的块分配给本地互联网注册管理机构(LIR),最终由 LIR 或 ISP 分配给终端组织和用户。
子网划分与子网掩码
子网(Subnet)是 IP 网络在逻辑上的进一步细分。子网划分(Subnetting)实践是通过“借用”主机地址中的位来创建更小、更易于管理的网络段,将主机标识符分为子网编号和主机标识符。子网掩码是一个 32 位的位掩码,它以点分十进制形式表示,用来明确定义网络的路由前缀长度。例如,一个 /24
前缀对应的子网掩码是 255.255.255.0
。
路由器对 IP 地址和子网掩码执行位逻辑与操作。该操作的结果即为网络标识符(Network ID),它是该子网中的最低 IP 地址。
子网中的可用主机地址数量通过公式 计算,其中 h 是主机位(host bits)的数量。减去 2 是因为每个子网中有两个地址是保留的:
- 网络 ID(Network ID): 主机部分所有位为 0,用于识别网络本身,是路由器的路由前缀。
- 广播地址(Broadcast Address): 主机部分所有位为 1,用于向该子网中的所有设备发送数据。
例如,一个 /26
子网有 6 个主机位 (h=6
),因此可用主机数为 个。当路由器判断目标 IP 地址的网络前缀与源地址不同时,流量就必须通过路由器发送到外部,从而实现本地流量与远程流量的有效分离。
可变长子网掩码 (VLSM)
允许在同一地址空间内使用不同的子网掩码,依赖于 CIDR。在传统的固定长度子网掩码(FLSM)模式中,所有子网都必须具有相同的大小,导致地址空间被大量浪费。相比之下,VLSM 通过根据特定网络段的精确需求来调整子网大小,从而最大限度地减少 IP 地址浪费。一个需要 100 个地址的大型分支机构可能被分配一个拥有 128 个地址的 /25
子网,而一个只需要 20 个地址的小型办公室则可以分配一个提供 32 个地址的 /27
子网。这种定制化的方法不仅节省了空间,还优化了网络资源管理,确保了每个 IP 地址都物尽其用。
3. 保留与特殊用途地址
私有地址
用于构建私有内部网络,这些地址在公共互联网上是不可路由的。这一保留机制对于减轻公共 IP 地址的压力至关重要,因为它允许数百万个内部网络设备共享有限的公共地址,由RFC1918定义。
范围描述 | IP 地址范围 | CIDR 标记 | 分类等效 | 地址数量 |
---|---|---|---|---|
大型块 | 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | 单个 A 类网络 | 16,777,216 |
中型块 | 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | 16 个连续 B 类网络 | 1,048,576 |
小型块 | 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | 256 个连续 C 类网络 | 65,536 |
回环地址
回环地址(Loopback Address)用于设备向自身发送数据,主要用于测试、网络诊断和进程间通信。在 IPv4 中,整个 127.0.0.0/8 网络块都被保留用于回环目的。
该范围提供了超过 1,600 万个可能的地址,但 127.0.0.1
是最常用和约定俗成的地址,通常被称为localhost
。发送到此地址的任何数据都不会离开设备本身,而是通过网络堆栈内部回送。
IPv4 为回环功能分配了整个 /8
块(1,600 万地址),这一分配规模巨大。相比之下,后来的 IPv6 仅分配了一个地址(::1
)用于相同功能。
多播地址
多播地址用于一对多通信,允许将数据包同时传输给一组特定的接收者。这些地址标识的是一个群组,而非单个网络接口。多播地址空间对应于传统的 D 类范围,即从 224.0.0.0
到 239.255.255.255
(224/4
前缀)。某些子范围,例如 232.0.0.0/8
,被专门用于特定的多播协议(如源特定多播 SSM)。