ARP代表地址解析協(xié)議,用于從已知IP地址中查找設(shè)備的MAC地址。這意味著,源設(shè)備已經(jīng)知道IP地址,但不知道目標(biāo)設(shè)備的MAC地址。需要設(shè)備的MAC地址,因?yàn)槟鸁o(wú)法在不知道其MAC地址的情況下與局域網(wǎng)(以太網(wǎng))中的設(shè)備通信。因此,地址解析協(xié)議有助于獲取目標(biāo)設(shè)備的MAC地址。如下圖所示:
2018年上半年網(wǎng)絡(luò)工程師試題有這么一道題:
24~25、若主機(jī)?hostA?的?MAC?地址為?aa-aa-aa-aa-aa-aa,主機(jī)?hostB?的?MAC?地址為?bb-bb-bb-bb-bb-bb。 由?hostA?發(fā)出的查詢?hostB?的?MAC?地址的幀格式如下圖所示,則此幀中的目標(biāo)?MAC?地址為(24),ARP?報(bào)文中的目標(biāo)?MAC?地址為(25)。
目標(biāo)?MAC?地址 |
源?MAC?地址 |
協(xié)議類型 |
ARP?報(bào)文 |
CRC |
A.??aa-aa-aa-aa-aa-aa????????????B.??bb-bb-bb-bb-bb-bb
C.??00-00-00-00-00-00????????D.??ff-ff-ff-ff-ff-ff
參考答案如下:
24~25、【D】【C】解析?:當(dāng)主機(jī)?A?向本局域網(wǎng)內(nèi)的主機(jī)?B?發(fā)送?IP?數(shù)據(jù)報(bào)的時(shí)候,就會(huì)先查找自己的?ARP?映射表,查?看是否有主機(jī)?B?的?IP?地址,如有的話,就繼續(xù)查找出其對(duì)應(yīng)的硬件地址,在把這個(gè)硬件地址寫入?MAC?幀中,然后通過(guò)局?域網(wǎng)發(fā)往這個(gè)硬件地址。也有可能找到不到主機(jī)?B?的?IP?地址項(xiàng)目,在這種情況下,主機(jī)?A?就要運(yùn)行?ARP?協(xié)議,廣播?ARP?請(qǐng)求分組,去請(qǐng)求主機(jī)?B的?MAC。
看上去也沒說(shuō)明白是什么,就給出了兩個(gè)答案。但是網(wǎng)上對(duì)這個(gè)答案爭(zhēng)議很大,那么究竟是什么呢?
這是ARP報(bào)文的格式,共28字節(jié):
硬件類型:16位字段,用來(lái)定義運(yùn)行ARP的網(wǎng)絡(luò)類型。每個(gè)局域網(wǎng)基于其類型被指派一個(gè)整數(shù)。例如:以太網(wǎng)的類型為1。ARP可用在任何物理網(wǎng)絡(luò)上。
協(xié)議類型:16位字段,用來(lái)定義使用的協(xié)議。例如:對(duì)IPv4協(xié)議這個(gè)字段是0800。ARP可用于任何高層協(xié)議
硬件長(zhǎng)度:8位字段,用來(lái)定義物理地址的長(zhǎng)度,以字節(jié)為單位。例如:對(duì)于以太網(wǎng)的值為6。
協(xié)議長(zhǎng)度:8位字段,用來(lái)定義邏輯地址的長(zhǎng)度,以字節(jié)為單位。例如:對(duì)于IPv4協(xié)議的值為4。
操作碼:16位字段,用來(lái)定義報(bào)文的類型。已定義的分組類型有兩種:ARP請(qǐng)求(1),ARP響應(yīng)(2)。
源硬件地址:這是一個(gè)可變長(zhǎng)度字段,用來(lái)定義發(fā)送方的物理地址。例如:對(duì)于以太網(wǎng)這個(gè)字段的長(zhǎng)度是6字節(jié)。
源邏輯地址:這是一個(gè)可變長(zhǎng)度字段,用來(lái)定義發(fā)送方的邏輯(IP)地址。例如:對(duì)于IP協(xié)議這個(gè)字段的長(zhǎng)度是4字節(jié)。
目的硬件地址:這是一個(gè)可變長(zhǎng)度字段,用來(lái)定義目標(biāo)的物理地址,例如,對(duì)以太網(wǎng)來(lái)說(shuō)這個(gè)字段位6字節(jié)。對(duì)于ARP請(qǐng)求報(bào)文,這個(gè)字段為全0,因?yàn)榘l(fā)送方并不知道目標(biāo)的硬件地址。
目的邏輯地址:這是一個(gè)可變長(zhǎng)度字段,用來(lái)定義目標(biāo)的邏輯(IP)地址,對(duì)于IPv4協(xié)議這個(gè)字段的長(zhǎng)度為4個(gè)字節(jié)。
或者可以用這張圖,更為直觀:
?首先拿mac做了一個(gè)實(shí)驗(yàn):
1.打開wireshark,開始抓包;
2.清空ARP緩存表,以便系統(tǒng)重新發(fā)出ARP請(qǐng)求,采用
3.查看抓包結(jié)果:
可以看到,282這條是ARP請(qǐng)求報(bào)文所在的以太幀,源地址是本機(jī)MAC地址,目的地址是廣播地址(ff-ff-ff-ff-ff-ff),283這條是ARP報(bào)文所在的以太幀,源地址是網(wǎng)關(guān)的MAC地址,目的地址是本機(jī)MAC地址。
那么,為什么給出的各類答案中既有00-00-00-00-00-00,又有ff-ff-ff-ff-ff-ff這個(gè)地址呢?
因?yàn)?,在很多解析中混淆了ARP Request和以太幀的源地址和目標(biāo)地址。ARP報(bào)文包含源地址和目標(biāo)地址,而封裝ARP報(bào)文的以太幀也包含源地址和目標(biāo)地址。這兩組MAC地址是不同的。
首先看ARP Request報(bào)文:
可以看出,在以太幀中,目的地址和源地址分別為:ff-ff-ff-ff-ff-ff和本機(jī)MAC地址,而ARP請(qǐng)求中,目的地址則是00-00-00-00-00-00,源地址為本機(jī)MAC地址.
再來(lái)看網(wǎng)關(guān)返回的ARP報(bào)文:在以太幀和ARP報(bào)文中,目的地址為本機(jī)MAC地址,源地址為網(wǎng)關(guān)IP地址,這里是一樣的。
那么再回到這道題目,24問(wèn)的是請(qǐng)求報(bào)文所在幀的目的地址,而不是ARP請(qǐng)求的目的地址,而25問(wèn)則問(wèn)的是ARP報(bào)文的目的地址,答案也不言而喻了。
所以,遇到這類問(wèn)題,還是得抓包看看到底是怎么回事,不能盲目聽信解析。
參考文獻(xiàn):
https://www.javatpoint.com/address-resolution-protocol
ARP協(xié)議(地址解析協(xié)議)詳解_TABE_的博客-CSDN博客_arp硬件類型有哪些文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-792757.html
ARP報(bào)文目的MAC為什么不是廣播地址?_水杯愛喝水的博客-CSDN博客_arp的目的mac地址文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-792757.html
到了這里,關(guān)于關(guān)于ARP請(qǐng)求報(bào)文和ARP報(bào)文的源地址和目的地址的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!