tcp 狀態示碼 及 三次握手

2021-09-06 23:23:47 字數 1569 閱讀 7866

tcp的幾個狀態對於我們分析所起的作用。

在tcp層,有個flags欄位,這個欄位有以下幾個標識:syn, fin, ack, psh, rst, urg.

其中,對於我們日常的分析有用的就是前面的五個字段。

它們的含義是:

syn表示建立連線,

fin表示關閉連線,

ack表示響應,

psh表示有 data資料傳輸,

rst表示連線重置。

其中,ack是可能與syn,fin等同時使用的,比如syn和ack可能同時為1,它表示的就是建立連線之後的響應,

如果只是單個的乙個syn,它表示的只是建立連線。

tcp的幾次握手就是通過這樣的ack表現出來的。

但syn與fin是不會同時為1的,因為前者表示的是建立連線,而後者表示的是斷開連線。

rst一般是在fin之後才會出現為1的情況,表示的是連線重置。

一般地,當出現fin包或rst包時,我們便認為客戶端與伺服器端斷開了連線;而當出現syn和syn+ack包時,我們認為客戶端與伺服器建立了乙個連線。

psh為1的情況,一般只出現在 data內容不為0的包中,也就是說psh為1表示的是有真正的tcp資料報內容被傳遞。

tcp的連線建立和連線關閉,都是通過請求-響應的模式完成的。

概念補充-tcp三次握手:

tcp(transmission control protocol)傳輸控制協議

tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線:

位碼即tcp標誌位,有6種標示:syn(synchronous建立聯機) ack(acknowledgement 確認) psh(push傳送) fin(finish結束) rst(reset重置) urg(urgent緊急)sequence number(順序號碼) acknowledge number(確認號碼)

第一次握手:主機a傳送位碼為syn=1,隨機產生seq number=1234567的資料報到伺服器,主機b由syn=1知道,a要求建立聯機;

第二次握手:主機b收到請求後要確認聯機資訊,向a傳送ack number=(主機a的seq+1),syn=1,ack=1,隨機產生seq=7654321的包;

第三次握手:主機a收到後檢查ack number是否正確,即第一次傳送的seq number+1,以及位碼ack是否為1,若正確,主機a會再傳送ack number=(主機b的seq+1),ack=1,主機b收到後確認seq值與ack=1則連線建立成功。

完成三次握手,主機a與主機b開始傳送資料。

在tcp/ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。

第一次握手:建立連線時,客戶端傳送syn包(syn=j)到伺服器,並進入syn_send狀態,等待伺服器確認;

第二次握手:伺服器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器進入syn_recv狀態;

第三次握手:客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=k+1),此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手。完成三次握手,客戶端與伺服器開始傳送資料.

tcp 狀態示碼 及 三次握手

tcp的幾個狀態對於我們分析所起的作用。在tcp層,有個flags欄位,這個欄位有以下幾個標識 syn,fin,ack,psh,rst,urg.其中,對於我們日常的分析有用的就是前面的五個字段。它們的含義是 syn表示建立連線,fin表示關閉連線,ack表示響應,psh表示有 data資料傳輸,rs...

TCP協議埠狀態及TCP「三次握手」

tcp 三次握手 了解tcp協議埠的連線狀態,對排除和定位網路或系統故障會有很大幫助。一 listening 偵聽遠方tcp埠的連線請求,當提供的服務沒有被連線時,處於listening狀態,埠等待被連線。二 syn sent 客戶端狀態 客戶端呼叫connect,傳送乙個syn請求建立乙個連線,在...

TCP三次握手及TCP連線狀態 TCP報文首部格式

建立tcp連線時的tcp三次握手和斷開tcp連線時的4次揮手整體過程如下圖 開個玩笑 ack tcp協議規定,只有ack 1時有效,連線建立後所有傳送的報文ack必須為1 syn synchronization同步 在連線建立用來同步序號。當syn 1而ack 0時,表明這是乙個連線請求報文。對方若...