TCP state

TCP 상태명은 “무엇을 기다리는가”를 말해 준다

상태를 외우기보다, 마지막으로 보낸 세그먼트와 다음에 기다리는 이벤트를 연결하면 운영 진단이 쉬워집니다.

SYN-SENTSYN 전송 뒤 SYN-ACK 대기
SYN-RECEIVEDSYN-ACK 전송 뒤 최종 ACK 대기
ESTABLISHED양방향 데이터 전송 가능
CLOSE-WAIT상대 FIN 수신, 앱 close 대기
TIME-WAIT마지막 ACK 뒤 지연 세그먼트 격리
상태
직전 이벤트
기다리는 것
오래 누적될 때 먼저 볼 곳
SYN-SENT
클라이언트가 SYN을 보냄
서버 SYN-ACK
라우팅, 방화벽, 서버 listen, SYN 손실
SYN-RECEIVED
서버가 SYN-ACK을 보냄
클라이언트 최종 ACK
SYN backlog, SYN flood, handshake 미완료
CLOSE-WAIT
상대 FIN을 받음
로컬 애플리케이션 close
소켓 정리 누락, 예외 경로, 커넥션 풀 반환 누락
FIN-WAIT-2
내 FIN이 ACK됨
상대 FIN
상대 앱 종료 지연, half-close 정책, timeout 설정
TIME-WAIT
마지막 FIN에 ACK 응답
2MSL 동안 과거 세그먼트 소멸
짧은 연결 폭증, 포트 범위, keep-alive/풀 재사용