TCP 四次挥手断开连接详解

本文详细介绍了 TCP 四次挥手断开连接的流程,包括客户端和服务端在每次挥手时的状态变化及发送的报文。还探讨了挥手报文丢失的情况、TIME_WAIT 状态的作用、持续时长及危害,以及为何是四次挥手而非三次。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、四次挥手流程

在这里插入图片描述
TCP 四次挥手断开连接前,客户端和服务端都处于 ESTABLISHED 状态

1、第一次挥手

客户端主动关闭连接,此时会向服务端发送 FIN+ACK 报文(将 TCP 首部 FIN 和 ACK 标志位都设成 1),之后客户端处于 FIN_WAIT_1 状态

注意

FIN 会消耗一个序列号

2、第二次挥手

  1. 服务端收到客户端的 FIN+ACK 报文后,会回给客户端 ACK 报文(将 TCP 首部 ACK 标志位设成 1),之后服务端处于 CLOSE_WAIT 状态
  2. 客户端收到服务端的 ACK 报文后,进入 FIN_WAIT_2 状态

3、第三次挥手

服务端 完成数据的发送后(如果还需要发送数据到客户端的话),会向客户端发送 FIN+ACK 报文(将 TCP 首部 FIN 和 ACK 标志位都设成 1),之后服务端处于 LASK_ACK 状态

注意

FIN 会消耗一个序列号

4、第四次挥手

  1. 客户端收到服务端的 FIN+ACK 报文后,会回给服务端 ACK 报文(将 TCP 首部 ACK 标志位设成 1),之后客户端处于 TIME_WAIT 状态,一段时间(2MSL)后,客户端彻底关闭连接
  2. 服务端收到客户端的 ACK 报文后,彻底关闭连接

注意

主动关闭连接的一方才有 TIME_WAIT 状态</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值