ARP的主要作用是已知IP地址,獲取其硬件地址。
在IP數據報中,其頭部始終記錄着目的IP和源IP,但在數據鏈路層轉發的過程中,MAC幀中記錄的是下一跳硬件地址和當前硬件地址。所以需要根據目的IP地址解析出硬件地址。
其原理如下:
每一臺主機都有其高速緩存,記錄着IP地址和硬件地址的映射關係,類似於Hash表。該映射表會動態更新,即新增或超時刪除。
注意ARP只能解析出本局域網中IP的硬件地址,需要轉發時,則解析出對應轉發路由器的硬件地址。
具體ARP解析步驟如下:
- 當主機A要向本局域網上的主機B發送IP數據報時,先查看自己的ARP高速緩存中有無主機B的IP對應的硬件地址,如果有則直接發送。
- 主機A在本局域網上廣播一個ARP請求分組,其內容大致如下“我的IP是1.1.1.1,硬件地址是00.00.c0.15.ad.18,我想知道IP地址爲1.1.1.2的主機的硬件地址。
- 本局域網上的所有主機上運行的ARP進程都會受到此請求分組。
- 不是B的主機對此不予響應,B收下此分組,向A回覆,並在自己的高速緩存中記錄A的硬件地址。