ARP協議及其工作原理


ARP 協議 ,即Address Resolution Protocal,地址解析協議.  它是通過主機IP查找對應的mac地址.  這么說不太嚴謹,應該是以目標IP地址為線索, 定位下一個應該接收數據《分包》的網絡設備對應的MAC地址.    如果目標主機不在同一個鏈路上,可以通過ARP查找下一跳路由器的MAC地址.    不過ARP只適用於IPv4,不適用於IPv6 . 

 

mac 地址屬於數據鏈路層.  我們先來看下數據鏈路層.

一 .數據鏈路層

  數據鏈路層的協議定義了通過媒介互連的設備之間傳輸的規范.    通信媒介包括雙絞線電纜,同軸電纜,光纖,電波以及紅外線等介質.  

實際上,各個設備之間在數據傳輸時,數據鏈路層都是必不可少的.    眾所周知, 計算機以二進制 0,1 來表示信息,然而實際的通信媒介之間處理的是電壓的高低,光的閃滅,以及電波的強弱等信號.

把這些信號與二進制的0,1進行轉換的正是物理層.    

  數據鏈路層處理的數據也不是單純的0,1序列,該層把它們集合為一個叫做“幀”塊, 然后再進行傳輸. 

  數據鏈路層也可以被視為網絡傳輸中的最小單位.      

二. 數據鏈路相關技術

  2.1 MAC地址 

  MAC地址是用於識別數據鏈路層中互連的節點.  MAC地址長48比特. 在使用網卡(NIC)的情況下,MAC地址一般會被燒寫到ROM中.  因此,一個網卡到MAC地址是唯一的.

  2.2 PPP定義

  指的是Point-to-Point Protocol, 是指點對點,即1對1連接的計算機協議.    相當於位於OSI參考模型的第2層的數據鏈路層,並且它屬於純粹的數據鏈路層,與物理層沒有任何關系. 

換句話說, 僅有PPP無法實現通信,還要有物理層的支持.      PPPoE(PPP over Ehernet)實現互聯網的接入就是在以太網的數據中加入PPP幀進行傳輸的一種方式.

三.  ARP的工作機制

  簡單的說,  ARP是借助 ARP請求和ARP響應兩種類型的包來確定 MAC地址的.

 

  主機A為了知道主機B的mac地址, 要通過《廣播》發送一個ARP請求包.  這個包中 包含了主機B的IP地址, 還有主機A自己的MAC地址.    同一個鏈路上所有的主機或者路由器都會接收到

主機A的廣播包.  因此ARP的請求包會被這同一個鏈路上的主機和路由器進行解析.     如果ARP請求包中的目標IP地址與自己的IP地址一致,那么這個節點就將自己的MAC地址塞入ARP響應包

返回給主機A.     

  也就是說,根據ARP可以動態的進行地址解析,無須事先知道MAC地址,只要有IP地址即可.   但是如果每次發送一個IP數據包都要進行一次ARP請求,會造成不必要的網絡流量.   因此

通常的做法是把獲取到的MAC地址緩存一段時間,並與對應的IP做映射關系記憶.  

  記錄IP地址和MAC地址對應關系的數據庫叫做ARP表,  可以通過在命令行中輸入arp -a 命令獲取該表信息.    

  每執行一次ARP,之前緩存的對應內容都會被清除. 在清除之前都可以不需要執行ARP就可以獲取到想要的MAC地址.  這樣,在一定程度上也防止了ARP包在網絡上被大量廣播的可能性.

  

 

疑問?   知道目標主機IP地址 ,為什么還要知道對方的mac地址來進行數據傳輸呢?  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM