Learning
토픽 119 / 147·네트워크 응용 및 고급 프로토콜

ICE / STUN / TURN (NAT 우회)

ICE / STUN / TURN (NAT 우회)

WebRTC 등 P2P 통신에서 NAT/방화벽 환경의 피어 간 직접 연결을 수립하기 위한 NAT 우회 프로토콜 집합

STUN (Session Traversal Utilities for NAT)

  • NAT 뒤의 클라이언트가 자신의 공인 IP/포트를 확인하는 프로토콜 (RFC 5389)
  • 동작: 클라이언트 → STUN 서버 요청 → 서버가 관측한 공인 IP/Port 응답
  • NAT 유형 판별(Full Cone, Restricted, Symmetric), 경량/빠름
  • 한계: Symmetric NAT 환경에서는 직접 연결 불가

TURN (Traversal Using Relays around NAT)

  • STUN 실패 시 중계(Relay) 서버를 통해 미디어를 전달하는 프로토콜 (RFC 5766)
  • 동작: 피어A → TURN 서버 → 피어B (모든 트래픽이 서버 경유)
  • 장점: 모든 NAT 환경에서 동작, 단점: 서버 대역폭 비용, 지연 증가

ICE (Interactive Connectivity Establishment)

  • STUN/TURN을 조합하여 최적의 연결 경로를 탐색하는 프레임워크 (RFC 8445)
  • 후보(Candidate) 수집: Host(로컬 IP) → Server Reflexive(STUN 공인 IP) → Relay(TURN 중계)
  • 연결성 검사: 후보 쌍(Candidate Pair)에 대해 STUN Binding 검사 → 성공한 최적 경로 선택
  • 우선순위: Host > Server Reflexive > Relay (직접 연결 우선)

비교

연관: WebRTC, NAT, P2P, SDP, 화상회의