计算机网络 · 第 4 章

第 4 章 子网划分与 CIDR(计算专题)

从二进制视角讲清掩码在切什么;三个地址(网络/广播/可用)的计算;步长法;划分公式;三道例题逐步骤演示;CIDR 与 IPv6。

4.1 掩码在切什么:二进制视角(本节最重要)

先看懂这一节,后面所有公式都是自然结果,不用死记。

一个 IPv4 地址是 32 位。192.168.1.100 这种十进制写法只是给人看的,计算机看到的是 32 位二进制:

192      168        1        100
11000000 10101000 00000001 01100100

问题来了:这 32 位里,从哪一位开始是主机号?地址本身不告诉你。掩码就是用来切这一刀的:

  • 掩码中 1 的位置 = 网络号;
  • 掩码中 0 的位置 = 主机号。

/24 的意思就是"前 24 位是网络号",所以掩码 = 24 个 1 + 8 个 0 = 255.255.255.0。

地址   11000000 . 10101000 . 00000001 . | 01100100
掩码   11111111 . 11111111 . 11111111 . | 00000000
       <------- 网络 24 位 ---------->    <- 主机 8 位 ->

子网划分的动作只有一句话:从主机号里借几位,当成网络号用。借 3 位,就是把后面 8 位中的前 3 位划给网络:

原 /24:  11000000 . 10101000 . 00000001 . | 00000000    主机 8 位 → 256 个地址
/27:     11000000 . 10101000 . 00000001 . 111 | 00000    主机 5 位 → 32 个地址
                                          ^^^
                                        借走 3 位
  • 借 3 位 → 能表示 2³ = 8 种组合 → 划出 8 个子网;
  • 主机位剩 5 位 → 每子网 2⁵ = 32 个地址 → 可用 30 个。

4.2 三个必须会算的地址

给定"IP + 掩码",要能秒答这三个地址。考试就考这个。

名称怎么算能不能给主机用
网络地址主机位全 0(IP AND 掩码)❌ 不能
广播地址主机位全 1❌ 不能
可用主机地址网络地址 + 1 ~ 广播地址 − 1✅ 能
由此推出必背公式
  • 每个子网可用主机数 = 2^主机位数 − 2(减掉的 2 就是网络地址和广播地址)。
IP 地址 32 位中网络位与主机位的划分示意图
图 4-1 32 位地址的划分:借位就是把主机位的最高几位划归网络位

掩码速查表(背下来,考场直接查用):

CIDR掩码主机位子网内地址数可用主机数
/24255.255.255.08256254
/25255.255.255.1287128126
/26255.255.255.19266462
/27255.255.255.22453230
/28255.255.255.24041614
/29255.255.255.248386
/30255.255.255.252242

4.3 步长法:30 秒出答案的捷径

考场上不要手算二进制,用步长法一步定位子网段。

最省事的算法:算"步长"。步长 = 256 − 掩码最后一段。比如 /26 → 256 − 192 = 64。 于是子网起点就是 0、64、128、192 这样每隔 64 跳一次。

步长 = 2^主机位 = 256 − 掩码最后一段

为什么 256 − 掩码最后一段 = 步长?(把来源搞懂就永远不会把"步长"和"可用主机数"记混)

掩码 /27 = 255.255.255.224,最后一段 224 = 11100000₂, 前 3 个 1 正是借走的那 3 位。一个子网占满"这 3 位固定、后面 5 位随便变"的全部组合,也就是 2⁵ = 32 个地址。 而 256 − 224 = 32 —— 这两个数永远相等,因为掩码最后一段里"0 的个数"就等于主机位数。

掩码最后一段二进制主机位步长(= 每段地址数)可用主机数
128100000007128126
1921100000066462
2241110000053230
2401111000041614
24811111000386
25211111100242
划分公式(要划分子网时用)
  • 子网个数 = 2^n(n = 借的位数)
  • 每个子网可用主机数 = 2^(原主机位 − n) − 2
  • 新掩码前缀 = 原前缀 + n;步长 = 256 − 新掩码最后一段
