토픽 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, 화상회의