TCP協議三次握手 四次斷開 過程分析

2021-07-23 07:01:33 字數 1840 閱讀 3017

建立tcp連線的過程需要進行三次資訊交換,通常稱為「三次握手」,示意圖如下:

seq:代表tcp段首部中的「序號(sequence number)」:是tcp段所傳送的資料部分第乙個位元組的序號。在tcp傳送的資料流中,每乙個位元組都有乙個序號。建立連線時,傳送方將初始序號(initial sequence number, isn)填寫到第乙個傳送的tcp段序號中。

ack:代表tcp段首部中的「確認號」:是期望收到對方下次傳送的資料的第乙個位元組的序號,也就是期望收到的下乙個tcp段的首部中的序號,等於已經成功收到的tcp段的最後乙個位元組序號加1。確認號在ack標誌為1時有意義,除了主動發起連線的第乙個tcp段不設定ack標誌外,其後傳送的tcp段都會設定ack標誌。

三次握手的具體過程闡述如下:

1. 客戶端主動與伺服器聯絡,tcp首部控制位中的syn設定為1,傳送帶有syn的tcp段,並把初始序號告訴對方。

2. 伺服器端收到帶有syn的報文,記錄客戶端的初始序號,選擇自己的初始序號,設定控制位中的syn和ack。因為syn占用乙個序號,所以確認序號設定為客戶端的初始序號加1,對客戶端的syn進行確認。

3. 伺服器端的報文到達客戶端,客戶端設定ack控制位,並把確認號設為伺服器的初始序號加1,以確認伺服器的syn報文段,這個報文只是確認資訊,告訴伺服器已經成功建立了連線。

例項:ip 192.168.1.116.3337 > 192.168.1.123.7788: s 3626544836:3626544836

ip 192.168.1.123.7788 > 192.168.1.116.3337: s 1739326486:1739326486 ack 3626544837

ip 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1

第一次握手:192.168.1.116傳送位碼syn=1,隨機產生seq number=3626544836的資料報到192.168.1.123,192.168.1.123由syn=1知道192.168.1.116要求建立聯機;

第二次握手:192.168.1.123收到請求後要確認聯機資訊,向192.168.1.116傳送ack number=3626544837,syn=1,ack=1,隨機產生seq=1739326486的包;

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

由於tcp連線是全雙工的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的資料傳送任務後就能傳送乙個fin來終止這個方向的連線。收到乙個 fin只意味著這一方向上沒有資料流動,乙個tcp連線在收到乙個fin後仍能傳送資料。首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。

tcp採用四次揮手關閉連線

(1)客戶端a傳送乙個fin,用來關閉客戶a到伺服器b的資料傳送(報文段4)。

(2)伺服器b收到這個fin,它發回乙個ack,確認序號為收到的序號加1(報文段5)。和syn一樣,乙個fin將占用乙個序號。

(3)伺服器b關閉與客戶端a的連線,傳送乙個fin給客戶端a(報文段6)。

(4)客戶端a發回ack報文確認,並將確認序號設定為收到序號加1(報文段7)。

tcp 三次握手連線,四次握手斷開

tcp握手協議 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線.第一次握手 建立連線時,客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 syn 同步序列編號 synchronize sequence numbers 第二次握手 伺服...

TCP三次握手過程和四次斷開連線

tcp 三次握手 tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程 在tcp ip協議中,tcp協議提供可靠的連線服務,採用三次握手建立乙個連線。第一次握手 建立連線時,客戶端...

三次握手,四次斷開

三次握手,四次斷開 tcp是一種面向連線的單播協議,在傳送資料前,通訊雙方必須在彼此間建立一條連線。所謂的 連線 其實是客戶端和伺服器的記憶體裡儲存的乙份關於對方的資訊,如ip位址 埠號等。ack 確認,使得確認號有效。syn 用於初如化乙個連線的序列號。fin 該報文段的傳送方已經結束向對方傳送資...