【问题标题】:What happens if the first `FIN` packet lost in TCP connections?如果第一个“FIN”数据包在 TCP 连接中丢失会怎样?
【发布时间】:2016-04-21 10:01:50
【问题描述】:

我有一个代理,比如A,正在运行并向我的服务器发送信息,比如SA的socket配置为keepalive,当AS之间的网络不好时,A会检测到连接错误,并尝试重新连接到S。我有时可以观察到A 上的 TCP 连接状态是FIN_WAIT1,这意味着A 发送一个FIN 数据包并等待。但是这个FIN 数据包似乎丢失了,因为在S 上我可以看到AS 之间的许多ESTABLISHED 连接,通常应该只有一个。

在这种情况下 TCP 会失败,还是我错过了什么?

【问题讨论】:

  • 如果所有的数据包都丢失了,socket最终会超时,关闭并被移除。然而,超时可能需要很长时间,如果它们被调整的话

标签: sockets tcp tcp-ip


【解决方案1】:

它在没有 ACK 的情况下重新传输,就像任何其他 TCP 段一样。

【讨论】:

  • 所以我想重传的FINs也丢失了?
猜你喜欢
  • 1970-01-01
  • 2011-04-27
  • 2013-04-25
  • 2017-10-20
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多