易错
  • 步长 ≠ 可用主机数:/26 步长 64,可用主机 62。
  • 掩码最后一段不是 0 或 128 时,必须算步长,不能凭感觉猜子网起点。

4.4 例题演示(三类题型各一道)

这三道就是考场上会出现的全部花样,每步都写清楚,照抄思路即可。

例题 1 · 把网络划成指定数量的子网

把 192.168.1.0/24 划分为 8 个子网。

  1. 要 8 个子网 → 2ⁿ = 8 → 借 3 位(n=3);
  2. 新前缀 = 24 + 3 = /27,掩码 = 255.255.255.224;
  3. 每个子网主机数 = 2^(8−3) − 2 = 2⁵ − 2 = 30;
  4. 步长 = 256 − 224 = 32 → 子网起点:0、32、64、96、128、160、192、224(正好 8 个 ✓);
  5. 第 3 个子网(起点 64):
    • 网络地址:192.168.1.64
    • 可用主机:192.168.1.65 ~ 192.168.1.94
    • 广播地址:192.168.1.95
例题 2 · 给 IP 和掩码,求三个地址

IP = 192.168.10.130,掩码 = 255.255.255.192(/26)。

  1. 步长 = 256 − 192 = 64 → 子网段:0–63、64–127、128–191、192–255;
  2. 130 落在 128–191 这一段;
  3. 所以:网络地址 192.168.10.128;广播地址 192.168.10.191; 可用主机 192.168.10.129 ~ 192.168.10.190。

关键动作:先数出 130 落在哪个"64 段"里。这一步比背公式重要。

例题 3 · 判断是否同一子网

192.168.1.65/26 和 192.168.1.130/26 在同一子网吗?

  • 65 → 落在 64–127 段 → 子网 192.168.1.64;
  • 130 → 落在 128–191 段 → 子网 192.168.1.128;
  • 不在同一子网。
课堂练习(4 题)
  1. 把 172.16.0.0/16 划分成 4 个子网,新掩码是什么?每个子网可用主机数是多少? 答:借 2 位 → 新前缀 /18,掩码 255.255.192.0;每子网 2^(16−2) − 2 = 16382 个可用主机。
  2. IP = 10.10.10.200,掩码 255.255.255.224(/27),网络地址和广播地址分别是? 答:步长 32 → 200 落在 192–223 段;网络地址 10.10.10.192,广播地址 10.10.10.223。
  3. 192.168.5.100/28 的网络地址和可用主机范围是? 答:步长 16 → 100 落在 96–111 段;网络地址 192.168.5.96,可用主机 192.168.5.97 ~ 192.168.5.110,广播 192.168.5.111。
  4. 一个子网掩码是 255.255.255.248,这个子网最多能接几台主机? 答:/29,主机位 3,2³ − 2 = 6 台。

4.5 CIDR 与超网:反向操作

把多个小网"合并"成一个大网,概念题为主。

CIDR(无类别域间路由)用 /n 的写法直接标明网络位数,不再按 A/B/C 类的固定划分。 既然可以借位切细(子网划分),当然也可以"并网"(超网 / 路由聚合):把几个连续的小网段合并成一条更大的路由, 减少路由表条目。

超网示例:把 192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 合并
                       ↓
              192.168.0.0/22  (一条路由顶四条)
说明:0 与 3 的二进制前 22 位相同 → 可以合并为 /22
判断能否合并的口诀
  • 看网络号前缀相同的位数:能合并成几条路由取决于共同前缀的长度(合并后前缀变短)。
  • 子网划分 = 前缀变长(切细);超网聚合 = 前缀变短(合并)。
课堂练习(2 题)
  1. CIDR 写法 /26 表示什么? 答:前 26 位是网络位,对应掩码 255.255.255.192,每子网 64 个地址、62 个可用主机。
  2. 192.168.4.0/24 和 192.168.5.0/24 能合并成什么? 答:可以合并为 192.168.4.0/23(第三段 4 与 5 的最低位不同,其余相同)。