TCP握手过程中丢包

我必须实现一个导致文件传输的伪TCP握手。 我没有问题做文件传输:简单的发送确认。 我不能揽头脑的是如何在三个步骤中的一个步骤中进行三次握手。

例如:我的客户端发送一个SYN数据包。 如果超时(丢包或只是慢)等待SYN-ACK,则重新发送。 服务器发送SYN-ACK。 如果超时等待ACK,则重新发送SYN-ACK。 现在客户如何收到他的ACK?

客户不知道他的ACK已收到,但他为什么在意? 无论是否收到ACK,连接都会build立。 你永远不会知道发送的最后一个数据包是否被接收,所以你必须devise一个不需要的协议。