计网 12|ARP、DHCP、ICMP:地址解析、动态分配与差错报告

第一次配网络,我只知道「IP 用来找主机,MAC 用来在链路上传数据」,却从没想过:当一个包要从 A 发到同网段的 B,机器怎么知道 B 的 MAC 地址?

答案是 ARP。而「新电脑插上网线怎么拿到 IP」靠 DHCP,「Ping 为什么能测通不通」靠 ICMP。这三个协议都依附在网络层、却又不直接传用户数据,是 408 最爱考的「辅助协议」。这篇一次讲透。

〇、先花两分钟:三个协议各管一桩事

  • ARP(地址解析协议):「我知道你 IP,但你网卡 MAC 是多少?」------把 IP 翻译成 MAC,让数据能在链路层发出去。

  • DHCP(动态主机配置协议):「我刚联网,还没 IP,给我分配一个吧」------自动下发 IP、掩码、网关、DNS。

  • ICMP(网际控制报文协议):「报告!这个包超时/不可达/丢了」或「回个话证明你活着」------负责网络层的差错和诊断,Ping 就靠它。

一句话:ARP 找 MAC,DHCP 发 IP,ICMP 报状态。

图示:主机 A 广播 ARP 请求「谁是 192.168.1.2?」,同网段所有主机收到,只有 B 单播回应自己的 MAC;A 据此填写 ARP 表

一、ARP:IP → MAC 的翻译官

ARP 解决「同网段内,已知 IP 求 MAC」:

  1. A 要发数据给同网段 B(IP 已知),但不知 B 的 MAC;

  2. A 在本网段广播一个 ARP 请求:「谁的 IP 是 192.168.1.2?请告诉你的 MAC」;

  3. 同网段所有主机都收到广播,但只有 B 认领 ,于是 B 向 A 单播回应:「我是 192.168.1.2,MAC 是 xx:xx:xx」;

  4. A 把 (IP, MAC) 写进ARP 高速缓存表(有 TTL,过期重查);

  5. 之后 A 直接查表发帧,不再广播。

⚠️ 易错 :ARP 请求是广播 ,ARP 应答是单播。还有「免费 ARP」(主机主动广播自己的 IP-MAC 映射,用来检测 IP 冲突),它不算请求也不算应答。

二、DHCP:自动拿 IP 的四步舞

主机刚联网时还没有 IP(用 0.0.0.0 占位),通过 DHCP 从服务器租一个:

步骤 报文 源 IP 目的 IP 说明
1 Discover 0.0.0.0 255.255.255.255(广播) 客户端「谁给我 IP」
2 Offer 服务器 IP 广播/客户端 服务器「这个 IP 给你」
3 Request 0.0.0.0 广播 客户端「我要这个 IP」
4 ACK 服务器 IP 广播/客户端 服务器「确认,租给你」

关键点 :在拿到 IP 之前,客户端没有地址,所以源 IP 一律是 0.0.0.0,目的用广播 255.255.255.255------这也是 2025(36) 的考点。

⚠️ 易错 :DHCP 请求/确认阶段,源 IP 是 0.0.0.0 不是 192.168.x.x;目的多半是广播。客户端的「已分配 IP」要等 ACK 之后才正式生效。

三、ICMP:网络层的「状态播报员」

ICMP 报文封装在 IP 数据报里(IP 协议号 1),分两大类:

1. 差错报告报文(报告问题):

  • 终点不可达(网络/主机/端口不可达)

  • 源点抑制(拥塞时通知源主机降速,现已基本弃用)

  • 时间超过(TTL=0 时丢弃并报告------Traceroute 就靠这个)

  • 参数问题、重定向

2. 询问报文(主动探测):

  • 回送请求 / 回送应答(Ping 用的就是它)

  • 时间戳请求 / 应答

⚠️ 易错 :ICMP 是封装在 IP 里 的,所以「直接为 ICMP 提供服务的协议是 IP」(2012(33))。另外 Ping 用的是 ICMP 的回送报文,不是 TCP/UDP。

四、真题拆解 1:ARP 的功能(2012(38),答案 A)

ARP 协议的功能是?

直接选:根据 IP 地址查询 MAC 地址(A)。反方向「MAC 查 IP」叫 RARP(已淘汰),别混淆。

五、真题拆解 2:路由器拥塞丢包发什么 ICMP(2010(36),答案 C)

路由器 R 因拥塞丢弃 IP 分组,可向源主机发送的 ICMP 报文类型是?

选 源点抑制(C)。虽然该类型实际已弃用,但考题仍按传统分类出。注意它和「终点不可达」「超时」的区别:拥塞→源点抑制;找不到主机/端口→不可达;TTL 到 0→时间超过。

