#turn #xirsys
#turn #xirsys
Вопрос:
Я использую xirsys turn server.
Теперь я хочу подключить клиент A, который находится за симметричным NAT, к клиенту B, который также находится за симметричным NAT.
- На каком порту я должен прослушивать клиент A?
- К какому IP и порту я должен подключиться, чтобы установить tcp-соединение с клиентом A от клиента B?
- Как я могу получить IP-адрес xirsys turn server?
На клиенте A я хочу запустить эту команду, но я не знаю, какой порт мне следует использовать:
sudo tcpdump -ni any port ???
На клиенте B я хочу запустить эту команду, но я не знаю, какой IP и порт мне следует использовать:
echo "Hello from B" | netcat ip??? port???
PS.
xirsys после выполнения этой команды:
curl -s -H "Content-type: application/json" -XPUT "https://name:pass@global.xirsys.net/_turn/app" -d '{"format": "urls"}'
Верните что-то вроде этого
{
"s" : "ok",
"v" : {
"iceServers" : {
"credential" : "123",
"urls" : [
"stun:eu-turn4.xirsys.com",
"turn:eu-turn4.xirsys.com:80?transport=udp",
"turn:eu-turn4.xirsys.com:3478?transport=udp",
"turn:eu-turn4.xirsys.com:80?transport=tcp",
"turn:eu-turn4.xirsys.com:3478?transport=tcp",
"turns:eu-turn4.xirsys.com:443?transport=tcp",
"turns:eu-turn4.xirsys.com:5349?transport=tcp"
],
"username" : "123"
}
}
}
Ответ №1:
В сценарии TURN два одноранговых узла обычно обозначаются как Client и Peer, где Клиент является инициатором соединения, а одноранговый узел подчиняется данным, предоставленным Клиентом.
При подключении все данные передаются через TURN server от клиента через основной порт. Так, например, если Клиент использует turn:eu-turn4.xirsys.com:3478?transport=udp
в качестве выбранного маршрута, то все клиентские пакеты будут отправляться через порт 3478.
Чтобы установить соединение с одноранговым узлом, Клиент запросит порт Allocation
на сервере TURN. Allocation
Ответ от сервера TURN будет содержать вновь созданный порт на сервере (обычно выше 16 кб), известный как отображенный адрес ретрансляции. Затем клиент должен передать этот порт одноранговому узлу (обычно через WebSocket signaling), чтобы одноранговый узел мог подключиться к TURN server и начать прием / отправку пакетов. Одноранговое соединение ВСЕГДА осуществляется через UDP.
Что касается IP-адреса TURN; зачем вам это нужно? Каков ваш вариант использования?