|
Keep Alive 라는 것은, 보통 의미로 접속이 끊겼을 때 다시 재 확립을 할 수 있는 장치를
마련할 수 있는 것을 의미하는 것 같습니다.
TCP 통신의 경우에는 정상적인 종료 신호가 오지 않으면 (Lan 선을 빼버리는등),
소켓이 정상적으로 종료되지 않고 흔히 말하는 Ghost 상태로 빠지는데, 주기적으로
Ping을 서로 때려서 살아 있는지 확인한 후 그렇지 않으면 재 연결을 해주는
그런 총체적인 기능을 Keep Alive 라고 하는 것 같습니다.
Setsockopt의 SO_KEEPALIVE 옵션은.. 이와는 달리, 이런 상태에서 자동으로 처리를
해주는 것이 아니라, 기본적으로 소켓은 약 2시간 정도 아무런 데이터가 오고가지 않으면
접속을 종료시키고 대기 상태로 돌아가는데, 이런 현상을 없애는 그런 기능의 옵션입니다.
cuperido
김상면 님이 쓰신 글 :
: 안전한 소켓 통신을 위해서는 프로토콜 설계시 Keep Alive기능을 추가하라고 하던데....
: 어제 Setsockopt함수를 볼 일이 있어서 한번 보니 이함수에 Keep Alive기능이 있더군요
:
: 제 생각은 이렇습니다.
: setsockopt로 keep alive를 설정할수 있다면 프로토콜 설계시에 keep alive기능을 구현 할 필요가 없는것이 아닌가 하는것입니다.
: 아니면 setsockopt의 keep alive는 다른 의미로 사용되는 기능인가요?
:
: 궁금합니다.
: 그럼
|