HanaView / Web-RTC

📹 Web RTC를 이용한 화상 상담 구현(화면공유, 상담, 채팅)
0 stars 0 forks source link

Web RTC 코드 이론 이해 #2

Open allzeroyou opened 4 months ago

allzeroyou commented 4 months ago
allzeroyou commented 3 months ago

우리 코드에서 사용된 web rtc에서 소켓 개수는 몇개?

그 전에! 소켓은 뭘까?

WebRTC 통신 과정

  1. 시그널링 단계 (WebSocket 사용): 클라이언트는 시그널링 서버와 WebSocket을 통해 연결합니다. 클라이언트 간의 SDP 오퍼와 앤서, ICE 후보자 정보를 교환합니다.
  2. 피어 연결 설정: SDP 및 ICE 정보를 바탕으로 피어 간의 직접 연결이 설정됩니다.
  3. 미디어 및 데이터 전송 (RTP/RTCP, DataChannel 사용): 오디오, 비디오 스트림은 RTP를 통해 전송됩니다. RTCP는 스트림 품질을 모니터링하고 제어합니다. DataChannel을 통해 텍스트 메시지 등 기타 데이터를 전송합니다.

사용한 소켓

요약

WebSocket: 시그널링 서버와 클라이언트 간의 초기 연결 설정을 위한 메시지 교환 DataChannel: 피어 간의 직접 데이터 전송 RTP/RTCP: 오디오 및 비디오 스트림 전송

  1. WebSocket WebRTC 연결을 설정하는 데 필요한 시그널링 메시지를 교환하기 위해 사용됩니다. 시그널링 메시지에는 SDP(세션 설명 프로토콜)와 ICE 후보자 정보가 포함됩니다. WebSocket은 클라이언트와 서버 간의 양방향 통신을 제공하며, 연결이 설정된 후에는 WebRTC 피어 간의 직접 통신으로 전환됩니다.
  1. DataChannel WebRTC의 DataChannel은 피어 간의 데이터 전송을 위한 통신 채널입니다. 이 채널은 텍스트 메시지, 파일, 바이너리 데이터 등 다양한 형태의 데이터를 전송할 수 있습니다.
  1. RTP/RTCP (Real-Time Protocol/Real-Time Control Protocol) WebRTC는 오디오와 비디오 스트림을 전송하기 위해 RTP/RTCP를 사용합니다. RTP는 실제 미디어 스트림 데이터를 전송하며, RTCP는 스트림 품질을 모니터링하고 제어 메시지를 전송합니다.

결론: 소켓 사용된 개수는....

WebSocket: 1개 (시그널링 서버와 통신) RTP/RTCP: 미디어 스트림마다 소켓 사용 DataChannel: 피어 간의 데이터 전송을 위한 소켓 → 따라서, WebRTC 연결에서는 최소 1개의 WebSocket이 사용되며, 추가로 여러 RTP/RTCP 소켓 및 DataChannel 소켓이 사용됩니다.