tcp四次挥手中FIN

xiaoxiao2021-02-28  24

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

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

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

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

涛歌依旧 认证博客专家 排名第一 点链接学人工智能 公众号免费领资料 ❤️零基础入门进阶人工智能 ❤️欢迎关注涛哥公众号,免费领海量学习资料。涛哥:毕业后就职于华为和腾讯。微信:ai_taogeyijiu
转载请注明原文地址: https://www.6miu.com/read-431676.html

最新回复(0)