
这两题其实分别在考两个很典型的网络层基础点:
第3题考“IPv4 多播地址到以太网多播 MAC 地址的映射”;
第4题考“哪些 IP 地址类型可以作源地址,哪些只能作目的地址”。
第3题:224.215.145.230 映射到哪个多播 MAC 地址
正确答案是 A. 01-00-5E-57-91-E6
这题考什么
考的是一个固定规则:
IPv4 多播地址映射到以太网 MAC 地址时:
- MAC 地址前 24 位固定为
01-00-5E - 再加上 IP 多播地址的低 23 位
也可以理解成:
- 先把 IP 地址写成二进制
- 只保留后 23 位
- 映射到 MAC 的后 23 位
- 其中 MAC 的第 25 位固定为 0
分步计算
题目给的 IP 多播地址是:
224.215.145.230
先转成二进制:
- 224 =
11100000 - 215 =
11010111 - 145 =
10010001 - 230 =
11100110
所以整个地址是:
11100000 11010111 10010001 11100110
现在取低 23 位。
因为总共 32 位,低 23 位就是去掉前 9 位。
去掉前 8 位 11100000,再去掉下一字节的最高 1 位:
- 215 的二进制是
11010111 - 去掉最高位后剩下
1010111
于是低 23 位就是:
1010111 10010001 11100110
填到 MAC 后 23 位中:
- 前缀固定:
01-00-5E - 后面三段变成:
0+1010111=01010111=5710010001=9111100110=E6
所以最终 MAC 地址是:
01-00-5E-57-91-E6
因此选 A。
为什么容易错
最常见错误就是把第二个字节 215 直接照抄成 D7,于是误选 B。
但这里不是直接照抄,而是只取低 23 位,所以第二段实际上要把最高位清掉,D7 要变成 57。
这类题怎么快速做
以后看到“IPv4 多播地址映射 MAC”,直接套这个速算模板:
- 先写死前缀:
01-00-5E - 后 3 个字节里:
- 第 4 个字节 = 第二个 IP 字节的低 7 位前面补 0
- 第 5、6 个字节 = 第三个、第四个 IP 字节原样抄
本题里就是:
- 215 =
D7,取低 7 位后变57 - 145 =
91 - 230 =
E6
所以秒出:01-00-5E-57-91-E6
第4题:哪个地址只能作目的地址,不能作源地址
正确答案是 C. 228.1.1.100
这题考什么
考的是不同类型 IP 地址的使用限制,尤其是:
- 单播地址:既可作源地址,也可作目的地址
- 多播地址:只能作目的地址,不能作源地址
0.0.0.0:通常表示“本机尚未获得合法 IP 地址”,可作为特殊源地址使用,但不能作为正常目的地址255.255.255.255:受限广播地址,只能作目的地址
逐项判断
A. 11.255.255.100
这是普通的单播地址,不是广播地址,也不是多播地址。
因此它既可以作源地址,也可以作目的地址。
A 不符合题意。
B. 192.168.x.100
这类地址属于私有地址范围,本质上仍然是单播地址。
私有地址只是“不能在公网直接路由”,不代表不能作源地址。
所以它既能作源地址,也能作目的地址。
B 不符合题意。
C. 228.1.1.100
228 落在 224~239 范围内,属于 D 类地址,即多播地址。
多播地址在 IP 数据报中只能作为目的地址,不能作为源地址。
所以 C 正确。
D. 0.0.0.0
这个地址不能作为普通目的地址。
它常见于主机启动阶段、尚未获得 IP 地址时,作为特殊源地址使用。
题目问的是“只能用于目的地址而不能用于源地址”,显然它不符合。
D 不符合题意。
这题为什么容易错
这题最容易在 C 和 D 之间犹豫。
关键区别是:
- 多播地址:只能作目的地址
- 0.0.0.0:反过来,更接近“只能作特殊源地址”,不能作正常目的地址
所以题目问“只能用于目的地址而不能用于源地址”,必须选 多播地址,即 C。
这类题怎么快速识别
看到地址先分类型:
224~239:多播地址,只能作目的地址255.255.255.255:广播地址,只能作目的地址0.0.0.0:未定地址,常作特殊源地址- 其他普通单播地址:一般都可作源地址和目的地址
最后把两题结论收一下
这两题放在一起看,主线其实很统一:
一道在考“多播 IP 如何映射到链路层地址”,一道在考“多播 IP 在网络层的使用方式”。
只要一看到 224~239,脑子里就应该立刻冒出两个结论:
- 它是 多播地址
- 它只能作目的地址
- 映射到以太网 MAC 时,用
01-00-5E + 低23位


