TCP三次握手和四次揮手

2021-09-27 09:49:24 字數 621 閱讀 4978

我們知道tcp協議是傳輸層的可靠資料傳輸協議,它被稱為是面向連線的(connection-oriented)協議。而在連線開始的過程中,兩個要傳輸資料的程序需要先相互握手。 之前大概知道tcp三次握手、四次揮手的原理和原因,但是對技術細節卻不清楚,今天就在這裡查缺補漏一下。

客戶:你好(第一次握手,僅打招呼不說事)

伺服器:你好(第二次握手,給對方回應,我聽得見你)

客戶:你好你好,我這裡有個東西...(第三次握手,確認可以收到對方回應,然後開始說正事也就是傳送資料)

那麼在技術細節上,該如何理解呢?這就得先從tcp報文結構看起:

可以看到在三次握手中主要用到了下面五個報文字段

三次握手的詳細過程

三次握手是建立連線,而四次揮手就是斷開連線了。我們也先用大白話版來解釋一下:

客戶:我掛**了啊

伺服器:哎喲,等會等會,我看看有沒有啥忘了的。

伺服器:好了好了,你掛了吧

客戶:得嘞

而從技術細節上看則是這樣

tcp 四次揮手 TCP的三次握手和四次揮手

三次握手 第一次握手 客戶端傳送syn包 syn x 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack x 1 同時自己也傳送乙個syn包 syn y 即syn ack包,此時伺服器進入syn recv狀態 第三次握手 客戶端收到伺服...

TCP三次握手和四次揮手

一 tcp三次握手 three way handshake 1 tcp三次握手的作用 三次握手的目的是連線伺服器指定埠,建立tcp連線,並同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。在socket程式設計中,客戶端執行connect 時,將觸發三次握手。2 tcp三次握手過程 第一步 ...

TCP三次握手和四次揮手

三次握手 四次揮手 需四次揮手原因 由於tcp的半關閉特性,tcp連線時雙全工 即資料在兩個方向上能同時傳遞 因此,每個方向必須單獨的進行關閉。這個原則就是 當一方完成它的資料傳送任務後就能傳送乙個fin來終止這個方向上的連線。當一端收到乙個fin後,它必須通知應用層另一端已經終止了那個方向的資料傳...