WebRTC-Mesh, MCU, SFU architecture

WebRTC is a real-time communication technology based on P2P. (If P2P hole punching fails, the TURN server will be used for data forwarding.) With 2 clients participating, the network topology is shown in the figure:

1. Mesh architecture

With only two clients participating, we can use the topology shown above. But if there are 3 clients participating at the same time (such as multi-person video conference), if still follow the above method, the topology will become:

As we can see from the picture above, in the real-time communication involving 3 people, each client must maintain 4 connections (2 upstream, 2 downstream); the same way, If there are N clients participating, each client must maintainN-1Up,N-1One downstream, which will greatly occupy the upstream bandwidth and downstream bandwidth of the client;

This kind of architecture that uses P2P before each end is called Mesh architecture.

2. SFU (Selective Forwarding Unit) architecture


The core feature of the SFU architecture is to "disguise" itself as a WebRTC client. The other clients of WebRTC do not actually know that they are connected through P2P in the past is a real The client is still a server, we usually call this connection P2S, namely: Peer to Server. In addition to "disguised" as a WebRTC client, the SFU server also has one of the most important capabilities is to haveone-to-manyThe ability to forward data from one client to multiple other clients.

In this network topology, no matter how many people make video calls at the same time, each WebRTC client only needs to connect to one SFU server, and only one uplink data is needed, which can greatly reduce the Mesh model to the client in the multi-person video call scenario. Bringing upward bandwidth pressure.

The biggest difference between the SFU server and the TURN server is that the TURN server is only an auxiliary data forwarding channel provided for WebRTC clients, and transparent data forwarding is performed when P2P fails. SFU is "business-aware", it has an equal relationship with WebRTC client, and even "takes over" the application and control of WebRTC client's data forwarding.

3. MCU (MultiPoint Control Unit) architecture

As can be seen from the definition of SFU above, the network topology model of SFU, through the SFU Server to achieve one-to-many, reduces the upstream bandwidth pressure of each client in the multi-person video call scenario, but the downlink is still multi-path Streaming, as the number of callers increases, the pressure on the downstream bandwidth will still increase proportionally, so can there be only one stream of downstream traffic? —— Yes, it can be solved by consolidating on the server side and then issuing, as shown in the following figure:

At present, with the promotion of 5G technology, it is foreseeable that bandwidth is increasingly not a problem, so SFU may have more advantages in the future. Common open source SFU servers are:LicodeJanusJitsimediasoupMedooze and many more.

Article reference:
WebRTC development practice: why you need an SFU server
webrtc notes (3): Multiplayer video communication commonly used architecture Mesh / MCU / SFU

Intelligent Recommendation

Licode-SFU architecture

1. Analysis of webrtc Webrtc's past and present life, compilation methods, industry applications, best practices, and other technical and industrial articles are on the Internet, and I will not repeat...

Ion-sfu architecture and module

The above gives a simple architecture map, many details can't be seen, need to see the code. 1 Introduction Thanks to the GO, Ion-SFU overall code streamlined, with extremely high development efficien...

Do not need SFU to implement WebRTC simulcast practice

WebRTC simulcast is not required for SFU, and Philipp Hancke, a WebRTC engineer at appear.in, implements a simulcast between Chrome and Firefox. LiveVideoStack has translated the original text. Text /...

Webrtc of SFU program for audio and video conferences

Webrtc of SFU program for audio and video conferences This is just a "building house" under Webrtc's "don't know much", if you want to be "detailed", you have to study a ...

[WebRTC] Make a simple sfu video communication demo yourself

Since p2p video communication does not support directed ip traffic, and so,Made a sfu forwarding server based on the mediasoup framework and a simple web client (for the Android and ios end to step on...

More Recommendation

WebRTC RP Series 2 - How to implement SFU server

In the previous article, we learned the basic principles and necessity of the WebRTC SFU server, and solved What and Why. This article is a step closer. What are the key technical points for implement...

WebRTC development practices: Why do you need SFU server

When you started WebRTC, it will soon be exposed to a term called: SFU, you could easily find in the online open source implementation of many of SFU, and happily and began to compile, deploy and test...

WebRTC video conferencing H5 (React + Golang + Ion-SFU)

After years of development, WebRTC technology has been very mature. It provides a set of solutions and APIs for HTML5 streaming media technology, which can be used to achieve a one-to-one video call, ...

WebRTC architecture

This article is a simple translation of the webRTC architecture, the original is also very simple, more to see the original. Original address:http://www.webrtc.org/reference/architecture WebRTC provid...

《WebRTC Architecture》

Learning information:《WebRTC Architecture》 Arichitecture Browser developer, more concerned about WebRTC C ++ API, audio and video capture and rendering, and NetWork and I / O Web Developer is more con...

Copyright  DMCA © 2018-2026 - All Rights Reserved - www.programmersought.com  User Notice

Top