TCP 挥手状态问答
-
TCP 在四次挥手过程中会经过哪些状态?
主动关闭方:ESTABLISHED→ 发 FIN 后FIN_WAIT_1→ 收 ACK 后FIN_WAIT_2→ 收对端 FIN 后回 ACK 进入TIME_WAIT→ 超过 2MSL 后CLOSED。
被动关闭方:ESTABLISHED→ 收 FIN 后回 ACK 进入CLOSE_WAIT→ 发 FIN 后进入LAST_ACK→ 收 ACK 后CLOSED。 -
FIN_WAIT_1 和 FIN_WAIT_2 的区别是什么?
FIN_WAIT_1:已发 FIN,等待对端 ACK。
FIN_WAIT_2:对端已确认 FIN,等待对端发 FIN 关闭它的发送方向。 -
CLOSE_WAIT 是什么时候进入的?
当被动方收到对端 FIN 并回 ACK 后进入,表示“对方不再发数据,我还可以发完自己的数据”。 -
LAST_ACK 是谁进入的?
被动关闭方在发送自己的 FIN 后进入LAST_ACK,等待对端对该 FIN 的 ACK。 -
TIME_WAIT 是什么时候进入的?
主动关闭方在收到对端 FIN 并回 ACK 后进入TIME_WAIT,等待 2MSL 以防止 ACK 丢失或旧报文干扰。