前言
- 計算機網絡基礎中,
TCP
協議建立連接 & 釋放連接時的三次握手、四次揮手十分重要 - 今天carson將圖文解析
TCP
鏈接的三次握手 & 四次揮手,包學包會包易懂!
1. TCP建立連接:三次握手
1.1 示意圖
1.2 流程解析
成功進行TCP的三次握手後,就建立起一條TCP連接,即可傳送應用層數據。需要注意的是:
- 因
TCP
提供的是全雙工通信,故通信雙方的應用進程在任何時候都能發送數據 - 三次握手期間,任何1次未收到對面的回覆,則都會重發
1.3 特別說明:爲什麼TCP建立連接需三次握手?
結論
防止服務器端因接收了早已失效的連接請求報文,從而一直等待客戶端請求,最終導致形成死鎖、浪費資源具體描述
SYN洪泛攻擊:
- 從上可看出:服務端的TCP資源分配時刻 = 完成第二次握手時;而客戶端的TCP資源分配時刻 = 完成第三次握手時
- 這就使得服務器易於受到
SYN
洪泛攻擊,即同時多個客戶端發起連接請求,從而需進行多個請求的TCP連接資源分配
2. TCP釋放連接:四次揮手
2.1 示意圖
2.2 流程解析
2.3 特別說明
說明1:爲什麼TCP釋放連接需四次揮手?
- 結論
爲了保證通信雙方都能通知對方 需釋放 & 斷開連接
即釋放連接後,都無法接收 / 發送消息給對方
- 具體描述
(延伸疑問)說明2:爲什麼客戶端關閉連接前要等待2MSL時間?
- 即
TIME - WAIT
狀態的作用是什麼;MSL
= 最長報文段壽命(Maximum Segment Lifetime
)
- 原因1:爲了保證客戶端發送的最後1個連接釋放確認報文 能到達服務器,從而使得服務器能正常釋放連接
- 原因2:防止 上文提到的早已失效的連接請求報文 出現在本連接中
客戶端發送了最後1個連接釋放請求確認報文後,再經過2MSL
時間,則可使本連接持續時間內所產生的所有報文段都從網絡中消失。
即 在下1個新的連接中就不會出現早已失效的連接請求報文
3. 總結
- 本文全面講解了 計算機網絡中
TCP
協議最重要的三次握手 & 四次揮手 - 下面我將繼續講解 計算機網絡的基礎知識,感興趣的同學可以繼續關注本人簡書:Carson_Ho的簡書
請點贊!因爲你的鼓勵是我寫作的最大動力!
相關文章閱讀
Android開發:最全面、最易懂的Android屏幕適配解決方案
Android事件分發機制詳解:史上最全面、最易懂
Android開發:史上最全的Android消息推送解決方案
Android開發:最全面、最易懂的Webview詳解
Android開發:JSON簡介及最全面解析方法!
Android四大組件:Service服務史上最全面解析
Android四大組件:BroadcastReceiver史上最全面解析
歡迎關注Carson_Ho的簡書!
不定期分享關於安卓開發的乾貨,追求短、平、快,但卻不缺深度。