首先描述下tcp建立連接全過程:
1.客戶端發送SYN給服務器,(客戶端請求建立連接)
2.服務端收到客戶端發送的SYN,回覆SYN+ACK給客戶端(服務端同意建立連接)
3.客戶端收到服務端的SYN+ACK後,回覆ACK給服務端(說明客戶端收到了服務端發送的同意報文)
4.服務端收到客戶端發送的ACK立,連接已建立,可以數據傳送。
【答案一】因爲信道不可靠,而 TCP 想在不可靠信道上建立可靠地傳輸,那麼三次通信是理論上的最小值。(而 UDP 則不需建立可靠傳輸,因此 UDP 不需要三次握手。)
【答案二】因爲雙方都需要確認對方收到了自己發送的序列號,確認過程最少要進行三次通信。
https://www.zhihu.com/question/24853633/answer/115173386
【答案三】爲了防止已失效的連接請求報文段突然又傳送到了服務端,因而產生錯誤。