webRTC
Ice Candidate I Understood

내가 이해한 ICE Candidate

후보(Candidate) 란?

P2P 통신은 1:1인데 뭔 후보가 있냐?

여기서 말하는 후보AB 사이를 연결 할 수 있는 여러 방법들 을 말한다

A 가 와이파이, 랜선, 블루투스 등등 여러가지 방식으로 통신이 가능한 매체라면 연결 방법도 다양하다 이처럼 여러 연결 방식 을 후보 라고 한다

WebRTC 에는 그럼 어떤 후보들이 있나?

일반적으로

  • host (local) → LAN/P2P 가능 여부 확인
  • srflx (STUN) → 공용 IP를 통한 P2P 가능 여부 확인
  • relay (TURN) → TURN 서버를 통한 중계 연결

방법이 존재한다

Signaling Server 를 통해 ICE Candidate 를 서로 주고 받을 때, 위 세개의 방식 중 가능한 방식을 서로 보내준다

후보 선택 순서

WebRTC는 일반적으로 다음 순서대로 후보를 시험한다

host (local) → LAN/P2P 가능 여부 확인

같은 네트워크(Wi-Fi, 회사 내부망 등)에서는 직접 연결 가능성이 높음.

예: 192.168.1.10:5000 typ host

성공하면 더 이상의 후보 테스트 없이 연결 완료.

srflx (STUN) → 공용 IP를 통한 P2P 가능 여부 확인

NAT가 적용된 경우, STUN 서버에서 얻은 공용 IP를 이용하여 상대방과 직접 연결 시도.

예: 203.0.113.1:54321 typ srflx raddr 192.168.1.10 rport 5000

NAT 유형에 따라 성공/실패 여부가 결정됨 (대부분의 홈 라우터에서는 성공 가능성이 높음).

relay (TURN) → TURN 서버를 통한 중계 연결

위 두 방식이 실패하면, TURN 서버를 이용한 중계 연결을 시도.

예: 198.51.100.10:60000 typ relay

TURN은 항상 연결이 가능하지만, 추가 비용과 대역폭 사용이 발생.