server端发送FIN,进入LAST_ACK状态,client收到这个FIN包后发送ACK包,由于某种原因,这个ACK包丢失了,server端没有收到ACK包,然后server端等待ACK包超时,又向server端发送了一个FIN包 a) 假如这个时候,client还是处于TIME_WAIT状态(也就是TIME_WAIT持续的时间在2MSL内) client收到这个FIN包后向server端发送了一个ACK包,server端收到这个ACK包进入CLOSED状态 b) 假如这个时候,client已经从TIME_WAIT状态变成了CLOSED状态 client收到这个FIN包后,认为这是一个错误的连接,向server端发送一个RST包,当server端收到这个RST包,进入CLOSED状态 c) 假如这个时候,client挂了(假如这台机器炸掉了)【第四种情况,不在参考链接里】 server端没有收到client的回应,那么会继续发送FIN包,也就是触发了TCP的重传机制,如果client还是没有回应,server端还会继续发送FIN包,直到重传超时(至于这个时间是多长需要仔细研究),server端重置这个连接,进入CLOSED状态,参考链接看这里