【发布时间】:2009-09-22 15:02:44
【问题描述】:
Connect 函数在发送最后一个 ACK(发起 TCP 连接的 3 次握手的第 3 段)后返回。如果这第 3 段丢失了会发生什么,因为 listen 仍在服务器上等待 ACK 但客户端没有人再次发送该 ACK?
【问题讨论】:
标签: tcp
Connect 函数在发送最后一个 ACK(发起 TCP 连接的 3 次握手的第 3 段)后返回。如果这第 3 段丢失了会发生什么,因为 listen 仍在服务器上等待 ACK 但客户端没有人再次发送该 ACK?
【问题讨论】:
标签: tcp
如果客户端用数据包发送它的ACK,并且它丢失了,客户端会注意到数据还没有被服务器确认并重新发送数据包。
如果客户端在一个单独的数据包中发送它的 ACK,但它丢失了,服务器会注意到 SYN/ACK 没有被客户端确认并重新发送数据包。客户端将通过重新发送 ACK 来响应。
此时应用程序的连接调用是否仍处于阻塞状态并不重要,因为 ACKing 是由操作系统的 TCP/IP 实现完成的。
【讨论】: