Appearance
ARP 地址解析协议
考情分析
ARP 协议是网络层和数据链路层衔接的关键知识点,选择题常考 ARP 的功能、工作过程以及同子网 / 跨子网场景下的区别。有时会和交换机自学习、路由转发结合在一起出大题。
考频:★★★
ARP 解决什么问题
网络层使用 IP 地址进行路由选择,但实际在链路上传输数据帧时使用的是 MAC 地址(48 bit 物理地址)。ARP(Address Resolution Protocol)的作用就是根据目的 IP 地址找到对应的 MAC 地址。
简单说:ARP 完成的映射是 IP 地址 -> MAC 地址。
注意方向:ARP 是已知 IP 求 MAC。反过来,已知 MAC 求 IP 的是 RARP(逆地址解析协议),现在基本被 DHCP 替代了。
ARP 的工作过程
同一子网内的 ARP
假设主机 A(192.168.1.10)要发数据给同一子网内的主机 B(192.168.1.20),但不知道 B 的 MAC 地址。
过程总结:
- A 先查自己的 ARP 缓存表,如果有 B 的记录就直接用
- 缓存中没有,A 在本子网内广播一个 ARP 请求,请求中包含 B 的 IP 地址
- 子网内所有主机都能收到这个广播,但只有 IP 匹配的主机 B 会响应
- B 以单播方式发回 ARP 响应,告知自己的 MAC 地址
- A 收到响应后,将 B 的 IP-MAC 映射缓存起来(一般有效期几分钟)
关键点:ARP 请求是广播,ARP 响应是单播。
跨子网的 ARP
如果 A(192.168.1.10)要发数据给不同子网的主机 D(192.168.2.50),情况就不一样了。
A 发现目的 IP 和自己不在同一个子网(通过子网掩码判断),这时 A 不会去广播查 D 的 MAC。因为 D 不在本子网,广播根本到不了 D。
A 的做法是:把数据报发给默认网关(路由器)。所以 A 需要的是网关的 MAC 地址,而不是 D 的 MAC。
关键理解:在整个转发过程中,IP 地址始终不变(源 IP 是 A,目的 IP 是 D),但 MAC 地址逐跳改变——每经过一个路由器,源 MAC 和目的 MAC 都会被替换。
ARP 缓存表
每台主机和路由器都维护一个 ARP 缓存表,存储最近解析过的 IP-MAC 映射。
| IP 地址 | MAC 地址 | 类型 | 有效期 |
|---|---|---|---|
| 192.168.1.1 | aa:bb:cc:dd:ee:01 | 动态 | 2分钟 |
| 192.168.1.20 | aa:bb:cc:dd:ee:02 | 动态 | 2分钟 |
- 动态条目:通过 ARP 协议学习到的,有生存时间(一般 2~20 分钟),过期自动删除
- 静态条目:管理员手动配置的,不会过期
ARP 缓存的存在减少了广播次数。如果每发一个数据报都要 ARP 广播一次,网络开销会很大。
ARP 的特点
- ARP 工作在网络层(有些教材认为它跨越了网络层和数据链路层)
- ARP 只能在同一个广播域内工作,不能跨路由器
- ARP 报文直接封装在数据链路层帧中(以太网帧的类型字段 = 0x0806),不经过 IP 层
- ARP 是即插即用的,不需要管理员配置
ARP 欺骗
ARP 协议没有认证机制,任何主机都可以发送伪造的 ARP 响应。攻击者可以冒充网关,让受害者把数据发给自己,实现中间人攻击。
这个内容 408 考试偶尔在选择题提一句,了解即可。
交互可视化
易错点
1. ARP 请求广播,ARP 响应单播
很多同学会误以为响应也是广播。ARP 请求是广播是因为不知道目标 MAC,没法单播;响应时已经知道请求方的 MAC 了(请求报文里带着),所以用单播就行。
2. 跨子网通信时,ARP 解析的是网关的 MAC,不是目的主机的 MAC
A 要和不同子网的 D 通信,A 的 ARP 解析的是默认网关的 MAC 地址。A 构造的以太网帧目的 MAC 填的是网关的 MAC,但 IP 数据报的目的 IP 仍然是 D 的 IP。
3. MAC 地址逐跳变化,IP 地址端到端不变
整个转发过程中,IP 地址不变(NAT 除外),MAC 地址每过一个路由器就换一次。
4. ARP 不能跨路由器工作
ARP 请求是广播帧,路由器不会转发广播帧(路由器隔离广播域)。所以 ARP 只在本子网有效。
高频考点清单
- ARP 的功能:IP 地址 -> MAC 地址
- ARP 请求广播,ARP 响应单播
- 同子网直接 ARP 解析目的主机 MAC
- 跨子网 ARP 解析默认网关的 MAC
- MAC 地址逐跳变化,IP 地址端到端不变(NAT 除外)
- ARP 缓存表的作用和动态条目的有效期
- ARP 不能跨路由器(跨广播域)工作