一、四次挥手
①第一次挥手:(FIN+ACK)
客户端发送FIN+ACK包给服务端,用来关闭客户端到服务器的数据传送。此时客户端进入FIN_WAIT_1状态。
②第二次挥手:(ACK)
服务端收到FIN包后, 此时有可能服务端还在与其他客户端进行交互,但会先发送ACK包。确认字符ack=X+1,此时会发送一个新的序列号seq=Z给服务端。服务端就进入了CLOSE_WAIT(关闭等待)状态。TCP服务端通知高层的应用进程,客户端向服务端的方向就释放了,此时处于半连接状态。
③第三次挥手:(FIN+ACK)
服务端关闭与其他客户端交互后,服务端会再发送一个FIN包。此时服务端进入LAST_ACK状态(最后确认)。
④第四次挥手(ACK包)
客户端收到FIN包后,客户端进入TIME_WAIT状态。接着再发送一个ACK包给服务端,此时服务端进入CLOSED状态,完成四次挥手。
二、wireshark抓包并分析
①第一次挥手
②第二次挥手
③第三次挥手
④第四次挥手