理解 IP 地址的构成是掌握网络知识的第一步。IPv4 地址本质上是一个 32 位 的二进制数。我们常见的 172.21.11.100 这种写法被称为 点分十进制,其原理就是将 32 位二进制数,每 8 位分成一段,再分别转换成十进制数来表示。
例如,172.21.11.100 的二进制表示如下:

由于每段十进制数对应 8 位二进制,其能表示的最大值就是 8 位全为 1 的二进制数,即 255。因此,任何包含大于 255 数字的 IPv4 地址都是错误的,例如:
172.**256**.78.11
10.21.**300**.25
192.168.25.**400**
分类寻址
在互联网早期,IP地址的分配采用“分类寻址”方案,将地址划分为 A、B、C、D、E 五类。这种设计在很大程度上影响了早期的网络架构与路由方式。
每一类地址都固定了网络号和主机号的位数。其中,网络号用于标识主机所在的网络(同一网络的设备具有相同的网络号),而主机号则用于标识该网络下的某台具体设备。不同网络之间的通信必须依赖路由器才能完成。
子网
分类寻址存在明显缺陷:它无法根据机构的实际规模灵活分配地址空间,同时也导致了全球路由表过于庞大。为了解决这些问题,“子网”概念被引入。
子网划分,实质上是将“主机号”部分进一步切分为“子网号”和“新的主机号”两部分。这样一来,一个大型网络(如一个B类网络)就可以被划分为多个更小、更易管理的逻辑子网。

子网掩码
既然子网划分是由各个站点(如公司、校园网)内部自行决定的,没有统一标准,那么外界如何判断一个IP地址属于哪个子网呢?答案就是子网掩码。
子网掩码也是一个 32 位的二进制数,常用点分十进制表示。将 IP 地址与子网掩码进行按位与运算,得到的结果就是该 IP 地址所在的网络地址(或子网地址)。
我们来看一个具体例子:IP 地址 128.32.11.100,子网掩码 255.255.255.0。

通过计算可知,主机 128.32.11.100/255.255.255.0 属于子网 128.32.11.0,其中子网号和主机号各占用了 8 位。
在实际网络中,一个站点内部的不同部门可能需要规模不同的子网。因此,允许在同一网络内使用不同长度的子网掩码,这种技术称为可变长度子网掩码(VLSM)。
无类别域间路由 (CIDR)
子网和 VLSM 缓解了分类寻址的部分问题,但随着互联网爆炸式增长,A、B、C 类地址块的分配依然僵化,全球核心路由表条目数持续激增,给路由设备带来巨大压力。最终,无类别域间路由(CIDR) 彻底取代了分类寻址。
CIDR 的核心思想是:废除固定的 A、B、C 类划分,直接通过“网络地址 + 掩码”的形式来标识任何一个网络块。它将子网掩码的概念从站点内部扩展到了整个互联网骨干网,要求所有核心路由器都必须支持基于掩码的路由决策。
通俗地说,CIDR 让地址分配和路由变得更灵活。以前,一个 B 类地址 128.32.0.0 在骨干网上只有一条路由;而在 CIDR 下,它可以被细分为像 128.32.100.0/24 或 128.32.88.128/25 这样更小的网段,每个网段都可能拥有一条独立的骨干网路由。
前缀表示法
在 CIDR 的语境下,除了使用点分十进制的掩码,更常见的是使用前缀长度来表示网络号占用的位数。前缀是一个小于等于 32 的整数。
例如,之前的主机 128.32.11.100/255.255.255.0 可以用前缀法表示为 128.32.11.100/24,它属于网络 128.32.11.0/24。

前缀(n)与掩码的关系非常直接:前缀长度 n,就意味着掩码的前 n 位是 1,其余位是 0。

因此,我们可以快速进行转换:
- 前缀
/24 → 掩码 255.255.255.0
- 前缀
/25 → 掩码 255.255.255.128
- 前缀
/16 → 掩码 255.255.0.0
- 前缀
/17 → 掩码 255.255.128.0
由于传统的 A、B、C 类网络的网络号位数恰好是 8、16、24,所以习惯上人们也把 CIDR 中前缀为 /8、/16、/24 的网段分别俗称为 A、B、C 类网段。
网段计算实战
一个 CIDR 网段通常有以下两种等价表示形式:
- 网络地址/掩码:如
10.200.182.0/255.255.255.0, 172.17.249.64/255.255.255.192
- 网络地址/前缀:如
10.200.182.0/24, 172.17.249.64/26
前缀表示法更为简洁直观,因此被广泛使用。请注意,主机IP/掩码 或 主机IP/前缀(如 10.200.182.10/24)并不是一个“网段”的正确表示法,它只是指明了该主机所在的网络。
那么,给定一个网段,如何计算出它包含的 IP 地址范围呢?我们以 172.17.249.64/26 为例进行推导。
首先,将网络地址 172.17.249.64 转换为二进制:

前缀是 /26,意味着前 26 位是网络号,后 32-26=6 位是主机号。

由此可知,该网段总共有 2^6 = 64 个 IP 地址。其中:
- 网络地址:主机号全为 0 的地址,即
172.17.249.64。
- 广播地址:主机号全为 1 的地址,即
172.17.249.127。
- 可用主机地址范围:
172.17.249.65 到 172.17.249.126。
整理后,网段 172.17.249.64/26 的完整信息如下:
网段: 172.17.249.64/26
IP个数: 64
网络号: 172.17.249.64
掩码: 255.255.255.192
广播地址: 172.17.249.127
主机范围: 172.17.249.65-172.17.249.126
对于 /8、/16、/24 这类“边界整齐”的网段,相关信息通常一眼就能看出。但对于像 /26、/19、/28 这样的网段,掌握上述二进制计算方法是网络工程师和运维人员的必备技能。希望这篇文章能帮助你理清 IPv4 网段的核心脉络,更多网络相关知识,欢迎在 云栈社区 交流探讨。