解答
server给client返回一个SYN+ACK报文后server进入SYN_RCV状态。client收到SYN+ACK报文后进入ESTABLISHED状态,并且给server返回一个ACK报文。
server端发送了SYN+ACK报文后就会启动一个定时器,等待client返回的ACK报文。
如果第三次握手失败的话client给server返回的ACK报文,在传输过程中出现故障,server并不能收到这个ACK报文。那么server端就会启动超时重传机制,超过规定时间后重新发送SYN+ACK,重传次数根据/proc/sys/net/ipv4/tcp_synack_retries来指定,默认是5次。
如果重传指定次数到了后,仍然未收到ACK应答,那么一段时间后,server自动关闭这个连接。
但是client认为这个连接已经建立,如果client端向server写数据,server端将以RST包响应,方能感知到server的错误。
很基础的题,但还是要细心才能做对