1. 程式人生 > >Java 基礎快速掌握 TCP 3次握手和4次握手的理解

Java 基礎快速掌握 TCP 3次握手和4次握手的理解

一、概述

這裡寫圖片描述

配圖不是我自己的,來源於網路

二、理解

3次握手:
3次握手指的是TCP 建立連線 階段
1.Client–>Service SYN
2.Client<–Service SYN+ACK
3.Client–>Service ACK

4次握手:
4次握手指的是 TCP 斷開連線 階段
1.Client–>Service FIN
2.Client<–Service ACK
3.Client<–Service FIN
4.Client–>Service ACK

之所以連線只需要3次,而斷開需要4次.
最大的原因.個人認為.是因為 一方請求斷開連線的時候,另一方很可能還在傳輸資料
需要等另一方將資料傳輸完成了,然後將狀態 回執給請求斷開的一方 .才能真正安全斷開

三、深度理解

可能很多人會對 SYN 、ACK、FIN 比較好奇 ,我也一樣.
–>點選我探索其中的奧祕吧
上面的文章介紹的很全,在下簡單給大家提及一下
SYN 、ACK、FIN 都屬於 TCP 協議中的 flag

SYN 表示建立連線
FIN 表示關閉連線
ACK 表示響應

四、注意

TCP協議, 建立 連線,只能由客戶端發起.
但是 斷開 連線,可以由任何一方發起,原理就是4次握手的原理