ARP 原理总结
🌐 一、ARP 原理总结
ARP(Address Resolution Protocol)是用于通过 IP 地址解析 MAC 地址的协议,工作在 链路层 与 网络层之间(OSI 模型的第三层与第二层之间)。
🔁 ARP通信过程:
假设 A 要与 B 通信(已知 B 的 IP,不知道 B 的 MAC):
-
A 先查自己的 ARP 缓存表;
-
若无对应项,则:
-
A 广播发送一个 ARP 请求(目标是 B 的 IP);
-
-
B 收到后:
-
把 A 的 IP–MAC 存入自己的 ARP 表;
-
并单播一个 ARP 回复(reply)给 A;
-
-
A 收到 ARP reply:
-
把 B 的 IP–MAC 存入自己的 ARP 表;
-
-
后续数据通信即可用 MAC 地址直接通信,无需再 ARP。
🧠 二、你的结论补充和修正
你说:
发一次,两个人都有相对应的ARP信息。
✅ 正确!
-
因为请求发出后,接收者在回应前,也会顺便记录发送者的IP–MAC信息。
-
所以 一次 ARP 请求 + 回复,就完成了双方的 ARP 学习。
📊 三、四个网段最多四次 ARP?
这个部分我们详细分析:
假设有 4 个网段,PC1 发往 PC4,会经过路由器转发(如每两个设备在一个广播域中),如下图所示:
在没有任何 ARP 缓存的前提下,每一跳都要进行 ARP 解析:
-
PC1 要找 R1(网关)的 MAC → 发一次 ARP
-
R1 要找 R2 的接口 MAC → 发一次 ARP
-
R2 要找 R3 的接口 MAC → 发一次 ARP
-
R3 要找 PC4 的 MAC → 发一次 ARP
所以:
✅ 最多:4 次 ARP 请求(每一跳一次)
❗️那为什么说“最少 0 次 ARP 请求”?
因为如果所有相关设备的 ARP 缓存都已存在(即:之前已经通信过,或静态绑定),则不再发 ARP 请求:
✅ 最少:0 次 ARP 请求
✅ 总结:ARP 关键点
情况 | 是否需要 ARP 请求 |
---|---|
本机 ARP 表有记录 | ❌ 不需要 |
本机 ARP 表没有记录 | ✅ 需要请求 |
一次 ARP 请求+回复 | ✅ 双方都学到 MAC |
多网段通信(无缓存) | ✅ 每跳一次 |
多网段通信(都有缓存) | ❌ 不发请求 |