網(wǎng)絡協(xié)議基礎:ARP簡析
關于ARP的簡述
ARP:Address Resolution Protocol 地址解析協(xié)議。
RARP:Reverse Address Resolution Protocol 逆向地址解析協(xié)議。
不同的網(wǎng)絡,如以太網(wǎng),令牌網(wǎng)...,在數(shù)據(jù)鏈路層都有不同的尋址機制。
在以太網(wǎng)的局域網(wǎng)中,一臺主機和另外一臺主機通信發(fā)包,是根據(jù)48bit的以太網(wǎng)地址來確定目的接口的,設備驅(qū)動程序從不檢查IP數(shù)據(jù)報中的目的IP地址。
地址解析協(xié)議(ARP)為這兩種不同的地址形式提供映射:32bit的IP地址和數(shù)據(jù)鏈路層48bit地址的轉(zhuǎn)換。RFC 826[Plummer1982]是ARP規(guī)范描述文檔。
ARP為IP地址到對應的硬件地址之間提供動態(tài)映射。RARP是被那些沒有磁盤驅(qū)動器的系統(tǒng)使用(一般是無盤工作站或X終端),它需要系統(tǒng)管理員進行手工設置。
ARP通信過程解析:
(1).比如在一個局域網(wǎng)上,一臺主機A(192.168.0.12)要訪問機器B(192.168.0.11)。他會發(fā)送一份稱作ARP請求的以太網(wǎng)數(shù)據(jù)幀給以太網(wǎng)上的每個主機(廣播包)。ARP請求數(shù)據(jù)幀中包含目的主機的IP地址,意思就是:“如果你是這個IP地址的擁有者,請回答你的硬件地址。”
(2).目的主機收到這份廣播報文后,識別出這是發(fā)送端在尋問它的IP地址,于是發(fā)送一個ARP應答。這個ARP應答包含IP地址及對應的硬件地址。(非廣播)
(3).收到ARP應答后,系統(tǒng)的ARP緩存便會記錄MAC-IP的對應信息(ARP攻擊點),在CMD里打ARP -a便可查詢現(xiàn)在機器的ARP緩存情況?,F(xiàn)在IP數(shù)據(jù)報現(xiàn)在就可以傳送了。
在ARP背后有一個基本概念,那就是網(wǎng)絡接口有一個硬件地址(一個48bit的值,標識不同的以太網(wǎng)或令牌環(huán)網(wǎng)絡接口)。在硬件層次上進行的數(shù)據(jù)幀交換必須有正確的接口地址。但是,TCP/IP有自己的地址:32 bit的IP地址。
知道主機的IP地址并不能讓內(nèi)核發(fā)送一幀數(shù)據(jù)給主機。內(nèi)核(如以太網(wǎng)驅(qū)動程序)必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù)。ARP的功能是在32bit的IP地址和采用不同網(wǎng)絡技術(shù)的硬件地址之間提供動態(tài)映射。
值得注意:
ARP協(xié)議是不可靠和無連接的,通常即使主機沒有發(fā)出ARP請求,也會接受發(fā)給它的 ARP回應,并將回應的mac和ip對應關系放入自己的ARP緩存中。此外,內(nèi)核為2.4.x的linux系統(tǒng)在ARP實現(xiàn)中,考慮到了ARP欺騙,不會接受未經(jīng)請求的ARP回應,因此直接向這種系統(tǒng)發(fā)送ARP reply也是無效的,不過,有意思的是雖然它不會接受未經(jīng)請求的ARP reply,但是只要接收到ARP的request,它就會更新自己的ARP緩存。
【編輯推薦】