第 3 题的结论是:
R 需要提供 NAT 服务,更准确地说是 NAPT(网络地址端口转换),也就是通常说的“端口复用的地址转换”。
这道题的判断关键很典型,属于考研网络层里“私有地址主机访问 Internet”的标准考法。图中 H1~H4 使用的都是 192.168.1.x 地址,这一段属于私有 IP 地址,不能直接在 Internet 上路由转发。而 R 连接 Internet 一侧的地址是 101.1.2.10,这是公网地址。于是内网主机如果想访问 Internet,就必须先在边界路由器 R 这里,把源地址从私网地址转换成公网地址,再发往外网。
这里之所以不是简单写“路由转发”就完了,是因为光有路由不够。
路由解决的是“往哪转发”,而 NAT 解决的是“私网地址不能直接上公网”的问题。
H1~H4 的源地址如果仍然保持 192.168.1.x 发到 Internet,上层公网路由器不会为这些私有地址提供可达性,因此通信不能成立。
再往前一步看,这里更适合写成 NAPT,因为图中 R 对外只有一个公网地址 101.1.2.10,但内网有多台主机都要同时上网。此时最常见的做法就是:
内网主机私有 IP + 源端口
→ 在 R 上转换成
公网 IP 101.1.2.10 + 不同端口
这样多台内网主机就可以共享一个公网地址访问 Internet。
这类题以后可以这样快速识别:
只要看到这几个信号,基本就该想到 NAT:
- 内网主机地址是
10.x.x.x、172.16.x.x ~ 172.31.x.x、192.168.x.x - 外网连接的是 Internet
- 边界设备只有少量甚至一个公网地址
- 题目问“如何访问 Internet”“需要提供什么服务”
那么标准答案通常就是:网络地址转换 NAT;如果题目更严一点,就答 NAPT。
所以本题第 3 问,考场上最稳的写法是:
R 需要提供网络地址转换服务(NAT),具体可采用网络地址端口转换 NAPT,使内网私有地址主机能够共享公网地址访问 Internet。

