傳輸層: TCP三次握手
-
使用TCP協議進行通信的雙方必須先建立連接,然後才能開始傳遞數據
-
爲了確保連接雙方可靠性,雙方建立鏈接時,TCP協議使用了三次握手策略
-
三次握手過程
-
第一次握手: 客戶端發送帶有SYN標識的連接請求報文段,然後進入SYN_SEND狀態,等待服務端的確認。
-
第二次握手: 服務端接收到客戶端的SYN報文段後,需要發送ACK信息對這個SYN報文段進行確認,同時還要發送自己的SYN請求信息,服務端會將上述的信息放到一個報文段( SYN + ACK 報文段 )中,一併發送給客戶端,此時服務端將會進入SYN_RECV狀態。
-
第三次握手: 客戶端接收到服務端的SYN + ACK報文段後,會向服務端發送ACK確認報文段,這個報文段發送完畢後,客戶端和服務端都進入ESTABLISHED狀態,完成TCP三次握手。
-
-
爲什麼需要三次握手呢?
-
客戶端發送報文段,客戶端就知道: 自己的發送能力ok
-
服務端接收到報文段並響應,服務端就知道: 自己的接收能力ok、客戶端的發送能力ok、自己的發送能力ok
-
客戶端接收到響應,客戶端就知道: 自己的接收能力ok、服務端的接收能力ok、服務端的發送能力ok
-
服務端接收到響應,就知道: 客戶端的接收能力ok
-
-
舉個形象的例子
-
咱倆都買了個新手機,都想測試一下自己的手機能不能玩微信
-
我發: 舒克舒克,我是貝塔,收到請回答
-
你收到了我的信息,然後發送: 貝塔貝塔,我收到啦,你能收到嗎
-
我收到了你的信息,然後發送: 哈哈,收到啦~
-
兩邊通信就沒問題了!
-