TCP와 HTTP의 Keepalive

Created 2022-11-18

Problem

HTTP는 TCP 위에서 동작한다. 그런데 두 프로토콜 각각에 Keepalive 개념이 존재한다. 여기서는 두 프로토콜의 Keepalive 의미를 알아본다. 기본적인 TCP와 HTTP의 동작 방식은 아래 페이지를 참고한다.

HTTP 요청을 통해 확인하는 TCP Handshake 과정

Analysis

TCP에서 keepalive 기능을 사용하는 이유는 TCP 연결 세션 내 두 종단(peer)이 서로 살아있는지 확인함으로써, TCP 연결을 유지하기 위함이다. 이 때 확인을 위해 전송하는 패킷의 크기는 아주 작으며, 두 종단은 각각 패킷을 서로에게 전송할 필요는 없으며 연결을 유지하는 게 유리한(?)쪽에서만 보내면 된다. 즉, 클라이언트 또는 서버 중 하나라도 이 기능을 사용하면 세션은 유지된다.

Resolution

Last updated