ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫。其作用是在以太網(wǎng)環(huán)境中,數(shù)據(jù)的傳輸所依懶的是MAC地址而非IP地址,而將已知IP地址轉(zhuǎn)換為MAC地址的工作是由ARP協(xié)議來完成的。
為什么需要 ARP 協(xié)議
在網(wǎng)絡(luò)訪問層中,同一局域網(wǎng)中的一臺(tái)主機(jī)要和另一臺(tái)主機(jī)進(jìn)行通信,需要通過 MAC 地址進(jìn)行定位,然后才能進(jìn)行數(shù)據(jù)包的發(fā)送。而在網(wǎng)絡(luò)層和傳輸層中,計(jì)算機(jī)之間是通過 IP 地址定位目標(biāo)主機(jī),對(duì)應(yīng)的數(shù)據(jù)報(bào)文只包含目標(biāo)主機(jī)的 IP 地址,而沒有 MAC 地址。因此,在發(fā)送之前需要根據(jù) IP 地址獲取 MAC 地址,然后才能將數(shù)據(jù)包發(fā)送到正確的目標(biāo)主機(jī),而這個(gè)獲取過程是通過 ARP 協(xié)議完成的。
ARP解析過程
(1)當(dāng)PC1想發(fā)送數(shù)據(jù)給PC2,首先在自己的本地ARP緩存表中檢查主機(jī)PC2匹配的MAC地址。
(2)如果PC1緩存中沒有找到響應(yīng)的條目,它將詢問主機(jī)PC2的MAC地址,從而將ARP請(qǐng)求幀廣播到本地網(wǎng)絡(luò)的所有主機(jī)。該幀中包括源主機(jī)PC1的IP、MAC地址,本地網(wǎng)絡(luò)中的所有主機(jī)都接收到ARP請(qǐng)求,并且檢查是否與自己的IP地址相匹配。如果發(fā)現(xiàn)請(qǐng)求中IP地址與自己IP不匹配,則丟棄ARP請(qǐng)求。
(3)主機(jī)PC2確定ARP請(qǐng)求中得IP地址與自己的IP地址匹配,則將主機(jī)PC1的地址和MAC地址添加到本地緩存表中?! ?/p>
(4)主機(jī)PC2將包含其MAC地址的ARP回復(fù)消息直接發(fā)送回主機(jī)PC1(數(shù)據(jù)幀為單播)?!?/p>
(5)主機(jī)PC1收到PC2發(fā)揮的ARP回復(fù)消息,將PC2的IP和MAC地址添加至自己ARP緩存表中,本機(jī)緩存是有生存期的,默認(rèn)ARP緩存表有效期120s。當(dāng)超過該有效期后,則將重復(fù)上面過程。主機(jī)PC2的MAC地址一旦確定,主機(jī)PC1就能向主機(jī)PC2發(fā)送IP信息。
ARP命令
廣播發(fā)送
ARP響應(yīng)包
單播發(fā)送
無償ARP/免費(fèi)ARP
廣播發(fā)送
免費(fèi) ARP(Gratuitous ARP)包是一種特殊的 ARP 請(qǐng)求,它并非期待得到 IP 對(duì)應(yīng)的 MAC 地址,而是當(dāng)主機(jī)啟動(dòng)的時(shí)候,發(fā)送一個(gè) Gratuitous ARP 請(qǐng)求,即請(qǐng)求自己的 IP 地址的 MAC 地址。
根據(jù)上面的所講的原理,我們簡(jiǎn)單說明這個(gè)過程:A要和B通訊,A就需要知道B的以太網(wǎng)地址,于是A發(fā)送一個(gè)ARP請(qǐng)求廣播(誰(shuí)是192.168.10.2 ,請(qǐng)告訴192.168.10.1),當(dāng)B收到該廣播,就檢查自己,結(jié)果發(fā)現(xiàn)和自己的一致,然后就向A發(fā)送一個(gè)ARP單播應(yīng)答(192.168.10.2 在BB-BB-BB-BB-BB-BB)。