當(dāng)一臺主機把以太網(wǎng)數(shù)據(jù)幀發(fā)送到位于同一局域網(wǎng)上的另一臺主機時,是根據(jù)48bit的以太網(wǎng)地址來確定目的接口的。設(shè)備驅(qū)動程序從不檢查IP數(shù)據(jù)報中的目的IP地址。
ARP為IP地址到對應(yīng)的硬件地址(MAC)之間提供動態(tài)映射。

ARP高速緩存
ARP高效運行的關(guān)鍵是由于每個主機上都有一個A R P高速緩存。這個高速緩存存放了最近Internet地址到硬件地址之間的映射記錄。高速緩存中每一項的生存時間一般為20分鐘,起始時間從被創(chuàng)建時開始算起。
可以用arp -a命令來查看ARP高速緩存。
ARP的分組格式
在以太網(wǎng)上解析IP地址時, ARP請求和應(yīng)答分組的格式如圖1所示:

圖1:用于以太網(wǎng)的ARP請求或應(yīng)答分組格式
以太網(wǎng)報頭中的前兩個字段是以太網(wǎng)的源地址和目的地址。目的地址為全1的特殊地址是廣播地址。電纜上的所有以太網(wǎng)接口都要接收廣播的數(shù)據(jù)幀。
兩個字節(jié)長的以太網(wǎng)幀類型表示后面數(shù)據(jù)的類型。對于ARP請求或應(yīng)答來說,該字段的
值為0x0806。形容詞hardware(硬件)和protocol(協(xié)議)用來描述ARP分組中的各個字段。例如,一個ARP請求分組詢問協(xié)議地址(這里是I P地址)對應(yīng)的硬件地址(這里是以太網(wǎng)地址)。
硬件類型字段表示硬件地址的類型。它的值為1即表示以太網(wǎng)地址。
協(xié)議類型字段表示要映射的協(xié)議地址類型。它的值為0x0800即表示IP地址。它的值與包含IP數(shù)據(jù)報的以太網(wǎng)數(shù)據(jù)幀中的類型字段的值相同,這是有意設(shè)計的。
接下來的兩個1字節(jié)的字段,硬件地址長度和協(xié)議地址長度分別指出硬件地址和協(xié)議地址的長度,以字節(jié)為單位。對于以太網(wǎng)上IP地址的ARP請求或應(yīng)答來說,它們的值分別為6和4。
操作字段指出四種操作類型,它們是ARP請求(值為1)、ARP應(yīng)答(值為2)、RARP請求
(值為3)和RARP應(yīng)答(值為4)。這個字段必需的,因為ARP請求和ARP應(yīng)答的幀類型字段值是相同的。
接下來的四個字段是發(fā)送端的硬件地址(在本例中是以太網(wǎng)地址)、發(fā)送端的協(xié)議地址
(IP地址)、目的端的硬件地址和目的端的協(xié)議地址。注意,這里有一些重復(fù)信息:在以太網(wǎng)的數(shù)據(jù)幀報頭中和ARP請求數(shù)據(jù)幀中都有發(fā)送端的硬件地址。
對于一個ARP請求來說,除目的端硬件地址外的所有其他的字段都有填充值。當(dāng)系統(tǒng)收
到一份目的端為本機的ARP請求報文后,它就把硬件地址填進(jìn)去,然后用兩個目的端地址分別替換兩個發(fā)送端地址,并把操作字段置為2,最后把它發(fā)送回去。
ARP代理
如果ARP請求是從一個網(wǎng)絡(luò)的主機發(fā)往另一個網(wǎng)絡(luò)上的主機,那么連接這兩個網(wǎng)絡(luò)的路
由器就可以回答該請求,這個過程稱作委托ARP或ARP代理(Proxy ARP)。這樣可以欺騙發(fā)起
ARP請求的發(fā)送端,使它誤以為路由器就是目的主機,而事實上目的主機是在路由器的“另
一邊”。路由器的功能相當(dāng)于目的主機的代理,把分組從其他主機轉(zhuǎn)發(fā)給它。
免費ARP
免費ARP (gratuitous ARP)。它是指主機發(fā)送ARP查找自己的IP地址。通常,它發(fā)生在系統(tǒng)引導(dǎo)期間進(jìn)行接口配置的時候。
posted on 2008-06-05 20:51
水 閱讀(2618)
評論(0) 編輯 收藏 引用 所屬分類:
tcp/ip