TCP 통신은 3Way Handshake 방식으로 통신하고자 하는 두 지점 간 세션 연결을 통해 상호 통신하게 되며, 4Way Handshake 과정을 통해 그 세션을 종료하게 됩니다.

 

이러한 TCP 통신에서 사용하기 위해서 flag를 달아서 데이터를 전송하는데요, 컨트롤 플래그는 6가지로 구성됩니다.

 

모든 플래그는 1비트로 정의되고 아래의 순서대로 배열됩니다.

 

SYN (연결시작) : TCP 세션을 initiate 하기 위해 가장 먼저 보내는 시퀀스 비트
ACK (확인응답) : SYN 패킷에 응답하는 패킷으로 일반적으로 +1 하여 응답하는 비트
RST (강제연결종료) : 리셋하기 위한 과정으로 비정상적인 세션을 끊거나 즉시 연결을 끊고자 하는 비트
PSH (삽입) : 주로 대화형 패킷에 사용되고, 대기 시간 없이 즉시 7계층으로 바로 전송하는 비트
URG (긴급) : Urgent 말 그대로 긴급 시를 대비하여 우선순위를 높게 설정하여 전송하는 비트 (실행 취소 등)
FIN (종료) : 세션을 종료시키기 위한 비트 (TCP 세션을 종료시키고자 할 때 발생 시키고 종결 응답은 FIN ACK 로 수신됨)

 

TCP Flag (사진출처 : KTWorld)

 

TCP 세션 연결간 각 플래그를 인지하고 있어야 스나이퍼, 이더리얼, 와이어샤크 등 패킷 분석 시 그 내용을 이해하고 트러블 슈팅이 가능하겠습니다.