如果三次握手的最终ACK被丢弃会发生什么?

问题描述:

根据TCP state transition graph,当服务器(被动开放端)向客户端(主动开放端)发送了SYN,ACK,并且客户端接收到它并向服务器发送了ACK,但是丢弃在网络中时,会发生什么?如果三次握手的最终ACK被丢弃会发生什么?

好像,客户端将进入ESTABLISHED状态和服务器不会,但客户不知道这...

+0

首先,TCP没有服务器或客户端。客户端/服务器概念是TCP没有的应用程序概念。 TCP建立对等点之间的连接。任何一方都可以成为应用程序的客户端或服务器,但TCP并不关心。 –

+1

服务器将重新发送SYN/ACK。 – EJP

+0

@EJP对此有何参考? –

的SYN/ACK重传。请参阅RFC 793. SYN-ACK的SYN部分与其他任何TCP段一样,因此需要重新传输,直到它被ACK或定时器到期,这会导致连接重置。

+0

然后在这一点上,客户端已经处于ESTABLISHED状态,因此可以发送数据到服务器,但服务器还没有准备好。所以服务器不会接受数据,强制客户端重新发送数据。在客户端接收到服务器的SYN-ACK(重新发送)之前,客户端将重新发送ACK。我的理解是正确的吗? 然后客户端将同时重新发送两个数据包? –

+0

ACK可以背负数据。我不相信服务器在接收到ACK之前不能接受数据。 – EJP