原创 TCP 常用知识笔记(简)-6

TCP四次挥手

四次挥手过程

TCP通过四次挥手断开连接。
第一次:客户端打算关闭连接,会发送一个TCP首部FIN置1的报文,之后客户端进入FIN_WAIT_1状态。
第二次:服务端收到该报文后向客户端发送ACK报文,接着服务端进入CLOSED_WAIT状态。
客户端收到ACK后进入FIN_WAIT_2状态。
第三次:服务端处理完数据后发送FIN报文,之后服务器进入LAST_ACK状态。
第四次:客户端回应ACK,服务器收到后进入CLOSED,客户端等待2MSL后也进入CLOSED。
等待2MSL是为了如果ACK丢失能收到服务端重发的FIN报文。

为什么需要 等待2MSL?

主动发起关闭连接的一方会有TIME_WAIT状态。
1.防止旧连接的数据包。
如果没有下次建立连接可能接收到上次连接延迟的数据包,造成数据错乱的问题。
2.保证连接正常关闭。
确保最后的ACK被服务端收到,

猜你喜欢

转载自blog.csdn.net/weixin_43891021/article/details/114159991