使用wireshark分析TCP ——以HTTP協議為例


1. 對以太網幀、ip數據報、TCP報文結構的分析

以南郵圖書館網站為例,圖書館網址為:http://lib.njupt.edu.cn,對應的IP地 202.119.224.202。
設置wireshark的過濾條件為”ip.addr == 202.119.224.202”,得到下面結果:
pic 1

雙擊第一條,得到詳細信息:
這里寫圖片描述

從上往下,依次對應tcp/ip五層模型中的數據鏈路層、網絡層和傳輸層。

1.1 以太網MAC幀分析

數據鏈路層使用以太網傳輸,以太網MAC幀格式如下:
這里寫圖片描述

這個是以太網幀內容(以十六進制的形式顯示):
這里寫圖片描述

可以知道目的地址為:74:5a:aa:de:fe:65,源地址為:84:3a:4b:70:27:bc,類型為:0x0800(即IPv4),后面是數據(IP數據報)。

1.2 IP數據報分析

IP數據報首部的格式如下:
這里寫圖片描述

根據下圖(二進制顯示):
這里寫圖片描述

版本:0100(version: 4);首部長度:0101(5*4 byte);區分服務:00000000;總長度:00000000 00101000(40 bytes);標識:01001010 01111010;標志:010(DF=1);片偏移:00000 00000000;生存時間:10000000;協議:00000110(TCP);首部檢驗和:11100011 10001101;源地址:10.164.22.226;目的地址:202.119.224.202。

1.3 TCP報文分析

接着看IP數據報的數據部分(TCP報文),TCP報文格式:
這里寫圖片描述

根據下圖(以二進制形式表示):
這里寫圖片描述

源端口:00110101 01001010(13624);目的端口:00000000 01010000(HTTP默認端口號80);序號:11001001 11100010 10110001 00000001;確認號:01011001 11011000 11011100 01110101;數據偏移:0101(5*4 bytes);保留:000000;URG:0;ACK:1;PSH:0;PST:0;SYN:0;FIN:1;窗口:00000001 00000000(256);檢驗和:11111011 00111110;緊急指針:00000000 00000000。

2. 對三次握手建立TCP連接的分析

再回到這個主界面上:
這里寫圖片描述

圖中可以看到wireshark截獲到了三次握手的三個數據包。第四個包才是HTTP的,這說明HTTP的確是使用TCP建立連接的。

2.1 第一次握手數據包

客戶端發送一個TCP,標志位為SYN,序列號為0, 代表客戶端請求建立連接。 如下圖
這里寫圖片描述

2.2 第二次握手的數據包

服務器發回確認包, 標志位為 SYN,ACK. 將確認序號(Acknowledgement Number)設置為客戶的I S N加1以.即0+1=1, 如下圖
這里寫圖片描述

2.3 第三次握手的數據包

客戶端再次發送確認包(ACK) SYN標志位為0,ACK標志位為1.並且把服務器發來ACK的序號字段+1,放在確定字段中發送給對方, 如下圖:
這里寫圖片描述

在進過三次握手后和服務器建立了TCP連接,隨后瀏覽器發出了取文件命令GET。
這里寫圖片描述

服務器給出響應,把文件發給瀏覽器。
最后釋放TCP連接,如下圖所示:
這里寫圖片描述

本次作業到此結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM