PAS-K TCP Health Check에서 Half-Open 방식이란?
Half-Open 방식은 L4 스위치가 Real Server의 TCP 포트 상태를 확인할 때 사용하는 방식으로, TCP 3-way handshake를 완전히 완료하지 않고 포트가 열려 있는지만 확인하는 효율적인 방법입니다.
1. TCP 3-Way Handshake 동작 원리
TCP 연결은 일반적으로 다음과 같은 과정으로 이루어집니다:
- SYN: 클라이언트가 서버에 연결 요청을 보냅니다.
- SYN-ACK: 서버가 요청을 받고, 클라이언트에게 응답합니다.
- ACK: 클라이언트가 서버의 응답을 확인하고, 연결이 성립됩니다.
2. Half-Open 방식이란?
Half-Open 방식은 3-way handshake의 일부만 수행하여 서버의 포트 상태를 확인하는 방식입니다.
동작 과정
- L4 스위치가 Real Server에 SYN 패킷을 보냅니다.
- Real Server가 SYN-ACK 응답을 보내면, 해당 포트가 열려 있다고 판단합니다.
- L4 스위치는 ACK 패킷을 보내지 않고, 연결을 종료하기 위해 RST 패킷을 보냅니다.
3. Half-Open 방식의 장점
1) 리소스 절약
- 서버와 L4 스위치 간의 연결이 완전히 성립되지 않으므로, 서버의 리소스 사용을 최소화합니다.
- 불필요한 연결을 방지하여 서버 성능에 부담을 주지 않습니다.
2) 빠른 상태 확인
- 3-way handshake를 완전히 수행하지 않으므로, 포트 상태를 더 빠르게 확인할 수 있습니다.
3) 정확한 포트 상태 확인
- SYN-ACK 응답을 통해 포트가 열려 있는지 직접 확인할 수 있습니다.
4. Half-Open 방식의 단점
1) 연결 상태 확인 불가
- Half-Open 방식은 포트가 열려 있는지 확인할 뿐, 서버의 애플리케이션 상태는 확인할 수 없습니다.
- 예: 서버가 SYN-ACK을 응답하지만, 내부 애플리케이션은 비정상 상태일 수 있습니다.
2) 방화벽 규칙에 따른 제한
- 일부 방화벽은 Half-Open TCP 연결을 의심스러운 트래픽으로 간주하고 차단할 수 있습니다.
5. Half-Open 방식과 Full-Open 방식 비교
구분 | Half-Open | Full-Open |
---|
동작 방식 | SYN → SYN-ACK 확인 후 RST로 연결 종료 | SYN → SYN-ACK → ACK까지 3-way handshake 완료 |
리소스 사용량 | 적음 | 높음 |
속도 | 빠름 | 느림 |
적합한 경우 | 단순히 포트가 열려 있는지 확인 | 포트와 애플리케이션 상태를 모두 확인할 때 |
제한 사항 | 방화벽에서 차단 가능 | 서버 리소스 부담 증가 |
6. PAS-K에서 TCP Health Check와 Half-Open 사용
PAS-K L4 스위치에서 TCP Health Check는 기본적으로 Half-Open 방식을 사용합니다. 이는 서버의 포트 상태를 빠르고 효율적으로 확인하는 데 적합합니다.
작동 원리
- L4 스위치가 Real Server의 TCP 포트로 SYN 패킷을 전송.
- SYN-ACK 응답이 돌아오면, 서버가 정상적으로 작동 중이라고 판단.
- 연결을 종료하기 위해 RST 패킷을 전송하여 리소스를 절약.
7. 결론
TCP Half-Open Health Check는 서버 포트 상태를 빠르고 효율적으로 확인할 수 있는 방법입니다.
- 장점: 빠르고 서버 리소스를 절약.
- 단점: 애플리케이션 상태를 확인하지 못함.
서버 포트 상태만 확인하고자 할 때 적합하며, 애플리케이션 상태를 확인하려면 Full-Open 방식이나 HTTP Health Check를 사용하는 것이 더 적합합니다.