TCP的TIME_WAIT和CLOSE_WAIT

TCP连接关闭过程中涉及TIME_WAIT和CLOSE_WAIT两个关键状态。主动关闭连接的一方会进入TIME_WAIT,等待2MSL以确保数据包不干扰新连接,并允许对方有足够时间关闭。CLOSE_WAIT表示被动关闭方等待应用层调用close。大量CLOSE_WAIT可能因未及时关闭导致,可通过设置时间戳或心跳检测处理。TIME_WAIT状态用于避免旧数据包影响新连接,且防止重传可能导致的错误。
摘要由CSDN通过智能技术生成

1.四次挥手服务端和客户端的状态:

  • 主动关闭连接的一方,调用 close ();协议层发送 FIN 包;
  • 被动关闭的一方收到 FIN 包后,协议层回复 ACK;然后被动关闭的一方,进入 CLOSE_WAIT 状态,主动关闭的一方等待对方关闭,则进入 FIN_WAIT_2 状态;此时,主动关闭的一方等待被动关闭一方的应用程序,调用 close 操作;
  • 被动关闭的一方在完成所有数据发送后,调用 close () 操作;此时,协议层发送 FIN 包给主动关闭的一方,等待对方的 ACK,被动关闭的一方进入 LAST_ACK 状态;
  • 主动关闭的一方收到 FIN 包,协议层回复 ACK;此时,主动关闭连接的一方,进入 TIME_WAIT 状态;而被动关闭的一方,进入 CLOSED 状态;
  • 等待 2MSL 时间,主动关闭的一方,结束 TIME_WAIT,进入 CLOSED 状态;

在这里插入图片描述

2.总结上面的过程,得出一次 socket 关闭操作:

  • 主动关闭连接的一方 – 也就是主动调用 socket 的 close 操作的一方,最终会进入 TIME_WAIT 状态;
  • 被动关闭连接的一方,有一个中间状态,即 CLOSE_WAIT,因
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员世杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值