Gnutella2
Материал из Википедии — свободной энциклопедии
Gnutella2, G2 — файлообменный OpenSource P2P протокол, используемый программой Shareaza. Разработан её автором как расширение протокола Gnutella и не был положительно оценен участниками гнутелла-форума.
[править] Отличие Gnutella2 от Gnutella
В общем, две сети похожи между собой, отличаясь форматами пакетов и методом поиска. Формат пакета сети Gnutella в течение долгого времени подвергался критике из-за того, что в нём изначально не планировалось расширение возможностей. Со временем различные разработчики добавляли новые возможности в формат пакета и его структура стала неэффективной и сложной для использования. Сеть Gnutella2 создавалась учитывая ошибки сети Gnutella и изначально разрабатывалась с возможностью расширения. Кроме того, сеть изначально включила в себя расширения, добавленные различными разработчиками к сети Gnutella.
Другое серьёзное отличие одной сети от другой — это алгоритм поиска. Сеть Gnutella использует метод поиска query flooding, а сеть Gnutella2 использует метод обхода сети. При этом методе, узел, с которого осуществляется поиск, собирает список узлов (hub) и связывается с ними напрямую, по одному за раз. Такой способ поиска имеет несколько преимуществ. Он более эффективен, так как продолжение поиска в сети, не увеличивает сетевой трафик экспоненциально. Запросы не направляются через большое количество посредников, и это позволяет клиенту остановить поиск при получении требуемого количества информации. Одновременно повышается сложность созданной сети, поэтому может потребоваться специализированное обслуживание сети.
Также появилось различие в терминологии. Узлы, поддерживающие работу сети в 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.
- iMesh (Windows), Закрытые исходные тексты.
- MLDonkey (Cross Platform), Открытые исходные тексты на языке Ocaml под лицензией GPL.
- TrustyFiles (Windows), Закрытые исходные тексты.