详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”(12)

挥手之前主动释放连接的客户端结束ESTABLISHED阶段 。 随后开始“四次挥手”:(1)首先客户端想要释放连接 , 向服务器端发送一段TCP报文 , 其中:

标记位为FIN , 表示“请求释放连接“;

序号为Seq=U;

随后客户端进入FIN-WAIT-1阶段 , 即半关闭阶段 。 并且停止在客户端到服务器端方向上发送数据 , 但是客户端仍然能接收从服务器端传输过来的数据 。

注意:这里不发送的是正常连接时传输的数据(非确认报文) , 而不是一切数据 , 所以客户端仍然能发送ACK确认报文 。 (2)服务器端接收到从客户端发出的TCP报文之后 , 确认了客户端想要释放连接 , 随后服务器端结束ESTABLISHED阶段 , 进入CLOSE-WAIT阶段(半关闭状态)并返回一段TCP报文 , 其中:

标记位为ACK , 表示“接收到客户端发送的释放连接的请求”;

推荐阅读