💬
TCP Protocolを使う意味
IP Protocol을 TCP로 지정하는 것의 의미와 다른 옵션들에 대해 설명드리겠습니다:
load-balancer.tf
# TCP를 사용하는 경우
resource "google_compute_global_forwarding_rule" "tcp_rule" {
name = "tcp-forwarding-rule"
ip_protocol = "TCP" # TCP 프로토콜 지정
port_range = "443"
load_balancing_scheme = "EXTERNAL"
target = google_compute_target_https_proxy.default.id
}
# UDP를 사용하는 경우
resource "google_compute_forwarding_rule" "udp_rule" {
name = "udp-forwarding-rule"
ip_protocol = "UDP" # UDP 프로토콜 지정
port_range = "53" # DNS 등
load_balancing_scheme = "EXTERNAL"
backend_service = google_compute_region_backend_service.udp_service.id
}
# HTTP/HTTPS의 경우 (암시적으로 TCP 사용)
resource "google_compute_global_forwarding_rule" "http_rule" {
name = "http-forwarding-rule"
port_range = "80" # HTTP
load_balancing_scheme = "EXTERNAL"
target = google_compute_target_http_proxy.default.id
}
TCP를 사용하는 이유:
-
신뢰성 보장:
- 패킷 전달 보장
- 순서 보장
- 오류 검출 및 재전송
-
연결 지향적:
- 3-way handshake로 연결 설정
- 연결 상태 관리
- 안정적인 데이터 전송
-
일반적인 사용 사례:
- HTTPS (443)
- HTTP (80)
- SSH (22)
- SMTP (25)
다른 프로토콜 옵션:
-
UDP:
- 빠른 전송 속도
- 연결 설정 없음
- 패킷 손실 허용
- 사용 예: DNS, 게임, 스트리밍
-
ESP:
- IPSec VPN용
- 암호화된 통신
-
ICMP:
- 네트워크 진단용
- ping, traceroute
프로토콜 선택 기준:
-
TCP 선택 시:
- 데이터 정확성이 중요할 때
- 웹 애플리케이션
- 파일 전송
- API 통신
-
UDP 선택 시:
- 속도가 중요할 때
- 실시간 스트리밍
- 게임 서버
- DNS 서비스
-
기타 프로토콜:
- 특수 목적
- VPN
- 네트워크 모니터링
HTTPS Load Balancer에서 TCP를 사용하는 이유:
- HTTPS는 TCP 위에서 동작
- 신뢰성 있는 데이터 전송 필요
- 연결 상태 관리 필요
- SSL/TLS 핸드셰이크 지원
Discussion