IPv4 子网、CIDR 与分片公式表

前缀与地址数量

IPv4 前缀长度为 :其中 为主机位数。地址块总数:经典子网中排除网络地址和定向广播地址:点到点 /31 和单主机 /32 有专门用途,不能机械套用减 2 规则。

掩码

前 位为 1、后 位为 0:常见前缀:

前缀掩码地址数
/8255.0.0.0
/16255.255.0.0
/24255.255.255.0256
/25255.255.255.128128
/26255.255.255.19264
/27255.255.255.22432
/28255.255.255.24016
/29255.255.255.2488
/30255.255.255.2524

网络地址与广播地址

地址按 32 bit 无符号数处理:

经典可用主机范围:同一子网判断:实际通信双方还需要使用一致的前缀配置,并满足链路与路由条件。

块大小法

若前缀落在某个八位组,其掩码值为 :该八位组中的网络起点为块大小的整数倍:

0, BlockSize, 2×BlockSize, ...

目标 IP 落入的起点可写为:该块末尾为:

定长子网划分

从原前缀 /p 借 位:新前缀:每个子网地址数:题目采用传统“全 0、全 1 子网不可用”规则时才减去两个子网;CIDR 和现代子网划分通常允许使用。

按主机需求选前缀

经典子网至少容纳 台主机:

VLSM 按主机需求从大到小分配,每个地址块起点必须按自身块大小对齐。

路由聚合

若若干等长连续前缀满足:

  • 地址块数量为 。
  • 起始地址按聚合块大小对齐。
  • 网络地址的高位公共前缀相同。

则可从原前缀 /p 聚合为:一般方法是把最小和最大网络地址写成二进制,找到从最高位开始的最长公共前缀。

最长前缀匹配

路由表项前缀为 ,目的地址为 。匹配条件:在全部匹配项中选择 最大者:默认路由 /0 匹配所有地址,只在缺少更具体条目时使用。

IPv4 首部长度与数据长度

IHL 以 4 B 字为单位:IHL 范围为 5~15,因此首部长度为 20~60 B。

原始数据报总长度为 :Total Length 字段为 16 bit,普通 IPv4 数据报总长度最大为 65535 B。

IPv4 分片

链路 MTU 为 B,分片首部长度为 B。除最后一片外,数据长度必须是 8 B 的整数倍:分片数量:第 片数据在原数据中的起始字节为 :第 片总长度:标志位:

后面还有分片最后一片

同一原始数据报的所有分片使用相同 Identification。DF=1 时不允许沿途分片,路由器遇到过小 MTU 会丢弃并向源主机发送 ICMP 终点不可达报文(王道 4.2.8 第 10 题)。IPv6 中路由器一律不分片,丢弃后发送指示分组太大的 ICMP 报文。

分片例

IPv4 总长度 4000 B,首部 20 B,经过 MTU 1500 B 的链路:

分片数据长度Total LengthOffsetMF
11480150001
2148015001851
3102010403700

校验: B。

王道口径补充(2026-09-15 审校)

以下各条由第 4 章错题反推补入,均按王道教材口径:

  • 没有斜线时按类别取默认掩码:110.47.10.0 是 A 类,主机号 47.10.0 不是全 0,可以分配(王道 4.2.8 第 17 题)。
  • 主机号可能跨字节:172.31.128.255/18 的主机号是后 14 位,并非全 1,是单播地址;192.168.24.59/30 的后 2 位为 11,是广播地址(第 15 题)。
  • “最多分几个子网”时主机号至少留 2 位:/27 的网段最多分 个子网;不划分时每个子网最多 个地址(第 22 题)。
  • 部门需要的地址数 = 主机数 + 1 个路由器接口(王道 4.2.3 定长子网划分例)。
  • 变长划分求”可能的最小子网”:其余子网逐级对半取最大,/20 分 5 个子网为 /21、/22、/23、/24、/24,最小可分配 254(2019 真题)。
  • 几个子网能否恰好组成一个网络:二叉树上互不重叠、恰好铺满某个节点;原来的网络不一定是 /24(2021 真题,第 66 题)。
  • 默认网关 = 与主机在同一子网的路由器接口,主机掩码与该接口相同(2022 真题)。
  • 点对点链路:统考按旧标准用 /30(255.255.255.252);/31 是新标准(第 37 题)。
  • 片偏移以 8B 为单位,首部长度以 4B 为单位,总长度以 1B 为单位(第 8 题)。
  • MTU 为 800B、首部 20B 时每片最多 776B 数据,1580B 的数据报分 3 片,第 2 片总长度 796、MF=1(2021 真题)。

计算顺序

子网题

  1. 写出前缀长度和主机位数。
  2. 用按位与或块大小求网络地址。
  3. 主机位全 1 得广播地址。
  4. 根据题目规则确定可用主机范围。
  5. VLSM 从大块到小块分配并检查起点对齐。

分片题

  1. 由 IHL 求首部长度 。
  2. 用原总长度减 得数据长度 。
  3. 用 MTU 减首部,再向下按 8 B 对齐。
  4. 按原数据起始字节除以 8 填 Offset。
  5. 除最后一片外设置 MF=1。
  6. 每片重新加首部并核对总数据量。

链接