주식회사 누리아이티

정보자산의 보안강화를 위한 다계층 인증SW (BaroPAM) 전문기업.

▶ Tuxedo/기술자료

keepalive란 ?

누리아이티 2012. 2. 9. 10:02

keepalive ?

 

1.기능

 

  TCP 연결의 양 종단에 어떠한 프로세스도 상대방에 데이터를 전송하지 않는다면, 양쪽 TCP 모듈간에 교환되는 것은 아무것도 없습니다.

 

  이것은 서버와 TCP 연결을 확립한 후에도 클라이언트 프로세스를 시작할 수 있다는 것을의미하며, 여러 시간, 날짜 혹은 달 동안 방치할 수 있으며, 연결은 그대로 남아있습니다.

 

  중계 라우터가 고장 나거나 재가동될 수 있고, 전화회선이 다운되어 복구되어도 연결의 양 종단에 있는 호스트가 재가동되지 않는 한, 그 연결 확립은 유지되어 있습니다.

 

  이런 경우에 사용되는 기능이 Keepalive 입니다.

 

  우선, keepalive TCP의 필수 요소가 아니라는 점을 말하고 싶습니다.

 

  keepalive TCP 규격에 나오는 옵션 기능의 하나이며, 제조업체의 재량에 따라 포함시킬 수 있습니다.

 

  keepalive를 사용하는 주된 이유는 종단 시스템 중의 하나가 다운될 때 발생할 수 있는 한쪽만 열린 연결 상태를 정리하는 것입니다.

 

  로컬 시스템이 대화를 하고 있는 원격 시스템이 다운이 되면, 로컬 시스템은 여전히 연결을 열어두고 있을 것입니다.

 

  하지만, 다운된 그 시스템은 그렇지 않습니다. 이것을 한쪽만 열린 연결 상태라고 합니다. 네트워크 응용 프로그램이 시간 종료 값이나 TCP keepalive 소켓 옵션을 설정하지 않는 한, 그 한쪽만 열린 연결 상태는 시스템이 다시 부팅할 때까지 그대로 유지됩니다.

 

  keepalive 탐색 패킷은 한쪽만 열린 연결 상태인지 확인하는데 사용되며, 한쪽만 열린 연결 상태이면 그 연결을 닫습니다.

 

 

 

2.유지 타이머의 발생 상황

 

  - 클라이언트 호스트는 동작하고 있고, 서버로부터 도달이 가능할 경우

    클라이언트의 TCP는 정상적으로 응답하고, 서버는 상대방이 아직 동작하고 있다는 것을 알게 됩니다. 서버의 TCP는 유지 타이머를 즉시 2시간 후로 설정합니다. 다음 2시간 동안에 연결상에 응용 트래픽이 있으면, 데이터를 수신한 후에 다시 2시간 후로 재설정합니다.

 

  - 클라이언트의 호스트가 다운되어, 정지되어 있거나, 재 가동 프로세스 도중에 있을 경우

 

  - 클라이언트 호스트가 다운되거나, 재 가동한 경우

 

  - 클라이언트 호스트는 동작하고 있지만, 서버로부터는 도달이 불가능할 경우

 

 

 

3.유지의 예

 

  - 상대편 종단이 고장 난 경우

    TCP에 의해 클라이언트 프로세스로연결 타임 아웃(connection timed out)”라는 에러 메시지 출력

 

  - 상대편 종단이 고장으로 재 가동된 경우

    TCP에 의해 클라이언트 프로세스로상대측에 의한 연결 재설정(connection reset by peer)”라는 에러 메시지 출력

 

  - 상대편 종단이 도달 불가인 경우

    TCP에 의해 클라이언트 프로세스로호스트로 가는 경로가 없다(No route to host)”라는 에러 메시지 출력