- 在进行TCP 四次挥手之前,服务端和客户端都处于ESTABLISHED状态;
- 客户端向服务端发送FIN,请求断开连接,发送之后自身状态变为FIN_WAIT1;
- 服务端接受到客户端发来的FIN后向客户端回应ACK,自生状态变为CLOSE_WAIT;
- 客户端接受到服务端发来的ACK之后,状态进入FIN_WAIT2;
- 此时连接已经断开了一半,服务器端若还有数据没有发送完毕还会继续发送;
- 当服务器端向客户端发送完毕数据之后,会像客户端发送FIN,请求断开连接,进入LAST_ACK状态;,
- 客户端接受到服务端发来的FIN后向服务端发送ACK,确认断开连接,状态变为TIME_WAIT
- 服务端收到客户端发来的ACK之后会直接进入CLOSED状态;·
- 客户端会在2MSL(一般为1分钟)之后进入CLOSED状态;, 2MSL即两倍的MSL,TCP的TIME_WAIT状态也称为2MSL等待状态,