ARP (address resolution protocol,地址解析協(xié)議)是一個(gè)位于TCP/IP 協(xié)議棧中的底層協(xié)議,它用于映射計(jì)算機(jī)的物理地址與網(wǎng)絡(luò)IP地址。
(mac address ——————————IP)
Internet分布式中,每個(gè)主機(jī)都被分配一個(gè)32位的網(wǎng)絡(luò)地址,此時(shí)就存在將計(jì)算機(jī)的IP地址與物理地址之間的轉(zhuǎn)換問題。
ARP所做的工作就是在主機(jī)端發(fā)送幀前,根據(jù)目標(biāo)IP地址獲取MAC地址,以保證通信過程的順暢。
具體過程如下:
每臺(tái)主機(jī)都會(huì)在自己的ARP緩沖區(qū)中簡(jiǎn)歷一個(gè)ARP列表,用于存儲(chǔ)IP地址與MAC地址的對(duì)應(yīng)關(guān)系。
當(dāng)源主機(jī)需要將一個(gè)數(shù)據(jù)包發(fā)送到目標(biāo)主機(jī)時(shí)候?
(1)檢查自己的ARP列表是否存在ARP列表是否存在該IP地址對(duì)應(yīng)的MAC地址。
(2)如果存在,直接將數(shù)據(jù)包發(fā)送到MAC地址,如果不存在,就向本地網(wǎng)段發(fā)起一個(gè)ARP請(qǐng)求的廣播包,用于查詢目標(biāo)主機(jī)對(duì)應(yīng)的MAC地址。
【此ARP請(qǐng)求數(shù)據(jù)包里包括源主機(jī)的IP地址、硬件地址以及目標(biāo)主機(jī)的IP地址等?!?br>
(3)網(wǎng)絡(luò)中所有的主機(jī)收到這個(gè)ARP請(qǐng)求之后,會(huì)檢查數(shù)據(jù)包中的目的IP是否與自己的IP地址一致,如果不同就忽略此數(shù)據(jù)包;如果相同,該主機(jī)就會(huì)將發(fā)送端的MAC地址與IP地址添加到自己的ARP列表中。
(4)如果ARP列表中已經(jīng)存在該IP地址的相關(guān)信息,則將其覆蓋掉,接著給源主機(jī)發(fā)送一個(gè)ARP相應(yīng)包,搞死對(duì)方自己是它所需要找的MAC地址。
(5)最后源主機(jī)收到這個(gè)ARP響應(yīng)包后,將得到的目的主機(jī)的IP地址和MAC地址添加到自己的ARP列表中,并利用次信息開始數(shù)據(jù)的傳輸。
(6)如果源主機(jī)一直都沒有收到ARP響應(yīng)包,則表示ARP查詢失敗。
RARP 與ARP工作方式相反,RARP發(fā)出要反向解析的物理地址并希望返回其對(duì)應(yīng)的IP地址。應(yīng)答包括有能夠提供所需信息的RARP服務(wù)器發(fā)出的IP地址。RARP獲取IP地址的過程如下;
(1)需要知道自己的IP地址的機(jī)器向另外一臺(tái)機(jī)器上的服務(wù)器發(fā)送請(qǐng)求,并等待服務(wù)器發(fā)出響應(yīng),開始不知道服務(wù)器的物理地址,所以通過廣播。
(2)一旦通過廣播對(duì)地址的請(qǐng)求,就必須唯一標(biāo)識(shí)自己的硬件標(biāo)識(shí)(如:cpu序列號(hào)),這個(gè)表示能讓可執(zhí)行程序容易獲得。源主機(jī)收到從RARP服務(wù)器的響應(yīng)消息后,就可以利用得到的 IP地址進(jìn)行通訊。
還有 代理ARP概念;
IPv6 中用NDP 代替地址解析。
(還需要進(jìn)一步查看其應(yīng)用)