WebRTC SDP/ICE 메시지

sun·2026년 8월 25일

WebRTC에서 두 기기가 서로 연결되어 오디오·비디오 등의 미디어 데이터를 주고받을 수 있도록 연결 정보를 교환하는 핵심 규격 및 프레임워크입니다.

1. SDP 메시지 (Session Description Protocol)

역할
연결할 기기 간의 미디어 및 네트워크 설정 정보를 정의하고 교환합니다.

포함 내용

  • 오디오/비디오 코덱 정보
  • 미디어 타입
  • 해상도 및 미디어 관련 설정
  • IP 주소 및 포트
  • 암호화 및 전송 관련 정보

동작 방식

Offer
연결을 시작하는 측(Caller)이 자신의 미디어 및 연결 가능 정보를 포함한 SDP를 생성하여 상대방에게 전달합니다.

Answer
상대방(Callee)은 전달받은 Offer를 확인한 후, 자신이 지원하는 미디어 정보를 포함한 SDP Answer를 생성하여 회신합니다.

Caller                         Callee
  │                              │
  │──── SDP Offer ──────────────>│
  │                              │
  │<──── SDP Answer ─────────────│
  │                              │

2. ICE 메시지 (Interactive Connectivity Establishment)

역할
방화벽이나 공유기 등의 NAT 환경에서도 두 기기가 실제로 통신할 수 있는 네트워크 경로(IP·Port)를 탐색하고 선택하는 프레임워크입니다.

ICE Candidate

각 기기가 확보한 연결 가능한 네트워크 주소 후보를 의미합니다.

대표적으로 다음과 같은 Candidate가 존재합니다.

  • Host Candidate: 기기의 로컬 IP/Port
  • Server Reflexive Candidate: STUN 서버를 통해 확인한 공인 IP/Port
  • Relay Candidate: TURN 서버를 통해 확보한 중계 서버 IP/Port

동작 방식

  • 각 기기가 연결 가능한 ICE Candidate를 수집합니다.
  • 수집한 Candidate를 시그널링 서버 등을 통해 상대방에게 전달합니다.
  • 상대방도 자신의 Candidate를 전달합니다.
  • 양쪽에서 Candidate 조합에 대해 Connectivity Check를 수행합니다.
  • 실제 통신 가능한 경로 중 적절한 경로를 선택합니다.
  • 선택된 경로를 통해 WebRTC 미디어 통신을 수행합니다.
Caller                         Callee
  │                              │
  │──── ICE Candidate ──────────>│
  │                              │
  │<──── ICE Candidate ──────────│
                                
       Connectivity Check       
  │<────────────────────────────>│
  │                              │
  │    연결 가능한 경로 확정       │
  │<════════════════════════════>

Trickle ICE

모든 ICE Candidate 수집이 완료될 때까지 기다리지 않고, Candidate가 발견되는 즉시 상대방에게 전달하는 방식입니다.

이를 통해 WebRTC 연결 수립 시간을 단축할 수 있습니다.


3. SDP와 ICE의 차이

구분SDPICE
정식 명칭Session Description ProtocolInteractive Connectivity Establishment
핵심 역할미디어 세션 정보 협상실제 통신 가능한 네트워크 경로 탐색
주요 정보코덱, 미디어 타입, 전송 파라미터 등IP, Port, Candidate 유형 등
주요 흐름Offer → AnswerCandidate 수집 → 교환 → 연결성 검사
관련 서버시그널링 서버STUN / TURN 서버
쉽게 표현하면무엇을 어떻게 주고받을지 협상어떤 네트워크 경로로 연결할지 탐색

정리: SDP는 WebRTC 통신에서 미디어 세션을 협상하고, ICE는 실제 미디어 데이터를 전달할 수 있도록 네트워크 연결 경로를 탐색·선정합니다. 두 정보 자체의 교환은 일반적으로 별도의 Signaling Channel(WebSocket, HTTP 등)을 통해 이루어집니다.

0개의 댓글