💬

TCP Protocolを使う意味

2025/02/25に公開

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를 사용하는 이유:

  1. 신뢰성 보장:

    • 패킷 전달 보장
    • 순서 보장
    • 오류 검출 및 재전송
  2. 연결 지향적:

    • 3-way handshake로 연결 설정
    • 연결 상태 관리
    • 안정적인 데이터 전송
  3. 일반적인 사용 사례:

    • HTTPS (443)
    • HTTP (80)
    • SSH (22)
    • SMTP (25)

다른 프로토콜 옵션:

  1. UDP:

    • 빠른 전송 속도
    • 연결 설정 없음
    • 패킷 손실 허용
    • 사용 예: DNS, 게임, 스트리밍
  2. ESP:

    • IPSec VPN용
    • 암호화된 통신
  3. ICMP:

    • 네트워크 진단용
    • ping, traceroute

프로토콜 선택 기준:

  1. TCP 선택 시:

    • 데이터 정확성이 중요할 때
    • 웹 애플리케이션
    • 파일 전송
    • API 통신
  2. UDP 선택 시:

    • 속도가 중요할 때
    • 실시간 스트리밍
    • 게임 서버
    • DNS 서비스
  3. 기타 프로토콜:

    • 특수 목적
    • VPN
    • 네트워크 모니터링

HTTPS Load Balancer에서 TCP를 사용하는 이유:

  1. HTTPS는 TCP 위에서 동작
  2. 신뢰성 있는 데이터 전송 필요
  3. 연결 상태 관리 필요
  4. SSL/TLS 핸드셰이크 지원

Discussion