Skip to content

WebRTC! 알아두면 좋은 것들!(작성중)

Chanhee Kim edited this page Dec 2, 2021 · 1 revision

WebRTC! 알아두면 좋은 것들!

WebRTC(Web Real-Time Communication)

플러그인 도움 없이 브라우저 간에 동영상, 음성 및 일반 데이터들을 실시간으로 주고받을 수 있도록 해주는 API 및 프로토콜을 말합니다!

WebRTC 연결 구조

1. 시그널링 서버를 이용한 P2P Mesh Network 구성

각 클라이언트가 서로 P2P 방식으로 직접 연결해 미디어 스트림을 주고 받습니다.

  • 장점 : 서버는 연결을 위한 정보를 전달하는 역할만 수행하기 때문에 서버에 가해지는 부하가 적습니다. 클라이언트끼리 직접 미디어 스트림을 전달하기 때문에 실시간성이 높습니다.(지연시간이 적다)
  • 단점 : 클라이언트가 부담해야하는 트래픽이 굉장히 크기 때문에 클라이언트의 하드웨어와 네트워크에 가해지는 부하가 큽니다.

2. 미디어 서버를 이용한 중계

클라이언트간 P2P로 직접 통신 하지 않고 미디어 서버에서 스트림을 각 클라이언트에 중계 해주는 방식. SFU, MCU 등의 방식이 존재합니다.

  1. SFU(Selective Forwarding Unit)

각 클라이언트는 미디어 스트림을 서버에 전달하고, 서버는 전달받은 미디어 스트림을 가공하지 않고 그대로 다른 클라이언트들에게 전달해줍니다.

일종의 릴레이 역할을 하는 것입니다!

  • 장점 : 클라이언트는 Mesh 방식보다 더 적은 연결을 통해 미디어 스트림을 주고 받을 수 있어 부하가 좀 더 적습니다. MCU 방식과 달리 미디어 스트림을 가공하지 않아 서버 부하가 비교적 적습니다.
  • 단점 : 서버가 미디어 스트림을 전달/전송 해야하기 때문에 Mesh 방식보다 서버 부하가 큽니다.
  1. MCU(Multipoint Control Unit)

각 클라이언트의 미디어 스트림을 서버에서 가공(압축, 믹싱)해 다른 클라이언트에게 전달하는 방식입니다.

  • 장점 : 클라이언트들의 미디어 스트림을 가공해 전달하기 때문에 클라이언트에 가해지는 하드웨어, 네트워크 부하를 크게 줄일 수 있습니다.
  • 단점 : 미디어 스트림을 가공해야 하기 때문에 서버에 가해지는 부하가 매우 큽니다.

NAT(Network)

private IP에 public IP를 할당해 주는 역할을 합니다.

ICE(Interactive Connectivity Establishment)

STUN(Session Traversal Utilities for NAT)

TURN(Traversal Using Relays around for NAT)

Clone this wiki locally