第一次挥手:客户端发送一个带有FIN标志的数据包给服务器,表示它希望关闭连接。此时,客户端进入FIN_WAIT_1状态,表示没有数据要发送给服务器了。
第二次挥手:服务器收到客户端的FIN包后,发送一个ACK包作为确认,表示同意关闭连接。此时,服务器进入CLOSE_WAIT状态,客户端进入FIN_WAIT_2状态。
第三次挥手:服务器准备关闭连接时,发送一个带有FIN标志的数据包给客户端,表示它也完成了数据的发送,准备关闭连接。此时,客户端收到这个FIN包后,进入LAST_ACK状态。
第四次挥手:客户端发送一个ACK包确认,表示已收到服务器的FIN包。此时,客户端进入TIME_WAIT状态,确保服务器收到ACK包后,才最终关闭连接。服务器收到ACK包后,进入CLOSED状态,连接正式断开。