TCP四次揮手為什麼是四次?可以三次嗎?

2021-10-19 07:37:31 字數 592 閱讀 7898

我們先回顧tcp三次握手、四次揮手的過程。

(1)三次握手:第二次握手時,伺服器端同意客戶端的連線請求的同時,進行伺服器端的連線請求。

(2)四次握手:第二次握手時,伺服器端同意客戶端的關閉請求;在第三次握手時,才進行伺服器端的關閉請求。

我自己思考覺得在某些情況下是可以的,但普遍情況是不行。

四次揮手把同意對方請求自身請求分離開。是因為在客戶端請求斷開時(客戶端傳送端->伺服器接收端),伺服器可能還有資料未發完,所以需要分開操作:

也就是說,三次握手、四次揮手差別就在第二次,有沒有把同意對方請求自身請求拆分開。

如果客戶端請求關閉連線時,伺服器並沒有資料需要傳送,其實三次揮手應該也是可以的。但一般情況下,客戶端猝不及防地請求斷開連線,伺服器還是有資料需要傳輸的,所以四次揮手更加地穩妥。

tcp 四次揮手 TCP四次揮手

tcp斷開連線的過程 客戶端傳送fin報文,表明客戶端將不在傳送資料。具體過程 把fin標誌位改為1,序號seq u,之前傳送的資料加1,這裡規定即使不攜帶資料序號也要 1。該過程中客戶端通過close系統呼叫從established狀態進入fin wait 1狀態。第二次揮手 服務端收到客戶端發來...

TCP四次揮手

純給自己看的 發起關閉的一方是客戶端,被動關閉的一方是伺服器。1 客戶端a傳送乙個fin 1,用來關閉客戶a到伺服器b的資料傳送。圖上畫的對,還有乙個seq n 2 伺服器b收到這個fin,它發回乙個ack 1,確認序號ack為收到的序號加1。3 伺服器b關閉與客戶端a的連線,傳送乙個fin 1給客...

TCP四次揮手

四次揮手 1.客戶端程序發出連線釋放報文,並且停止傳送資料。釋放資料報文首部,fin 1,其序列號為seq u 等於前面已經傳送過來的資料的最後乙個位元組的序號加1 此時,客戶端進入fin wait 1 終止等待1 狀態。tcp規定,fin報文段即使不攜帶資料,也要消耗乙個序號。2.伺服器收到連線釋...