文章目錄
- ARP協議的工作原理
- ARP報文(以太網)
- ARP高速緩存
ARP協議的工作原理
ARP協議的作用是實現任意網絡層地址到任意物理地址轉換。工作原理是:
- 主機向自己所在網絡廣播一個ARP請求,該請求包含目標機器的網絡地址。
- 處于該網絡的其他所有機器都將收到這個ARP請求,但是只有被請求的目標機器回應。
- 此時,目標機器發送一個ARP應答(包含自己的物理地址)。
ARP報文(以太網)
# ARP請求與應答報文格式
| 硬件類型 | 協議類型 | 硬件地址長度 | 協議地址長度 | 操作 | 發送端以太網地址 | 發送端IP地址 | 目的端以太網地址 | 目的端IP地址 |2字節 2字節 1字節 1字節 2字節 6字節 4字節 6字節 4字節
各字段具體釋義:
硬件類型
:定義物理地址類型,1表示為Mac地址。協議類型
:要映射的協議地址類型,0x800表示為IP地址。硬件地址長度
:Mac地址的長度為6。協議地址長度
:IPv4地址的長度為4。操作
:4種類型,ARP請求(值為1)、ARP應答(值為2)、RARP請求(值為3)、RARP應答(值為4)- 其余字段表示指定通信雙方的以太網地址和IP地址,發送端填充除目的端以太網地址外的三個字段,構建ARP請求發送。
- 接收端發現ARP請求中目的端IP地址是自己的,就將自己的以太網地址填進去,然后交換兩個目的端地址和兩個發送端地址,構建ARP應答返回。(操作字段設置為2)
ARP報文的長度計算
# 報文長度 28字節
| 硬件類型 | 協議類型 | 硬件地址長度 | 協議地址長度 | 操作 | 發送端以太網地址 | 發送端IP地址 | 目的端以太網地址 | 目的端IP地址 |2字節 + 2字節 + 1字節 + 1字節 + 2字節 + 6字節 + 4字節 + 6字節 + 4字節 = 28字節# 攜帶ARP報文的以太網幀
報文長度(28) + 幀首尾(18) = 46字節# 部分要求以太網幀數據長度至少為46,故而有填充字節,即:
46 + 幀首尾(18) = 64字節
ARP高速緩存
ARP會維護一個高速緩存,其中包含經常訪問(比如網關地址)或最近訪問機器的IP地址到物理地址的映射。(避免重復ARP請求,提升發包速度)
注意:
- ARP請求與應答是從以太網驅動程序發出的。