TCP Control Flag   TCP 제어 플래그

(2019-08-26)

URG ACK PSH RST SYN FIN, URG (Urgent), TCP 제어 비트, RESET 세그먼트, TCP flag, 플래그 비트

1. TCP 제어 플래그TCP 헤더는 6개의 Control Flag 필드들이 있음
     - 이들은 논리적인 TCP 연결회선 제어 및 데이터 관리를 위해 사용됨


2. TCP 헤더제어 플래그 구조

  


3. 각 플래그에 대한 설명

  ㅇ URG (Urgent)
     - Urgent Pointer 필드에 값이 채워져있음을 알림
        . 송신측 상위 계층이 긴급 데이터라고 알려주면,
        . 긴급비트 URG를 1 로 설정하고,
        . 순서에 상관없이 먼저 송신됨
     - 긴급 데이터의 마지막 바이트 위치가 Urgent Pointer로 가리켜짐

  ㅇ ACK (Acknowledgement)
     - 확인응답 필드에 확인응답번호(Acknowledgement Number) 값이 셋팅됐음을 알림
        . 1로 셋팅되면, 확인번호 유효함을 뜻함
        . 0로 셋팅되면, 확인번호 미포함 (즉, 32 비트 크기의 확인응답번호 필드 무시됨)
     - SYN 세그먼트 전송 이후(TCP 연결 시작후) 모든 세그먼트에는 항상 이 비트가 1로 셋팅됨

  ㅇ PSH (Push)
     - 버퍼링된 데이타를 가능한한 빨리 상위 계층 응용프로그램에 즉시 전달할 것
        . 수신측은 버퍼가 찰 때까지 기다리지 않고, 
          수신 즉시 버퍼링된 데이터를 응용프로그램에 전달
        . 例) telnet 세션에서 `q` 입력 만으로 세션 종료를 알릴 때 등
     - 때론, 서버측에서 더이상 전송할 데이터가 없음을 나타내기도 함

  ※ 아래 3개 비트 플래그(RST,SYN,FIN)는 TCP 연결설정TCP 연결종료에 주체적으로 사용됨

  ㅇ RST (Reset)        [강제 연결 초기화 용도]
     - 연결확립(ESTABLISHED)된 회선에 강제 리셋 요청 
        . 강제 리셋 : RST=1          (RST 세그먼트 또는 RESET 세그먼트)

        . 연결 상의 문제를 발견한 장비가 RST 플래그를 `1`로 설정한 TCP 세그먼트를 송출
           .. LISTEN,SYN_RCVD 상태일때 => RST 수신한 경우에 => LISTEN 상태로 들어감
           .. 그밖의 상태 일때 => RST 수신한 경우에 => 연결 끓고 CLOSED 상태로 들어감

     * 반 개방 또는 연결 문제 등의 상황 처리를 위한 특별한 초기화용 제어 비트

  ㅇ SYN (Synchronize)  [연결시작,회선개설 용도]
     - TCP 연결설정 초기화를 위한 순서번호동기화TCP 연결 설정
        . 연결요청  : SYN=1, ACK=0   (SYN 세그먼트)
        . 연결허락  : SYN=1, ACK=1   (SYN+ACK 세그먼트)
        . 연결설정  : ACK=1          (ACK 세그먼트)

     * 즉, 송수신 간에 순서번호동기화

  ㅇ FIN (Finish)       [연결해제,회선종결 용도]
     - 송신기가 데이타 보내기를 끝마침               ☞ TCP 연결 종료
        . 종결요청 : FIN=1           (FIN 세그먼트)
        . 종결응답 : FIN=1, ACK=1    (FIN+ACK 세그먼트)

     * 즉, 연결을 종료하고 싶다는 뜻을 상대에게 보내는 것


[TCP 패킷(세그먼트)] 1. TCP 헤더 2. TCP 제어 비트 3. TCP 옵션 4. TCP MSS 옵션 5. TCP 세그먼트

 
        최근수정     요약목록     참고문헌