子网掩码把 IP 切割成了网络段和主机段两部分。同一网段下的不同主机之间可以互通网络。
掩码
IPV4 默认情况下 IP 地址 192.168.0.x 可以分配 256 个主机地址(不考虑首尾两个特殊的地址时)。
假设我们只需要用到 8 个主机,就可以借助子网掩码来排除剩余的主机号,以便分配给其他人用。

在上图中,我们需要为三台服务器分配 ip 地址。其中 x 取 0 - 7,对应的二进制编码为:
二进制:11111111 11111111 11111111 00000000
二进制:11111111 11111111 11111111 00000100
借助二进制的掩码中的 1 来掩盖 IPV4 对应二进制位,代表该位不能被用于主机号的分配。
则得到的二进制掩码为:
11111111 11111111 11111111 11111000
对应的十进制掩码为:
255.255.255.248
表示成子网起始点 + 子网掩码的形式为:
192.168.0.0 255.255.255.248
如果采用 CIDR 表示法,则为:
192.168.0.0/29 # 其中 29 代表二进制掩码的前 29 位是 1
网络段、主机段
在上面的例子中,掩码为 /29,表示有 2^29 个地址可以作为网络段。2^3 个地址作为主机段。
如何区分是否为同一网络段
以 192.168.0.2 和 192.168.0.5 为例,要判断这两个 IP 地址是否属于同一网段,需要结合子网掩码来计算网络地址。假设常见的默认子网掩码为 255.255.255.0(即24位掩码),以下是分析过程:
步骤 1:将IP地址和子网掩码转换为二进制
- 192.168.0.2 的二进制形式:
11000000.10101000.00000000.00000010
- 192.168.0.5 的二进制形式:
11000000.10101000.00000000.00000101
- 子网掩码 255.255.255.0 的二进制形式:
11111111.11111111.11111111.00000000
步骤 2:计算网络地址
网络地址 = IP地址 逻辑与(AND) 子网掩码。
- 192.168.0.2 的网络地址:
11000000.10101000.00000000.00000010
AND
11111111.11111111.11111111.00000000
=192.168.0.0
- 192.168.0.5 的网络地址:
11000000.10101000.00000000.00000101
AND
11111111.11111111.11111111.00000000
=192.168.0.0
结论
- 对于常见的子网掩码 255.255.255.0,两个 IP 地址的网络地址只要前 3 位相同,即可认为他们属于同一个网段。
- 如果子网掩码不同(例如 255.255.255.128),网络地址可能不同,是否属于同一个网段,需重新计算。