Gnutella (Gnutella)

Перейти к навигации Перейти к поиску
Gnutella
Скриншот программы Gnutella
Тип децентрализованная одноранговая сеть
Разработчик Nullsoft
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 2000 год
Логотип Викисклада Медиафайлы на Викискладе

Gnutella — полностью децентрализованная файлообменная сеть в рамках Интернета, потомок Napster, отличается принципиальным отсутствием центрального сервера. Сеть формируется, когда один пользователь Gnutella соединяется с другим пользователем, после чего они могут обмениваться доступной информацией. Обмениваться можно файлами любых форматов, есть множество удобных функций. В результате полной децентрализации сеть практически невозможно уничтожить, так как для этого потребуется вывести из строя каждый узел сети.

История появления сети Gnutella

[править | править код]

Первый клиент сети Gnutella был разработан Джастином Франкелем и Томом Пеппером из Nullsoft в начале 2000 года, вскоре после приобретения их компанией AOL. 14 марта программа была доступна для скачивания на серверах в Nullsoft.

Первая версия программы давала возможность пользователю искать и обмениваться всеми видами файлов с другими владельцами Gnutella без участия каких-либо серверов. Это событие было заранее анонсировано на Slashdot и в этот день программу скачали тысячи людей[1][2]. Исходный код должен был быть выпущен позже, в соответствии с GNU General Public License (GPL).

На следующий день AOL остановила распространение программы по правовым вопросам и отстранила Nullsoft от выполнения любой дальнейшей работы над проектом (официально AOL назвала Gnutella как «unauthorized freelance project» и открестились от него), после чего разработчики Gnutella, во главе с Джастином Френкелем, уволились. Но это не помешало распространению Gnutella, через несколько дней протокол был подвергнут реверс-инжинирингу и начали появляться свободные и открытые клоны. Этот изначальный процесс параллельного развития различных клиентов различными группами продолжается и сегодня.

Механизм работы

[править | править код]

При подключении клиент получает от узла, с которым ему удалось соединиться, список из пяти активных узлов; им отсылается запрос на поиск ресурса по ключевому слову. Узлы ищут у себя соответствующие запросу ресурсы и, если не находят их, пересылают запрос активным узлам вверх по «дереву» (топология сети имеет структуру графа типа «дерево»), пока не найдётся ресурс или не будет превышено максимальное число шагов. Такой поиск называется размножением запросов (query flooding).

Подобная реализация ведёт к экспоненциальному росту числа запросов и соответственно на верхних уровнях «дерева» может привести к отказу в обслуживании, что и наблюдалось неоднократно на практике. Разработчики усовершенствовали алгоритм, ввели правила, в соответствии с которыми запросы могут пересылать вверх по «дереву» только определённые узлы — так называемые выделенные (ultrapeers), остальные узлы сети (leaves) могут лишь опрашивать последние. Введена также система кеширующих узлов.

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

На 2007 год Gnutella являлась одной из наиболее популярных файлообменных сетей[3]. Работа сети Gnutella непрерывно совершенствуется благодаря усилиям разработчиков множества клиентов сети:

Специализированные
Мультисетевые

Реакция со стороны FSF

[править | править код]

Название Gnutella первоначально было игрой слов GNU, так как разработчики планировали выпустить исходный код под лицензией GNU GPL, и Nutella — марки любимой ореховой пасты этих разработчиков. Однако, ни самая первая программа, ни соответствующие современные проекты не являются официальным проектом GNU, включая использующие протокол Gnutella gtk-gnutella, mutella и gnucleus. В рамках проекта GNU развивается собственная программа для одноранговых сетей - GNUnet[4]. Кроме того, Фонд свободного программного обеспечения сосредоточен на свободе копирования и изменения программного обеспечения, в то время как Gnutella — это, прежде всего, сеть обмена музыкальными файлами. И хотя существует некоторое сходство в вопросах этики копирования программного обеспечения и музыкальных записей, FSF попросила разработчиков Gnutella изменить название программы для избежания путаницы[4].

Примечания

[править | править код]
  1. Gnutella announcement Архивная копия от 24 марта 2019 на Wayback Machine March 14, 2000 on Slashdot
  2. AOL and Gnutella Архивная копия от 24 марта 2010 на Wayback Machine March 15, 2000 by CNN
  3. По данным на сентябрь 2007 года, сеть Gnutella является самой популярной — она используется на 40,5 % компьютеров, подключённых к p2p-сетям, и её популярность продолжает увеличиваться. [1] Архивная копия от 16 декабря 2008 на Wayback Machine
  4. 1 2 Относительно Gnutella. Дата обращения: 27 июля 2009. Архивировано 22 декабря 2008 года.