TCP 通过四次挥手优雅的关闭连接
四次挥手也很好记,4/2 = 2 一遍两个,客户端发送2个请求,服务端发送2个请求。
在这个步骤我们也只需要记住两个单词,一个是 FIN 代表finish 标注的数据包,一个是ACK应答数据包
-
第一次挥手(FIN):
- 客户端或应用发起关闭连接的请求,向服务器发送一个带有 FIN(Finish)标志的数据包。
- 状态变化:发起关闭的一方进入 FIN-WAIT-1 状态,表示已经完成数据的发送。
- 【简洁说法:客户端请求关闭连接,发送第一个带有结束标志的数据包】
-
第二次挥手(ACK):
- 服务器接收到带有 FIN 标志的数据包后,向客户端发送一个确认(ACK)数据包,表示已经收到了关闭请求。
- 服务器也可以在这个阶段继续发送数据。
- 状态变化:服务器进入 CLOSE-WAIT 状态。
- 【简洁说法:服务端收到客户端关闭连接的请求,回复一个确认数据包】
-
第三次挥手(FIN):
- 服务器准备好关闭连接时,向客户端发送一个带有 FIN 标志的数据包,表示服务器已经完成数据的发送。
- 状态变化:服务器进入 LAST-ACK 状态,等待客户端的最后一个 ACK。
- 【简洁说法:服务端请