Задать вопрос

Могут ли p2p сети работать, если все пользователи имеют серые IP?

Верно ли я понимаю, что распределенная сеть на любом протоколе, работающем только через интернет (без серверов), не может функционировать, если у всех участников этой сети серые (не видные из внешнего интернета, находящиеся за роутером провайдера) ip адреса?

Интересует вариант только без серверов. В т.ч. без сигнальных серверов и других "опор", без проброса портов и каких либо других преобразований способа подключения участников к интернету.
  • Вопрос задан
  • 956 просмотров
Подписаться 4 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 8
@rPman
Вообще без каких либо опор с белыми ip.
тогда не смогут
tcpip требует чтобы кто то к кому то по ip адресу подключился

но возможна ситуация когда с однократно с помощью белого ip клиент подключился к другому клиенту, который открыл порты на роутере с помощью upnp, запомнил всех таких клиентов и передал весь их список (id_client:ip:port) всем клиентам.

Если оперативно передавать информацию об изменениях ip адресов клиентов (такие клиенты все еще помнят адреса других и при смене своего адреса тут же сообщают об этом другим) то это облако клиентов сможет существовать в принципе без сигнального сервера (точнее сигнальными серверами могут являться другие клиенты)

Если клиент на долго отключится от этой сети, может получиться что все другие клиенты сменят ip адрес и ему некуда будет подключаться, но чем больше клиентов в сети тем больше шансов что появится клиент с постоянным ip адресом.

p.s. udp подключение позволяет подключиться к чужому подключению без наличия на роутере поддержки upnp
Ответ написан
Комментировать
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Очередной построитель независимого протестного мессенджера? :D

Нет, не смогут.

Казахская практика показала, что единственным "мессенджером", который сложно взять под контроль, являются портативные рации :)
Ответ написан
ValdikSS
@ValdikSS
Прямое соединение двух клиентов за NAT'ами, если хоть один из них не симметричный (symmetric nat), возможно с помощью UDP и TCP hole punching, но для этого нужно знать IP-адреса и порты обеих сторон.

Также существует способ определения IP-адреса клиента сервером — ICMP Hole Punching, реализованный в программе pwnat, но отправка пакета клиентом требует администраторских прав на устройстве, а также пакет может отбрасываться некоторыми файрволлами.

Могут ли p2p сети работать, если все пользователи имеют серые IP? Да, могут, но не всегда и не настолько стабильно, нежели при полноценном прямом подключении.
Ответ написан
Комментировать
@Drno
первично используется "сигнальный" сервер для соеднинения клиентов. далее клиенты общаются напрямую
Ответ написан
@dumasti
А вы можете отправить письмо другу не зная его адрес, ФИО, а зная только, что где-то в мире он есть?
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
Поскольку в ваших ограничениях нет "не в одной локальной сети", то могут. "Без проброса портов" — но некоторые "проброшены" по-умолчанию. Без 80 не будет работать web, например. То есть, если кто-нибудь из локальной тусовки вручную через порт по-умолчанию подключится в другую локальную сеть, он сможет передать данные соединения остальным. Эти данные можно сохранить и пытаться их использовать в других случаях. Списки узлов можно передавать в другие сети, дополнять и получать обратно.
Ответ написан
Комментировать
msHack
@msHack
Могут если будет виртуальные ip адреса как у vpn
Ответ написан
Комментировать
@LinuxoidLinuxoidovich
Я не совсем знаю, как оно работает, но могут. Нужно только знать стартовую информацию о участниках сети. Пример - i2p.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы