ESTABLISHED | (application close; send FIN) v FIN_WAIT_1 ----(recv ACK for FIN)----> FIN_WAIT_2 ----(recv FIN; send ACK)----> TIME_WAIT | | | (recv FIN; send ACK for peer FIN) | (after 2*MSL or 30s) v v CLOSING ----(recv ACK for our FIN)----> TIME_WAIT ------------------------------> CLOSED