断开连接:
Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
1 Client---> Server
Client发送一个FIN,表示Client要发送的数据已经发送完成,请求结束连接,Client进入fin_wait_1状态;
2 Server---> Client
Server收到Client的FIN后,会向Client发送一个ACK,表示收到了Client的FIN请求,确认序号为收到序号(A)+1(即ack=A+1),Server进入close_wait状态(此时Server可能没有完成向Client的数据传输);
3 Server---> Client
当Server完成向Client的数据传输后,向Client发送一个FIN ,,表示Server已经完成发送,Client可以断开连接,Server进入last_ack状态;
4 Client---> Server
Client:接收到Server的FIN后,Client进入time_wait状态,并向Server发送一个ACK,确认序号为收到序号(C)+1(ack=C+1)
Server:检查客户端信息正确,Server进入closed状态,Client断开连接,Server关闭连接,四次挥手完成。
原文:https://www.cnblogs.com/lglze/p/11956310.html