문제
TCP 통신에서 연결 종료 과정 중 한쪽에서 FIN 패킷을 보낸 후, 상대방의 ACK를 받고 상대방의 FIN을 기다리는 상태를 무엇이라고 하는가? (이 상태에서는 FIN을 보낸 쪽은 더 이상 데이터를 보낼 수 없지만 받을 수는 있다)
정답
FIN_WAIT_2
FIN_WAIT_2FIN-WAIT-2FIN WAIT 2FINWAIT2
해설
TCP 연결 종료 시 4-way handshake가 발생한다. 1) 클라이언트가 FIN을 보내면 FIN_WAIT_1 상태가 되고, 2) 서버가 ACK를 보내면 클라이언트는 FIN_WAIT_2 상태가 된다. 3) 서버가 모든 데이터 전송을 완료한 후 FIN을 보내고, 4) 클라이언트가 ACK를 보내어 연결이 완전히 종료된다. FIN_WAIT_2 상태는 FIN을 보낸 쪽이 상대방의 FIN을 기다리는 상태로, 이때 더 이상 데이터를 보낼 수 없지만 받을 수는 있는 반이중 종료(half-close) 상태이다.