TCP的三次握手和四次揮手

2021-08-25 08:11:46 字數 1305 閱讀 8674

syn是標誌位,syn=1表示請求連線

客戶端傳送請求

三次握手的目的是建立可靠的通訊通道,雙方確認自己與對方的傳送與接收機能正常。第一次握手

client確認了:無

server確認了:對方傳送正常

第二次握手

client確認了:自己接收、傳送正常;對方接收、傳送正常

server確認了:自己接收正常;對方傳送正常

第三次握手

client確認了:自己接收、傳送正常;對方接收、傳送正常

server確認了:自己接收、傳送正常;對方接收、傳送正常

所以三次握手就能確認雙發收發功能都正常,缺一不可。

三次握手的另外乙個目的就是確認雙方都支援tcp,告知對方用tcp傳輸。

第一次握手

server 猜測client可能要建立tcp請求,但不確定,因為也可能是client亂髮了乙個資料報給自己

第二次握手

通過ack=x+1,client知道server是支援tcp的,且理解了自己要建立tcp連線的意圖

第三次握手

通過ack=y+1,server知道client是支援tcp的,且確實是要建立tcp連線

客戶端和服務端都可以傳送請求

雙方傳送這樣的資料報和握手的情況類似,只是為了讓對方知曉自己理解了對方的意圖。(1) tcp客戶端傳送乙個fin,用來關閉客戶到伺服器的資料傳送。

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

(3) 伺服器關閉客戶端的連線,傳送乙個fin給客戶端。

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

四次揮手的根本原因是:一方傳送fin只表示自己發完了所有要發的資料,但還允許對方繼續把沒發完的資料發過來。

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後,它必須通知應用層另一端已經終止了那個方向的資料傳...