本文主要是介绍tcp四次挥手中FIN_WAIT1状态的最大时间是多长?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我们知道, 在tcp四次挥手中, 主动关闭的一端发FIN包后, 进入FIN_WAIT1状态, 什么意思呢? 也就是在等在FIN的ACK回包。
在极端情况下, 如果主动关闭端的发送缓冲区满了, 发送端直接杀进程, 发FIN包, 那么接收端是无法接受到FIN包的, 塞满了啊。 这一点, 我们在之前的博文中探讨过。而且, tcpdump还抓不到这个FIN包, 回应的ACK更是无从谈起。
于是乎, 发送端(主动关闭端) 就一直处于FIN_WAIT1状态, 接收端(被动关闭端)的socket无感知, 处于ESTABLISHED的状态, 就一直这么僵持着, 直到世界的最后一日(理论上)。
所以, 从理论上来讲, FIN_WAIT1状态的最大时间是无穷大。 当然, 如果接收端慢慢从内核缓冲区中取出数据, 那么这个僵持的状态会被破坏, 进入正常的四次挥手逻辑。
这篇关于tcp四次挥手中FIN_WAIT1状态的最大时间是多长?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!