킵얼라이브(Keepalive)는 디바이스간의 데이터 링크가 잘 동작하고 있는지 확인하거나 데이터 링크가 끊어지는 것을 방지하기 위해서 디바이스 간에 서로 주고받는 메시지를 말한다.
설명
킵얼라이브 신호는 주로 미리 정해진 시간간격마다 보내지는데 인터넷에서 중요한 역할을 한다. 이 신호를 보냈는데 응답이 오지 않는 경우에는 데이터 링크가 끊어졌다고 가정하고, 복구될 때까지 이후 데이터들을 다른 경로로 보내게 된다. 킵얼라이브 신호는 인터넷 기반시설에게 연결이 유지되어야 한다는 의미로 사용될 수도 있다. 이런 의미로 사용될 때 킵얼라이브 신호가 일정시간동안 없다면, 중간에 있는 네트워크 주소 변환 라우터가 연결을 끊을 수도 있다.
이 신호는 단순히 동작하지 않는 데이터 링크를 찾거나 링크 유지를 위해서만 사용될 뿐이기 때문에 대체로 메시지의 길이가 짧고 매우 적은 데이터 전송량을 차지한다. 그러나 정확한 메시지 형태와 사용되는 방식은 통신 포로토콜에 따라 다를 수 있다.
HTTP 킵얼라이브
HTTP 프로토콜의 클라이언트와 서버간에 연결을 유지시키주는 명시적인 수단을 지원한다. 이 기능은 HTTP 1.0에서 "Connection:Keep-alive" 헤더를 사용해서 추가되었고 HTTP 1.1 에서는 기본 기능이 되었다.[1]
TCP 킵얼라이브
TCP 프로토콜에서 킵얼라이브는 선택적인 기능이다. 만약 포함된다면 기본 상태에서는 사용하지 않도록 되어있어야 한다.[2] 킵얼라이브 패킷은 널(null) 데이터를 가지고 있는데, 이더넷 네트워크에서의 킵얼라이브 프레임 길이는 60바이트이다. 이에 대한 서버응답도 역시 널(null) 데이터를 가지고 있는데, 길이는 54바이트이다.[3]
킵얼라이브와 관계된 파라미터로는 다음의 세가지가 있다.
- 킵얼라이브 시간은 휴지상태에서 두 킵얼라이브 전송 사이의 간격을 말한다. TCP 킵얼라이브 간격은 설정가능해야 하며 기본값은 2시간 이상으로 되어 있다.
- 킵얼라이브 간격은 이전 킵얼라이브 전송에 대한 응답이 오지 않았을 때 다시 보내는 킵얼라이브 전송과의 시간 간격을 말한다.
- 킵얼라이브 재시도는 상대방이 살아 있지 않다고 판단하기 위해 재전송하는 총 횟수를 말한다.
같이 보기
각주