我們知道,兩台主機想要進行相互間通信,那麼都需要有IP位址才行,而且還要知道通信對方的IP位址。那麼有了IP位址就可以通訊了呢?還不行,還需要有對方的MAC位址才能夠進行通信,MAC位址和IP位址缺一不可。下面我們來看,知道了對方主機的IP位址,那麼如何查到對方的MAC位址。
每台主機都有自己的arp快取列表,裡面存放著區域網路內其他主機的Ip位址和Mac位址的對應關係。可以在指令視窗下,輸入`arp -a查看本主機的arp快取。
arp -a 接口: 192.168.110.145 --- 0x13 Internet 地址 物理地址 类型 192.168.110.1 30-0d-9e-61-27-3a 动态 192.168.110.255 ff-ff-ff-ff-ff-ff 静态 ……
當局域網路的主機A(IP為192.168.1.11)要和同一區域網路的主機B通訊時,在已知主機B的IP位址(192.168.1.13)後,會查看自己的arp快取,看裡面有沒有主機B的MAC位址,如果有的話,就可以跟主機B進行通訊了。如果沒有的話,就要使用ARP位址解析協定來取得主機B的MAC位址。下面我們來看arp的工作流程:
(1)主機A在區域網路內發送廣播包,訊息內容類似:」我是192.168.1.11,mac位址是a0:a4:ce:42: 29:56,我想知道192.168.1.13的MAC位址」。
(2)在本區域網路上所有執行arp程式的主機都能收到該廣播訊息。
(3)主機B的IP匹配,所有收下該請求,並將主機A的IP與MAC位址的映射關係記錄到記得的arp快取中。然後發送單播包給主機A,內容類似:「我是192.168.1.13,我的MAC位址是f1:21:fa:c2:d2:ad」。
(4)主機A收到B寄來的單播訊息,將主機B的IP位址和MAC位址關係記錄到自己的arp快取裡。
注意,因為區域網路主機是動態變換的,所以ARP快取是有生存時間的,過期會自動刪除。
大家可能會有疑問,你說的這只是區域網路內主機狀況,如果是不同網段的呢?其實也還是透過ARP來取得的,只不過需要進行多次ARP請求。
以上是詳解ARP位址解析協定的工作流程的詳細內容。更多資訊請關注PHP中文網其他相關文章!