TCP State   TCP 상태

(2022-07-20)

능동 개방, 수동 개방, 능동 종료, 수동 종료, SYN-SENT, SYN-RECEIVED, TIME-WAIT


1. TCP 상태도

  


2. TCP 상태 상의 특징TCP 연결은 양방향이므로, 양 측에서 각각 다르게 상태 변화를 관리할 수 있음
     - 즉, 다른 경로를 통해 `TCP 연결 설정` 및 `TCP 연결 종료`에 갈 수 있음

  ㅇ 서로다른 `TCP 연결 설정` 경로
     -  (능동 개방)  Closed -> Listen -> SYN-Received -> Establshed
        . 자발적으로 SYN 세그먼트를 보내며 연결 설정하는 경우
           .. 주로, 클라이언트 응용이 상대 서버에게 연결 요청
     -  (수동 개방)  Closed -> SYN-Sent -> Established
        . 수동적으로 SYN 세그먼트를 수신하며 연결 설정하는 경우
           .. 주로, 서버 응용이 TCP에게 상시적 연결 수용 및 대기

  ㅇ 서로다른 `TCP 연결 종료` 경로
     -  (수동 종료)  Eatablished -> Close-Wait -> Last-ACK -> Closed
        . 상대로부터 FIN 세그먼트를 받고, 이에대해 응답하며 종료하는 경로
     -  (능동 종료)  Eatablished -> FIN-Wait-1 -> FIN-Wait-2 -> Time-Wait -> Closed
              또는,  Eatablished -> FIN-Wait-1 -> Closing -> Time-Wait -> Closed 
        . 자발적으로 FIN 세그먼트를 보내고, 응답을 기다리며 종료하는 과정


3. TCP 연결 설정과 관련된 상태

  ㅇ CLOSED 
     - 무 연결 상태
        . 초기 시작 또는 원격 호스트가 ACK 수신 후 연결 닫음

  ㅇ SYN-SENT (능동 개방 요청)                      ☞ TCP 연결 설정 참조
     - 클라이언트가 능동적으로 SYN 세그먼트를 보내고, ACK를 기다리는 상태
        . 이때, 적정 TCP 세그먼트 크기를 상대에게 통보코자, 송신측 TCP MSS 옵션을 채워보냄

  ㅇ LISTEN   (수동 개방 대기)                      ☞ TCP 연결 설정 참조
     - SYN 세그먼트를 기다리며, 수동적으로 개방 대기중인 상태

     - 만일, 서버SYN 세그먼트를 수신하면, SYN+ACK 세그먼트를 송신하고는,
        . 이후, SYN-RECEIVED 상태로 전이됨

  ㅇ SYN-RECEIVED  (연결 준비)                      ☞ TCP 연결 설정 참조
     - 상대방에게, SYN 세그먼트(연결 요청)을 받고, 
     - 자신의 SYN(즉, SYN+ACK 세그먼트)으로 응답한 상태로써,
        . 이때부터, 상대방에서 ACK 세그먼트를 기다리는 상태 (ACK 세그먼트를 기다림)
     - 결국, 상대방의 ACK 세그먼트가 수신되어야,
        . 비로소 ESTABLISHED 상태로 전이됨


4. TCP 연결 성립 유지와 관련된 상태

  ㅇ ESTABLISHED
     - 양단간 연결 회선 성립 (데이터 교환)

     - 의미
        . 두 종단 간에 양방향 데이터 전송이 가능
        . 종단 각각 자신 및 상대 ISN(초기순서번호)를 알게 됨
        . 양단 간에 TCP 옵션에 의해 부가적인 정보가 전달됨


5. TCP 연결 종료와 관련된 상태

  ㅇ CLOSE-WAIT
     - TCP어플리케이션 종료를 기다림
        . 이 상태에서는, 계속 데이터를 상대에게 보낼 수 있음

  ㅇ LAST-ACK
     - 서버는 자신이 송신한 FIN 세그먼트에 대한 ACK 세그먼트를 기다림

  ㅇ FIN-WAIT-1
     - 자신이 보낸 FIN 세그먼트에 대한 ACK를 기다리고, 또한 상대측 FIN을 기다림
        . 이 상태에서 자신은 더이상 데이터를 보낼 수 없지만,
        . 상대측으로부터 오는 데이터는 계속 수신하게됨

  ㅇ FIN-WAIT-2
     - FIN 세그먼트를 송신하고, 상대측은 이에대한 ACK를 송신

  ㅇ Closing
     - 상대로부터 FIN 세그먼트를 받고 ACK를 보냈지만, 
       자신의 FIN 세그먼트에 대한 ACK는 받지못함

  ㅇ TIME-WAIT
     - 최대 세그먼트 수명(MSL,Maximum Segment Lifetime)의 2배를 기다림
     - 지정된 시간이 지나면, Closed 상태로 전이됨

  ㅇ CLOSED
     - 연결이 종료됨 (연결 없음)

[TCP 연결관리]1. TCP 연결   2. TCP 연결설정(3단계)   3. TCP 연결종료   4. TCP 상태   5. TCP 헤더 옵션   6. TCP MSS 옵션   7. path MTU  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)