文章內容概覽

還是看在上一篇文章中提到的這張圖,計算機A將數據跨設備傳輸給C。A發出目的地爲C的IP數據報,查詢路由表發現下一跳爲E,A將IP數據報交給數據鏈路層, 並告知目的MAC地址是E 。那麼A是如何知道E的MAC地址的?這個是本文要介紹的

ARP協議

ARP(Address Resolution Protocol)地址解析協議

作用:把網絡層32位的IP轉換成數據鏈路層48位的MAC地址,在這個過程中有一個很重要的表, ARP緩存表

該表的形式如下,也是一個映射:

對於ARP緩存表的使用,有兩種情況

  • ARP緩存表中 緩存IP地址和MAC地址的映射關係
  • ARP緩存表中 沒有 緩存IP地址和MAC地址的映射關係

如果有緩存的情況,就像上篇文章中介紹的步驟一樣,A可以 直接告訴 數據鏈路層,E的MAC地址。A會查詢ARP緩存表,查看E的MAC地址是什麼,然後告知數據鏈路層。

如果沒有緩存的情況,ARP會 廣播某一個IP的信息 ,收到這個廣播的設備會回應一個包,表示我是不是這個IP地址。如果是,廣播該IP地址的設備會記錄對應設備的MAC地址

  • ARP緩存表是ARP協議和RARP協議運行的關鍵
  • ARP緩存表緩存了 IP地址到硬件地址之間的映射關係 (在網絡層進行數據轉發的時候,需要數據鏈路層和物理層,因此網絡層在進行數據發送的時候,首先需要通過ARP協議,把IP地址轉化爲MAC地址,然後告訴數據鏈路層,這時,數據鏈路層才能進行數據幀的傳輸)
  • ARP緩存表中的記錄並 不是永久有效的 ,有一定的期限(因爲MAC地址是永久不變的,但是IP地址是會變化的)

可以使用 arp -a 這個命令來查看路由表中的內容

ARP協議的報文信息

ARP協議的報文信息是 直接封裝到數據鏈路層的數據幀中

最上邊爲數據鏈路層的數據幀格式,中間是ARP協議的報文信息,PAD是填充的內容

可能這裏會有一個疑問,既然ARP協議是直接封裝在數據鏈路層的數據幀中的,那 爲什麼ARP協議是屬於網絡層 ?主要是因爲ARP協議使用到了 IP地址 ,所以它屬於網絡層的內容。所以ARP協議是數據鏈路層和網絡層配合使用的一個協議

RARP協議

  • RARP (Reverse Address Resolution Protocol)逆地址解析協議
  • 就是和ARP協議做相反的工作,它是將48位的MAC地址轉換爲32位的IP地址

它的內容是和ARP協議非常類似的

瞭解了ARP協議和RARP協議之後,就應該知道,在計算機A進行跨設備傳輸數據時,A並不是直接告訴數據鏈路層,目的MAC是E的,而是先查自身的緩存表之後,才知道的目的MAC地址的

在快速變化的技術中尋找不變,纔是一個技術人的核心競爭力。知行合一,理論結合實踐

微信掃碼關注站長公衆號,和站長交流學習

相關文章