ipv4的頭部結構如圖所示。其長度通常為20位元組,除非含有可變長的選項部分
·4位版本號:指定的ip協議的版本。對ipv4來說,其值是4。
·4位頭部長度:標識該ip頭部有多少個32bit字。因為4位最大能表示15,所以ip頭部長度最長是60位元組。
·8位服務型別:包括乙個三位的優先權字段(現在已經被忽略),4位的服務型別(tos)欄位和乙個保留字段(必須置0)。4位tos欄位分別表示:最小時延,最大吞吐量,最高可靠性和最小費用。其中最多只有乙個能置一,應用程式應該根據實際需要來設定它。
·16位總長度:指整個ip資料報的長度,以位元組為單位,因此ip資料報的最大長度為65535位元組。但是mtu會限制資料報的長度,超過限制的資料報會被分片。
·16位標識:唯一的標識主機傳送的每乙個資料報。其初始值由系統隨機生成,每傳送乙個資料報其值就加一。該值在資料報分片的時候被複製到每個分片中,因此同乙個資料報的所有分片都具有相同的標示值。
·3位標誌:三位標誌位的第一位保留;第二位表示禁止分片(df),如果這一位為一,那麼這個ip資料報不會被分片。此時如果ip資料報長度超過mtu限制,ip模組將丟棄該報文並返回乙個icmp差錯報文。第三位表示更多分片(mf),除了資料報的最後乙個分片外,其他分片都要把它置一。
·13位片偏移:是分片相對原始ip資料報開始處的偏移。
·8位協議:用來區分上層協議。
·16位頭部校驗和:用來檢驗ip資料報頭部在傳輸過程中是否損壞。
·32位源端ip位址和目的端ip位址用來標識資料報的傳送端和接收端,他們是不變的。
·最後乙個欄位是可選字段,裡面包含了記錄路由、時間戳、鬆散源路由選擇和嚴格源路由選擇。
在linux中使用tcpdump抓取數本地環路上的資料報,並使用telnet登陸本機,這裡我使用xshell在我的linux虛擬機器外登陸。
使用指令
tcpdump -ntx
-i lo
//-n代表顯示ip位址而非網域名稱位址
//-t代表不顯示時間戳
//-x表示以十六進製制顯示包內內容
//-i lo 表示只抓取本地回環上的資料報
接著在xshell中使用telnet登陸到本機
觀察第一次抓到的資料報內容我們可以解讀到一下資訊,因為我們使用的telnet登入本機 ,所以源位址和目標位址ip都為127.0.0.1,只是兩個埠號不一樣。
HTTP報文抓包分析
一 抓包結果 使用wireshark在使用瀏覽網頁時進行抓包,其中http報文如下 二 具體分析 對http報文進行分析 get success.txt http 1.1http請求行,請求方式get 請求路徑 success.txt http協議版本 http 1.1。host detectpor...
wireshark抓包分析http報文
接著分析http報文 此時前面四條和三次握手報文相差不大,應該可以看懂,我們這裡主要研究hypertext transfer protocal 請求行 請求頭 空白行 body 請求體 請求體如下 實際上request格式如下 那麼響應報文是怎樣的呢 其格式為 這裡我們看一下body資訊 這裡htt...
ip網路抓包分析(1)
獲取原先的網路配置,將ip位址的後8個位元組改為學號的後3位。連通性測試ping www.baidu.com能正常連線網路。源位址目的位址 網域名稱172.24.55.69 一 應用層 二 傳輸層 tcp協議tcp三次握手 第一次握手 客戶端傳送乙個tcp,標誌位為syn,序列號為0,代表客戶端請求...