1. FIN_WAIT2 状态

如果你完成了上一篇文章的实验,你肯定见过了 FIN_WAIT2 状态。

当主动关闭一方进入 FIN_WAIT2 状态时,只要对端还没有发送 FIN 段过来(处于 CLOSE_WAIT 状态,等等再关闭,我还有数据要发送),就会一直停留在这个状态。因此,FIN_WAIT2 状态会非常容易见到。

10.TCP协议-FIN_WAIT2 
图1 处于 FIN_WAIT2 状态 

很不幸,主动关闭一方有可能永远处于 FIN_WAIT2 状态,只要对方不发送 FIN 段的话(比如对端在 CLOSE_WAIT 状态时突然断电、网线掉了)。

在有些系统实现中,为了防止这种无限 FIN_WAIT2,设置了一个定时器。如果这个连接空闲 10 分钟 75 秒,TCP 将进入 CLOSED 状态。实际上,这是违反协议的,但又未尝不可呢?

相关文章:

  • 2021-06-24
猜你喜欢
  • 2021-04-30
  • 2021-12-03
  • 2021-07-08
  • 2021-07-30
  • 2021-08-22
  • 2022-12-23
  • 2021-10-07
相关资源
相似解决方案