在TIME_WAIT状态下接收套接字数据

时间:2013-02-02 21:31:36

标签: linux sockets tcp time-wait

在下面的场景中,当TIME_WAIT中的套接字收到一个段

时会发生什么
  • a)收到丢失的ACK时
  • b)当发送节点想要在服务器上使用相同的src_ip:src_port建立另一个新连接时,服务器已经有一个TIME_WAIT套接字的dst_ip:dst_port。

是否会忽略/丢弃它,发送重置或重用TIME_WAIT套接字?

由于

中号

2 个答案:

答案 0 :(得分:0)

  

a)收到丢失的ACK时

没有

  

b)当发送节点想要在服务器上使用相同的src_ip:src_port建立另一个新连接时,服务器已经有一个TIME_WAIT套接字的dst_ip:dst_port。

没有

这些情况都不符合你的头衔。

答案 1 :(得分:0)

O.K。在进一步挖掘并阅读本书[第43页]'Unix网络编程'后,我终于弄明白我的问题出了什么问题(回答我自己的问题)。

a)当处于TIME_WAIT状态时,'Active-Closer'将重新发送ACK到丢失/漂移的FIN(在此状态下不期望任何ACK [link] http://upload.wikimedia.org/wikipedia/commons/5/55/TCP_CLOSE.svg

b)TCP不会启动处于TIME_WAIT状态的连接的新版本。 (我仍然不知道它是如何阻止它的,即它是否重置了那个连接,我们如何通过读取tcpdump来解决这个问题)