LOADING
1911 字
预计 10 分钟
... 次阅读
打破255思维定势,从二进制本质看透子网掩码与CIDR

在网络工程和系统运维的学习中,IP地址、子网掩码和CIDR是绕不开的基础。很多时候,我们习惯了 192.168.1.*255.255.255.0 的固定搭配,却在遇到 255.255.255.192 这样的掩码时感到无从下手。 今天,我们就抛开死记硬背,从二进制的底层逻辑出发,重新认识这些子网划分的基础。

1 IP地址分类与特殊地址的含义#

在CIDR出现之前,早期的互联网(IPv4)采用的是分类网络(Classful Network) 架构。IP地址用32位二进制表示,不过通常表示为点分十进制。这些IP被静态地划分为五类,其中最常用的是 A、B、C 三类:

  • A类地址:
    • 结构: 8位网络号 + 24位主机号。最高位固定为 0
    • 范围: 1.0.0.0126.255.255.255127.x.x.x 保留为环回地址,用于本地测试)。
    • 默认掩码: 255.0.0.0。适合超大型网络。
  • B类地址:
    • 结构: 16位网络号 + 16位主机号。最高两位固定为 10
    • 范围: 128.0.0.0191.255.255.255
    • 默认掩码: 255.255.0.0。适合中型网络。
  • C类地址:
    • 结构: 24位网络号 + 8位主机号。最高三位固定为 110
    • 范围: 192.0.0.0223.255.255.255
    • 默认掩码: 255.255.255.0。适合小型网络。

此外,在一个完整的网段中,有两个IP地址具有特殊物理含义,永远不能分配给具体的主机

  1. 网络地址(Network Address): 主机号部分全为 0 的地址。它代表这个网段本身,是路由器进行路由表查找时的目标标识。例如:192.168.1.0
  2. 广播地址(Broadcast Address): 主机号部分全为 1 的地址。当向这个地址发送数据包时,该网段内的所有设备都会收到。例如:192.168.1.255

2 子网掩码的本质与子网划分#

2.1 掩码的本质#

子网掩码的作用只有一个:切割网络号和主机号。 它的硬性规则是:转换成二进制后,左边必须全是连续的 1(代表网络位),右边必须全是连续的 0(代表主机位)。

当掩码的 1 刚好占满 8 位(一个字节)时,二进制 11111111 转换成十进制就是 255。这就是我们常见到 255.255.255.0 的原因。

而计算机是通过将 IP 地址与子网掩码进行 按位与(AND) 运算,来得出该 IP 所属的网络地址的。规则是:1 AND 1 = 1,其他皆为 0

这里举个例子:

IP 192.168.1.65/26

  1. IP 二进制: 11000000 . 10101000 . 00000001 . 01000001 (65)

  2. 掩码 二进制: 11111111 . 11111111 . 11111111 . 11000000 (255.255.255.192)

  3. 按位 AND: 11000000 . 10101000 . 00000001 . 01000000 -> 网络地址:192.168.1.64

  4. 计算广播地址: 将网络地址中的主机位(最后 6 位,即掩码为 0 的部分)全部替换为 1

    11000000 . 10101000 . 00000001 . 01111111 -> 广播地址:192.168.1.127

  5. 可用主机数: 262=622^{6} - 2 = 62 个(减去网络地址和广播地址),即 192.168.1.65192.168.1.126

2.2 子网划分与“核心密码表”#

在实际应用中,默认的 A/B/C 类网络往往粒度太大(例如一个 C 类网络有 254 个可用IP,但某个部门只需 30 个),为了不浪费IP,我们需要进行子网划分(Subnetting)

子网划分的本质是:向主机位“借位”来充当网络位

一旦借位,掩码中连续 10 的分界线就会落在一个字节的内部,这就产生了非 255 的十进制数字。以下是8位二进制中,连续的 1 可能产生的所有十进制结果(强烈建议熟记此表):

二进制形态掩码十进制值对应借用的比特数剩余主机位数
1000000012817
1100000019226
1110000022435
1111000024044
1111100024853
1111110025262
1111111025471
1111111125580

举例说明: 假设拥有一个C类网络 192.168.1.0,默认掩码 255.255.255.0。 现在想将其划分为 4 个小规模子网。

  • 需要借位:22=42^2 = 4,因此向主机位借 2 位
  • 新掩码二进制:11111111.11111111.11111111.11000000
  • 查阅上方密码表,第四个字节 11000000 对应十进制 192
  • 因此,新的子网掩码为 255.255.255.192

3 CIDR(无类别域间路由)#

由于早期的 A/B/C 类网络划分过于僵化,导致大量 IP 地址被闲置浪费,互联网工程任务组(IETF)引入了 CIDR(Classless Inter-Domain Routing,无类别域间路由)

CIDR 彻底打破了 A/B/C 类的严格边界,它采用一种极其直观的后缀表示法:IP地址/前缀长度

例如:192.168.1.0/26。 这里的 /26 (前缀长度)直接代表了子网掩码中连续 1 的个数。这意味着前 26 位是网络位,后 6 位(32 - 26)是主机位。

CIDR 不仅可以用于子网划分(向下拆分网段),更重要的是它支持路由聚合(Supernetting,超网)。通过将多个小网段合并成一个拥有更短前缀(如 /22)的大网段,可以极大程度地减少骨干路由器中路由表的条目数量,提升网络转发效率。

4 将子网掩码转换为 CIDR 前缀长度#

掌握了底层的二进制规律,这二者的转换非常简单:

方法:计算点分十进制掩码转换成二进制后,里面有多少个 1

以掩码 255.255.255.224 为例:

  1. 前三个 255 都是 8 个 1,合计 8×3=248 \times 3 = 241
  2. 看第四个字节 224。根据前面的“核心密码表”,224 的二进制是 11100000,包含 3 个 1
  3. 1 的个数 = 24+3=2724 + 3 = 27
  4. 因此,该掩码对应的 CIDR 前缀长度为 /27

5 根据子网掩码和前缀长度计算子网大小#

网络工程中最常见的问题是:这个网段到底能容纳多少台设备? 计算公式十分简单:

  1. 确定主机位数(nn): n=32CIDR前缀长度n = 32 - \text{CIDR前缀长度}
  2. 计算 IP 总数: 2n2^n
  3. 计算可用主机数: 2n22^n - 2 (必须减去全0的网络地址和全1的广播地址)

举个例子:CIDR 为 /28 的网段能容纳多少设备?

  • 主机位数:3228=432 - 28 = 4
  • IP 总数:24=162^4 = 16
  • 可用主机数:162=1416 - 2 = 14 个(即该网段最多能分配给 14 台设备)。

6 常见掩码、CIDR与IP总数对应关系速查表#

在日常工作中,有些常用的网段划分不需要每次都去算二进制,直接查表可以极大提高效率。以下列出了中小型网络中最常用的 CIDR 与掩码对应关系:

CIDR 前缀子网掩码 (点分十进制)IP 总数 (2n)可用主机数 (2n−2)常见应用场景
/22255.255.252.010241022中型企业办公网聚合
/23255.255.254.0512510较大型局域网
/24255.255.255.0256254标准C类,最常见的家庭/办公网
/25255.255.255.128128126将C类对半划分
/26255.255.255.1926462小型部门隔离
/27255.255.255.2243230微型子网
/28255.255.255.2401614较小规模IP分配
/29255.255.255.24886小型服务器集群
/30255.255.255.25242点对点链路(如路由器互联)
/31255.255.255.25420 (见注)RFC 3021 标准下的点对点链路
/32255.255.255.25511单机主机路由(Host Route)

(注:在传统的IPv4标准中,/31 是没有可用主机的,因为仅有的2个IP分别被网络地址和广播地址占据。但根据 RFC 3021,在严格的点对点链路中,/31 可以直接将这2个IP分配给两端路由器使用,不设广播地址。)

写在最后#

网络底层的运算看似枯燥,但只要掌握了“借位”和“掩码二进制”的核心密码,一切网段划分和计算都会变得豁然开朗。希望这篇笔记能帮助大家彻底搞懂掩码与CIDR的奥秘!

打破255思维定势,从二进制本质看透子网掩码与CIDR
作者
月半菌
发布时间
2026-03-11
许可协议
CC BY-NC-SA 4.0
评论
正在加载评论...
文章最后更新于: 1 个月前
部分信息可能已过时,请留意时效性
Profile Image of the Author
月半菌
用通俗的语言,传递实用的干货,还有好玩的资源,尽在月半菌!
公告
欢迎来到月半菌的博客!博客于2026年春节正式上线!欢迎提出宝贵意见!
站点数据
14
文章数目
0
已运行
89.4 k
总字数
--
本站访客数
--
总访问量
最后更新
你好! 欢迎访问
操作系统
...
浏览器
...
您的IP
...
网络接入
... ...
* 信息仅在本地展示,不涉及隐私存储