这一块的主线先理顺
这一大块其实就是网络层最核心的一条主线:主机先用 IP 地址标识“要去哪里”,再结合子网掩码判断“是不是同一网段”,如果不是同一网段,就把数据交给默认网关;路由器依据路由表进行转发,转发时核心看的是目标 IP 地址;如果链路层发送到下一跳,还要借助 ARP 把下一跳 IP 解析成 MAC 地址;如果分组太大,还可能发生分片;如果跨公网私网边界,还会用到 NAT。
所以这些知识点看起来很多,但本质上可以串成一句话:
IP 负责逻辑寻址与路由,ARP 负责下一跳的链路层寻址,子网掩码/CIDR 负责网络划分与聚合,TTL 防止分组在网络中无限兜圈,NAT 解决私有地址访问公网的问题。
下面按中国计算机考研最常见的考法系统整理。
IPv4 分组首部格式及字段含义
IPv4 数据报由两部分组成:首部 + 数据部分。
其中首部最少 20B,最多 60B。
IPv4 首部主要字段
| 字段 | 位数 | 含义 | 常见考点 |
|---|---|---|---|
| 版本 Version | 4 | 指明 IP 协议版本,IPv4 中值为 4 | 版本号识别 |
| 首部长度 IHL | 4 | 以 4B 为单位,最小值 5,即最小首部 20B | 算首部长度、数据长度 |
| 区分服务/服务类型 | 8 | 早期叫 TOS,现多用于区分业务服务质量 | 了解即可 |
| 总长度 Total Length | 16 | 整个 IP 数据报长度,单位是字节,包括首部和数据 | 常用于分片计算 |
| 标识 Identification | 16 | 同一原始数据报分片后,各片的标识相同 | 分片重组核心字段 |
| 标志 Flags | 3 | 与分片有关,常考 DF、MF | 高频 |
| 片偏移 Fragment Offset | 13 | 某片数据在原始数据报中的相对位置,单位是 8B | 高频计算点 |
| 生存时间 TTL | 8 | 分组在网络中允许经过的最大路由器跳数 | 高频概念题 |
| 协议 Protocol | 8 | 指明上层协议,如 TCP=6,UDP=17,ICMP=1 | 高频选择题 |
| 首部检验和 Header Checksum | 16 | 只校验 IP 首部,不校验数据部分 | 易混 |
| 源 IP 地址 | 32 | 发送方 IP | 基本字段 |
| 目的 IP 地址 | 32 | 接收方 IP | 路由转发依据 |
| 可选字段 Options | 可变 | 很少考细节 | 记住可变导致首部不一定 20B |
标志位 Flags 的重点
Flags 里真正常考的是两个:
- DF(Don’t Fragment):禁止分片
DF = 1,表示该数据报不能分片。如果下一段链路 MTU 太小,路由器会直接丢弃并返回差错信息。 - MF(More Fragments):后面是否还有分片
MF = 1,表示“后面还有分片”
MF = 0,表示“这是最后一个分片”
所以做题时,分片题一定盯住三件事:
标识相同、片偏移按 8B 计、除最后一片外数据长度通常应是 8B 的整数倍。
TTL 机制怎么理解
TTL 是 Time To Live,中文常叫生存时间。
但在考研里,更准确地理解成:允许经过的最大路由器跳数。
TTL 的工作过程
一个 IP 数据报从源主机发出时,会被赋一个初始 TTL 值,比如 64、128、255 等。
之后每经过一个路由器,TTL 就减 1。
- 如果减完后 TTL > 0,则继续转发
- 如果 TTL = 0,则路由器丢弃该分组,并通常发送 ICMP 超时报文给源主机
TTL 的作用
TTL 的本质作用是:
防止分组在网络中因路由环路而无限转发。
如果没有 TTL,网络一旦出现环路,分组可能永远兜圈,持续占用带宽和设备资源。
TTL 的典型考法
1. 判断最多经过多少台路由器
若初始 TTL = 8,则最多可经过 8 台路由器。
经过第 8 台时减为 0,通常就不能再继续往后转发了。
2. traceroute 的原理
traceroute/tracert 就是故意发送 TTL = 1、2、3…… 的报文,
让沿途路由器依次因为 TTL 到 0 而返回 ICMP 超时信息,从而探测路径。
易错点
很多同学会把 TTL 理解成“时间秒数”。
在现代 IP 网络里,考试中应优先按“跳数限制”理解,不要往真实时间流逝上想太多。
IP 数据报分析时,最常抓哪些字段
考试里一看到“IP 数据报分析”,通常就是从这些字段下手:
第一类:长度相关
- 首部长度
- 总长度
- 数据部分长度 = 总长度 – 首部长度
第二类:分片相关
- 标识
- DF
- MF
- 片偏移
第三类:上层协议识别
- Protocol = 1 → ICMP
- Protocol = 6 → TCP
- Protocol = 17 → UDP
第四类:生存与校验
- TTL
- 首部检验和
所以做题的顺序一般是:
先看首部长度和总长度,再看是否分片,再看协议字段识别上层协议,最后看 TTL 和地址信息。
IP 分片相关首部字段
你这里写的“IP分辨相关首部字段”,结合上下文,考研里通常指的就是IP 分片相关字段。这一块非常高频。
分片会在什么情况下发生
当 IP 数据报长度 大于下一跳链路的 MTU 时,如果 DF = 0,则可以分片。
哪些设备会分片、哪些设备会重组
- 源主机可能分片
- 中间路由器在 IPv4 中也可能分片
- 目的主机负责重组
- 中间路由器不负责重组
这是经典选择题点。
分片相关字段及作用
1. 标识 Identification
同一个原始 IP 数据报分出来的所有片,标识字段都相同。
目的主机靠它判断哪些片属于同一原始报文。
2. 标志 Flags
- DF = 1:不能分片
- MF = 1:后面还有分片
- MF = 0:最后一个分片
3. 片偏移 Fragment Offset
表示本分片数据部分在原始数据中的起始位置,单位是 8B。
这意味着:
除最后一个分片外,其余各分片的数据长度通常必须是 8B 的整数倍。
分片计算题怎么做
假设:
- 原始 IP 数据报总长度 = 4000B
- 首部长度 = 20B
- 数据部分 = 3980B
- MTU = 1500B
则每片最多能装的数据量:
1500 - 20 = 1480B
因为 1480 正好是 8 的整数倍,所以可以直接用。
于是:
- 第 1 片数据 1480B,片偏移 = 0
- 第 2 片数据 1480B,片偏移 = 1480 / 8 = 185
- 剩余数据
3980 - 1480 - 1480 = 1020B - 第 3 片数据 1020B,片偏移 =
(1480 + 1480) / 8 = 370
对应:
- 前两片 MF = 1
- 最后一片 MF = 0
- 三片的标识都相同
分片题最常错的地方
错误 1:把片偏移当成字节数
片偏移单位不是字节,而是 8B。
错误 2:把总长度和数据长度混了
总长度 = 首部 + 数据。
分片时先算每片能装多少数据,再加首部求每片总长度。
错误 3:以为每片首部只保留一次
错。每个分片都有自己的 IP 首部。
ABC 三类地址怎么记
这是传统分类编址,虽然现在实际更多讲 CIDR,但考研仍经常考。
A、B、C 类地址范围
| 类别 | 第一字节范围 | 网络号位数 | 主机号位数 | 默认子网掩码 |
|---|---|---|---|---|
| A 类 | 1~126 | 8 | 24 | 255.0.0.0 |
| B 类 | 128~191 | 16 | 16 | 255.255.0.0 |
| C 类 | 192~223 | 24 | 8 | 255.255.255.0 |
补充两个边界:
- 127.x.x.x:保留作回送地址,不是普通 A 类可分配地址
- 0.x.x.x:表示“本网络”,也不作普通主机地址分配
快速判断口诀
看第一字节:
- 1~126 → A 类
- 128~191 → B 类
- 192~223 → C 类
子网掩码是什么,默认有哪些
子网掩码的作用是:把一个 IP 地址划分为“网络部分”和“主机部分”。
写法如:
- 255.0.0.0
- 255.255.0.0
- 255.255.255.0
默认子网掩码
- A 类默认:255.0.0.0
- B 类默认:255.255.0.0
- C 类默认:255.255.255.0
考试里说“默认子网掩码”,通常就是指这三个。
如何利用 IP 地址和子网掩码求子网地址
这是网络层计算题最基础的一类。
规则
子网地址 = IP 地址 AND 子网掩码
也就是按位与。
例子 1
IP 地址:192.168.1.130
子网掩码:255.255.255.192
先看最后一个字节:
- IP 最后一个字节:130
二进制:10000010 - 掩码最后一个字节:192
二进制:11000000
按位与:
10000010 AND 11000000 = 10000000
即 128
所以子网地址为:
192.168.1.128
例子 2
IP 地址:172.16.10.66
子网掩码:255.255.255.224
224 对应二进制是 11100000,块大小是 256 - 224 = 32
于是子网段按 32 递增:
- 0~31
- 32~63
- 64~95
- 96~127
……
66 落在 64~95 这一段,所以子网地址是:
172.16.10.64
做题更快的方法:块大小法
若掩码最后一个字节是:
- 128 → 块大小 128
- 192 → 块大小 64
- 224 → 块大小 32
- 240 → 块大小 16
- 248 → 块大小 8
- 252 → 块大小 4
然后看 IP 落在哪个块里,块起点就是子网地址。
这个方法在考场上比逐位转二进制更快。
CIDR 是什么
CIDR 是无分类域间路由选择。
核心思想就是:不再死守 A/B/C 类,而是直接用“网络前缀长度”来表示网络。
例如:
- 192.168.1.0/24
- 10.0.0.0/8
- 172.16.0.0/20
这里 /24 就表示前 24 位是网络前缀。
CIDR 地址块怎么理解
一个 CIDR 地址块,本质上是:
网络前缀相同的一组连续 IP 地址。
例如:
192.168.1.0/24
表示前 24 位相同,所以共有 2^(32-24) = 256 个地址,范围是:
192.168.1.0 ~ 192.168.1.255
CIDR 的意义
它解决了传统分类编址的两个问题:
- 地址分配不够灵活
- 路由表容易膨胀
于是就引出了两个高频点:
- 地址块分配
- 路由聚合
路由聚合怎么理解
路由聚合也叫构成超网。
它的核心就是把多个网络前缀相同的连续子网,合并成一条更大的路由。
例子
有四个连续 C 类网络:
- 202.38.64.0/24
- 202.38.65.0/24
- 202.38.66.0/24
- 202.38.67.0/24
这四个网络可以聚合成:
202.38.64.0/22
因为 /22 表示前 22 位相同,正好覆盖这四个 /24 网络。
路由聚合的作用
- 减少路由表项数量
- 提高路由查找效率
- 减轻路由器负担
聚合题怎么做
看多个网络地址的二进制表示,找它们共同前缀最长有多少位,就得到聚合后的前缀长度。
最长前缀匹配是什么
CIDR 下,路由表可能同时存在:
- 128.14.0.0/16
- 128.14.35.0/24
- 128.14.35.128/25
如果一个分组目标地址是 128.14.35.130,它同时匹配上面三条路由。
这时路由器该选哪条?
答案是:
选前缀最长、最具体的那条。
也就是 /25。
为什么必须最长前缀匹配
因为前缀越长,匹配范围越小,路由越精确。
这是 CIDR 路由查找的基本原则。
常见误区
不是“先匹配到哪条就用哪条”,也不是“按先后顺序”。
考试标准答案是:最长前缀匹配。
定长子网划分怎么做
定长子网掩码,就是把一个网络划分成若干个大小相同的子网。
做题主线
定长子网划分一般有两种问法:
1. 已知要划分的子网数,求借几位
设借了 n 位,则可划分子网数为:
2^n
有的教材会考虑全 0 和全 1 子网能否使用的问题,但现在考试一般默认可用,除非题目特别说明。
2. 已知每个子网要容纳的主机数,求主机位至少保留多少位
若主机位保留 h 位,则可用主机数通常为:
2^h - 2
减 2 是因为:
- 全 0 主机号表示该子网网络地址
- 全 1 主机号表示该子网广播地址
例子
某 C 类网络 192.168.1.0/24,要求划成 4 个子网。
因为 4 = 2^2,借 2 位,得到:
/26
子网掩码变为:
255.255.255.192
四个子网分别是:
- 192.168.1.0/26
- 192.168.1.64/26
- 192.168.1.128/26
- 192.168.1.192/26
每个子网地址数 2^(32-26)=64,可用主机数 62。
变长子网掩码 VLSM 怎么理解
VLSM 就是不同子网使用不同长度的掩码。
它的目的是:更省地址。
为什么要用 VLSM
定长划分简单,但容易浪费地址。
如果一个子网只需要 10 台主机,另一个需要 100 台主机,都给一样大的地址块,就会浪费很多。
VLSM 的思想是:
按需求大小分配,先分大的,再分小的。
VLSM 做题步骤
- 先把各子网按主机需求从大到小排序
- 给需求最大的子网先分配
- 每次分配地址块大小都按 2 的幂取整
- 后续子网从下一个可用网络地址继续分
例子
现有地址块:192.168.1.0/24
需要分给三个子网:
- 子网 A:100 台主机
- 子网 B:50 台主机
- 子网 C:20 台主机
第一步:确定所需地址块大小
- 100 台主机 → 至少 7 位主机位,因为
2^7 - 2 = 126
所以前缀是/25 - 50 台主机 → 至少 6 位主机位,因为
2^6 - 2 = 62
所以前缀是/26 - 20 台主机 → 至少 5 位主机位,因为
2^5 - 2 = 30
所以前缀是/27
第二步:按大到小分配
- A:192.168.1.0/25
- B:192.168.1.128/26
- C:192.168.1.192/27
这样比定长划分更省地址。
VLSM 最容易错的地方
不是“随便切”,而是一定要:
先排需求大小,再按块边界对齐。
NAT 是什么
NAT 是网络地址转换。
本质上是把私有 IP 地址转换成公网 IP 地址,以实现私网主机访问公网。
为什么需要 NAT
IPv4 地址不够用。
如果每台内网主机都直接分配公网地址,根本不够。
所以家庭、学校、公司内部常用私有地址:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
这些私有地址不能直接在公网中路由,需要通过 NAT 转换。
NAT 的基本过程
内网主机发数据到公网时:
- 主机源地址是私有 IP
- 到达 NAT 路由器
- NAT 设备把源私有 IP 改成公网 IP
- 同时记录端口映射关系
- 外网返回数据时,再根据映射表还原给对应内网主机
NAPT/PAT
考试里更常见的是端口复用型 NAT,也叫 NAPT 或 PAT。
它的特点是:
多个内网主机共用一个公网 IP,通过不同端口号区分不同连接。
这正是家用路由器最典型的工作方式。
NAT 的优缺点
优点:
- 节省公网 IP
- 隐藏内部网络结构
缺点:
- 会破坏端到端透明性
- 某些需要主动入站连接的应用处理更复杂
ARP 是什么
ARP 是地址解析协议。
作用是:根据 IP 地址找出对应的 MAC 地址。
为什么需要 ARP
IP 地址是网络层地址,MAC 地址是数据链路层地址。
在局域网里真正发帧时,网卡需要知道目标 MAC 地址,而不是只知道目标 IP 地址。
所以:
要把“下一跳 IP 地址”解析成“下一跳 MAC 地址”,靠的就是 ARP。
ARP 工作流程
假设主机 A 要给主机 B 发数据,且 B 与 A 在同一局域网。
- A 先查 ARP 高速缓存
- 若没有 B 的 MAC,A 广播发送 ARP 请求
- 局域网所有主机都收到
- 只有 IP 匹配的 B 回送 ARP 应答
- A 得到 B 的 MAC,写入缓存
- 之后再发送数据帧
ARP 的核心考点
- ARP 请求是广播
- ARP 应答通常是单播
- ARP 只工作在一个局域网范围内
- 如果目标主机不在本网络,ARP 解析的不是目标主机 MAC,而是默认网关接口的 MAC
这一点是高频陷阱。
网络层转发分组的过程
这一块特别适合串联前面所有知识点。
情况一:目标主机与源主机在同一子网
主机发送数据时:
- 根据目标 IP 和本机子网掩码计算目标网络地址
- 根据本机 IP 和子网掩码计算本网络地址
- 若两者相同,说明目标在同一网段
- 通过 ARP 获取目标主机 MAC 地址
- 封装成以太网帧,直接发给目标主机
情况二:目标主机不在同一子网
- 主机根据子网掩码判断目标不在本地网段
- 将分组交给默认网关
- 主机通过 ARP 获取默认网关 MAC 地址
- 把 IP 数据报封装进链路层帧,目的 MAC 写成网关 MAC
- 路由器收到后,去掉链路层首部,查看 IP 首部中的目标 IP
- 查路由表,按最长前缀匹配确定下一跳和输出接口
- TTL 减 1,重新计算首部检验和
- 若需要,可能进行分片
- 再通过 ARP 获得下一跳 MAC
- 重新封装新的链路层帧,继续转发
这里最关键的一句话
IP 地址在端到端传输过程中总体表示最终目的地,MAC 地址则是逐跳变化的,只负责当前这一跳的链路传输。
所以为什么已经有 MAC 地址了还需要 IP 地址?
因为:
- MAC 只在本地链路/本局域网中有意义
- 路由器跨网络转发时,必须依赖IP 地址确定最终目的网络和路由路径
- 每经过一跳,链路层帧会重封装,MAC 地址会变
- 但 IP 数据报中的源 IP、目的 IP 一般不变(除 NAT 等情况外)
这正是网络层和数据链路层分工不同的体现。
这部分最常考的几个综合点
1. 依据 IP 和掩码求
- 网络地址
- 直接广播地址
- 主机范围
- 该主机是否同网段
2. IP 分片计算
- 分几片
- 每片总长度
- 每片数据长度
- 片偏移
- MF/DF 的值
3. CIDR 与路由聚合
- 给若干连续地址块求聚合前缀
- 给目标 IP 找最长前缀匹配结果
4. NAT 与 ARP 的区别
- NAT:地址转换,常在边界路由器
- ARP:IP 到 MAC 的解析,常在局域网内部逐跳发送时使用
5. 路由器转发依据
- 看的是目标 IP 地址
- 不是看 MAC 地址
- MAC 地址只是该跳发送时才用
这一大块最容易混淆的地方
第一组:IP 地址、MAC 地址、子网掩码
- IP:逻辑地址,决定跨网络寻址
- MAC:物理地址,决定本跳链路传输
- 子网掩码:用来从 IP 中分离网络号和主机号
第二组:ARP 与路由选择
- ARP:解决“下一跳的 MAC 是谁”
- 路由:解决“下一跳应该走谁”
第三组:分片与重组
- IPv4 中路由器可分片
- 目的主机重组
- 中间路由器不重组
第四组:分类编址与 CIDR
- 分类编址看 A/B/C 类和默认掩码
- CIDR 不强调类别,强调网络前缀长度
最后用一个总框架收尾
把这块内容压成复习时最值得记的一条链:
IPv4 首部负责携带寻址、分片、TTL 和上层协议标识等信息;子网掩码/CIDR 用于划分网络和进行路由聚合;主机先判断是否同网段,不同网段就交给默认网关;路由器按最长前缀匹配转发,逐跳借助 ARP 获取下一跳 MAC;TTL 每过一跳减 1,用于防环;分组过大时可能分片;私网访问公网时通常通过 NAT 完成地址转换。
按题型分类整理:IPv4 编址与子网划分解题模板
表面上看很多,实际上反复考的就是几类固定模型。把这些题型拆开之后,会发现做题步骤非常稳定。后面再遇到类似题,基本都可以直接套模板。
一、主机地址合法性判断题
这类题最常见的问法是:
- 哪个地址可以分配给主机
- 哪个地址不能作为目的地址
- 哪个地址是非法地址
- 哪个地址不能在 Internet 上正常转发
这类题的本质,是同时考四层判断:
- 地址格式是否合法
- 地址类别和默认子网掩码
- 是否是网络地址或广播地址
- 是否属于特殊保留地址
第一步:先看格式是否合法
IPV4 每个字节必须在 0~255 之间。
只要有一个字段超过 255,这个地址就直接非法。
例如:
211.60.256.21错,因为 256 超范围300.1.2.3错,因为 300 超范围
这一层最简单,但考试里真会混进去。
第二步:看是不是特殊保留地址
1. 127.x.x.x
这是回送地址,不能分配给网络中的普通主机。
典型例子:
127.10.10.17不是合法公网主机地址
2. 私有地址
私有地址块有三段:
10.0.0.0/8172.16.0.0/12192.168.0.0/16
这些地址可在内网使用,但在公网 Internet 上不会被正常路由转发。
典型例子:
192.168.32.17作为公网目的地址,路由器不会正常转发
3. 网络地址和广播地址
如果主机号全 0,就是网络地址;
如果主机号全 1,就是广播地址;
这两种都不能分给普通主机。
第三步:按默认子网掩码判断是不是网络地址/广播地址
这是非常高频的点。
默认子网掩码一定要熟:
| 地址类别 | 第一字节范围 | 默认掩码 |
|---|---|---|
| A 类 | 1~126 | 255.0.0.0 |
| B 类 | 128~191 | 255.255.0.0 |
| C 类 | 192~223 | 255.255.255.0 |
例 1
192.46.10.0
192 开头,是 C 类地址,默认掩码 /24。
最后一个字节全 0,所以是网络地址,不能分给主机。
例 2
110.47.10.0
110 开头,是 A 类地址,默认掩码 /8。
主机部分是 47.10.0,既不是全 0,也不是全 1,所以可以分配给主机。
这一类题的通用模板
以后做“哪个地址能分配给主机”这类题,按这个顺序判断:
模板
- 看每个字节是否都在
0~255 - 看是否属于
127.x.x.x - 看是否属于私有地址而题目又明确问公网转发
- 按默认掩码判断是不是网络地址或广播地址
二、子网划分与主机数计算题
这类题的问法通常是:
- 每个子网最多多少台主机
- 最多能划分多少个子网
- 给定需求,哪种掩码方案可行
- 点对点链路应采用什么掩码
这类题的关键,不是硬算,而是先认清两件事:
- 借了多少位做子网号
- 剩了多少位做主机号
1. 子网个数怎么算
若从主机位中借了 n 位做子网号,则子网数通常为:
2^n
例如:
一个 C 类网络默认是 /24。
如果改成 /27,说明借了 3 位。
所以子网数是:
2^3 = 8
2. 每个子网可分配主机数怎么算
若主机位还剩 h 位,则每个子网可分配主机数为:
2^h - 2
为什么减 2?
- 全 0 主机号表示网络地址
- 全 1 主机号表示广播地址
例
/27 的网络,主机位为:
32 - 27 = 5
所以每个子网可分配主机数:
2^5 - 2 = 30
3. 已知子网掩码,如何快速求主机数
例
B 类地址,子网掩码 255.255.240.0
先把它写成前缀长度:
- 255.255.240.0 =
/20
则主机位数:
32 - 20 = 12
主机数:
2^12 - 2 = 4094
4. 已知需求,反推掩码
这类题是最典型的综合题。
例如:
- 至少要 51 个子网
- 每个子网至少容纳 800 台主机
先看主机位
要满足:
2^h - 2 >= 800
试算:
2^9 - 2 = 510,不够2^10 - 2 = 1022,够
所以至少保留 10 位主机位。
因此前缀长度最多只能到:
32 - 10 = 22
即 /22
再看子网数
如果原来是 B 类默认 /16,变成 /22,借了 6 位:
2^6 = 64
64 个子网,也够。
所以该题选 /22,即 255.255.252.0。
5. 点对点链路为什么通常选 /30
点对点链路只需要两个主机地址。
在传统考研题里,最省地址又刚好够用的掩码是:
255.255.255.252
也就是 /30
因为:
- 总地址数 4 个
- 可用主机数 2 个
刚好给链路两端各一个。
注意:工程里有时会提到 /31,但在考研传统题里,标准答案一般仍是 /30。
这一类题的通用模板
已知前缀,求主机数
主机位 = 32 - 前缀长度主机数 = 2^(主机位) - 2
已知默认网络,求子网数
借位数 = 新前缀 - 默认前缀子网数 = 2^(借位数)
已知需求,反推掩码
- 先根据主机数求最少主机位
- 再看对应前缀能否满足子网数要求
- 二者都满足才可行
三、CIDR 范围与同子网判断题
这类题最常见的形式是:
- 某个
/n地址块包含哪些地址 - 某个地址和哪个地址同属一个子网
- 某个地址块的网络地址、广播地址、主机范围是什么
- 默认网关为什么不能用某个地址
这部分最实用的方法就是:块大小法。
1. 块大小法的核心
某个字节的块大小 = 256 - 该字节掩码值
例如:
- 掩码字节 248 → 块大小 8
- 掩码字节 240 → 块大小 16
- 掩码字节 224 → 块大小 32
- 掩码字节 192 → 块大小 64
然后看目标地址落在哪个块里。
2. 如何求 CIDR 地址块范围
例
192.168.10.0/20
/20 的掩码是:
255.255.240.0
第三个字节掩码是 240,所以块大小:
256 - 240 = 16
第三个字节的分块是:
- 0~15
- 16~31
- 32~47
- …
10 落在 0~15 这一块,所以该地址块实际范围是:
192.168.0.0 ~ 192.168.15.255
这就是为什么 192.168.10.0/20 的真正网络地址不是 192.168.10.0,而是 192.168.0.0。
3. 如何判断两个地址是否同子网
最本质的方法是:
IP地址 AND 子网掩码
若结果相同,则属于同一子网。
例
192.16.0.19/28
/28 掩码是 255.255.255.240,块大小 16。
最后一个字节 19 落在 16~31,所以子网是:
- 网络地址:192.16.0.16
- 广播地址:192.16.0.31
- 可用主机:192.16.0.17 ~ 192.16.0.30
因此与它同子网的主机地址可以是:
192.16.0.17
4. 默认网关地址为什么会出错
例
主机地址:200.15.10.6/29
默认网关:200.15.10.7
/29 的块大小是 8,所以这一子网范围是:
- 网络地址:200.15.10.0
- 可用主机:200.15.10.1 ~ 200.15.10.6
- 广播地址:200.15.10.7
因此 .7 不是合法主机地址,而是广播地址。
广播地址不能配置为默认网关。
5. 直接广播地址怎么求
例
主机地址:166.66.66.66
子网掩码:255.255.192.0
第三个字节掩码是 192,块大小为 64。
66 落在 64~127 这个块中。
所以:
- 网络地址:166.66.64.0
- 广播地址:166.66.127.255
以后只要问“向所在子网广播”,目标地址就是这个广播地址。
这一类题的通用模板
求网络地址
- 求掩码
- 找块大小
- 判断落在哪个块
- 块起点就是网络地址
求广播地址
- 先求网络地址
- 把主机位全置 1
求同子网主机
- 先求网络地址和广播地址
- 在两者之间的主机地址才可选
四、路由聚合、重叠与不重叠判断题
这类题经常让人感觉最乱,因为它同时考:
- CIDR
- 地址块边界
- 是否重叠
- 是否能聚合
- 是否会引入多余地址
但实际上判断标准很固定。
1. 判断两个地址块是否重叠
先求出各自覆盖范围。
只要范围有交集,就重叠;没有交集就不重叠。
例
已分配子网:74.178.247.96/29
/29 块大小 8,所以覆盖范围是:
74.178.247.96 ~ 74.178.247.103
若某候选前缀是:
74.178.247.96/28
则 /28 块大小 16,覆盖范围是:
74.178.247.96 ~ 74.178.247.111
明显与原子网重叠,因此不能再分配。
2. 路由聚合时,什么叫“能覆盖”
有时题目只要求“能覆盖若干条路由”,并不要求“恰好只覆盖这些路由”。
例
有四条路由:
- 172.18.129.0/24
- 172.18.130.0/24
- 172.18.132.0/24
- 172.18.133.0/24
若要找一个聚合路由把它们都覆盖住,可以选:
172.18.128.0/21
因为 /21 覆盖第三个字节 128~135,把这四条都包含进去了。
虽然它还顺带覆盖了别的地址,但题目只问“能覆盖”,所以它成立。
3. 什么时候“聚合后不会引入多余地址”
这是更严格的一类题。
要满足:
- 两个地址块大小相同
- 两个地址块相邻
- 聚合后的更大块正好边界对齐
例
192.168.6.192/26
它覆盖:
192.168.6.192 ~ 192.168.6.255
若要与它精确聚合,不引入多余地址,另一个块必须是:
192.168.6.128/26
两者正好合成:
192.168.6.128/25
如果不是相邻同规模块,就不能精确聚合。
4. “一个网络划分为 4 个子网”这类题怎么想
这类题不能只看某个选项和已知子网是否重叠,还要看:
加入这个候选子网后,剩余地址空间是否还能在规定个数内被分完。
例
已知其中一个子网是:
192.168.1.130/26
它实际对应子网:
192.168.1.128/26
如果另一个候选是:
192.168.1.96/27
那么剩余空间会被切得太碎,无法在总共只划分成 4 个子网的条件下刚好分完。
所以这种题不能只看“不重叠”,还要看“总数是否还能凑够且刚好分完”。
这一类题的通用模板
判断是否重叠
- 分别求出每个地址块覆盖范围
- 看范围是否有交集
判断能否精确聚合
- 地址块大小必须相同
- 地址范围必须相邻
- 聚合后新块必须对齐
判断能否作为剩余子网之一
- 先确认与已有子网不重叠
- 再看剩余地址空间是否还能在规定数量内正好划完
最后把这四类题压成一套做题顺序
以后碰到 IPv4 地址题,基本可以按这个顺序想:
第一问:这是合法的吗?
先看:
- 每段是否在
0~255 - 是否是 127 回送地址
- 是否是私有地址
- 是否是网络地址或广播地址
第二问:这个掩码意味着什么?
先看:
- 前缀长度是多少
- 借了多少位
- 还剩多少主机位
第三问:这个地址落在哪个块?
先求:
- 块大小 =
256 - 掩码字节 - 地址属于哪个块
- 网络地址和广播地址分别是什么
第四问:是否重叠、能否聚合?
先判断:
- 范围是否有交集
- 是否同规模、相邻、对齐
这一块最值得背的几个“秒杀结论”
1. 私有地址
10.0.0.0/8172.16.0.0/12192.168.0.0/16
2. 点对点链路传统标准答案
/30255.255.255.252
3. 主机数公式
2^(主机位数) - 2
4. 子网数公式
2^(借用的子网位数)
5. 片偏移单位
虽然这组不是分片题,但也顺手再压一下:
片偏移的单位是 8B,不是 1B。



