为什么需要 TIME_WAIT 状态

阿兵云原生 2023-09-08 21:26:24

 

还是用一下上一篇文章画的图

TCP 的 11 个状态,每一个状态都缺一不可,自然 TIME_WAIT 状态被赋予的意义也是相当重要,咱们直接结论先行

上文我们提到 tcp 中,主动关闭的一边会进入 TIME_WAIT 状态,

另外 Tcp 中的有 TIME_WAIT 状态,主要是有如下 2 个原因:

  1. 为了防止被动关闭一方的延迟数据被其他连接窃取
  1. 为了防止被动关闭的一方,没有收到最后的一个 ACK 包

如何理解呢?

为了防止被动关闭一方的延迟数据被其他连接窃取

对于第一个

咱们一个一个的来详细解释一下,还是上面这个图,咱们人为的加一点异常的情况

咱们在 tcp 连接中,客户端先发起关闭,那么 TIME_WAIT 状态就在客户端这边,如下:

 

点击查看原文

可以进入地址进行体验和学习:https://xxetb.xet.tech/s/3lucCI

...全文
153 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

542

社区成员

发帖
与我相关
我的任务
社区描述
零声学院,目前拥有上千名C/C++开发者,我们致力将我们的学员组织起来,打造一个开发者学习交流技术的社区圈子。
nginx中间件后端 企业社区
社区管理员
  • Linux技术狂
  • Yttsam
  • 零声教育-晚晚
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

请新加入的VIP学员,先将自己参加活动的【所有文章】,同步至社区:

【内容管理】-【同步至社区-【零声开发者社区】

试试用AI创作助手写篇文章吧