자주 묻는 질문(FAQ)

FAQ #

왜 WebRTC는 UDP를 쓰나요?

NAT 우회에는 UDP가 필요합니다. NAT 우회가 없다면 P2P 연결을 수립할 수 없습니다. UDP는 TCP처럼 “보장 전달”이 없으므로, WebRTC가 상위 레이어에서 이를 처리합니다.

연결 장을 참고하세요.

DataChannel은 몇 개까지 만들 수 있나요?
식별자(스트림 ID)가 16비트이므로 최대 65,534개입니다. 필요할 때 닫았다가 새로 열 수 있습니다.
WebRTC에 대역폭 제한이 있나요?
DataChannel과 RTP 모두 혼잡 제어를 사용합니다. 즉, WebRTC가 대역폭을 지속적으로 측정해 최적 사용량을 시도합니다. 가능한 많이 보내되, 연결을 과부하시키지 않는 선에서 균형을 맞춥니다.
바이너리 데이터를 보낼 수 있나요?
네, DataChannel을 통해 텍스트와 바이너리 모두 보낼 수 있습니다.
WebRTC의 지연은 어느 정도 기대할 수 있나요?

튜닝하지 않은 미디어의 경우 500ms 미만을 기대할 수 있습니다. 튜닝을 하거나 품질을 희생해 지연을 더 낮추면 100ms 미만도 가능합니다.

DataChannel은 “부분 신뢰성(Partial Reliability)” 옵션을 지원해 손실 재전송으로 인한 지연을 줄일 수 있습니다. 이 옵션을 설정하면 TCP/TLS 연결보다 더 좋은 지연 특성을 보이기도 합니다.

왜 DataChannel에서 무질서(Out-of-order) 전달을 원하나요?
새로운 정보가 오래된 정보를 곧바로 무의미하게 만드는 경우(예: 객체의 위치), 또는 각 메시지가 서로 독립적이며 HOL 블로킹으로 인한 지연을 피해야 하는 경우에 유용합니다.
DataChannel로 오디오/비디오를 보낼 수 있나요?
네, 어떤 데이터든 보낼 수 있습니다. 다만 브라우저에서는 데이터를 직접 디코드해 미디어 플레이어에 전달해 렌더링해야 합니다. 미디어 트랙을 사용하면 이러한 처리가 자동으로 이루어집니다.