TCP 연결 종료

(2021-09-11)

TCP 4-way Handshaking, TCP의 4단계 핸드세이킹, FIN 세그먼트, FIN+ACK 세그먼트


1. TCP 연결종료TCP는 안정적이고 연결지향적트랜스포트 계층프로토콜로써,
     - 3단계 핸드세이킹 과정을 밟고 회선을 개설한 후, (ESTABLISHED)
     - 해당 세션에서 데이터 전송을 완료한 후, 
     - 보통, 4번(3번도 가능)의 패킷 교환으로 회선 연결을 정상적으로 끊게됨

     * [참고용어] ☞ TCP 헤더, TCP 연결 설정, TCP 제어 플래그


2. TCP 연결종료 특징TCP 연결 종료는, TCP 연결 설정 보다는 복잡
     - 여러 종료 상황이 있을 수 있음
     - 한 방향 연결이 종료되어도, 다른 방향은 계속 오픈 상태일 수 있는 등

  ㅇ 정상 종료인 경우에, TCP 연결 종료는, 양방향 2개 연결을 각 측이 독립적으로 닫게 됨
     - `FIN 및 그에대한 FIN-ACK`의 2 쌍(4개 세그먼트)으로써,
     - 즉, 4-way 핸드세이크로써 종료함


3. TCP 연결 종료 구분

  ㅇ 정상 종료 (Normal Close)
     - `4단계 핸드세이킹`에 의해 양방향 모두 종료되는 것
        . 실제로는 자주 있는 경우가 아니고 반 종료 등이 오히려 일상적임

  ㅇ 반 종료 (Half Close)
     - 양측이 동시에 회선 종료 않고, 한쪽 연결이 열린채로 놔두고 종료하는 것
        . 즉, 송신은 가능하지만 수신은 불가능 또는 수신은 가능하지만 송신은 불가능

  ㅇ 동시 종료 (Simultaneous Close)
     - 거의 동시에 양측에서 FIN 세그먼트를 보내는 경우

  ㅇ 강제 종료
     - TCP Reset 요구(RESET 세그먼트) 기능


4. TCP 연결종료 : 4단계 핸드세이킹 (정상 종료인 경우)

   

  ㅇ FIN 세그먼트      : (클라이언트측의 연결 종료 요청) (능동 종료 요청측에서 발송)
     - TCP 제어 플래그 : FIN 제어 비트 => `1`
     - 순서번호        : `K` (연결된 상태에서 마지막 순서번호 보다 하나 높은 값 임)
     - 확인응답 번호   : `-`

  ㅇ ACK 세그먼트      : (연결 종료 요청에 대한 서버측의 응답)
     - TCP 제어 플래그 : FIN 제어 비트 => `1`, ACK 제어 비트 => `1`
     - 순서번호        : `L`
     - 확인응답 번호   : `K+1` (이전 FIN 세그먼트순서번호 보다 하나 높은 값임)

  ㅇ FIN+ACK 세그먼트  : (서버측의 종료 알림)
     - TCP 제어 플래그 : FIN 제어 비트 => `1`, ACK 제어 비트 => `1`
     - 순서번호        : `L`
     - 확인응답 번호   : `K+1`

  ㅇ ACK 세그먼트      : (클라이언트측의 최종 종료 알림)
     - TCP 제어 플래그 : ACK 제어 비트 => `1`
     - 순서번호        : `K` 
     - 확인응답 번호   : `L+1`

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


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"