1. 程式人生 > >簡單分析TCP3次握手4次揮手

簡單分析TCP3次握手4次揮手

1.TCP/IP的體系結構

在這裡插入圖片描述

2.TCP頭部結構

在這裡插入圖片描述

TCP標誌位有6種標識

SYN(synchronous建立聯機)
ACK(acknowledgement確認)
PSH(push傳送)
FIN(finish結束)
RST(reset重置)
URG(urgent緊急)

Sequence number(順序號碼)  
接收的資料包中的確認號(始終讓對方來設定我的序列號,以便於接收方按照序列號對分組資料重組,保證資料的完整性)

Acknowledge number(確認號碼)  
 一般是接收資料包中的序列號+該包的有效資料長度。

3本地抓包
注意:wireshark是不可以抓取本地迴路的包,如果想抓取的話,需要下載一個RawCap.exe,抓取檔案後,用wireshark開啟即可.
下面我以我抓取的本地資料包進行分析
在這裡插入圖片描述

3.1三次握手
在這裡插入圖片描述

第一次握手:55722–>9999 ACK=0,SYN = 1, Sequence number = 0,Acknowledgment number = 0
如圖
第一次握手

第二次握手:9999 -->55722 ACK =1,SYN = 1, Sequence number = 0,Acknowledgment number = 1
在這裡插入圖片描述

第三次握手:55722–>9999 ACK=1,SYN = 0, Sequence number = 1,Acknowledgment number = 1

在這裡插入圖片描述

3.2傳輸資料
注意:
Sequence number(順序號碼)
接收的資料包中的確認號(始終讓對方來設定我的序列號,以便於接收方按照序列號對分組資料重組,保證資料的完整性)

Acknowledge number(確認號碼)
一般是接收資料包中的序列號+該包的有效資料長度。

55722–>9999第一次傳送字串為 “hello”
此時ACK=1,Push=1,AckNum = 1
在這裡插入圖片描述

9999–>55722 發出響應
ACK=1,AckNum = 1+7 = 8
在這裡插入圖片描述

9999–>55722 向客戶端傳送"good"
ACK = 1,Push =1,AckNum = 8
在這裡插入圖片描述

55722–>9999表示收到
ACK = 1,ACKNum= 1+6 = 7
在這裡插入圖片描述

4四次揮手

在這裡插入圖片描述

第一次揮手

在這裡插入圖片描述

第二次揮手
在這裡插入圖片描述

第三次揮手
在這裡插入圖片描述

第四次揮手
在這裡插入圖片描述

簡單分析TCP過程到此為止.