For faster navigation, this Iframe is preloading the Wikiwand page for Gnutella2.

Gnutella2

Материал из Википедии — свободной энциклопедии

Gnutella2, G2 — файлообменный OpenSource P2P-протокол, используемый программой Shareaza. Разработан её автором как форк протокола Gnutella; не был положительно оценён участниками gnutella‐форума.

Работа сети

[править | править код]
  1. Только что установленный клиент получает список хабов со специального сервера, который производит мониторинг сети и учёт активных хабов (это происходит только при пустом кеше хабов у клиента) и записывает их в кеш.
  2. Клиент пытается установить постоянное соединение с двумя активными хабами, проходя по адресам в кеше.
  3. Клиент запрашивает список активных хабов, соединённых с ним, и поочерёдно отправляет поисковый запрос на них.
  4. Клиент получает ответы напрямую от клиентов, у которых есть файл или информация о нём (призрак).
  5. Клиент соединяется с другими клиентами и получает от них информацию:
    1. о других источниках файла
    2. о файле (разрешение, частота кадров, длительность и т. д.)
    3. превью файла (маленькое изображение кадра из видео либо миниатюра изображения)
    4. мнение других о файле и его оценку
  6. Клиент соединяется с источниками и начинает параллельную загрузку файла по протоколу HTTP с несколькими новыми хедерами.

Источниками файла могу служить и обычные HTTP-серверы, но обмен адресами этих серверов отключён в клиентах.

Через некоторое время клиент оценивает возможности системы и при достаточном их уровне переключается в режим хаба, подключается к множеству хабов и обслуживает сотни клиентов.

Отличие Gnutella2 от Gnutella

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

Протокол Gnutella2 не является более новой версией Gnutella, а является его форком (ответвлением). Приведённые преимущества, в основном, относятся ко времени создания Gnutella2.

В общем, две сети похожи между собой, отличаясь форматами пакетов и методом поиска. Формат пакета сети Gnutella в течение долгого времени подвергался критике из‑за того, что в нём изначально не планировалось расширение возможностей. Со временем различные разработчики добавляли новые возможности в формат пакета и его структура стала неэффективной и сложной для использования. Сеть Gnutella2 создавалась с учётом ошибок тогдашней сети Gnutella и изначально разрабатывалась с возможностью расширения. Кроме того, сеть изначально включила в себя расширения, добавленные различными разработчиками к сети Gnutella.

Другое серьёзное отличие одной сети от другой было в алгоритме поиска. Сеть Gnutella 0.4 использовала метод поиска query flooding, а сеть Gnutella2 использует метод обхода сети. При этом методе узел, с которого осуществляется поиск, собирает список узлов (hub) и связывается с ними напрямую, по одному за раз. Такой способ поиска имеет несколько преимуществ. Он более эффективен, так как продолжение поиска в сети не увеличивает сетевой трафик экспоненциально. Современная версия протокола Gnutella, 0.6, не имеет такой проблемы.[1] Запросы не направляются через большое количество посредников, и это позволяет клиенту остановить поиск при получении требуемого количества информации. Одновременно повышается сложность созданной сети, поэтому может потребоваться специализированное обслуживание сети.

Также появилось различие в терминологии. Узлы, поддерживающие работу сети в Gnutella, называются Ultrapeer, а в сети Gnutella2 — Hub. Также изменилась топология сети. В Gnutella Ultrapeer поддерживают небольшое количество связей с листьями (leaf) и большое количество связей с другими узлами сети (c ultrapeer и peer). В Gnutella2, наоборот, Hub поддерживает связь с большим количеством листьев (leaf) и малое количество связей с другими узлами (hub). Такое различие в топологиях вызвано тем, что различные методы поиска имеют различные оптимальные топологии сети.

Список клиентов сети Gnutella2:

  • Shareaza (Windows), открытые исходные тексты на языке C++ под лицензией GPL.
  • Kiwi Alpha (Windows), закрытые исходные тексты.
  • Morpheus (Windows), закрытые исходные тексты.
  • Gnucleus (Windows), открытые исходные тексты ядра на языке C/C++ под лицензией LGPL.
  • Adagio (Cross Platform), открытые исходные тексты на языке Ada под лицензией GPL.
  • Pocket G2 (Windows Pocket PC), закрытые исходные тексты.
  • FileScope (Cross Platform), открытые исходные тексты на языке C# под лицензией GPL.
  • MLDonkey (Cross Platform), открытые исходные тексты на языке Ocaml под лицензией GPL.
  • TrustyFiles (Windows), закрытые исходные тексты.
  • Sharelin (Cross Platform), открытые исходные тексты на языке C++ под лицензией GPL.

Примечания

[править | править код]
  1. Why Gnutella scales quite well. Дата обращения: 24 ноября 2007. Архивировано 20 августа 2008 года.
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. Статью следует исправить согласно стилистическим правилам Википедии.
Для улучшения этой статьи желательно: Переработать оформление в соответствии с правилами написания статей.Добавить иллюстрации.После исправления проблемы исключите её из списка. Удалите шаблон, если устранены все недостатки.
{{bottomLinkPreText}} {{bottomLinkText}}
Gnutella2
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?