TCP 제어 플래그: Difference between revisions

From CS Wiki
(새 문서: ; TCP 헤더에선 특수한 목적의 패킷을 위한 6개의 제어 플래그를 가진다. == 순서 == * URG, ACK, PSH, RST, SYN, FIN * 활성화 되는 비트만 1로 표현한...)
 
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
; TCP 헤더에선 특수한 목적의 패킷을 위한 6개의 제어 플래그를 가진다.
[[분류:네트워크]][[분류:프로토콜]][[분류:정보보안기사]]
; TCP 헤더에선 특수한 목적의 패킷을 위한 6개의 제어 [[플래그]]를 가진다.


== 순서 ==
== 순서 ==
Line 7: Line 8:


== 플래그 ==
== 플래그 ==
* URG(Urgent)
=== URG(Urgent) ===
** 긴급함을 알리는 플래그. 거의 사용되지 않는다.
* 긴급함을 알리는 플래그. 거의 사용되지 않는다.
** 송신측 상위계층이 긴급 데이터라고 알려주면, 긴급비트 URG를 1 로 설정하고, 순서에 상관없이 먼저 송신됨
* 송신측 상위계층이 긴급 데이터라고 알려주면, 긴급비트 URG를 1 로 설정하고, 순서에 상관없이 먼저 송신됨


* ACK(Acknowledgement)
=== ACK(Acknowledgement)===
** 확인을 나타내는 플래그
* 확인을 나타내는 플래그
** 앞서 받은 패킷과 관련하여 확인 하였음을 의미한다.
* 앞서 받은 패킷과 관련하여 확인 하였음을 의미한다.
** SYN 세그먼트 전송 이후(TCP 연결 시작후) 모든 세그먼트에는 항상 이 비트가 1로 셋팅됨
* SYN 세그먼트 전송 이후(TCP 연결 시작후) 모든 세그먼트에는 항상 이 비트가 1로 셋팅됨


* PSH(Push)
=== PSH(Push)===
** 버퍼를 모두 채우지 않고 바로 발송 하라는 플래그
* 버퍼를 모두 채우지 않고 바로 발송 하라는 플래그
** 때로는 서버측에서 더이상 전송할 데이터가 없음을 나타내기도 함
* 때로는 서버측에서 더이상 전송할 데이터가 없음을 나타내기도 함


* RST(Reset)
=== RST(Reset)===
** 강제 연결 초기화 플래그
* 강제 연결 초기화 플래그
** 연결확립(ESTABLISHED)된 회선에 강제 리셋 요청  
* 연결확립(ESTABLISHED)된 회선에 강제 리셋 요청  
** 연결 상의 문제를 발견한 장비가 RST 플래그를 `1`로 설정한 TCP 세그먼트를 송출
* 연결 상의 문제를 발견한 장비가 RST 플래그를 `1`로 설정한 TCP 세그먼트를 송출
*** LISTEN,SYN_RCVD 상태일때 : LISTEN 상태로 들어감
** LISTEN,SYN_RCVD 상태일때 : LISTEN 상태로 들어감
*** 그밖의 상태일 때 -> 연결 끓고 CLOSED 상태로 들어감
** 그밖의 상태일 때 -> 연결 끓고 CLOSED 상태로 들어감


* SYN (Synchronize)
=== SYN (Synchronize)===
** 연결의 시작을 요청하는 플래그
* 연결의 시작을 요청하는 플래그
** TCP 3-way handshake
* TCP 3-way handshake
**# [Client -> Server] SYN    [000010]
*# [Client -> Server] SYN    [000010]
**# [Server -> Client] SYN/ACK [010010]
*# [Server -> Client] SYN/ACK [010010]
**# [Client -> Server] ACK    [010000]
*# [Client -> Server] ACK    [010000]


* FIN (Finish)
=== FIN (Finish)===
** 연결의 해제를 요청하는 플래그
* 연결의 해제를 요청하는 플래그
** TCP 4-way handshake
* TCP 4-way handshake
**# [Client -> Server] FIN/ACK [010001]
*# [Client -> Server] FIN/ACK [010001]
**# [Server -> Client] ACK    [010000]
*# [Server -> Client] ACK    [010000]
**# [Server -> Client] FIN/ACK [010001]
*# [Server -> Client] FIN/ACK [010001]
**# [Client -> Server] ACK    [010000]
*# [Client -> Server] ACK    [010000]
 
== 같이 보기 ==
* [[TCP]]

Latest revision as of 05:04, 10 June 2019

TCP 헤더에선 특수한 목적의 패킷을 위한 6개의 제어 플래그를 가진다.

순서[edit | edit source]

  • URG, ACK, PSH, RST, SYN, FIN
  • 활성화 되는 비트만 1로 표현한다.
ex) SYN/ACK의 경우 010010

플래그[edit | edit source]

URG(Urgent)[edit | edit source]

  • 긴급함을 알리는 플래그. 거의 사용되지 않는다.
  • 송신측 상위계층이 긴급 데이터라고 알려주면, 긴급비트 URG를 1 로 설정하고, 순서에 상관없이 먼저 송신됨

ACK(Acknowledgement)[edit | edit source]

  • 확인을 나타내는 플래그
  • 앞서 받은 패킷과 관련하여 확인 하였음을 의미한다.
  • SYN 세그먼트 전송 이후(TCP 연결 시작후) 모든 세그먼트에는 항상 이 비트가 1로 셋팅됨

PSH(Push)[edit | edit source]

  • 버퍼를 모두 채우지 않고 바로 발송 하라는 플래그
  • 때로는 서버측에서 더이상 전송할 데이터가 없음을 나타내기도 함

RST(Reset)[edit | edit source]

  • 강제 연결 초기화 플래그
  • 연결확립(ESTABLISHED)된 회선에 강제 리셋 요청
  • 연결 상의 문제를 발견한 장비가 RST 플래그를 `1`로 설정한 TCP 세그먼트를 송출
    • LISTEN,SYN_RCVD 상태일때 : LISTEN 상태로 들어감
    • 그밖의 상태일 때 -> 연결 끓고 CLOSED 상태로 들어감

SYN (Synchronize)[edit | edit source]

  • 연결의 시작을 요청하는 플래그
  • TCP 3-way handshake
    1. [Client -> Server] SYN [000010]
    2. [Server -> Client] SYN/ACK [010010]
    3. [Client -> Server] ACK [010000]

FIN (Finish)[edit | edit source]

  • 연결의 해제를 요청하는 플래그
  • TCP 4-way handshake
    1. [Client -> Server] FIN/ACK [010001]
    2. [Server -> Client] ACK [010000]
    3. [Server -> Client] FIN/ACK [010001]
    4. [Client -> Server] ACK [010000]

같이 보기[edit | edit source]