WebRTC (Web Real-Time Communication)
: 서버를 최대한 거치지 않고 P2P(Peer-to-Peer Network)로 브라우저나 단말 간에 데이터를 주고받는 기술의 웹 표준이다.
- 각각의 기기가 서버 도움 없이 연결되기 위해 이 연결을 도와주는 서버(Signaling)가 필요하고, P2P 연결이 불가능한 상황을 대비한 릴레이 서버(TURN)가 필요하다.
- UDP(User Datagram Protocol) 기반의 스트리밍 기술로 Latency가 가장 짧다.
WebRTC의 주요 구성 요소는 여러 자바스크립트 API를 포함하고 있다
- getUserMedia: 오디오와 비디오 미디어를 가져온다. (예: 장치의 카메라와 마이크로폰에 접근하여)
- RTCPeerConnection: 피어 간 오디오, 비디오 통신을 활성화한다. 신호 처리, 코덱 관리, P2P 통신, 보안, 대역폭 관리를 수행한다.
- RTCDataChannel: 피어 간 양방향 임의 데이터 통신을 허용한다. 웹소켓과 동일한 API를 사용하며 매우 낮은 레이턴시를 보인다.
통신 방식
1) signaling 서버 (Mesh)
: peer간의 offer, answer라는 session 정보 signal만 중계
- 1:1 연결에 적합
- WebRTC 사용하면 안되는 환경
- 너무 많은 peer를 가질 경우 클라이언트가 느려진다. (최대 3명까지..)
- 텍스트만 주고받을 경우는 괜찮다. (비디오, 오디오 X)
2) SFU (Selective Forwrding Unit)
: 미디어 트래픽을 중계하는 중앙 서버 방식
- 1:N 또는 소규모 N:M 실시간 스트리밍에 적합
- 서버에 의존한다. (서버비용 ↑)
3) MCU (Multi-point Control Unit)
: 중앙서버를 두고 다수의 송출 미디어를 muxing, transcoding하여 수신측으로 전달하는 중앙 서버 방식
클라이언트의 부하가 줄어든다.
- N:M 서비스에 사용 가능
- 비디오, 오디오 결합 과정에서 비용 ↑
- 실시간성이 저해된다
활용 분야
1:1 방식 / 방송에 사용되는 1:N 방식 / 회의형 방식인 N:N 방식
참고
728x90
반응형
'개발공부' 카테고리의 다른 글
CI/CD 란? (0) | 2022.07.04 |
---|---|
PWA 프로그레시브 웹앱? (0) | 2022.06.26 |
RPA 기술을 통한 업무 자동화 (0) | 2022.01.26 |
온라인 데이터 전송 방식 REST vs SOAP (0) | 2021.10.17 |
좋은 코드리뷰를 위해서 (0) | 2021.08.13 |
댓글