概念
ARP(Address Resolution Protocol),即地址解析協(xié)議。ARP協(xié)議是根據(jù)IP地址獲取物理地址的一個(gè)TCP/IP協(xié)議。
主機(jī)發(fā)送信息時(shí)將包含目標(biāo)IP地址的ARP請(qǐng)求廣播到局域網(wǎng)絡(luò)上的所有主機(jī),并接收返回消息,以此確定目標(biāo)的物理地址;收到返回消息后將該IP地址和物理地址存入本機(jī)ARP緩存中并保留一定時(shí)間,下次請(qǐng)求時(shí)直接查詢ARP緩存以節(jié)約資源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個(gè)主機(jī)互相信任的基礎(chǔ)上的,局域網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息,其他主機(jī)收到應(yīng)答報(bào)文時(shí)不會(huì)檢測(cè)該報(bào)文的真實(shí)性就會(huì)將其記入本機(jī)ARP緩存;由此攻擊者就可以向某一主機(jī)發(fā)送偽ARP應(yīng)答報(bào)文,使其發(fā)送的信息無法到達(dá)預(yù)期的主機(jī)或到達(dá)錯(cuò)誤的主機(jī),這就構(gòu)成了一個(gè)ARP欺騙。ARP命令可用于查詢本機(jī)ARP緩存中IP地址和MAC地址的對(duì)應(yīng)關(guān)系、添加或刪除靜態(tài)對(duì)應(yīng)關(guān)系等。相關(guān)協(xié)議有RARP、代理ARP。NDP用于在IPv6中代替地址解析協(xié)議。
總結(jié):ARP協(xié)議即地址解析協(xié)議,是根據(jù)IP地址獲取MAC地址的一個(gè)網(wǎng)絡(luò)層協(xié)議。是網(wǎng)絡(luò)層的協(xié)議。
工作原理
ARP首先會(huì)發(fā)起一個(gè)請(qǐng)求數(shù)據(jù)包,數(shù)據(jù)包的首部包含了目標(biāo)主機(jī)的IP地址,然后這個(gè)數(shù)據(jù)包會(huì)在鏈路層進(jìn)行再次包裝,生成以太網(wǎng)數(shù)據(jù)包,最終由以太網(wǎng)廣播給子網(wǎng)內(nèi)的所有主機(jī),每一臺(tái)主機(jī)都會(huì)接收到這個(gè)數(shù)據(jù)包,并取出標(biāo)頭里的IP地址,然后和自己的IP地址進(jìn)行比較,如果相同就返回自己的MAC地址,如果不同就丟棄該數(shù)據(jù)包。
ARP接收返回消息,以此確定目標(biāo)機(jī)的MAC地址;與此同時(shí),ARP還會(huì)將返回的MAC地址與對(duì)應(yīng)的IP地址存入本機(jī)ARP緩存中并保留一定時(shí)間,下次請(qǐng)求時(shí)直接查詢ARP緩存以節(jié)約資源。
工作過程舉例
假如有四臺(tái)主機(jī):
- 主機(jī)A的IP地址為192.168.1.1,MAC地址為0A-11-22-33-44-01;
- 主機(jī)B的IP地址為192.168.1.2,MAC地址為0A-11-22-33-44-02;
- 主機(jī)B的IP地址為192.168.1.3,MAC地址為0A-11-22-33-44-03;
- 主機(jī)B的IP地址為192.168.1.4,MAC地址為0A-11-22-33-44-04;
當(dāng)主機(jī)A要與主機(jī)B通信時(shí),地址解析協(xié)議可以將主機(jī)B的IP地址(192.168.1.2)解析成主機(jī)B的MAC地址,以下為工作流程:
第1步:根據(jù)主機(jī)A上的路由表內(nèi)容,IP確定用于訪問主機(jī)B的轉(zhuǎn)發(fā)IP地址是192.168.1.2。然后A
主機(jī)在自己的本地ARP緩存中檢查主機(jī)B的匹配MAC地址。
第2步:如果主機(jī)A在ARP緩存中沒有找到映射,它將詢問192.168.1.2的硬件地址,從而將ARP
請(qǐng)求幀廣播到本地網(wǎng)絡(luò)上的所有主機(jī)。源主機(jī)A的IP地址和MAC地址都包括在ARP請(qǐng)求中。
本地網(wǎng)絡(luò)上的每臺(tái)主機(jī)都接收到ARP請(qǐng)求并且檢查是否與自己的IP地址匹配。如果主機(jī)發(fā)現(xiàn)請(qǐng)求的IP地址與自己的IP地址不匹配,它將丟棄ARP請(qǐng)求。
第3步:主機(jī)B確定ARP請(qǐng)求中的IP地址與自己的IP地址匹配,則將主機(jī)A的IP地址和MAC地址映
射添加到本地ARP緩存中。
第4步:主機(jī)B將包含其MAC地址的ARP回復(fù)消息直接發(fā)送回主機(jī)A。
第5步:當(dāng)主機(jī)A收到從主機(jī)B發(fā)來的ARP回復(fù)消息時(shí),會(huì)用主機(jī)B的IP和MAC地址映射更新ARP
緩存。本機(jī)緩存是有生存期的,生存期結(jié)束后,將再次重復(fù)上面的過程。主機(jī)B的MAC地址一旦確定,主機(jī)A就能向主機(jī)B發(fā)送IP通信了。
文章來源:http://www.zghlxwxcb.cn/news/detail-405199.html
ARP報(bào)文格式
ARP報(bào)文格式如下所示:
各字段作用如下所示:文章來源地址http://www.zghlxwxcb.cn/news/detail-405199.html
字段 | 說明 |
---|---|
硬件類型 | 指明了發(fā)送方想知道的硬件接口類型,以太網(wǎng)的值為1; |
協(xié)議類型 | 指明了發(fā)送方提供的高層協(xié)議類型,IP為0800(16進(jìn)制); |
硬件地址長度和協(xié)議長度 | 指明了硬件地址和高層協(xié)議地址的長度,這樣ARP報(bào)文就可以在任意硬件和任意協(xié)議的網(wǎng)絡(luò)中使用; |
操作類型 | 用來表示這個(gè)報(bào)文的類型,ARP請(qǐng)求為1,ARP響應(yīng)為2,RARP請(qǐng)求為3,RARP響應(yīng)為4; |
發(fā)送方硬件地址(0-3字節(jié)) | 源主機(jī)硬件地址的前3個(gè)字節(jié); |
發(fā)送方硬件地址(4-5字節(jié)) | 源主機(jī)硬件地址的后3個(gè)字節(jié); |
發(fā)送方IP地址(0-1字節(jié)) | 源主機(jī)硬件地址的前2個(gè)字節(jié); |
發(fā)送方IP地址(2-3字節(jié)) | 源主機(jī)硬件地址的后2個(gè)字節(jié); |
目標(biāo)硬件地址(0-1字節(jié)) | 目的主機(jī)硬件地址的前2個(gè)字節(jié); |
目標(biāo)硬件地址(2-5字節(jié)) | 目的主機(jī)硬件地址的后4個(gè)字節(jié); |
目標(biāo)IP地址(0-3字節(jié)) | 目的主機(jī)的IP地址 |
到了這里,關(guān)于圖解 ARP協(xié)議工作流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!