🌐 一、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 |
多網段通信(無緩存) | ? 每跳一次 |
多網段通信(都有緩存) | ? 不發請求 |