小白都能理解的TCP三次握手四次揮手
- 2021 年 7 月 19 日
- 筆記
前言
TCP在學習網絡知識的時候是經常的被問到知識點,也是程序員必學的知識點,今天小楊用最直白的表述帶大家來認識認識,喜歡的朋友記得點點關注哈。
何為TCP
上點官方的話:是一種面向連接(連接導向)的、可靠的、 基於IP的傳輸層協議
。啥意思咧,說白了就是實現客戶端與服務器之間的通訊的一種協議,是可靠的,可以傳送大量數據的
,一個TCP連接必須要經過三次「握手」才能建立起來,經過四次「揮手」斷開
三次握手
那麼三次握手是咋樣的呢,一幅張三上門找李四恰飯的圖為你介紹:
通過上面圖,我們知道大概知道了啥意思了,結合一點術語的介紹下:
- 第一次握手:客戶端發起請求,將SYN的數據包發送到服務端,請求建立請求
- 第二次握手:服務端收到客戶端的請求後,將(SYN/ACK)的數據包發送到客戶端,表示收到請求,待確認
- 第三次握手:客戶端發送(ACK的數據包)請求到服務端,表示確定建立連接
為啥需要三次呢
你想想作為一個張三上門去找李四恰飯,哪一步可以省呢?一問一答,最後肯定是要給人家回復嘛,不然人家還以為你開玩笑呢,你說對吧
四次揮手
那麼四次揮手是咋樣的呢,張三和李四繼續為你上映:
同過上圖,我們也知道是啥意思啦,張三一頓胡吃海塞的操作後,就想溜了,結合一點術語的介紹啦:
- 首先:張三一頓操作吃飽後,就發了一個(FIN數據包)想着提桶跑路
- 第二:李四收到了信息,發現還有一道拿手的壓軸菜還沒上,想讓他品嘗品嘗,就發了一個(ACK的數據包),讓他再等等
- 第三:一會菜上了,張三也吃了,心滿意足了,發了一個(FIN數據包)告訴張三,今天的菜都吃完了,飯局結束了,要走可以走了啦
- 第四:張三收到消息後,回了一個(ACK的數據包),表示收到了,然後撒腿就跑
為啥需要四次呢
上面場景來看,張三想走的請求發出後,並不代表對方也都處理完了,於是就先禮貌的回復一下,表示知道你發出請求了,等李四這邊安排都好了之後,在主動的告訴張三,張三得知後,也離開了。
歡迎下方交流討論。如果本篇博客有任何錯誤,請批評指教,不勝感激 !
共同進步,學習分享
歡迎大家關注我的公眾號【寫代碼的小楊】,相關文章、學習資料都會在裏面更新,整理的資料也會放在裏面。
覺得寫的還不錯的就點個贊,加個關注唄!持續更新 !!! 點關注,不迷路,小楊帶你上高速