ARP協議

1. 概念

我們知道,以太網設備比如網卡都有自己唯一的MAC地址,它們是以MAC地址傳輸以太網數據包的,但是它們卻識別不了IP包中的IP地址,所以我們在以太網中進行IP通信的時候就需要一個協議來建立IP地址與MAC地址的對應關係,以使數據包能發到一個確定的地方去,這就是ARP(地址解析協議)

ARP協議建立了主機 IP地址 和 MAC地址 的映射關係。

在網絡通訊時,源主機的應用程序知道目的主機的IP地址和端口號,卻不知道目的主機的硬件地址;數據包首先是被網卡接收到再去處理上層協議的,如果接收到的數據包的硬件地址與本機不符,則直接丟棄。因此在通訊前必須獲得目的主機的硬件地址

2. 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. 舉例

3.1 請求

在這裏插入圖片描述
注意上圖中,
以太網首部:目的主機採用廣播地址,源主機的MAC地址是00:05:5d:61:58:a8,上層協議類型0x0806表示ARP。
由於以太網規定最小數據長度爲46字節,ARP幀長度只有28字節,因此有18字節填充位,填充位 的內容沒有定義,與具體實現相關。

3.2 應答

在這裏插入圖片描述

4. arp命令

arp命令用於操作主機的arp緩衝區,它可以顯示arp緩衝區的所有條目,刪除指定的條目或者添加靜態ip地址與MAC地址對應的關係 。
參數介紹:
1、arp -v:詳細模式
在這裏插入圖片描述

2、arp -n:顯示數字地址
在這裏插入圖片描述

3、arp -a:查看主機的IP和MAC對應關係,默認顯示全部
在這裏插入圖片描述

4、arp -d:刪除指定主機的IP和MAC對應關係
5、arp -i:只顯示指定網卡的IP和MAC對應關係
在這裏插入圖片描述

注:地址解析協議是根據IP地址獲取物理地址的協議,而反向地址轉換協議(RARP)是局域網的物理機器從網關服務器的ARP表或者緩存上根據MAC地址請求IP地址的協議,其功能與地址解析協議相反。與ARP相比,RARP的工作流程也相反。

發佈了104 篇原創文章 · 獲贊 34 · 訪問量 6813
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章