+---------+ | M_ESTAB | +---------+ M_CLOSE | | rcv DATA_FIN ------- | | ------- +---------+ snd DATA_FIN / \ snd DATA_ACK[DFIN] +-------+ | M_FIN |<----------------- ------------------->|M_CLOSE| | WAIT-1 |--------------------------- | WAIT | +---------+ rcv DATA_FIN \ +-------+ | rcv DATA_ACK[DFIN] ------- | M_CLOSE | | -------------- snd DATA_ACK | ------- | | CLOSE all subflows | snd DATA_FIN | V V V +-----------+ +-----------+ +----------+ |M_FINWAIT-2| | M_CLOSING | |M_LAST-ACK| +-----------+ +-----------+ +----------+ | rcv DATA_ACK[DFIN] | rcv DATA_ACK[DFIN] | | rcv DATA_FIN -------------- | -------------- | | ------- CLOSE all subflows | CLOSE all subflows | | snd DATA_ACK[DFIN] V delete MPTCP PCB V \ +-----------+ +--------+ ------------------------>|M_TIME WAIT|---------------->|M_CLOSED| +-----------+ +--------+ All subflows in CLOSED ------------ delete MPTCP PCB