Макс wrote:
Да, но не обязательно. Всё-таки эти протоколы не так уж и часто поддерживаются.
Я к тому, что в libjuice указан UPnP-IGD среди поддерживаемых протоколов, а это буквально то, что делает MiniUPnP.
Макс wrote:
Но я сейчас понял, что TURN не сработает, потому что нужно будет переделывать сеть и механизм установки соединения с "сервером".
А если в ENet добавить возможность использовать уже существующий UDP-сокет со стороны? Или там глубже переделывать придётся?
Макс wrote:
У мобильных есть своя хитрая армянская схема с CGNAT, вот потому что у них не хватает адресов.
Вот кстати вопрос. А если между клиентом и сервером больше одного NAT, то как этот схематоз работает? Как второй NAT (и далее) будет пересылать пакеты с первого и обратно до него? Он в таком случае перезаписывает уже и поле внутреннего порта у исходящего IP-пакета с UDP-датаграммой на тот порт, с которого он от первого NAT поступил?
Макс wrote:
Да. В таком случае пирам нужно будет друг другу одновременно отправить пакеты, чтобы успокоить свои файрволлы, и там разбираться на месте с NAT.
Так когда проверяет, а когда не проверяет? И как "такой случай" определять?
Макс wrote:
Но для ДФ не важно, потому что тогда придётся сеть переделывать, если захочется это учитывать.
Мне это нужно как минимум для общего образования, потому что в книгах описано очень мутно. А сеть нам всё равно придётся переделывать, и уже очень скоро. Поэтому чем больше я буду знать таких деталей, тем полнее смогу их учесть и тем лучше спроектирую всё.
Макс wrote:
Ты наверное путаешь с TURN серверами. STUN сервера вообще не затратно держать, в отличие от TURN серверов.
Ну вот кстати Open Relay Project по ссылке выше помимо STUN предлагает и TURN-сервер публичный. Но, видимо, только для WebRTC.
А в TURN вообще весь трафик ретранслируется или только установка соединения?