實驗三 TCP報文的捕獲與分析


實驗四   TCP報文的捕獲與分析

——實驗報告

一、實驗目的

(1)掌握TCP建立連接的工作機制。

(2)掌握借助Wireshark捕捉TCP三次握手機制。

(3)掌握SYN、ACK標志的使用。

二、實驗內容

用Wireshark軟件捕捉TCP三次握手機制。

三、實驗原理

TCP報文段格式如圖1所示。

 

圖1 TCP報文段格式

表1 TCP的標志位含義

TCP的標志位

英文簡寫

含義

緊急標志位

URG

表示數據包的緊急指針域有效,用來保證連接不被阻斷,並督促中間設備盡快處理

確認標志位

ACK

對已接收的數據包進行確認

推送標志位

PSH

表示該數據包被對方接收后應立即交給上層應用,而不在緩沖區排隊

重置標志位

RST

用於連接復位、拒絕錯誤和非法的數據包

同步標志位

SYN

用於建立會話連接,同步序列號

完成標志位

FIN

表示已經沒有數據要發送了,即將關閉連接

三次握手機制實驗原理如圖2所示。

TCP的序號和確認號:

32位序號 seq:Sequence number 縮寫seq ,TCP通信過程中某一個傳輸方向上的字節流的每個字節的序號,通過這個來確認發送的數據有序,比如現在序列號為1000,發送了1000,下一個序列號就是2000;

32位確認號 ack:Acknowledge number 縮寫ack,TCP對上一次seq序號做出的確認號,用來響應TCP報文段,給收到的TCP報文段的序號seq加1。

區分ack和ACK:

小寫的ack,代表的是頭部的確認號Acknowledge number, 縮寫ack,是對上一個包的序號進行確認的號,ack=seq+1;

大寫的ACK,則是上面說的TCP首部的標志位,用於標志的TCP包是否對上一個包進行了確認操作,如果確認了,則把ACK標志位設置成1。

 

三次握手機制過程:

客戶端發送SYN報文,並置發送序號為X;服務端發送SYN和ACK報文,並置發送序號為Y,確認序號為X+1;客戶端發送ACK報文,並置發送序號為X+1,確認序號為Y+1。

 

圖2 三次握手機制工作示意圖

四、實驗環境

交換式網絡、windows操作系統、Wireshark軟件

注意:在做這個實驗的過程中,例如從打開某一網頁獲得TCP包從而分析TCP的三次握手機制過程中,容易犯先打開網頁再開始抓包的錯誤,正確的做法是先在Whireshark軟件中設置TCP抓包,然后再打開一個網頁。

五、實驗內容與步驟

(1)開啟Wireshark軟件

         在捕捉接口對話框中選中網卡接口,然后點擊“Optinos”進行包過濾,如圖3所示。

圖3  Wireshark捕獲

(2)過濾TCP數據包

         在隨后出現的的下列對話框中,在“Capture Filter”處填寫TCP,從而捕捉到TCP包,進而獲得TCP三次握手的建立機制,然后點擊“Start”。如圖4所示。

圖4 TCP過濾設置

(3)TCP三次握手機制生成與分析

         訪問某一網站,則Whireshark捕捉到的TCP三次握手的信息,如圖5所示,以前三行為例解析一下。 

圖5 捕獲到的三次握手通信包

  •  第一行對應的是第一次握手,其中[SYN]出現表明為三次握手的開始的標志。

          客戶端59361端口號向服務器端80號端口發送一個標志為SYN=1且含有初始化序列值seq=0的數據包,開始建立會話,在初始化會話過程中,通信雙方還在窗口大小Win、最大報文段長度MSS等方面進行協商。Source port為59361,Destination port為80,打開編號為1所示的下拉菜單,會出現對應項的更加詳細的解析,如圖6所示。

圖6 SYN第一次握手

  • 第二行對應的[SYN,ACK]表明為二次握手,是對建立的確認。

         服務器端80端口號向客戶端59361號端口發送包含確認值的數據段,如圖7總Transmission Control Protocol(TCP)所示,其值等於所收到的序列值加一,即ACK=1,其自身的序列號為0;並對MSS更改為1460。源端口號Src Port為80,目的端口號Dst Port為59361。

圖7 SYN、ACK第二次握手

  • 第三行對應的是第三次握手

         客戶端59361端口號向服務器端80號端口發送確認值Seq=1、Ack=1(59361接收到的序列值加1),這便完成了三次握手的建立。如圖8所示對應答的應答為第三次握手。

圖8 ACK第三次握手

圖9 http

五、實驗心得

       這次實驗更系統地學習了解TCP三次握手建立連接的全過程,明白了TCP報文格式、標志位等內容含義,以及建立的三次握手菜單解析。TCP三次握手過程中,傳送的包里不包含數據,三次握手完畢后,客戶端與服務器才正式開始傳送數據。理想狀態下,TCP連接一旦建立,在通信雙方中的任何一方主動關閉連接之前,TCP 連接都將被一直保持下去。實驗過程中也遇到了一些問題,比如不熟悉握手菜單中的一些英文內容,還有可能由於版本不同,導致顯示建立連接的只有端口號。另外,與建立連接的“三次握手”類似,斷開一個TCP連接則需要“四次握手”四次揮手過程。 

 若有不足,懇請指正,感謝!


免責聲明!

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



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