在连接中,哪一段先发送FIN请求,哪端才会有FIN_WAIT1,FIN_WAIT2,TIME_WAIT状态。被关闭一端有COLSE_WAIT,LAST_ACK状态。
此时客户端先断开:
(1) TCP客户端发送一个FIN+seq,用来关闭客户到服务器的数据传送。自身进入FIN_WAIT1状态,等待服务器的确认信号。此时服务器端进入COLSE_WAIT状态。
(2) 服务器收到这个FIN,它发回一个ACK=1, 和自己的序列号 seq,和ack确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。然后服务器,在发送FIN后,由COLSE_WAIT进入LAST_ACK。
客户机收到确认后进入FIN_WAIT2,看自己是否有数据没发完,这个阶段时间很短。
(3) 服务器关闭客户端的连接,发送一个FIN=1,ACK=1,自己的序列号 seq,ack确认序号给客户端。客户机收到后,进入TIME_WAIT状态,等待2min后COLSED。
(4) 客户端发回ACK报文确认,并将确认序号设置为收到序号加1,发送序列号 seq,ack确认序号给服务器。服务器收到后由LAS
TCP 四次挥手过程 简单整理
最新推荐文章于 2022-09-10 13:34:13 发布