Java 基礎快速掌握 TCP 3次握手和4次握手的理解
阿新 • • 發佈:2019-02-09
一、概述
配圖不是我自己的,來源於網路
二、理解
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次握手的原理