In the previous chapter, we learned about WebRTC servers such as TURN and STUN servers . In this chapter, we learn about the types of WebRTC implementations.
Type of WebRTC implementations
There are three main implementation methods of WebRTC : Mesh, MCU, and SFU.
Mesh
It's P2P method that we can easily think of. As shown in the figure above, each client has one Uplink to transmit its media information and one Downlink to receive media information. the server is used only to relay information for the connections because the connection between peers proceeds.
If five clients form Peer Connection for each as shown in the figure above, each client will have a total of eight links, with four uplinks to send their media information to the remaining four clients and four downlinks to receive media information from four clients. the load on the server is small, but the more clients there are, the more the load on the client becomes.
MCU(Multi-point Control Unit)
Unlike P2P, the server relays media traffic.
The MCU mixes, processes, and transmits media information from each client to the receiving side. Therefore, it is not necessary to have N downlinks to receive media information, but only one downlink to receive mixed data. In other words, it is an optimized method for the network because only two links, one Uplink to transmit media information and one Downlink to receive media information, need to be maintained.
However, as mentioned above, the load on the server increases exponentially because media information from all connected clients must be received, mixed, and processed.
SFU(Selective Forwarding Unit)
like MCU, the server relay media traffic too. Hower, the difference from the MCU is that the server does not mix and process media infromation from the client side, but forwards it as it is. In a way, it can be seen as an intermediate method between Mesh and MCU
As shown in the figure above, we will have one Uplink to transmit its media information and N Downlinks to receive media information. In other words, both the client and the server share the load
Our video study has a zoom-like format. In an environment where real-time guaranteed, several people need to access and exchange video and voice data, but the number of participants may be small or large. In addition, we excluded P2P that look bad in N:M.
And we tried to use SFU as a server cost problem between SFU and MCU.
[reference]
https://gilssang97.tistory.com/80?category=1065324
https://millo-l.github.io/WebRTC
'Project' 카테고리의 다른 글
Project_온라인스터디_Chpater0?_Persistence Context(N+1 Test) (0) | 2023.06.30 |
---|---|
Project_온라인스터디_Chapter0?_UniqueConstraint (0) | 2023.06.28 |
Project_화상스터디_Chapter03_Spring으로만 화상채팅 만들기 (0) | 2023.05.01 |
Project_화상스터디_Chapter02_WebSocket (0) | 2023.04.01 |
Project_화상스터디_Chapter00_개요 & WebRTC (0) | 2023.03.24 |