TCPのクローズには
・ハーフクローズ
・同時クローズ
があり、ハーフクローズのフローや状態遷移については説明しました。
今回は同時クローズについて状態遷移もフラグのやり取りも
一気にまとめて図解します。
Active--FINWAIT_1-----------CLOSING--TIME_WAIT-------------CLOSED
1.FIN↓↑ 2.FIN+ACK↓↑
Passive--FINWAIT_1-----------CLOSING--TIME_WAIT-------------CLOSED
TCP A TCP B
0. ESTABLISHED ESTABLISHED
1. (Close) (Close)
FIN-WAIT-1 --> < SEQ=100 >< ACK=300 >< CTL=FIN,ACK > ... FIN-WAIT-1
<-- < SEQ=300 >< ACK=100 >< CTL=FIN,ACK > <--
... < SEQ=100 >< ACK=300 >< CTL=FIN,ACK > -->
2. CLOSING --> < SEQ=101 >< ACK=301 >< CTL=ACK > ... CLOSING
<-- < SEQ=301 >< ACK=101 >< CTL=ACK > <--
... < SEQ=101 >< ACK=30 1>< CTL=ACK > -->
3. TIME-WAIT TIME-WAIT
(2 MSL) (2 MSL)
CLOSED CLOSED
という感じで同時にクローズします。
ハーフクローズと少し状態遷移が違いますよね。