Mediasoup 이란 ?
WebRTC 기반의 미디어 서버 솔루션으로 애플리케이션에서 실시간 통신을 지원하기 위해 설계되었습니다.
WebRTC 기능인 비디오, 오디오, 데이터 스트리밍을 처리 하며, 피어 간 연결을 중재하는 데 사용됩니다.
코드는 Node.js 기반으로 구현되어있으며, 클라이언트와 서버 사이에서 미디어를 처리하여 전송하기 위한 목적으로 쓰입니다.
특징 및 장점
- 멀티코어 CPU와 멀티 서버 환경에서 확정성을 제공하도록 설계가 되어있습니다.
- 미디어 처리 전송 최적화가 잘되어있어 대역폭을 절약할 수 있으며 서버와 클라이언트 성능을 향상합니다.
- SFU 모델을 기반으로 피어 간의 미디어 흐름을 중재하며, 멀티캐스트 기능을 사용하여 대역폭 사용량을 최소화합니다.
- WebRTC 데이터 채널을 통해 추가 데이터 교환을 지원합니다.
- 미디어 스트리밍 및 중재에 최적화 되어있다.
SFU 모델 ?
Selective Forwarding Unit의 약자로 데이터 스트림 중 특정한 데이터 패킷만 전달하고 다른 패킷은 건너뛰는 기능을 수행한다.
멀티캐스트 ?
네트워크 통신에서 데이터를 한 번에 여러 대상에게 전송하는 방법을 말한다.
Coturn 이란 ?
WebRTC의 STUN(Session Traversal Utilities for NAT)와 TURN(Traversal Using Relays around NAT) 서버를 구현하는 데 사용되는 오픈 소스 소프트웨어입니다. 또한 NAT 뒤에 있는 사용자들 간의 통신을 가능하게 해 줍니다. STUN 서버는 사용자의 공인 IP주소와 포트를 알아내는 역할을 하고, TURN은 중계 서버를 통해 데이터를 전달하는 역할을 합니다.
보통 WebRTC 소프트웨어에서 P2P연결을 설정하는데 어려움이 있을 때 사용한다.
특징 및 장점
- STUN과 TURN 프로토콜을 모두 지원하고 P2P연결이 불가능한 경우 데이터를 중계할 수 있도록 해준다.
- NAT뒤에 있는 사용자들의 통신을 가능하게 하며 안정적인 연결을 제공한다.
- 다양한 WebRTC 클라이언트와 호환이 가능하다.
- NAT Traversal을 위한 데이터 중계에 특화되어있다.
NAT ?
Network Address Translation의 약자로 네트워크에서 IP주소를 변환하는 기술을 말한다.
NAT은 보안 측면에서도 일종의 방화벽 역할을 할 수 있습니다. 외부로부터 직접 접근할 수 없는 사설 IP주소를 가진 기기들은 외부로부터 보호되기 때문이다.
Mediasoup과 coturn 차이점 ?
이 둘은 각각 다른 목적으로 사용됩니다. Mediasoup은 WebRTC 기반 소프트웨어에서 미디어 처리와 피어 간 연결 관리를 담당하는 미디어 서버입니다. coturn은 STUN과 TURN기능을 제공하여 P2P 연결이 어려운 경우에 데이터를 중계하고나 NAT뒤에 잇는 사용자 간의 연결을 가능하게 한다. 이렇게 각자 기능과 목적이 다르며 대부분 두 가지를 함께 사용해 최적의 실시간 통신 환경을 구축한다.