如果TCP使用两次握手来建立连接,意味着在客户端和服务器之间建立连接时,客户端发送第一个报文(SYN)后,服务器收到该报文后会回复一个报文(SYN+ACK)来确认连接,然后连接就建立了。
但是,这种方式存在一个问题,就是客户端并不能确定服务器是否真正收到了第一个报文,因为服务器可能在收到第一个报文之后,又发送了一个报文(SYN+ACK),而客户端却没有收到。这种情况下,客户端并不会知道连接是否已经建立,可能会等待一段时间再发送数据,导致连接建立的延迟。
为了解决这个问题,TCP使用了三次握手来建立连接。在三次握手的过程中,客户端发送第一个报文(SYN),服务器收到该报文后会回复一个报文(SYN+ACK),然后客户端再发送一个报文(ACK)来确认连接。这样,客户端就可以确定服务器是否真正收到了第一个报文,从而避免连接建立的延迟。