天天看點

淺談對ARP工作機制的了解

一丶什麼是ARP?

在區域網路中,主機和主機之間的通訊是通過MAC位址來實作的,而主機的MAC位址是通過ARP協定擷取的。ARP負責将網絡中的IP位址轉換為MAC位址,來保證區域網路中的正常通訊。在區域網路中實際傳輸的是“幀”,裡面包含目标主機的MAC位址。每個安裝以太網和TCP/IP的計算機都有一個ARP快取記錄,緩存表裡儲存的IP位址和MAC位址是互相對應的。ARP協定的基本功能就是執行位址解析,以保證通信的順利進行。ARP簡單說,就是用來把IP位址轉換成MAC位址,就是某個去往目的IP位址翻譯成MAC位址。

二丶ARP的工作機制

每台主機都會在自己的ARP緩沖區中建立一個 ARP清單,以表示IP位址和MAC位址的對應關系。當源主機需要将一個資料包要發送到目的主機時,會首先檢查自己 ARP清單中是否存在該 IP位址對應的MAC位址,如果有,就直接将資料包發送到這個MAC位址;如果沒有,就向本地網段發起一個ARP請求的廣播包,查詢此目的主機對應的MAC位址。此ARP請求資料包裡包括源主機的IP位址、硬體位址、以及目的主機的IP位址。網絡中所有的主機收到這個ARP請求後,會檢查資料包中的目的IP是否和自己的IP位址一緻。如果不相同就忽略此資料包;如果相同,該主機首先将發送端的MAC位址和IP位址添加到自己的ARP清單中,如果ARP表中已經存在該IP的資訊,則将其覆寫,然後給源主機發送一個 ARP響應資料包,告訴對方自己是它需要查找的MAC位址;源主機收到這個ARP響應資料包後,将得到的目的主機的IP位址和MAC位址添加到自己的ARP清單中,并利用此資訊開始資料的傳輸。如果源主機一直沒有收到ARP響應資料包,表示ARP查詢失敗。

以主機A(192.16815)向主機B(192.16811)發送資料為例。當發送資料時,主機A會在自己的ARP快取記錄中尋找是否有目标|P位址。如果找到了,也就知道了目标MAC位址,直接把目标MAC位址寫入幀裡面發送就可以了;如果在ARP快取記錄中沒有找到目标P位址,主機A就會在網絡上發送一個廣播,A主機MAC位址是〃主機A的MAC位址",這表示向同一網段内的所有主機發出這樣的詢問:“我是1921681.5,我的硬體位址是"主機A的MAC位址"請問P位址為19216811的MAC位址是什麼?"網絡上其他主機并不響應ARP詢問,隻有主機B接收到這個幀時,才向主機A做出這樣的回應:“192.16811的MAC位址是00-aa-00-62-c6-09″。這樣,主機A就知道了主機B的MAC位址,它就可以向主機B發送資訊了。同時A和B還同時都更新了自己的ARP快取記錄(因為A在詢問的時候把自己的|P和MAC位址一起告訴了B),下次A再向主機B或者B向A發送資訊時,直接從各自的ARP快取記錄裡查找就可以了ARP快取記錄采用了老化機制(即設定了生存時間TTL),在一段時間内(一般15到20分鐘)如果表中的某一行沒有使用,就會被删除,這樣可以大大減少ARP快取記錄的長度,加快查詢速度。

繼續閱讀