解決方案協議(ARP)的初學者指南

地址解析協議處理本地IP地址在網絡上的計算機之間解析的方式。

以最簡單的形式想像一下,您有一台計算機,如筆記本電腦,並且您想與Raspberry PI進行通信,而這兩者都作為本地寬帶連接的一部分進行連接。

通常可以通過ping命令查看Raspberry PI是否可以在網絡上使用。 只要你ping Raspberry PI或嘗試與Raspberry PI建立任何其他連接,你就會開始解決地址解析的問題。 把它看作是一種握手形式。

ARP比較主機和目標計算機的地址和子網掩碼 。 如果這些匹配,那麼地址已經有效地解析到本地網絡。

那麼這個過程如何實際工作?

您的計算機將擁有一個首先被訪問的ARP緩存以嘗試並解析該地址。

如果緩存不包含解析地址所需的信息,則會向網絡中的每台計算機發送一個請求。

如果網絡上的一台機器沒有搜索到IP地址,那麼它只會忽略該請求,但如果機器有匹配,那麼它會將呼叫計算機的信息添加到它自己的ARP緩存中。 然後,它會將回復發送回原始呼叫計算機。

在收到目標計算機地址的確認後,就會進行連接,因此可以處理ping或其他網絡請求。

源計算機從目標計算機上搜索的實際信息是其MAC地址,或者有時稱為HW地址。

使用Arp命令的工作示例

為了便於理解,您需要將2台計算機連接到您的網絡。

確保兩台計算機都已打開並能夠連接到互聯網。

現在使用Linux打開終端窗口並輸入以下命令:

地址解析協議

顯示的信息是當前存儲在您計算機的ARP緩存中的信息。

結果可能只顯示您的機器,您可能看不到任何內容,或者如果您之前已連接到其他計算機的名稱,結果可能會包含其他計算機的名稱。

。arp命令提供的信息如下所示:

如果你什麼都沒有顯示,那麼不要擔心,因為這會很快改變。 如果您可以看到另一台計算機,那麼您可能會看到硬件地址設置為(不完整)。

您需要知道您要連接的計算機的名稱。 就我而言,我正在連接到我的Raspberry PI零點。

在終端內運行以下命令,將您所連接的計算機的名稱替換為raspberrypizero。

ping raspberrypizero

發生的事情是,您正在使用的計算機已經查看了它的ARP緩存,並意識到它沒有關於您嘗試ping的計算機的信息或信息不足。 因此,它通過網絡發出請求,詢問網絡中的所有其他機器是否確實是您正在尋找的計算機。

網絡上的每台計算機都會查看所請求的IP地址和掩碼,除了具有該IP地址的IP地址和掩碼之外的所有計算機都將放棄請求。

具有請求的IP地址和掩碼的計算機將喊出“嘿,那就是我!!!!” 並將其硬件地址發送回請求計算機。 然後這將被添加到呼叫計算機的ARP緩存中。

不要相信我? 再次運行arp命令。

地址解析協議

這次你應該看到你ping的計算機的名字,你也會看到硬件地址。

顯示IP地址而不是計算機的主機名

默認情況下,arp命令將顯示ARP緩存中項目的主機名,但您可以使用以下開關強制它顯示IP地址:

arp -n

或者,您可能希望使用以下開關,以不同的方式顯示輸出:

arp -a

上述命令的輸出結果如下所示:

rapberrypi(172.16.15.254)在d4:ca:6d:0e:d6:19 [ether]上wlp2s0

這次你得到計算機的名稱,IP地址,硬件地址,硬件類型和網絡。

如何從ARP緩存中刪除條目

ARP緩存不會長時間保存其數據,但如果您在連接到特定計算機時遇到問題,並且您懷疑這是因為保存的地址數據不正確,則可以按以下方式從緩存中刪除條目。

首先,運行arp命令以獲取您希望刪除的條目的HW地址。

現在運行以下命令:

arp -d HWADDR

將HWADDR替換為您希望刪除的條目的HW地址。

概要

arp命令不是普通計算機用戶常用的,只有在解決網絡問題時才與大多數人相關。