六、真题拆解 3:DHCP REQUEST 的地址(2025(36),答案 C)

新主机通过 DHCP 请求 IP,封装 DHCP REQUEST 报文的 IP 数据报,目的 IP 和源 IP 分别是?

此时客户端仍未获得 IP ,故源 IP = 0.0.0.0;请求仍用广播,目的 IP = 255.255.255.255。

答案:C(255.255.255.255, 0.0.0.0)。

七、真题拆解 4:ARP 表不会出现的项(2024(35),答案 D)

支持 VLAN 划分的交换机,部分主机 IP/MAC 如图所示,ARP 表结构为 <IP, MAC, TTL>。不会出现在 H4 的 ARP 表中的是?

H4 只会在同网段、实际通信过 的主机里学到 ARP 表项。选项 D 的地址 192.168.3.129 既不在 H4 同子网、又跨了 VLAN/网段(跨网段通信走网关,不直接 ARP),所以不会出现在 H4 的 ARP 表。

答案:D。

八、17 年真题考在哪

年份(题号) 考法 答案
2010(36) 拥塞丢包对应的 ICMP 类型 C(源点抑制)
2012(33) 直接为 ICMP 服务的协议 B(IP)
2012(38) ARP 的功能 A(IP 查 MAC)
2024(35) VLAN 下 ARP 表不出现的项 D
2025(36) DHCP REQUEST 的源/目的 IP C(广播、0.0.0.0)

命题规律:①ARP 的「广播请求/单播应答」几乎年年考变体;②DHCP 的 0.0.0.0 与广播地址是近年的新热点;③ICMP 报文类型匹配是经典题;④Ping/Traceroute 对应哪种 ICMP 报文要记牢。

九、易错点清单

易错点 正确说法
ARP 请求和应答都是广播 错,请求广播、应答单播
RARP 是 IP 查 MAC 错,ARP 是 IP→MAC;RARP 反过来(已淘汰)
ICMP 直接跑在数据链路层 错,ICMP 封装在 IP 里,IP 协议号 1
Ping 用的是 TCP 错,Ping 用 ICMP 回送请求/应答
DHCP 请求时源 IP 已分配 错,拿 IP 前源 = 0.0.0.0,目的 = 255.255.255.255
源点抑制还在广泛使用 错,已弃用,但考题仍按传统分类
Traceroute 靠 ICMP 不可达 错,靠时间超过(TTL 逐跳递增触发)

速查表(文末收藏版)

复制代码
ARP :IP → MAC。请求=广播,应答=单播,结果存 ARP 表(有 TTL)
DHCP:四步 Discover/Offer/Request/ACK
       未获 IP 前 源=0.0.0.0,目的=255.255.255.255(广播)
ICMP:封装在 IP 里(协议号 1)
       差错:不可达 / 源点抑制(弃用) / 时间超过 / 参数问题 / 重定向
       询问:回送请求·应答(Ping) / 时间戳
       Traceroute 靠 时间超过(TTL=0) 逐跳探测
​
真题:2010(36) 2012(33) 2012(38) 2024(35) 2025(36)

本文依据 :谢希仁《计算机网络(第 8 版)》第 4 章 4.2.3(ARP)、4.4.2(ICMP)、第 6 章 DHCP 相关;真题年份题号来自 zhenti_all.json(2009--2025 计网 no 33--40)。

相关推荐
Thanks_ks2 小时前
常见 HTTP 状态码的坑:301/302、401/403、500/502 之间差的那一个词
计算机网络·nginx·http·面试·状态码·后端开发·浏览器缓存
好啊好啊郝!4 小时前
计算机网络最基础知识点
服务器·网络·计算机网络
优化控制仿真模型5 小时前
2026【英一】考研英语一历年真题及答案解析PDF电子版(1980-2025年)
考研·pdf
pikapika~~~6 小时前
计算机网络八股
服务器·网络·计算机网络
希和20276 小时前
考研高数综合题|二重积分(平移极坐标)
考研
承渊政道7 小时前
Linux网络学习【数据链路层、ARP工作过程与ARP欺骗详解】
linux·网络·学习·数据链路层·arp
lazy H1 天前
【计算机网络】第 15 篇:Java BIO、NIO 与高并发网络通信——从 Socket 理解 I/O 模型
网络·后端·tcp/ip·计算机网络·nio·408
MicrosoftCloud1 天前
计网 11|NAT 与 IP 地址转换:私有地址、NAPT 端口映射
计算机网络·考研·ip地址·408·nat·napt·私有地址
killerbasd1 天前
总结 10。31
考研