-
Notifications
You must be signed in to change notification settings - Fork 7
WebRTC! 알아두면 좋은 것들!(작성중)
Chanhee Kim edited this page Dec 2, 2021
·
1 revision
![](https://user-images.githubusercontent.com/77329061/144450135-428d2b4b-e96b-46f3-a64c-184ca4a0bc9d.png)
플러그인 도움 없이 브라우저 간에 동영상, 음성 및 일반 데이터들을 실시간으로 주고받을 수 있도록 해주는 API 및 프로토콜을 말합니다!
![](https://user-images.githubusercontent.com/77329061/144450216-dba9f997-adae-4885-8d2c-eafa57502912.png)
각 클라이언트가 서로 P2P 방식으로 직접 연결해 미디어 스트림을 주고 받습니다.
- 장점 : 서버는 연결을 위한 정보를 전달하는 역할만 수행하기 때문에 서버에 가해지는 부하가 적습니다. 클라이언트끼리 직접 미디어 스트림을 전달하기 때문에 실시간성이 높습니다.(지연시간이 적다)
- 단점 : 클라이언트가 부담해야하는 트래픽이 굉장히 크기 때문에 클라이언트의 하드웨어와 네트워크에 가해지는 부하가 큽니다.
클라이언트간 P2P로 직접 통신 하지 않고 미디어 서버에서 스트림을 각 클라이언트에 중계 해주는 방식. SFU, MCU 등의 방식이 존재합니다.
- SFU(Selective Forwarding Unit)
![](https://user-images.githubusercontent.com/77329061/144450242-9eaac2ae-32a6-4724-a799-3c4a098c9efb.png)
각 클라이언트는 미디어 스트림을 서버에 전달하고, 서버는 전달받은 미디어 스트림을 가공하지 않고 그대로 다른 클라이언트들에게 전달해줍니다.
일종의 릴레이 역할을 하는 것입니다!
- 장점 : 클라이언트는 Mesh 방식보다 더 적은 연결을 통해 미디어 스트림을 주고 받을 수 있어 부하가 좀 더 적습니다. MCU 방식과 달리 미디어 스트림을 가공하지 않아 서버 부하가 비교적 적습니다.
- 단점 : 서버가 미디어 스트림을 전달/전송 해야하기 때문에 Mesh 방식보다 서버 부하가 큽니다.
- MCU(Multipoint Control Unit)
![](https://user-images.githubusercontent.com/77329061/144450223-b30637e1-3ab5-401a-8040-94612991f8b0.png)
각 클라이언트의 미디어 스트림을 서버에서 가공(압축, 믹싱)해 다른 클라이언트에게 전달하는 방식입니다.
- 장점 : 클라이언트들의 미디어 스트림을 가공해 전달하기 때문에 클라이언트에 가해지는 하드웨어, 네트워크 부하를 크게 줄일 수 있습니다.
- 단점 : 미디어 스트림을 가공해야 하기 때문에 서버에 가해지는 부하가 매우 큽니다.
private IP에 public IP를 할당해 주는 역할을 합니다.
![](https://user-images.githubusercontent.com/77329061/144458774-07d3236a-8fc3-44df-ac8a-a10edc16442a.png)
![](https://user-images.githubusercontent.com/77329061/144450314-fca0e95b-f967-4990-8dcf-0fd348411e44.png)
![](https://user-images.githubusercontent.com/77329061/144456978-865edfa5-59fb-49e6-9dd7-41797d992229.jpeg)