1. Mesh
/---> Peer_1 <---\ | ˄ | ˅ | ˅ Peer_2 <---+---> Peer_3 ˄ | ˄ | ˅ | \---> Peer_4 <---/
- For just a few participants. Each peer has N-1 uplinks and N-1 downlinks.
1.1 P2P
1.1.1 LAN
Signaling |--- server ---| TCP TCP | | (NAT) (NAT) Peer_1 ---SRTP--- Peer_2
- They communicate with their local IP:Port
Procedure
- The peers negotiate a connection setup via the Signaling server.
- The peers trying to setup an SRTP connection to each other.
1.1.2 WAN
Signaling |--- server ---| TCP TCP | | Peer_1 |NAT| ---SRTP--- |NAT| Peer_2 | | UDP UDP | | STUN STUN server server
- They communicate with their public IP:Port
- This works only with non symmetric NATs
Procedure
- The peers requesting from a STUN server their public IP:Port.
This creates an entry in the NAT-table for later on. - The peers negotiate a connection setup via the Signaling server.
- The peers trying to setup an SRTP connection to each other.
This works based on the entry in the NAT-table.1
1 For Full Cone NATs it would also work without the NAT-table entry.
1.2 TURN
Signaling |--- server ---| TCP TCP | | Peer_1 |NAT| ----||---- |NAT| Peer_2 | || | UDP SRTP UDP | || | STUN TURN STUN server server server
- This also works with symmetric NATs
Procedure
- The peers requesting from a STUN server their public IP:Port.
- The peers negotiate a connection setup via the Signaling server.
- The peers trying to setup an SRTP connection to each other. It fails.
- The peers connect to a TURN server1, which relays their SRTP connection.
1 A TURN server is an ICE candidate negotiated via the Signaling sever.
3 SFU
Peer_1 Peer_2
↓↑↑↑ ↓↑↑↑
|------------|
| SFU |
|------------|
↑↓↓↓ ↑↓↓↓
Peer_3 Peer_4
- For more then just a few participants. Each peer has 1 uplink and N-1 downlinks.
4 MCU
Peer_1 Peer_2
⇅ ⇅
|------------|
| MCU |
|------------|
⇅ ⇅
Peer_3 Peer_4
- For way more then just a few participants. Each peer has 1 uplink and 1 downlink.
Peer_1 Peer_2 ⇅ ⇅ |------------| | MCU | |------------| ⇅ ⇅ Peer_3 Peer_4
- For way more then just a few participants. Each peer has 1 uplink and 1 downlink.