天天看點

淺析ARP協定

一、ARP協定

1、概念

我們知道,以太網裝置比如網卡都有自己唯一的MAC位址,它們是以MAC位址傳輸以太網資料包的,但是它們卻識别不了IP包中的IP位址,是以我們在以太網中進行IP通信的時候就需要一個協定來建立IP位址與MAC位址的對應關系,以使資料包能發到一個确定的地方去,這就是ARP(位址解析協定)

是以它的作用為:

ARP協定建立了主機 IP位址 和 MAC位址 的映射關系。

在網絡通訊時,源主機的應用程式知道目的主機的IP位址和端口号,卻不知道目的主機的硬體位址;資料包首先是被網卡接收到再去處理上層協定的,如果接收到的資料包的硬體位址與本機不符,則直接丢棄。是以在通訊前必須獲得目的主機的硬體位址。

2、ARP資料報格式

ARP資料報的格式如下:

淺析ARP協定

分析:

(1)源MAC位址,目的MAC位址在以太網首部和ARP請求中各出現一次。

(對于鍊路層為以太網的情況是多餘的,但如果鍊路層是其它類型的網絡則有可能是必要的)

(2)硬體類型指鍊路層網絡類型,1為以太網

(3) 協定類型指要轉換的位址類型,0x0800為IP位址

(4)硬體位址長度對于以太網位址為6位元組;

(5)協定位址長度對于和IP位址為4位元組;

(6)op字段為1表示ARP請求,op字段為2表示ARP應答

過程:

(1)源主機發出ARP請求,詢問”IP位址是192.168.0.1的主機的硬體位址是多少”;

将這個請求廣播到本地網段(以太網首部的硬體位址填FF:FF:FF:FF:FF:FF,表示廣播);

(2)目的主機接受到廣播的ARP請求,發現其中的IP位址與本機相同,則發送一個ARP應答資料包給源主機,将自己的硬體位址填寫在應答包中。

(3)每台主機都維護一個ARP快取記錄,可以用arp -a指令檢視(下文會介紹)。緩存表中的表項有過期時間(一般為20分鐘),如果20分鐘内沒有再次使用某個表項,則該表項失效,下次還要發ARP請求來獲得目的主機的硬體位址。

3、舉例

請求:

淺析ARP協定

注意上圖中,

以太網首部:目的主機采用廣播位址,源主機的MAC位址是00:05:5d:61:58:a8,上層協定類型0x0806表示ARP。

由于以太網規定最小資料長度為46位元組,ARP幀長度隻有28位元組,是以有18位元組填充位,填充位 的内容沒有定義,與具體實作相關。

應答:

淺析ARP協定

二、arp指令

arp指令用于操作主機的arp緩沖區,它可以顯示arp緩沖區的所有條目,删除指定的條目或者添加靜态ip位址與MAC位址對應的關系 。

參數介紹:

1、arp -v:詳細模式

淺析ARP協定

2、arp -n:顯示數字位址

淺析ARP協定

3、arp -a:檢視主機的IP和MAC對應關系,預設顯示全部

淺析ARP協定

4、arp -d:删除指定主機的IP和MAC對應關系

5、arp -i:隻顯示指定網卡的IP和MAC對應關系