ARP工作原理
位址解析協定ARP,用來将目标IP解析為目标MAC,形成映射關系。相當于根據名字找到電話号碼一樣。
ARP工作如圖所示:

由上圖所示,HostA知道HostB的IP位址,但不知道其對應MAC位址,工作過程如下:
(1)網絡裝置一般都一個ARP緩存,用來存放IP位址與對應MAC位址的映射關系。在發送資料之前,主機HostA會先查找自己的ARP快取記錄,檢視是否存在HostB的ARP表項,發現不存在。
(2)于是HostA廣播發送ARP請求封包,該網絡中所有主機包括網關都會收到此封包。
其發送的ARP資料包格式如下所示:
Hardware Type表示硬體位址類型,一般為以太網;
Protocol Type表示三層協定位址類型,一般為IP;
Hardware Length和Protocol Length為MAC位址和IP位址的長度,機關是位元組;
Operation Code指定了ARP封包的類型,包括ARP Request和ARP Reply;
Source Hardware Address指的是發送ARP封包的裝置MAC位址;
Source Protocol Address指的是發送ARP封包的裝置IP位址;
Destination Hardware Address指的是接收者MAC位址,在ARP Request封包中,該字段值為0;
Destination Protocol Address指的是接收者的IP位址。
(3)其發送的ARP Request包會封裝在以太幀裡,以太幀的幀頭源MAC位址為HostA的MAC位址,因為不知道主機HostB的位址,是以以太幀的目标MAC位址是廣播位址FF-FF-FF-FF-FF-FF。
(4)ARP Request包裡面也有發送端的MAC位址、IP位址和目标端的MAC位址、IP位址等,再發送官博請求的時候目标MAC是0,封包類型是Request。
(5)網絡中的裝置收到ARP Request封包後,檢查目标IP,不是自己IP則直接丢棄,是自己則進行儲存源端IP和MAC位址,然後單點傳播發送ARP Reply封包給HostA。
(6)ARP Reply封包裡面發送端IP位址和MAC位址都是自己的,接收端IP位址和MAC位址都是HostA的,ARP封包類型為Reply。
(7)主機HostA收到主機HostB的ARP Reply包,同樣會檢查目标IP和目标MAC會進行記錄。
(2)于是雙方都有的相應的IP位址與MAC位址映射,可以直接通信。
驗證:
裝置1 IP位址:192.168.1.19 MAC:vivoXXXXX
裝置2 IP位址:192.1681.29 MAC:30:XXXXXXX
(1)在裝置上使用ping指令測試使用Wireshark抓包軟體對ARP資料包進行資料抓包,ARP Request包發送如圖所示:
(2)由方框可知,在資料幀頭部中,源MAC位址是裝置的MAC位址,目标MAC位址是廣播位址FF-FF-FF-FF-FF-FF。由圓框可知,在ARP封包中發送端IP位址和MAC位址都是PC1的,目标MAC值為0,目标IP位址為192.168.1.29.
(3)ARP Reply資料包回應如圖所示:
由方框可知,在資料幀頭部,源MAC位址為裝置2和目标MAC位址為裝置1;
由圓框可知,在ARP Repla包中,發送端IP位址和MAC位址都為裝置2,接收端IP位址和目标位址都為裝置1.可知發送ARP Reply包是單點傳播的。
(4)驗證成功。