1. 程式人生 > >ARP抓包實戰小結-TCP/IP協議學習

ARP抓包實戰小結-TCP/IP協議學習

image 表示 以太網幀 空白 自己的 疑問 uboot 添加 網絡

2011-12-26 21:36:47

圖1

技術分享圖片

一,環境說明

硬件連線。PC與2440開發板直接用網線連接。

PC的ip地址:192.168.0.107。2440開發板的ip地址:192.168.0.106

二,操作

在開發板的uboot中用輸入命令。Ping 192.168.0.107

三,抓包及說明:見圖1

四,疑問點解答

由於ARP請求或回答的數據幀長都是42字節(28字節的ARP數據,14字節的以太網幀頭),因此每一幀都必須加入填充字符以達到以太網的最小長度要求:60字節。

以太網設備驅動程序要把這一短幀填充空白字符以達到最小傳輸長度(60)。

為什麽能看到回應是42字節而請求是60字節。因為回應這層數據還沒通過太網設備驅動程序,如果是2臺PC通訊的話,再另外一臺上看,一定是60字節的哦!

五,ARP的工作原理如下:

1、首先,每臺主機都會在自己的ARP高速緩沖區 (ARP Cache)中建立一個 ARP列表,以表示IP地址和MAC地址的對應關系。

2、當源主機需要將一個數據包發送到目的主機時,會首先檢查自己 ARP列表中是否存在該IP地址對應的MAC地址,如果有﹐就直接使用此MAC地址;如果沒有,主機就先將目標主機的IP地址與自己的子網掩碼進行"與"操作,以判定目標主機與自己是否位於同一網段內。假如目標主機與自己在同一網段內,就向本地網段發起一個ARP請求的廣播包,查詢此目的主機對應的MAC地址;如果目的主機在一個遠程網絡上,那麽就通過路由器等路由設備轉發此ARP請求到遠程網絡中廣播。此ARP請求數據包裏包括源主機的IP地址、硬件地址、以及目的主機的IP地址。

3、源主機和目的主機在一個網絡內的情況下:網絡中所有的主機收到這個ARP請求後,會檢查數據包中的目的IP和自己的IP地址是否一致。如果不相同 就不回應,但是該主機仍然會檢查自己的ARP高速緩存,如果此請求的源IP地址已經在高速緩存中,那麽就用ARP請求幀中的發送端硬件地址對高速緩存中相 應的內容進行更新;如果相同,該主機首先將發送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經存在該IP的信息,則將其覆蓋,然 後給源主機發送一個 ARP響應數據包,告訴它需要查找的MAC地址;

如 果源主機和目的主機不在一個網絡內, ARP請求將由路由器轉發至其它網絡。如果能找到目的主機,就將此路由器的MAC地址當作目的主機的網絡地址發給源主機,以後源主機和目的主機之間的信息 交換都要經過此路由器,這個路由器就被稱作ARP代理;如果沒有找到目的主機,在ARP高速緩存中會產生一條不完整的表項記錄下來。

4、源主機收到這個ARP響應數據包後,將得到的目的主機的IP地址和MAC地址添加到自己的ARP列表中,並利用此信息開始數據的傳輸。

ARP抓包實戰小結-TCP/IP協議學習