Можно ли использовать ретранслируемый транспортный адрес WebRTC TURN для нескольких одноранговых узлов?

Сценарий: Webrtcpeer1 хочет отправить видео (отправлять только данные) на Webrtcpeer2. Оказалось, что webrtcpeer2 находится за симметричным NAT, и прямая связь невозможна. Теперь оба одноранговых узла связываются с поворотным сервером и получают свой соответствующий ретранслируемый транспортный адрес и совместно используют его друг с другом по сигнальному каналу вместе со своим рефлексивным транспортным адресом NAT-сервера в качестве кандидатов ICE. Теперь Webrtcpeer3 выходит на сцену и хочет видеть тот же видеопоток, который webrtcpeer1 делится с webrtcpeer2. Оказывается, webrtcpeer3 также находится за симметричным NAT.

Вопросов:

  1. Будет ли стек WebRTC выделять новый ретранслируемый транспортный адрес для webrtcpeer1 для связи с webrtcpeer3? ИЛИ может webrtcpeer1 использовать существующий ретранслируемый транспортный адрес, полученный при соединении с webrtcpeer2.

  2. Поддерживает ли это TURN? - ›webrtcpeer1 отправляет один видеопоток на сервер Turn (вместе с информацией о ретранслируемом транспортном адресе webrtcpeer2 и 3), а сервер Turn каким-то волшебным образом отправляет его на соответствующий ретранслируемый транспортный адрес webrtcpeer2 и webrtcpeer3.


person Mukesh Kumar    schedule 06.11.2020    source источник


Ответы (1)


1.) Вам нужен новый Relayed Transport Address для каждого узла. Вам необходимо создать новое соединение PeerConnection для каждого человека, которого вы хотите соединить. webrtcpeer1 может подключаться только к webrtcpeer2. Вам нужно будет создать webrtcpeer1-1 (на том же хосте, что и webrtcpeer1) для связи с webrtcpeer3

2.) TURN, к сожалению, этого не поддерживает. SFU (Selective Forwarding Unit) действительно это делает!

person Sean DuBois    schedule 06.11.2020
comment
Но SFU не может решить проблему, если одноранговый узел находится за симметричным NAT, потому что одноранговое соединение с SFU также является webrtc. - person Mukesh Kumar; 06.11.2020
comment
SFU - это не так, чтобы клиент мог подключиться к общедоступному IP-адресу, а sfu может отправлять обратно с IP-адреса, который отправляет клиент, который работает с симметричным NAT. - person Philipp Hancke; 06.11.2020