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

2011-12-26 21:36:47緩存

圖1網絡

 

 

一,環境說明代理

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

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

二,操做路由

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

三,抓包及說明:見圖1原理

四,疑問點解答路由器

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

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

爲何能看到迴應是42字節而請求是60字節。由於迴應這層數據還沒經過太網設備驅動程序,若是是2臺PC通信的話,再另一臺上看,必定是60字節的哦!

五,ARP的工做原理以下:

一、首先,每臺主機都會在本身的ARP高速緩衝區 (ARP Cache)中創建一個 ARP列表,以表示IP地址和MAC地址的對應關係。

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

三、源主機和目的主機在一個網絡內的狀況下:網絡中全部的主機收到這個ARP請求後,會檢查數據包中的目的IP和本身的IP地址是否一致。若是不相同 就不迴應,可是該主機仍然會檢查本身的ARP高速緩存,若是此請求的源IP地址已經在高速緩存中,那麼就用ARP請求幀中的發送端硬件地址對高速緩存中相 應的內容進行更新;若是相同,該主機首先將發送端的MAC地址和IP地址添加到本身的ARP列表中,若是ARP表中已經存在該IP的信息,則將其覆蓋,然 後給源主機發送一個 ARP響應數據包,告訴它須要查找的MAC地址;

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

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

相關文章
相關標籤/搜索