ARP與RARP協議

2022-08-05 16:55:31 字數 2447 閱讀 6453

一、arp協議簡介

arp,全稱address resolution protocol,中文名為地址解析協議,它工作在資料鏈路層,在本層和硬體介面聯絡,同時對上層提供服務。

ip資料包常通過乙太網傳送,乙太網裝置並不識別32位ip地址,它們是以48位乙太網地址傳輸乙太網資料包。因此,必須把ip目的地址轉換成乙太網目的地址。在乙太網中,一個主機要和另一個主機進行直接通訊,必須要知道目標主機的mac地址。

但這個目標mac地址是如何獲得的呢?它就是通過地址解析協議獲得的。arp協議用於將網路中的ip地址解析為的硬體地址(mac地址),以保證通訊的順利進行。

1. arp和rarp報頭結構

arp和rarp使用相同的報頭結構,如圖1所示。

(圖1 arp/rarp報頭結構)

硬體型別欄位:指明瞭傳送方想知道的硬體介面型別,乙太網的值為1;

協議型別欄位:指明瞭傳送方提供的高層協議型別,ip為0800(16進位制);

硬體地址長度和協議長度:指明瞭硬體地址和高層協議地址的長度,這樣arp報文就可以在任意硬體和任意協議的網路中使用;

操作欄位:用來表示這個報文的型別,arp請求為1,arp響應為2,rarp請求為3,rarp響應為4;

傳送方的硬體地址(0-3位元組):源主機硬體地址的前3個位元組;

傳送方的硬體地址(4-5位元組):源主機硬體地址的後3個位元組;

傳送方ip(0-1位元組):源主機硬體地址的前2個位元組;

傳送方ip(2-3位元組):源主機硬體地址的後2個位元組;

目的硬體地址(0-1位元組):目的主機硬體地址的前2個位元組;

目的硬體地址(2-5位元組):目的主機硬體地址的後4個位元組;

目的ip(0-3位元組):目的主機的ip地址。

2. arp和rarp的工作原理

arp的工作原理如下:

1. 首先,每臺主機都會在自己的arp緩衝區 (arp cache)中建立一個 arp列表,以表示ip地址和mac地址的對應關係。

2. 當源主機需要將一個資料包要傳送到目的主機時,會首先檢查自己 arp列表中是否存在該 ip地址對應的mac地址,如果有,就直接將資料包傳送到這個mac地址;如果沒有,就向本地網段發起一個arp請求的廣播包,查詢此目的主機對應的mac地址。此arp請求資料包裡包括源主機的ip地址、硬體地址、以及目的主機的ip地址。

3. 網路中所有的主機收到這個arp請求後,會檢查資料包中的目的ip是否和自己的ip地址一致。如果不相同就忽略此資料包;如果相同,該主機首先將傳送端的mac地址和ip地址新增到自己的arp列表中,如果arp表中已經存在該ip的資訊,則將其覆蓋,然後給源主機傳送一個 arp響應資料包,告訴對方自己是它需要查詢的mac地址;

4.源主機收到這個arp響應資料包後,將得到的目的主機的ip地址和mac地址新增到自己的arp列表中,並利用此資訊開始資料的傳輸。如果源主機一直沒有收到arp響應資料包,表示arp查詢失敗。

rarp的工作原理:

1. 傳送主機傳送一個本地的rarp廣播,在此廣播包中,宣告自己的mac地址並且請求任何收到此請求的rarp伺服器分配一個ip地址;

2. 本地網段上的rarp伺服器收到此請求後,檢查其rarp列表,查詢該mac地址對應的ip地址;

3. 如果存在,rarp伺服器就給源主機傳送一個響應資料包並將此ip地址提供給對方主機使用;

4. 如果不存在,rarp伺服器對此不做任何的響應;

5. 源主機收到從rarp伺服器的響應資訊,就利用得到的ip地址進行通訊;如果一直沒有收到rarp伺服器的響應資訊,表示初始化失敗。

二、解碼詳解

瞭解了arp和rarp協議的報頭結構和工作原理後,我們使用科來網路分析系統抓取arp包,其詳細解碼,如圖2,

(圖2 科來網路分析系統中arp請求包詳細解碼)

圖2顯示是一個arp的請求包的解碼,下面我們來詳細說明:

硬體型別:1,表示硬體藉口型別為乙太網型別

協議型別:0x0800,表示傳送方提供的高層協議型別是ip

硬體地址長度:表示硬體地址長度為6位元組=48位

協議地址長度:表示ip地址長度為4位元組=32位

操作型別:1,表示arp請求

源實體地址:00:14:85:ca:f5:22

源ip地址:192.168.0.92

目標實體地址:00:00:00:00:00:00

目標ip地址:192.168.0.208

arp迴應包和rarp的包類似,我們在這裡就不再重複說明。(e129)

arp快取表是可以檢視的,也可以新增和修改。在命令提示符下,輸入“arp -a”就可以檢視arp快取表中的內容了,如附圖所示。

arp -a

用“arp -d”命令可以刪除arp表中所有的內容;

用“arp -d +空格+ 《指定ip地址》” 可以刪除指定ip所在行的內容

用“arp -s”可以手動在arp表中指定ip地址與mac地址的對應,型別為static(靜態),此項存在硬碟中,而不是快取表,計算機重新啟動後仍然存在,且遵循靜態優於動態的原則,所以這個設定不對,可能導致無法上網.