Connect函数在发送最后一个ACK(发起TCP连接的三次握手的第三段)后返回。如果第三个数据段丢失,因为侦听仍在服务器上等待ACK,但客户端没有人再次发送该ACK,会发生什么情况?
发布于 2009-09-22 15:24:06
如果客户端将其确认与数据包一起发送,并且数据包丢失,则客户端将注意到数据尚未被服务器ACKd,并重新发送数据包。
如果客户端在单独的数据包中发送确认信息,而确认信息丢失,服务器将注意到客户端尚未对其执行ACKd操作,并重新发送数据包。客户端将通过重新发送ACK来响应。
此时应用程序的connect调用是否仍处于阻塞状态并不重要,因为ACKing是由操作系统的TCP/IP实现完成的。
https://stackoverflow.com/questions/1460640
复制相似问题