为什么TCP连接两次握手不行,需要三次
假设两次握手情况成立。客户端先向服务器发送SYN报文A,A因为网络原因(但依然存在网络链路中)导致超时,客户端再次发送SYN报文B,服务器接收到B报文,返回ACK报文并被客户端接收到,此时建立连接,客户端之间交流数据…双方断开连接。这时,报文A终于到达服务器,服务器又向客户端发送ACK报文,并建立连接。但这时的这个是虚假的连接,因为客户端没有数据向服务器传输了。
如果是三次握手的话,则可避免这种情况:服务器接收到报文A,向客户端发送ACK报文,这时客户端收到,就直接发送一个终止报文给服务器,表示不建立连接,从而避免了服务器维护虚假的连接。