네트워크 Keep Alive 속성
Keep Alive
는 네트워크 또는 시스템에서 커넥션을 지속해서 유지하기 위해 사용되는 기술이나 설정을 의미합니다.
✔️ HTTP 프로토콜의 Keep Alive
하나의 TCP
커넥션으로 여러 개의 HTTP
요청과 응답을 주고 받을 수 있도록 하는 기능입니다. HTTP/1.0
에서는 요청마다 새로운 커넥션을 열고 닫았지만, HTTP/1.1
부터는 Keep-Alive
가 기본적으로 활성화되어 있어 커넥션을 재사용할 수 있습니다.
클라이언트에서 일정 시간 동안 요청이 없으면 타임아웃만큼 커넥션을 유지하고, 타임아웃이 지나면 커넥션이 끊어집니다.
✔️ TCP 프로토콜의 Keep-Alive
커넥션이 유휴 상태일 때 커넥션이 끊어지지 않도록 주기적으로 패킷을 전송하는 기능입니다.
커넥션이 유휴 상태일 때 주기적으로 패킷을 전송해서 커넥션이 살아있음을 확인하고, 살아있으면 커넥션을 지속해서 유지합니다.
✔️ Keep Alive
의 장단점
장점
- 커넥션을 재사용하여 네트워크 비용을 절감할 수 있습니다.
- handshake에 필요한
RTT(Round Trip Time)
가 감소하여 네트워크 지연 시간(Latency)을 줄일 수 있습니다. - handshake 과정에서 발생하는 CPU, 메모리 등의 리소스 소비를 줄일 수 있습니다.
단점
- 유휴 상태일 때에도 커넥션을 점유하고 있기 때문에 서버의 소켓이 부족해질 수 있습니다.
- DoS 공격으로 다수의 연결을 길게 유지하여 서버를 과부하시킬 수 있습니다.
- 타임아웃 설정이 적절하지 않으면 커넥션 리소스가 낭비될 수 있습니다.
Loading comments...