断开连接-TCP 四次挥手
断开一个TCP连接需要4次挥手,缺一不可
第一次挥手:客户端发送一个 FIN(SEQ=x)标记的数据包 -> 服务端,用来关闭客户端到服务器的数据连接,然后,客户端进入 fin_wait_1 状态
第二次挥手:服务器接收到这个 FIN(SEQ=x)标记的数据包,它发送一个 ACK(SEQ=x+1)标记的数据包 --> 客户端,然后,此时服务端进去 close_wait 状态,客户端进入 fin_wait_2 状态
第三次挥手:服务端关闭与客户端的连接并发送一个 FIN (SEQ=y)标志的数据包->客户端,请求关闭连接,然后,服务端进入LAST-ACK状态
第四次挥手:客户端发送 ACK (SEQ=y+1)标志的数据包->服务端,并且进入TIME-WAIT状态,服务端在收到 ACK (SEQ=y+1)标志的数据包后进入 CLOSE 状态。此时,如果客户端等待 2MSL 后依然没有收到回复,就证明服务端已正常关闭,随后,客户端也可以关闭连接了。
只要四次挥手没有结束,客户端和服务端就可以继续传输数据!