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ū)中簡歷一個(gè)ARP列表,用于存儲(chǔ)IP地址與MAC地址的對應(yīng)關(guān)系愤兵。
當(dāng)源主機(jī)需要將一個(gè)數(shù)據(jù)包發(fā)送到目標(biāo)主機(jī)時(shí)候鹿霸?
(1)檢查自己的ARP列表是否存在ARP列表是否存在該IP地址對應(yīng)的MAC地址。
(2)如果存在秆乳,直接將數(shù)據(jù)包發(fā)送到MAC地址懦鼠,如果不存在,就向本地網(wǎng)段發(fā)起一個(gè)ARP請求的廣播包屹堰,用于查詢目標(biāo)主機(jī)對應(yīng)的MAC地址肛冶。
【此ARP請求數(shù)據(jù)包里包括源主機(jī)的IP地址、硬件地址以及目標(biāo)主機(jī)的IP地址等扯键∧佬洌】
(3)網(wǎng)絡(luò)中所有的主機(jī)收到這個(gè)ARP請求之后,會(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)包叶堆,搞死對方自己是它所需要找的MAC地址。
(5)最后源主機(jī)收到這個(gè)ARP響應(yīng)包后斥杜,將得到的目的主機(jī)的IP地址和MAC地址添加到自己的ARP列表中虱颗,并利用次信息開始數(shù)據(jù)的傳輸。
(6)如果源主機(jī)一直都沒有收到ARP響應(yīng)包蔗喂,則表示ARP查詢失敗忘渔。
RARP 與ARP工作方式相反,RARP發(fā)出要反向解析的物理地址并希望返回其對應(yīng)的IP地址缰儿。應(yīng)答包括有能夠提供所需信息的RARP服務(wù)器發(fā)出的IP地址畦粮。RARP獲取IP地址的過程如下;
(1)需要知道自己的IP地址的機(jī)器向另外一臺(tái)機(jī)器上的服務(wù)器發(fā)送請求,并等待服務(wù)器發(fā)出響應(yīng)宣赔,開始不知道服務(wù)器的物理地址预麸,所以通過廣播。
(2)一旦通過廣播對地址的請求儒将,就必須唯一標(biāo)識自己的硬件標(biāo)識(如:cpu序列號)吏祸,這個(gè)表示能讓可執(zhí)行程序容易獲得。源主機(jī)收到從RARP服務(wù)器的響應(yīng)消息后钩蚊,就可以利用得到的 IP地址進(jìn)行通訊贡翘。
還有 代理ARP概念;
IPv6 中用NDP 代替地址解析砰逻。
(還需要進(jìn)一步查看其應(yīng)用)