Самоочевидное
https://qna.habr.com/q/1100494
- Спойлер
- Могут ли p2p сети работать, если все пользователи имеют серые IP?
Верно ли я понимаю, что распределенная сеть на любом протоколе, работающем только через интернет (без серверов), не может функционировать, если у всех участников этой сети серые (не видные из внешнего интернета, находящиеся за роутером провайдера) ip адреса?
Интересует вариант только без серверов. В т.ч. без сигнальных серверов и других "опор", без проброса портов и каких либо других преобразований способа подключения участников к интернету.
Вопрос задан более двух лет назад 751 просмотр
Подписаться 4 Простой 1 комментарий
Пригласить эксперта
ОТВЕТЫ НА ВОПРОС 8
rPman @rPman
Вообще без каких либо опор с белыми ip.
тогда не смогут
tcpip требует чтобы кто то к кому то по ip адресу подключился
но возможна ситуация когда с однократно с помощью белого ip клиент подключился к другому клиенту, который открыл порты на роутере с помощью upnp, запомнил всех таких клиентов и передал весь их список (id_client:ip:port) всем клиентам.
Если оперативно передавать информацию об изменениях ip адресов клиентов (такие клиенты все еще помнят адреса других и при смене своего адреса тут же сообщают об этом другим) то это облако клиентов сможет существовать в принципе без сигнального сервера (точнее сигнальными серверами могут являться другие клиенты)
Если клиент на долго отключится от этой сети, может получиться что все другие клиенты сменят ip адрес и ему некуда будет подключаться, но чем больше клиентов в сети тем больше шансов что появится клиент с постоянным ip адресом.
p.s. udp подключение позволяет подключиться к чужому подключению без наличия на роутере поддержки upnp
Ответ написан более двух лет назад
Нравится 2 Комментировать
CityCat4 CityCat4 @CityCat4
Внимание! Изменился адрес почты!
Очередной построитель независимого протестного мессенджера? :D
Нет, не смогут.
Казахская практика показала, что единственным "мессенджером", который сложно взять под контроль, являются портативные рации
Ответ написан более двух лет назад
Нравится 2 8 комментариев
ValdikSS ValdikSS @ValdikSS
Прямое соединение двух клиентов за NAT'ами, если хоть один из них не симметричный (symmetric nat), возможно с помощью UDP и TCP hole punching, но для этого нужно знать IP-адреса и порты обеих сторон.
Также существует способ определения IP-адреса клиента сервером — ICMP Hole Punching, реализованный в программе pwnat, но отправка пакета клиентом требует администраторских прав на устройстве, а также пакет может отбрасываться некоторыми файрволлами.
Могут ли p2p сети работать, если все пользователи имеют серые IP? Да, могут, но не всегда и не настолько стабильно, нежели при полноценном прямом подключении.
Ответ написан более двух лет назад