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

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

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