首先描述下tcp建立连接全过程:
1.客户端发送SYN给服务器,(客户端请求建立连接)
2.服务端收到客户端发送的SYN,回复SYN+ACK给客户端(服务端同意建立连接)
3.客户端收到服务端的SYN+ACK后,回复ACK给服务端(说明客户端收到了服务端发送的同意报文)
4.服务端收到客户端发送的ACK立,连接已建立,可以数据传送。
【答案一】因为信道不可靠,而 TCP 想在不可靠信道上建立可靠地传输,那么三次通信是理论上的最小值。(而 UDP 则不需建立可靠传输,因此 UDP 不需要三次握手。)
【答案二】因为双方都需要确认对方收到了自己发送的序列号,确认过程最少要进行三次通信。
https://www.zhihu.com/question/24853633/answer/115173386
【答案三】为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。