對于網(wǎng)絡(luò)的傳輸,IP地址也就是主機(jī)地址的解析是離不開ARP協(xié)議的使用的。但這方面也非常容易出現(xiàn)問題。我們現(xiàn)在就來簡單談?wù)凙RP協(xié)議的一些基本地址解析的內(nèi)容。
解釋本地IP地址(要了解地址解析工作過程的朋友看好了)主機(jī)IP地址解析為硬件地址:
(1)當(dāng)一臺主機(jī)要與別的主機(jī)通信時,初始化ARP請求。當(dāng)該IP斷定IP地址是本地時,源主機(jī)在ARP緩存中查找目標(biāo)主機(jī)的硬件地址。
(2)要是找不到映射的話,ARP協(xié)議建立一個請求,源主機(jī)IP地址和硬件地址會被包括在請求中,該請求通過廣播,使所有本地主機(jī)均能接收并處理。
(3)本地網(wǎng)上的每個主機(jī)都收到廣播并尋找相符的IP地址。
(4)當(dāng)目標(biāo)主機(jī)斷定請求中的IP地址與自己的相符時,直接發(fā)送一個ARP答復(fù),將自己的硬件地址傳給源主機(jī)。以源主機(jī)的IP地址和硬件地址更新它的ARP緩存。源主機(jī)收到回答后便建立起了通信。
解析遠(yuǎn)程IP地址
不同網(wǎng)絡(luò)中的主機(jī)互相通信,ARP協(xié)議廣播的是源主機(jī)的缺省網(wǎng)關(guān)。
目標(biāo)IP地址是一個遠(yuǎn)程網(wǎng)絡(luò)主機(jī)的話,ARP將廣播一個路由器的地址。
(1)通信請求初始化時,得知目標(biāo)IP地址為遠(yuǎn)程地址。源主機(jī)在本地路由表中查找,若無,源主機(jī)認(rèn)為是缺省網(wǎng)關(guān)的IP地址。在ARP緩存中查找符合該網(wǎng)關(guān)記錄的IP地址(硬件地址)。
(2)若沒找到該網(wǎng)關(guān)的記錄,ARP協(xié)議將廣播請求網(wǎng)關(guān)地址而不是目標(biāo)主機(jī)的地址。路由器用自己的硬件地址響應(yīng)源主機(jī)的ARP請求。源主機(jī)則將數(shù)據(jù)包送到路由器以傳送到目標(biāo)主機(jī)的網(wǎng)絡(luò),最終達(dá)到目標(biāo)主機(jī)。
(3)在路由器上,由IP決定目標(biāo)IP地址是本地還是遠(yuǎn)程。如果是本地,路由器用ARP協(xié)議(緩存或廣播)獲得硬件地址。如果是遠(yuǎn)程,路由器在其路由表中查找該網(wǎng)關(guān),然后運(yùn)用ARP獲得此網(wǎng)關(guān)的硬件地址。數(shù)據(jù)包被直接發(fā)送到下一個目標(biāo)主機(jī)。
(4)目標(biāo)主機(jī)收到請求后,形成ICMP響應(yīng)。因源主機(jī)在遠(yuǎn)程網(wǎng)上,將在本地路由表中查找源主機(jī)網(wǎng)的網(wǎng)關(guān)。找到網(wǎng)關(guān)后,ARP即獲取它的硬件地址。
(5)如果此網(wǎng)關(guān)的硬件地址不在ARP協(xié)議緩存中,通過ARP廣播獲得。一旦它獲得硬件地址,ICMP響應(yīng)就送到路由器上,然后傳到源主機(jī)。