ARP協議
無論網絡層使用何種協議,在實際網絡的鏈路上傳輸數據幀時,最終必須使用硬件地址
地址解析協議(Address Resolution Protocol,ARP):完成IP地址到MAC地址的映射,每個主機都有一個ARP高速緩存,存放著IP地址到MAC地址的關系映射表(ARP表,由ARP來動態維護此表)
ARP協議的工作原理:
當需要進行數據幀的傳輸時進行有兩種情況:
- ARP高速緩存表中有主機B的IP地址:可以直接查找其對應的物理地址并向目的主機發送MAC幀
- ARP高速緩存表中沒有主機B的IP地址:找不到對應的物理地址,此時通過使用目的MAC地址為全一(即FF-FF-FF-FF-FF-FF)的幀來封裝并廣播ARP請求分組,當目的主機B收到此廣播幀后,向主機A發回一個**ARP響應分組(分組中包含主機B的物理地址和IP地址的映射關系),**主機A收到來自目的主機B的響應分組后,將對應的信息寫入其ARP高速緩存表中,然后按照查詢到的物理地址發送MAC幀
值得注意的是:源主機發送的ARP請求分組中也包含自己的IP地址和MAC地址的映射關系,因此當目的主機收到該ARP請求分組后會將源主機的IP地址和MAC地址的映射關系寫入自己的ARP高速緩存表中
ARP用于解決同一個局域網上的主機或路由器的IP地址和硬件地址的映射問題。如果所要找的主機和源主機不在同一個局域網上,那么就要通過ARP找到一個位于本局域網上的某個路由器的硬件地址,然后把分組發送給這個路由器,讓這個路由器把分組轉發給下一個網絡。 剩下的工作就由下一個網絡來做,盡管ARP請求分組是廣播發送的,但ARP響應分組是普通的單播,即從一個源地址發送到一個目的地址
- 如圖當主機H1要向主機H2發送數據時,這時主機H1在網絡1中使用ARP找到目的主機H2的物理地址
- 當主機H2要將數據傳輸到目的主機H3時,這是H1在網絡1中使用ARP找到路由器R1的物理地址,并將數據傳輸給R1,剩下的工作由R1完成(將數據從R1傳輸到目的注意H3)
- 當路由器R1要將數據發送到與R1連接的網絡2中的主機H3時,R1在網絡2中使用ARP找到目的主機H3的物理地址
- 發送方是路由器R1,要把數據發送到網絡3中的主機H4上。這是R1通過網絡2使用ARP找到與網絡3相連的路由器R2的物理地址,并將剩下的工作交給R2處理