1. 程式人生 > >ARP報文分析

ARP報文分析

本文將對ARP報文加以分析,讓大家對ARP報文有個初步的瞭解。

1arp報文格式


2arp request報文


3arp response報文


由圖2、圖3可以看出,ARP報文是封裝在乙太網幀裡面的,下面我們就來分析一下具體內容。先說ARP報文的格式:硬體型別:指明硬體的型別,乙太網是1協議型別:指明發送者對映到資料鏈路標識的網路層協議的型別;IP對應0x0800硬體地址長度:也就是MAC地址的長度,單位是位元組,這裡是6協議地址長度:網路層地址的長度,即IP地址長度,單位是位元組,這裡為4操作:指明是ARP請求(1)還是ARP應答(2),這個可以在圖2和圖3中相應位置看出。

剩下的欄位都很簡單啦,不具體說了。接下來我們來具體分析一下圖2和圖3的內容,在資料鏈路層,或者說在一個區域網內兩臺主機的互相通訊是通過硬體地址(MAC地址)來完成的,在主機A(在圖2中對應IP192.168.1.122的主機)剛開啟時,它的ARP快取是空的,如果主機A想和區域網中的主機B(對應IP192.168.1.1)通訊,它要知道主機BMAC地址才可以,這裡主機A已經知道主機BIP地址了,那麼怎麼才能知道主機BMAC地址呢,這也就是arp協議要完成的內容。
arp
的作用是:從ip地址到mac地址的一個轉換,大家看圖2,主機A向同一個區域網內的所有主機(即廣播)傳送arp請求報文:我的
IP192.168.1.122,我的mac地址是00-E0-B0-E3-1C-B5,請問IP地址為192.168.1.1MAC地址是什麼?區域網中所有主機都會都到這個arp請求報文,但ip地址是非192.168.1.1的主機發現這份報文不是發給自己的,於是就丟棄掉這份報文,而主機192.168.1.1檢測到這份arp請求報文是發給它的,所以它就傳送回一個arp應答報文,具體內容見圖3要注意的是,arp應答報文不是廣播,是單播回給192.168.1.122的,主機192.168.1.122收到這份arp應答報文後,雙方就可以通訊了。當然,這裡省略了很多細節方面,大家可以查閱下相關的資料。在這裡我說下
arp欺騙的內容,相信大家會很感興趣,其實說穿了,arp欺騙很簡單:
arp
欺騙分為主機欺騙和閘道器欺騙,一般來說,我們的網路環境都是N臺主機通過閘道器的NAT功能出去連線Internet的。也就是說所有的資料包都要流經閘道器。現在假設有閘道器、主機A和主機B,主機A是欺騙者,而主機B當然就是被欺騙者了。先說主機欺騙,主機A通過某種手段向主機B傳送ARP報文:小樣兒的你聽好了,閘道器的MAC地址是xx-xx-xx-xx-xx-xx,而這個地址是主機A隨便寫的一個mac地址,主機B聽到了這個訊息後,以後所有的報文都忘這個虛假的地址傳送,因為這個地址本身就是不存在的,所以主機B理所當然得也就找不到網關了,現象就是掉線啦!再說閘道器欺騙,過程和上面的也差不多,不過主機A是把報文扔給網關了,內容就是:老大啊,主機Bmac地址是yy-yy-yy-yy-yy-yy,這個地址當然也是不存在的啦,那閘道器聽信了主機A的虛假內容,於是從Internet發來給主機B的所有資料包,閘道器都發往這個虛假的yy-yy-yy-yy-yy-yy,而主機B還在那邊張著嘴等著閘道器送給它的報文呢,不過閘道器可不管這個,一直把主機A告訴給它的虛假地址當作是主機B的地址,於是乎,可憐的主機B又斷線了!