什么是ARP協(xié)議
發(fā)布時(shí)間:
2022-04-18
什么是ARP協(xié)議?IP地址作為一種邏輯地址實(shí)際上只起到標(biāo)識(shí)主機(jī)的作用,在物理網(wǎng)絡(luò)中通信必須使用物理地址(MAC地址)。ARP和RARP的主要任務(wù)就是解決IP地址和物理地址之間的映射關(guān)系。
ARP(Address Resolution Protocol)是地址解析協(xié)議的英文縮寫,它的作用是將IP地址映射到物理地址。由于ARP是由TCP/IP控制的,所以應(yīng)用程序不能與其直接進(jìn)行通信。
當(dāng)應(yīng)用程序希望與某臺(tái)網(wǎng)絡(luò)設(shè)備通信時(shí),如果主機(jī)不知道對方的MAC地址,則不能完成二層數(shù)據(jù)幀的封裝。所以,主機(jī)的TCP/IP協(xié)議會(huì)發(fā)送ARP解析廣播去尋找對應(yīng)于目的IP地址的MAC地址。
每一臺(tái)主機(jī)在內(nèi)存中都維護(hù)著一個(gè)ARP表,其初始值為空,這個(gè)ARP表就是ARP高速緩存。ARP高速緩存存放了最近了解到的IP地址到硬件物理地址之間的映射條目,其中的每一個(gè)條目的生存時(shí)間一般為20分鐘,起始時(shí)間是從被創(chuàng)建時(shí)開始算起。
ARP高速緩存的使用提高了ARP的效率。在DOS模式下輸入“C:\>ARP-a”命令,可以查看內(nèi)存中的ARP表,如表1所示。
表1 ARP表?xiàng)l目舉例。
從IP地址到物理地址的映射是由網(wǎng)絡(luò)接口驅(qū)動(dòng)程序完成的。當(dāng)需要發(fā)送數(shù)據(jù)時(shí),首先在本機(jī)內(nèi)存中的ARP表中尋找目的IP地址與MAC地址的映射。如果沒有找到,則接口驅(qū)動(dòng)程序會(huì)向網(wǎng)絡(luò)發(fā)送一個(gè)ARP請求廣播包給本網(wǎng)絡(luò)的所有主機(jī)和路由器。
一旦具有ARP的能力的主機(jī)收到ARP請求包,會(huì)檢查包中的目的IP地址和自己的IP地址是否一致。如果一致則會(huì)向發(fā)送請求包的主機(jī)發(fā)送ARP響應(yīng)包(單點(diǎn)廣播形式)。
讓我們來舉一個(gè)實(shí)例,如圖1所示。
圖1 ARP解析與響應(yīng)
當(dāng)主機(jī)A想要與主機(jī)B進(jìn)行通信時(shí),主機(jī)A已經(jīng)知道主機(jī)B的IP地址,但由于實(shí)際數(shù)據(jù)傳輸需要物理地址,所以在此之前必須確定目的方的物理地址。
主機(jī)A開始搜索本機(jī)內(nèi)存中的ARP表,希望能夠找到關(guān)于主機(jī)B的物理地址的映射條目。但由于是第一次通信或很長時(shí)間沒有通信,在ARP表中沒能找到相應(yīng)的條目。在這種情況下,主機(jī)A發(fā)送一個(gè)ARP請求包,這個(gè)請求包中包含主機(jī)B的IP地址。
主機(jī)B收到這個(gè)請求包,首先檢查包中的目的IP地址是否和自己的IP地址一樣。如果一樣,則主機(jī)B以單點(diǎn)廣播形式向主機(jī)A發(fā)送一個(gè)響應(yīng)包,包含了雙方的IP地址和物理地址。主機(jī)A通過響應(yīng)包知道了主機(jī)B的物理地址,并將其映射加入內(nèi)存中的ARP表中。這樣主機(jī)A就可以利用該映射向主機(jī)B發(fā)送數(shù)據(jù)了。
上一篇:
IPV4怎么轉(zhuǎn)換成IPV6
下一篇:
TCP傳輸規(guī)則及策略