WebRTC에서 두 기기가 서로 연결되어 오디오·비디오 등의 미디어 데이터를 주고받을 수 있도록 연결 정보를 교환하는 핵심 규격 및 프레임워크입니다.
역할
연결할 기기 간의 미디어 및 네트워크 설정 정보를 정의하고 교환합니다.
포함 내용
Offer
연결을 시작하는 측(Caller)이 자신의 미디어 및 연결 가능 정보를 포함한 SDP를 생성하여 상대방에게 전달합니다.
Answer
상대방(Callee)은 전달받은 Offer를 확인한 후, 자신이 지원하는 미디어 정보를 포함한 SDP Answer를 생성하여 회신합니다.
Caller Callee
│ │
│──── SDP Offer ──────────────>│
│ │
│<──── SDP Answer ─────────────│
│ │
역할
방화벽이나 공유기 등의 NAT 환경에서도 두 기기가 실제로 통신할 수 있는 네트워크 경로(IP·Port)를 탐색하고 선택하는 프레임워크입니다.
ICE Candidate
각 기기가 확보한 연결 가능한 네트워크 주소 후보를 의미합니다.
대표적으로 다음과 같은 Candidate가 존재합니다.
동작 방식
Caller Callee
│ │
│──── ICE Candidate ──────────>│
│ │
│<──── ICE Candidate ──────────│
│ │
│ Connectivity Check │
│<────────────────────────────>│
│ │
│ 연결 가능한 경로 확정 │
│<════════════════════════════>│
Trickle ICE
모든 ICE Candidate 수집이 완료될 때까지 기다리지 않고, Candidate가 발견되는 즉시 상대방에게 전달하는 방식입니다.
이를 통해 WebRTC 연결 수립 시간을 단축할 수 있습니다.
| 구분 | SDP | ICE |
|---|---|---|
| 정식 명칭 | Session Description Protocol | Interactive Connectivity Establishment |
| 핵심 역할 | 미디어 세션 정보 협상 | 실제 통신 가능한 네트워크 경로 탐색 |
| 주요 정보 | 코덱, 미디어 타입, 전송 파라미터 등 | IP, Port, Candidate 유형 등 |
| 주요 흐름 | Offer → Answer | Candidate 수집 → 교환 → 연결성 검사 |
| 관련 서버 | 시그널링 서버 | STUN / TURN 서버 |
| 쉽게 표현하면 | 무엇을 어떻게 주고받을지 협상 | 어떤 네트워크 경로로 연결할지 탐색 |
정리: SDP는 WebRTC 통신에서 미디어 세션을 협상하고, ICE는 실제 미디어 데이터를 전달할 수 있도록 네트워크 연결 경로를 탐색·선정합니다. 두 정보 자체의 교환은 일반적으로 별도의 Signaling Channel(WebSocket, HTTP 등)을 통해 이루어집니다.