Table of contents

    TCP 연결지향형 프로토콜입니다.

     

    그리고 연결의 개념을 위해 TCP 서버와 클라이언트로 구분합니다.

     

    TCP에는 Keepalive라는 개념을 도입하여, 연결이라는 개념을 보완시켜줍니다.

     

    그리고 Keepalive 개념에는 타이머, 인터벌, 프로브의 개념도 도입되는데 지금부터 정리해보겠습니다.

     

     

     

     

    Keepalive 타이머

     

    TCP 연결이 설정된 이후에 정상적인 상황이라면, FIN 메시지를 송수신 했을 , 연결이 해제됩니다.

     

    하지만, 전원이 차단되거나 오류에 의해 오동작을 하면 하나의 단말만 연결이 유지되는 상태가 되며 이를 Half Open Connection 이라고 합니다.

     

    이런 현상을 막기 위해 Keepalive라는 타이머가 있습니다.

     

    Keepalive 매커니즘은 다음과 같습니다.

     

    • 패킷을 수실할 때마다 재시작
    • Keepalive 타이머의 기본 값은 2시간이며, 이는 설정에 의해 수정할 있음
    • Keepalive 타이머가 초과되면 Keepalive Interval 값만큼의 간격으로 Keepalive Probe 값만큼 송신하고, 응답이 없으면 연결을 해제

     

     

    Keepalive 주요 설정값

     

    TCP 개발하는 환경에 따라서 주요 설정값을 다를겁니다.

     

    중에서 주요한 설정들은 다음과 같습니다.

     

    • Keepalive Timer: 마지막 패킷 수신 , 자동으로 TCP 연결 해제를 위해 기다리는 시간
    • Keepalive Interval : Keepalive 타이머가 초과된 , 반복적으로 송신하는 Probe들의 주기(또는 간격)
    • Keepalive Probe : Keepalive 타이머가 초과된 , 반복적으로 송신하는 Prboe들의 개수