詳解ARP地址解析協(xié)議的工作流程

我們知道,兩臺(tái)主機(jī)想要進(jìn)行相互間通信,那么都需要有ip地址才行,而且還要知道通信對(duì)方的ip地址。那么有了ip地址就可以通信了么?還不行,還需要有對(duì)方的mac地址才能夠進(jìn)行通信,mac地址和ip地址缺一不可。下面我們來(lái)看,知道了對(duì)方主機(jī)的ip地址,那么如何查到對(duì)方的mac地址。

每臺(tái)主機(jī)都有自己的arp緩存列表,里面存放著局域網(wǎng)內(nèi)其他主機(jī)的Ip地址和Mac地址的映射關(guān)系。可以在命令窗口下,輸入`arp -a查看本主機(jī)的arp緩存。

arp?-a 接口:?192.168.110.145?---?0x13 ??Internet?地址?????????物理地址??????????????類(lèi)型 ??192.168.110.1?????????30-0d-9e-61-27-3a?????動(dòng)態(tài)???????? ??192.168.110.255???????ff-ff-ff-ff-ff-ff?????靜態(tài)???????? ……

當(dāng)局域網(wǎng)的主機(jī)A(IP為192.168.1.11)要和同一局域網(wǎng)的主機(jī)B通信時(shí),在已知主機(jī)B的IP地址(192.168.1.13)后,會(huì)查看自己的arp緩存,看里面有沒(méi)有主機(jī)B的MAC地址,如果有的話,就可以和主機(jī)B進(jìn)行通信了。如果沒(méi)有的話,就要使用ARP地址解析協(xié)議來(lái)獲取主機(jī)B的MAC地址。下面我們來(lái)看arp的工作流程:

(1)主機(jī)A在局域網(wǎng)內(nèi)發(fā)送廣播包,消息內(nèi)容類(lèi)似于:”我是192.168.1.11,mac地址是a0:a4:ce:42:29:56,我想知道192.168.1.13的MAC地址”。

(2)在本局域網(wǎng)上所有運(yùn)行arp程序的主機(jī)都能收到該廣播消息。

(3)主機(jī)B的IP匹配,所有收下該請(qǐng)求,并將主機(jī)A的IP與MAC地址的映射關(guān)系記錄到記得的arp緩存中。然后發(fā)送一個(gè)單播包給主機(jī)A,內(nèi)容類(lèi)似于:“我是192.168.1.13,我的MAC地址是f1:21:fa:c2:d2:ad”。

(4)主機(jī)A收到B發(fā)來(lái)的單播消息,將主機(jī)B的IP地址和MAC地址關(guān)系記錄到自己的arp緩存里。

注意,因?yàn)榫钟蚓W(wǎng)主機(jī)是動(dòng)態(tài)變換的,所以ARP緩存是有生存時(shí)間的,過(guò)期會(huì)自動(dòng)刪除。

大家可能會(huì)有疑問(wèn),你說(shuō)的這只是局域網(wǎng)內(nèi)主機(jī)情況,如果是不同網(wǎng)段的呢?其實(shí)也還是通過(guò)ARP來(lái)獲取的,只不過(guò)需要進(jìn)行多次ARP請(qǐng)求。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享