tcp四次挥手中FIN_WAIT1状态的最大时间是多长?

        我们知道, 在tcp四次挥手中, 主动关闭的一端发FIN包后, 进入FIN_WAIT1状态, 什么意思呢? 也就是在等在FIN的ACK回包。

        在极端情况下, 如果主动关闭端的发送缓冲区满了, 发送端直接杀进程, 发FIN包, 那么接收端是无法接受到FIN包的, 塞满了啊。 这一点, 我们在之前的博文中探讨过。而且, tcpdump还抓不到这个FIN包, 回应的ACK更是无从谈起。

        于是乎, 发送端(主动关闭端) 就一直处于FIN_WAIT1状态, 接收端(被动关闭端)的socket无感知, 处于ESTABLISHED的状态, 就一直这么僵持着, 直到世界的最后一日(理论上)。

        所以, 从理论上来讲, FIN_WAIT1状态的最大时间是无穷大。 当然, 如果接收端慢慢从内核缓冲区中取出数据, 那么这个僵持的状态会被破坏, 进入正常的四次挥手逻辑。



你可能感兴趣的:(s2:,软件进阶,s2:,后台开发,s4:,计算机网络)