Полностью децентрализованный P2P? - PullRequest
21 голосов
/ 05 марта 2010

Я смотрю на создание системы P2P. Во время первоначального исследования я читаю из Peer-to-Peer - Использование силы прорывных технологий. В этой книге говорится, что «полностью децентрализованный подход к обмену мгновенными сообщениями не будет работать в современном Интернете». В основном обвиняют в брандмауэрах и NAT. Авторское право на 2001 год. Эта информация старая или все еще верная?

Ответы [ 6 ]

10 голосов
/ 05 марта 2010

Это все еще в значительной степени правильно. Большинство пользователей все еще находятся за брандмауэрами или домашними маршрутизаторами, которые блокируют входящие соединения. Сегодня их можно открыть проще, чем в 2001 году (например, с помощью uPnP, требующего небольшого взаимодействия с пользователем и знаний), но большинство коммерческих приложений, ориентированных на конечных пользователей, - телефон (Skype, VoIP), чат (различные мессенджеры), удаленное управление - централизованные решения для обхода проблем с брандмауэрами.

5 голосов
/ 05 марта 2010

Я бы сказал, что это просто неправильно, как сейчас, так и потом. Да, у вас будет много узлов, которые будут огненно ограждены, однако у вас также будет значительное количество, которых нет. Таким образом, если сквозное шифрование используется для защиты трафика от отслеживания, вы можете использовать клиентов без брандмауэра в качестве посредников между двумя клиентами с брандмауэром, которые хотят общаться.

Однако вам нужно будет позаботиться о том, чтобы распределить нагрузку так, чтобы нескольким нереализованным клиентам не давалась слишком большая нагрузка.

Skype использует аналогичную идею. Они даже разрешают передачу файлов через посредников, хотя они ограничивают пропускную способность, чтобы не перегружать посредников.

Тем не менее, сейчас, в 2010 году, пробивать дыры в брандмауэрах намного проще, чем в 2001 году, так как большинство маршрутизаторов позволяют автоматизировать открытие портов через UPNP, поэтому у вас, вероятно, будет больший пул нереализованных клиентов для работы.

3 голосов
/ 26 июля 2017

Я думаю, что первоначальное утверждение больше не является правильным. Но область децентрализованных вычислений все еще находится в зачаточном состоянии, с небольшими серьезными соперниками.

Прочтите этот интересный пост на ZeroTier (спасибо @joehand): Состояние прохождения NAT :

NAT является проходимым

Читая интернет-болтовню на эту тему, я был шокирован тем, как много людей на самом деле этого не понимают, поэтому и была написана эта статья. Многие люди думают, что NAT - ограничитель для одноранговой связи, но это не так. Может быть пройдено более 90% NAT, при этом большинство из них можно пройти надежным и детерминированным способом.

В конце дня для обеспечения надежного обслуживания необходимо ретранслировать от 4% (наши цифры) до 8% (более старый номер от Google) всего трафика в одноранговой сети. Предоставление ретрансляции для этого небольшого числа довольно недорого, что делает надежную и масштабируемую сеть P2P, которая всегда работает вполне достижимой.


Мне лично известен Dat Project , инструментарий для децентрализованного обмена данными (на основе их протокола hypercore для потоковой передачи P2P).

Из их Dat - Распределенная синхронизация и управление версиями набора данных paper:

Одноранговые соединения

После фазы обнаружения у Dat должен быть список потенциальные источники данных, чтобы попытаться связаться. DAT использует TCP, UTP или HTTP. UTP предназначен для не занять всю доступную пропускную способность в сети (например, так что другие люди, использующие Wi-Fi, все еще могут использовать Интернет net), и все еще основан на UDP, поэтому работает с NAT методы обхода, такие как пробивание отверстий UDP.

HTTP поддерживается для совместимости со статическими файловыми серверами и клиенты веб-браузера. Обратите внимание, что это протоколы мы поддерживаем в реализации эталонного Dat, но сам протокол Dat является транспортно-независимым.

Кроме того, вы можете использовать его с Bittorrent DHT. В документе также содержатся некоторые ссылки на другие технологии, которые вдохновили Dat.

Для реализации однорангового обнаружения см .: канал обнаружения


Кроме того, существует IPFS или ' Межпланетная файловая система ', которая в настоящее время наилучшим образом позиционируется как стандарт.

Они располагают обширной документацией по использованию обхода DHT и NAT для достижения децентрализованного P2P.

3 голосов
/ 05 марта 2010

Брандмауэры и NAT по-прежнему обычно нарушают прямую одноранговую связь между домашними ПК (а также между домашними ПК и корпоративными рабочими столами).

Они могут быть настроены для разрешения определенных одноранговых протоколов, но это остается камнем преткновения для большинства неопытных пользователей.

0 голосов
/ 16 сентября 2014

Есть RetroShare: http://retroshare.sourceforge.net/

RetroShare - кроссплатформенная платформа с открытым исходным кодом, Friend-2-Friend и безопасная децентрализованная коммуникационная платформа.

Это позволяет вам безопасно общаться и обмениваться файлами с друзьями и семьей, используя доверительную сеть для аутентификации пиров и OpenSSL для шифрования всех соединений. RetroShare обеспечивает обмен файлами, чат, сообщения, форумы и каналы

0 голосов
/ 05 марта 2010

Это очень старый и не правильно. Я считаю, что существует продукт под названием Tribler (новостная статья), который позволяет BitTorrent функционировать полностью децентрализованным образом.

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

UPNP также децентрализован в том, как он определяет доступные устройства в вашей локальной сети.

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

Объявления могут быть простыми пакетами UDP, которые часто передаются в подсеть, которую слушают другие узлы. Другим механизмом является трансляция на каналы IIRC (чаще всего для управления и контроля ботнетов) и т. Д. Вы можете даже использовать Twitter или аналогичные сервисы. Используйте свое воображение здесь.

Брандмауэры на самом деле не играют роли, потому что они почти всегда оставляют открытыми несколько портов, например 80 (http). Очевидно, что вы не можете просматривать сеть, если она была закрыта. Теперь, если брандмауэр настроен на разрешение только тех соединений, которые исходят от внутренних клиентов, вам придется проделать еще немного работы. Но не сильно.

NAT также не заботятся о похожих проблемах.

...