本题结论
这道题的核心有两步:
第一步,先根据子网掩码 255.255.255.240 判断每个主机和每个路由器接口分别属于哪个子网。
第二步,基于拓扑写出 R1 的路由表,再按“先看是否同网段,不同则交给默认网关,再逐跳重新封装 MAC”的思路分析 H1 发到 H2 的过程。
题里 4 台主机的子网掩码全都是 255.255.255.240,也就是 /28。/28 的块大小是 256 - 240 = 16,所以最后一个字节的子网边界一定是:
0, 16, 32, 48, 64, 80, ...
因此这 4 个子网分别是:
- Net1:
202.99.98.16/28 - Net2:
202.99.98.32/28 - Net3:
202.99.98.48/28 - Net4:
202.99.98.64/28
一、先把 4 个子网算出来
1. Net1
H1 的地址是 202.99.98.18/28,R1 在这个网段上的接口是 202.99.98.17。18 落在 16~31 这个块里,所以:
- 子网地址:
202.99.98.16 - 广播地址:
202.99.98.31
因此 Net1 就是 202.99.98.16/28。
2. Net2
H2 的地址是 202.99.98.35/28,R2 接口是 202.99.98.33,R1 接口是 202.99.98.34。35 落在 32~47 这个块里,所以:
- 子网地址:
202.99.98.32 - 广播地址:
202.99.98.47
因此 Net2 就是 202.99.98.32/28。
3. Net3
H3 的地址是 202.99.98.51/28,R2 接口是 202.99.98.49,R3 接口是 202.99.98.50。51 落在 48~63 这个块里,所以:
- 子网地址:
202.99.98.48 - 广播地址:
202.99.98.63
因此 Net3 就是 202.99.98.48/28。
4. Net4
H4 的地址是 202.99.98.66/28,R3 接口是 202.99.98.65。66 落在 64~79 这个块里,所以:
- 子网地址:
202.99.98.64 - 广播地址:
202.99.98.79
因此 Net4 就是 202.99.98.64/28。
二、R1 到 4 个子网的路由表怎么写
先看 R1 直接连了哪些网:
- R1 有一个接口
202.99.98.17,属于 Net1 - R1 有一个接口
202.99.98.34,属于 Net2
所以 Net1、Net2 对 R1 来说是直连网络。
再看非直连网络:
- Net3 需要先到 R2。R2 在 Net2 上的接口地址是
202.99.98.33 - Net4 也必须先到 R2,再由 R2 转给 R3,所以对 R1 来说,下一跳仍然是
202.99.98.33
R1 的路由表
| 目的网络 | 子网掩码 | 下一跳 | 出接口 |
|---|---|---|---|
| 202.99.98.16 | 255.255.255.240 | 直连 | 202.99.98.17 |
| 202.99.98.32 | 255.255.255.240 | 直连 | 202.99.98.34 |
| 202.99.98.48 | 255.255.255.240 | 202.99.98.33 | 202.99.98.34 |
| 202.99.98.64 | 255.255.255.240 | 202.99.98.33 | 202.99.98.34 |
这就是标准写法。
有些题目的答案只写“目的网络 + 子网掩码 + 下一跳”,那么也可以写成:
202.99.98.16/28:直连202.99.98.32/28:直连202.99.98.48/28:下一跳202.99.98.33202.99.98.64/28:下一跳202.99.98.33
三、H1 向 H2 发送 IP 数据报的过程
这部分题目重点不是“怎么转发”四个字,而是要把 IP 地址判断、路由选择、ARP 地址解析、逐跳封装 串起来写清楚。
1. H1 先判断 H2 是否与自己在同一子网
H1 的地址是 202.99.98.18,掩码 /28,所以 H1 所在子网是:
202.99.98.18 AND 255.255.255.240 = 202.99.98.16
H2 的地址是 202.99.98.35,按同样方法算出 H2 所在子网是:
202.99.98.35 AND 255.255.255.240 = 202.99.98.32
两个子网地址不同,所以 H1 知道:
H2 不和自己在同一个网段,不能直接发给 H2,必须先发给本子网的默认网关。
本题中,H1 所在网段上的默认网关就是 R1 的接口 202.99.98.17。
2. H1 先对默认网关做 ARP 地址解析
H1 要把数据先交给 R1,但以太网发送帧时必须知道对方的 MAC 地址。
因此 H1 先检查自己的 ARP 高速缓存里有没有 202.99.98.17 对应的 MAC 地址。
如果没有,就在 Net1 内广播 ARP 请求,大意是:
“谁是 202.99.98.17?请把你的 MAC 地址告诉 202.99.98.18。”
R1 的 Net1 接口收到这个 ARP 请求后,发现目标 IP 是自己,于是向 H1 单播发送 ARP 应答,把自己的 MAC 地址返回给 H1。
此后 H1 就得到了:
- 默认网关 IP:
202.99.98.17 - 默认网关 MAC:设为
MAC(R1-Net1)
并把它写入 ARP 缓存表。
3. H1 封装并发送以太网帧
H1 现在开始发送 IP 数据报。
IP 数据报首部中的地址不变
- 源 IP:
202.99.98.18 - 目的 IP:
202.99.98.35
但链路层帧首部中的 MAC 地址不是 H2 的,而是默认网关 R1 的
- 源 MAC:
MAC(H1) - 目的 MAC:
MAC(R1-Net1)
这一点特别容易考错。
因为 跨网段发送时,第一跳帧的目的 MAC 一定是下一跳路由器接口的 MAC,不是最终目的主机的 MAC。
于是 H1 把这个帧发到 Net1 上,R1 收到。
4. R1 收到帧后进行路由选择
R1 收到该帧后,先检查链路层目的 MAC,发现是发给自己的,所以接收该帧并去掉链路层首部,取出里面的 IP 数据报。
然后 R1 查看 IP 数据报中的目的 IP:202.99.98.35。
R1 查路由表后发现:
202.99.98.35 属于 202.99.98.32/28,也就是 Net2。
而 Net2 是 R1 的直连网络,所以 R1 不需要再把数据报转给别的路由器,而是可以直接从自己连接 Net2 的接口 202.99.98.34 发出去。
5. R1 在 Net2 上对 H2 做 ARP 地址解析
R1 虽然知道 H2 的 IP 地址是 202.99.98.35,但如果想在 Net2 上把帧发给 H2,仍然需要知道 H2 的 MAC 地址。
因此 R1 会检查自己的 ARP 表,看是否已有 202.99.98.35 -> MAC(H2) 的映射。
如果没有,就在 Net2 上广播 ARP 请求:
“谁是 202.99.98.35?请把你的 MAC 地址告诉 202.99.98.34。”
H2 收到后,发现目标 IP 是自己,于是回复 ARP 应答,把自己的 MAC 地址返回给 R1。
R1 于是知道:
- H2 的 IP:
202.99.98.35 - H2 的 MAC:设为
MAC(H2)
6. R1 重新封装链路层帧并转发给 H2
这里必须注意:
路由器转发时,IP 数据报中的源 IP 和目的 IP 不变,但链路层帧首部要重新封装。
所以 R1 向 H2 发出的新帧应为:
- 源 MAC:
MAC(R1-Net2) - 目的 MAC:
MAC(H2)
而 IP 数据报中的地址仍是:
- 源 IP:
202.99.98.18 - 目的 IP:
202.99.98.35
然后 R1 把该帧发到 Net2 上,H2 收到后发现目的 MAC 是自己,于是接收帧,交给 IP 层处理。
IP 层再发现目的 IP 正是本机地址 202.99.98.35,于是把数据交给上层协议。
这样,H1 到 H2 的发送过程就完成了。
五、本题为什么容易错
这类题的错点非常集中,基本就这几个。
1. 把“主机地址”误写成“子网地址”
比如看到 H1 是 202.99.98.18/28,就把 Net1 写成 202.99.98.18,这是错误的。
路由表里写的是 目的网络地址,不是某台主机的地址。
2. 不会快速找 /28 的网段边界
255.255.255.240 = /28,块大小是 16,所以最后一个字节一定按:
0,16,32,48,64,80...
来划分。
谁落在哪个区间,那个区间的起点就是子网地址。
这是这类题最重要的基本功。
3. 误以为 H1 可以直接 ARP H2
ARP 只在本地局域网内解析下一跳 MAC。
H1 和 H2 不在同一子网,所以 H1 不会直接去问 H2 的 MAC,而是先问默认网关 R1 的 MAC。
4. 误以为 MAC 地址全程不变
IP 地址是端到端基本不变的。
MAC 地址是逐跳变化的。
本题中:
- H1 发给 R1 时,帧目的 MAC 是
R1 - R1 发给 H2 时,帧目的 MAC 是
H2
这是网络层和链路层最经典的综合考点。
六、以后看到同类题,怎么快速做
以后看到“路由器 + 多个子网 + 若干主机 IP/掩码 + 让写路由表或转发过程”这种题,直接按这个模板走:
先算块大小。
再定每个 IP 所属子网。
再找每台路由器直接连接了哪些网。
直连网写“直连”,非直连网写“下一跳邻居路由器接口地址”。
分析转发过程时,先判断是否同网段;不同网段就一定先找默认网关的 MAC,再由路由器逐跳转发;每一跳都可能重新 ARP,且每一跳都会重写 MAC 首部。
这就是这类题最稳定的做法。
子网地址为什么要用“IP 地址 与 子网掩码”来求
这个原理本质上并不复杂,核心就一句话:
子网掩码的作用,就是在一个 IP 地址中,标出哪些位是“网络号”,哪些位是“主机号”。
而“与操作”刚好可以做到这样一件事:
- 掩码中是
1的位,保留原 IP 的对应位 - 掩码中是
0的位,强制变成0
所以,IP 地址 与 子网掩码 = 保留网络号,清零主机号。
这样得到的结果,当然就是这个 IP 所属子网的网络地址。
一、先从子网掩码的含义说起
例如本题中,子网掩码是:
255.255.255.240
把它写成二进制就是:
11111111.11111111.11111111.11110000
这个写法的含义非常明确:
- 前 28 位全是
1,说明这 28 位属于 网络号 - 后 4 位全是
0,说明这 4 位属于 主机号
也就是说,这其实就是 /28。
所以一个 /28 地址中:
- 前 28 位决定“你属于哪个子网”
- 后 4 位决定“你是这个子网里的哪一台主机”
二、为什么“与操作”能求出网络地址
因为“与”有这样一个规则:
1 AND 1 = 11 AND 0 = 00 AND 1 = 00 AND 0 = 0
于是就出现了很关键的效果:
1. 网络位与 1 相与,保持不变
因为子网掩码的网络位全是 1,
所以 IP 地址中属于网络号的那部分,和掩码做与运算后,会原样保留。
2. 主机位与 0 相与,全部清零
因为子网掩码的主机位全是 0,
所以 IP 地址中属于主机号的那部分,不管原来是 0 还是 1,与完之后都会变成 0。
这就等于:
把一个具体主机地址,还原成它所在子网的“起始地址”。
而这个“起始地址”,就是网络地址。
三、拿题里的 H1 举例看原理
H1 的 IP 地址是:
202.99.98.18
子网掩码是:
255.255.255.240
前面三个字节都不用动,关键只看最后一个字节。
第一步:把最后一个字节写成二进制
18 = 00010010240 = 11110000
第二步:做与运算
0001001011110000--------00010000
00010000 = 16
所以结果就是:
202.99.98.16
这就是 H1 所在子网的网络地址。
四、再看 H2、H3、H4 为什么会得到不同网络地址
H2:202.99.98.35
35 = 00100011240 = 11110000
相与后:
0010001111110000--------00100000
00100000 = 32
所以 H2 的网络地址是:
202.99.98.32
H3:202.99.98.51
51 = 00110011240 = 11110000
相与后:
0011001111110000--------00110000
00110000 = 48
所以 H3 的网络地址是:
202.99.98.48
H4:202.99.98.66
66 = 01000010240 = 11110000
相与后:
0100001011110000--------01000000
01000000 = 64
所以 H4 的网络地址是:
202.99.98.64
五、为什么“网络地址”一定是主机位全 0
这是网络地址的定义决定的。
一个子网中,所有主机的网络号都一样,只是主机号不同。
如果把主机号全部变成 0,那么得到的就是这个子网最“基础”的那个地址,也就是网络地址。
例如 /28 中主机号占 4 位,那么:
xxxx0000:网络地址xxxx0001到xxxx1110:可分配给主机xxxx1111:广播地址
所以从一个主机地址出发,只要把最后那几个“主机位”全部清零,就一定能回到它所属子网的网络地址。
六、这个原理从“集合”的角度也很好理解
也可以把一个子网看成一个“地址块”。
比如 /28,每个子网一共有 16 个地址。
那么这些地址一定是按 16 个一组连续出现的:
0~1516~3132~4748~6364~79
H1 的最后一个字节是 18,它落在 16~31 这一组,所以网络地址就是 16。
H2 的 35 落在 32~47,所以网络地址就是 32。
H3 的 51 落在 48~63,所以网络地址就是 48。
H4 的 66 落在 64~79,所以网络地址就是 64。
这和“与子网掩码”的结果完全一致。
也就是说:
与运算是二进制层面的做法,按块划分是十进制层面的做法。两者本质上是同一件事。
七、考研做题时,到底该怎么理解最省事
做题时可以直接记成下面这句话:
子网掩码中的 1 表示网络位,0 表示主机位;IP 地址与子网掩码相与,就是保留网络位、清零主机位,所以得到网络地址。
这句话基本够应付大多数题。
八、这类题常见误区
1. 误把主机地址当成网络地址
比如 H1 是 202.99.98.18,有人会直接认为 Net1 就是 202.99.98.18。
这是不对的。18 是某台主机在这个子网里的编号,不是子网本身的编号。
2. 只会背“与运算”,但不知道为什么
这就容易在题目稍微变形时不会做。
真正要明白的是:
- 掩码 1 的部分:保留
- 掩码 0 的部分:清零
理解了这一点,任何“求网络地址”的题都能做。
3. 十进制会算,二进制不会看
很多同学能看出 /28 的块大小是 16,但不知道这和二进制有什么关系。
其实块大小 16,正好对应最后 4 位是主机位,因为 2⁴ = 16。
所以 /28 的地址块一定是按 16 为边界切分的。
九、把这个原理总结成一句更适合做题的话
可以这样记:
网络地址 = 该 IP 所在子网的“起点地址”
而
IP 与子网掩码 = 把主机位全部变成 0
所以
IP 与子网掩码就一定得到这个子网的起点地址,也就是网络地址。
十、回到这道题,为什么他们要先求网络地址
因为后面要做的事情是:
- 判断两台主机是否在同一子网
- 写路由表时写的是“目的网络”,不是“目的主机”
- 分析转发过程时要判断目标 IP 属于哪个网段
所以必须先把每个 IP 所属的网络地址求出来。
这是这类题的第一步,而且往往是最关键的一步。
如果愿意,我下一步可以继续把“为什么广播地址是主机位全 1”也顺着这一套逻辑讲清楚,这样“网络地址、主机地址、广播地址”三者就能一次性彻底串起来。



