Wireshark中的TCP協議包分析
W ireshark 可以跟蹤網路協議的通訊過程,本節透過 TCP 協議,在瞭解 Wireshark 使用的基礎上,重溫 TCP 協議的通訊過程。
TCP ( Transmission Control Protocol ,傳輸控制協議)是一種面向連線的、可靠的、基於 的傳輸層 。
TCP 旨在適應支援多網路應用的分層協議 , 連線到不同但互連的計算機通訊網路的主計算機中的成對程式之間依靠TCP 提供可靠的通訊服務。 從網路模型 - 協議對應表中發現, TCP 協議位於傳輸層。
從
Wireshark介面圖中可以發現
1
1
、
1
4
、
1
5
號資料包是
建立TCP
連線的三次握手
過程。
1. 第一次握手(SYN=1,seq=x): 客戶端傳送一個 TCP 的 SYN 標誌位置 1 的包,指明客戶端打算連線的伺服器的埠,以及初始序號 X , 儲存在包頭的序列號(Sequence Number) 欄位裡。傳送完畢後,客戶端進入 SYN_SEND 狀態。
2. 第二次握手(SYN=1,ACK=1,seq=y,ACKnum=x+1): 伺服器發回確認包 (ACK) 應答。即 SYN 標誌位和 ACK 標誌位均為 1 。伺服器端選擇自己 ISN 序列號,放到 Seq 域裡,同時將確認序號 (Acknowledgement Number) 設定為客戶的 ISN 加 1 ,即 X+1 。傳送完畢後,伺服器端進入 SYN_RCVD 狀態。
3. 第三次握手(ACK=1 , ACKnum=y+1) :客戶端再次傳送確認包 (ACK) , SYN 標誌位為 0 , ACK 標誌位為 1 ,並且把伺服器發來 ACK 的序號欄位 +1 ,放在確定欄位中傳送給對方,並且在資料段放寫 ISN 的 +1 。傳送完畢後,客戶端進入 ESTABLISHED 狀態,當伺服器端接收到這個包時,也進入 ESTABLISHED 狀態, TCP 握手結束。
從 Wireshark 介面圖中可以發現 77 、 78 、 79 /8 0 號資料包是 移除TCP 連線的四次揮手 過程。
1. 第一次揮手(FIN=1 , seq=x) :客戶端傳送一個 FIN 志位置為 1 的包,表示自己已經沒有資料可以傳送了,但是仍然可以接受資料。傳送完畢後,客戶端進入 FIN_WAIT_1 狀態。
2. 第二次揮手(ACK=1 , ACKnum=x+1) :伺服器端確認客戶端的 FIN 包,傳送一個確認包,表明自己接受到了客戶端關閉連線的請求,但還沒有準備好關閉連線。傳送完畢後,伺服器端進入 CLOSE_WAIT 狀態,客戶端接收到這個確認包之後,進入 FIN_WAIT_2 狀態,等待伺服器端關閉連線。
3. 第三次揮手(FIN=1 , seq=y) :伺服器端準備好關閉連線時,向客戶端傳送結束連線請求, FIN 置為 1 。傳送完畢後,伺服器端進入 LAST_ACK 狀態,等待來自客戶端的最後一個 ACK 。
4. 第四次揮手(ACK=1 , ACKnum=y+1) :客戶端接收到來自伺服器端的關閉請求,傳送一個確認包,並進入 TIME_WAIT 狀態,等待可能出現的要求重傳的 ACK 包。伺服器端接收到這個確認包之後,關閉連線,進入 CLOSED 狀態。客戶端等待了某個固定時間(兩個最大段生命週期, 2MSL , 2 Maximum Segment Lifetime )之後,沒有收到伺服器端的 ACK ,認為伺服器端已經正常關閉連線,於是自己也關閉連線,進入 CLOSED 狀態。
透過上面的通訊過程分析,加深我們對 tcp 協議通訊過程的瞭解,同時也加強 Wireshark 對資料包支援的理解。
TCP 透過如下機制 保證可靠性 :
1. 確認和重傳:接收方收到報文就會確認,傳送方傳送一段時間後沒有收到確認就重傳。
2. 資料校驗。
3. 資料合理分片和排序:
4. 流量控制:當接收方來不及處理傳送方的資料,能提示傳送方降低傳送的速率,防止包丟失。
5. 擁塞控制:當網路擁塞時,減少資料的傳送。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70033718/viewspace-3001360/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用wireshark分析TCP/IP協議中TCP包頭的格式TCP協議
- 使用WireShark抓包分析TCP協議TCP協議
- wireshark 分析TCP協議TCP協議
- WireShark——IP協議包分析(Ping分析IP協議包)協議
- UDP協議抓包分析 -- wiresharkUDP協議
- SSH 協議基本原理及 wireshark 抓包分析協議
- Wireshark資料抓包分析(網路協議篇)第1章網路協議抓包概述協議
- TCP協議粘包問題詳解TCP協議
- wireshark抓包分析
- TCP協議TCP協議
- 實用TCP協議(1):TCP 協議簡介TCP協議
- 系列TCP/IP協議-TCP協議概述(011)TCP協議
- Wireshark抓包分析TCP“三次握手,四次揮手”TCP
- tcp/ip協議TCP協議
- Java中的TCP/IP協議和IP地址JavaTCP協議
- TCP協議的特點TCP協議
- 記一次簡單的wireshark抓包TCPTCP
- 【網路協議】TCP協議簡介協議TCP
- linux下UsbMon-WireShark之USB協議抓取分析Linux協議
- 如何使用 Wireshark 分析 TCP 吞吐瓶頸TCP
- 淺析TCP協議中的疑難雜症TCP協議
- 使用wireshark學習網路協議協議
- TCP協議詳解TCP協議
- TCP和UDP協議TCPUDP協議
- TCP/IP協議族TCP協議
- TCP協議小結TCP協議
- 大話TCP協議TCP協議
- TCP/IP 協議族TCP協議
- TCP 協議簡介TCP協議
- WireShark抓包分析以及對TCP/IP三次握手與四次揮手的分析TCP
- 網路程式設計協議(TCP和UDP協議,黏包問題)以及socketserver模組程式設計協議TCPUDPServer
- Ripple 20:Treck TCP/IP協議漏洞技術分析TCP協議
- 【轉】TCP協議三次握手過程分析TCP協議
- TCP協議三次握手過程分析【轉】TCP協議
- 網路通訊協議-TCP協議詳解!協議TCP
- Wireshark和TcpDump抓包分析心得TCP
- TCP應用層協議TCP協議
- TCP 協議有哪些缺陷?TCP協議