1 题型 - IPv4地址结构及其计算
Chinese-language Computer Science 408 note: 1 题型 - IPv4地址结构及其计算. Original source available where applicable.
On this page
This note is currently available in Chinese. The original wording, formulas and diagrams are preserved to avoid an unverified technical translation.
描述:IPv4 地址计算的核心是把 32 bit 划分为网络前缀和主机号。网络地址由 IP 与掩码按位与得到,广播地址把主机位全置 1;子网数看借用的网络位,主机数看剩余主机位。综合题还会结合默认网关、/30 点到点链路、特殊地址和 NAT 转换。
1.1 三个基本计算
设 IPv4 地址为 $IP$、子网掩码为 $Mask$:
$$Network=IP\ \operatorname{AND}\ Mask$$
$$Broadcast=Network\ \operatorname{OR}\ (\operatorname{NOT}Mask)$$
若前缀长度为 $p$,主机位数为 $h=32-p$,普通子网可分配主机地址数为:
$$N_{host}=2^h-2$$
减去的两个地址是主机位全 0 的网络地址和主机位全 1 的定向广播地址。
1.1.1 常见前缀速查
| 前缀 | 最后一个非 255 掩码字节 | 地址块大小 | 可分配主机数 |
|---|---|---|---|
| /22 | 252 | 1024 | 1022 |
| /24 | 255 | 256 | 254 |
| /25 | 128 | 128 | 126 |
| /26 | 192 | 64 | 62 |
| /27 | 224 | 32 | 30 |
| /28 | 240 | 16 | 14 |
| /29 | 248 | 8 | 6 |
| /30 | 252 | 4 | 2 |
1.2 定长与变长子网划分
1.2.1 FLSM
原网络前缀为 $p$,再借 $s$ 位作为子网号时:
$$N_{subnet}=2^s$$
新前缀为 $p+s$,每个子网剩余 $32-p-s$ 个主机位。
1.2.2 VLSM
VLSM 按各子网实际需求分配不同长度前缀。常用步骤:
- 按所需主机数从大到小排序。
- 为每个子网选择能容纳需求的最小 $2^h$ 地址块。
- 从父网络的低地址开始,按地址块边界依次分配。
- 检查各前缀互不重叠,且每个子网起始地址对齐其块大小。
1.3 历年真题
1.3.1 2010 年:FLSM 子网数与主机数
192.168.5.0/24 使用掩码 255.255.255.248=/29。
从 /24 扩展到 /29,借用 5 位作为子网号:
$$N_{subnet}=2^5=32$$
剩余 3 位作为主机号:
$$N_{host}=2^3-2=6$$
答案:B,32 个子网、每个子网 6 个可分配地址。
1.3.2 2011 年:/30 定向广播
子网 192.168.4.0/30 的 4 个地址为:
| 地址 | 作用 |
|---|---|
192.168.4.0 |
网络地址 |
192.168.4.1 |
可分配主机地址 |
192.168.4.2 |
可分配主机地址 |
192.168.4.3 |
定向广播地址 |
目的地址为 192.168.4.3 的广播分组可被该子网中的 2 台普通主机接收。
答案:C,2 台。
1.3.3 2012 年:求所在子网广播地址
主机地址 180.80.77.55,掩码 255.255.252.0=/22。第三个字节的地址块大小为:
$$256-252=4$$
77 落在 $76-79$ 地址块内,因此:
网络地址:180.80.76.0
广播地址:180.80.79.255
答案:D,180.80.79.255。
1.3.4 2016 年:子网、默认网关与 NAT 综合
题图中 H1/H2 配置 /25,地址分别为 192.168.3.2、192.168.3.3,默认网关均填 192.168.3.1;H3/H4 也配置 /25,地址为 192.168.3.251、192.168.3.252,默认网关均填 192.168.3.254。
它们实际位于两个子网:
H1、H2:192.168.3.0/25,范围 192.168.3.0-127
H3、H4:192.168.3.128/25,范围 192.168.3.128-255
- H1 与 H2 同网段,可经交换机直接通信。
- H3 与 H4 同网段,可经 Hub 直接通信。
- 两组主机网络号不同,跨组通信必须经过路由器。
- 路由器 R2 的局域网接口为
192.168.3.254/25,只属于192.168.3.128/25;它不能作为 H1/H2 所在/25的合法直连网关。 - 默认网关必须与主机位于同一 IP 子网;仅“物理上连在同一个交换网络”不能替代网络层同网段条件。
WARNING · 原资料第 3 页解说与题图不符 解说称 H1/H2 “默认网关配置正确、可访问 Internet”,但题图只给出 R2 的 LAN 接口
192.168.3.254,并没有作为 H1/H2 网关的192.168.3.1路由接口。按题图所给设备与配置,H1/H2 可在192.168.3.0/25内直接通信,却不能通过所填网关经 R2 出网;不能照搬该句解说。若另设192.168.3.1网关或代理 ARP 等机制,须在题设中明确给出。
同一题的 NAT 小问中,R1 与 R2 的点到点网络为 201.1.3.8/30。已知 R1 接口为 201.1.3.9,则 R2 面向 R1 的接口为 201.1.3.10。H3 访问 Web 服务器 130.18.10.1 时,R2 对外转发的请求分组为:
源 IP:201.1.3.10
目的 IP:130.18.10.1
NAT 只修改需要转换的一侧地址;目的 Web 服务器地址保持不变。
1.3.5 2017 年:只能作源地址的特殊地址
选项中:
0.0.0.0可在主机尚未获得地址时表示“本主机/未知源地址”,可作源地址,但不能作普通目的地址。127.0.0.1是本地回环地址,可作为本机通信的源/目的地址。200.10.10.3是普通单播地址。255.255.255.255是受限广播目的地址,不能作源地址。
答案:A,0.0.0.0。
1.3.6 2019 年:把 /20 划分为 5 个 VLSM 子网
把一个 /20 恰好递归划成 5 个前缀子网,只需进行 4 次二分。题目问“可能的最小子网”,要让其中某个地址块尽可能小,可让 4 次二分沿同一分支持续进行,于是叶子前缀依次为:
/21、/22、/23、/24、/24
这些地址块合计正好占满一个 /20。4 次二分的最大深度为 /24,因此不可能在只保留 5 个叶子子网的同时再得到更小的 /25 叶子。最小子网是 /24,可分配地址数为:
$$2^{32-24}-2=254$$
答案:B,254。
1.3.7 2022 年:子网掩码与默认网关
主机 H 为 192.168.1.60,所连接路由器接口为 192.168.1.62/27。
/27 对应掩码:
255.255.255.224
该接口与 H 同属 192.168.1.32/27,所以 H 的默认网关应为路由器的局域网接口 192.168.1.62,不能使用另一条 /30 链路上的地址。
答案:D,255.255.255.224,192.168.1.62。
1.4 特殊地址与私有地址
1.4.1 历史分类地址与 CIDR
原资料中的 A~E 类按首字节划分如下;这是有类编址的历史分类,现代子网计算仍应以实际给定的前缀长度或子网掩码为准,不能只看首字节推断掩码。
| 类别 | 首字节范围 | 历史用途/默认前缀 |
|---|---|---|
| A | 1~126 | 单播,默认 /8;0 和 127 段另有特殊用途 |
| B | 128~191 | 单播,默认 /16 |
| C | 192~223 | 单播,默认 /24 |
| D | 224~239 | 组播地址,不按普通单播主机地址分配 |
| E | 240~255 | 保留/特殊用途;255.255.255.255 是受限广播地址 |
1.4.2 特殊地址与私有范围
| 地址/范围 | 含义 |
|---|---|
| 主机位全 0 | 当前子网的网络地址,不分配给普通主机 |
| 主机位全 1 | 当前子网的定向广播地址 |
255.255.255.255 |
受限广播,只作目的地址 |
0.0.0.0 |
未指定地址,可在初始化阶段作源地址 |
127.0.0.0/8 |
本地回环地址,分组不离开本机 |
私有 IPv4 地址范围:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
私有地址不在公网中直接路由。内网访问公网通常由 NAT/NAPT 把私有源地址转换为 NAT 设备可用于公网通信的地址;它可以是设备接口地址,也可以来自分配给该设备的公网地址池。NAPT 还把运输层端口纳入映射,并在必要时改写端口。
1.5 易错点
- 子网掩码与 IP 做按位与得到网络地址;不能只凭最后一个十进制数“看起来接近”来判断。
- 普通子网可分配地址数要减去网络地址和广播地址,但子网数量按现代规则不减 2。
- /30 有 4 个地址、2 个可分配接口地址,常用于点到点链路。
- 默认网关必须是主机所在子网内的路由器接口地址。
- 私有地址不能直接作为公网路由中的源地址;经源 NAT 后应换成可用于公网通信的地址,不一定是路由器自身接口地址。
- NAT 通常改变源/目的 IP 中的一侧;无 NAT 时端到端源、目的 IP 不随每跳转发改变。
相关知识
- 科目导航:计算机网络导航
- 阅读顺序:上一篇:网络层知识框架 · 下一篇:网络层转发
- 关联专题:网络层总纲
1.6 本节复盘
网络地址=IP AND 掩码,广播地址是网络前缀不变、主机位全 1。- /29 每块 8 个地址、可分配 6 个;/30 每块 4 个、可分配 2 个;/27 掩码为
255.255.255.224。 - VLSM 应从大到小分配并按块边界对齐;一个 /20 划分 5 个子网时最小子网可做到 /24,即 254 个主机地址。
- 默认网关必须与主机同网段,源 NAT 对外转发时用可用于公网通信的地址替换私有源地址。
0.0.0.0可作初始化源地址,255.255.255.255是受限广播目的地址,127/8是回环地址。