每臺主機都設有一個ARP高速緩存(ARP cache),裏面有本局域網上各主機和路由器的IP地址和硬件地址的映射表,這些都是該主機目前知道的一些地址。緩存
當主機A要向本局域網上的某個主機B發送IP數據報時,先在其ARP高速緩存中查看是否有主機B的IP地 址。若是有,就在ARP高速緩存中查出其對應的硬件地址,再把這個硬件地址寫入MAC幀,而後經過局域網把該MAC幀發往此硬件地址。也有可能查不到主機 B的IP地址的項目。這多是主機B才入網,也多是主機A剛剛加電,其高速緩存仍是空的。在這種狀況下,主機A就自動運行ARP,而後按如下步驟找到主 機B的硬件地址。網絡
實現地址解析的第一步是產生ARP請求幀。在ARP幀數據部分的相應字段寫入本地主機的物理地址、IP地址、待偵測的目的IP地址,在目的物理地址字段寫入0,並在操做類型字段寫入1,用以表示本數據幀是一個ARP請求數據幀。spa
該ARP請求幀以本地網絡適配器的物理地址做爲源地址,以物理廣播地址(FF-FF-FF-FF-FF-FF)做爲目的地址,經過物理層發送出去。路由
因爲採用了廣播地址,所以網段內全部的主機或設備都可以接收到該數據幀。除了目的主機外,全部接收到該ARP請求幀的主機和設備都會丟棄該ARP請求幀,由於目的主機可以識別ARP消息中的IP地址是否與本機相同。路由器
與目的IP地址匹配的主機構造ARP應答幀。在ARP應答幀中,以請求分組中源物理地址、源IP地址做爲其目的物 理地址、目的IP地址,並將自身的物理地址、IP地址填入應答幀的源物理地址、源IP地址字段,並在操做字段中寫入2,表示本ARP數據幀是一個應答數據 幀。該分組經過數據鏈路層直接發給源主機。硬件
源主機接收到ARP應答幀後,得到目的主機的物理地址,並將它做爲一條新記錄加入到ARP高速緩存表。請求
此外,若是源主機沒有發送ARP請求而收到其餘主機的ARP響應數據幀,源主機也會在本地ARP緩衝區中緩存該主機物理地址和IP地址的對應關係。通信
ARP高速緩存是很是有用的。若是不使用ARP高速緩存,那麼任何一個主機只要進行一次通訊,就必須在網絡上用廣播的方式發送ARP請求分組,這會使網絡上的通訊量大大增長。ARP把保存在高速緩存中的每個映射地址項目都設置生存時間,超過生存時間的項目就從高速緩存中刪除掉。數據
注意:ARP是解決同一個局域網上的主機或路由器的IP地址和硬件地址的映射問題。項目