ARP協議解碼詳解<轉>

1、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服務器的響應信息,表示初始化失敗。
2、解碼詳解
瞭解了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的包相似,咱們在這裏就再也不重複說明。
相關文章
相關標籤/搜索