2008-08-22 5 views
1

Прочитав немного больше о том, как функционирует Gnutella и другие сети P2P, я хотел начать свою собственную одноранговую систему. Я подумал, что найду много учебников и языковых агностических руководств, которые могут быть применены, однако мне был встречен неопределенный упрощенный обзор.Почему одноранговое программирование - сложная тема для получения хорошего исследования?

Я мог найти только очень маленький, точный код P2P, который делал не намного больше, чем использование клиент-серверной архитектуры для всех пользователей, чего я не искал. Я хотел что-то вроде Gnutella, но, похоже, нет никаких статей в открытом доступе для присоединения к сети.

ответ

1

Мне пришлось написать базовый клиент Gnutella на C# с использованием веб-служб, и я думаю, что заметки класса на материалах P2P по-прежнему доступны here и here.

1

Я нашел TheoryOrg Unofficial BitTorrent Specification, чтобы быть лучшим онлайн-источником для информации Bittorrent. Кроме того, код Monotorrent довольно прост и понятен. Существует также проект под названием «GCT», который реализует стиль P2P JGroups для локальных/многоадресных сред, а его код также легко понять (если он немного багги).

1

Вы можете попытаться прочитать сообщение Gnutella2 и попытаться реализовать обмен сообщениями. Для чтения концептуального материала вы можете прочитать «Распределенные системы» Эндрю Танненбаума.

1

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

Не обманывайтесь внешним видом Java, существуют ссылки для C/C++/C#, но основные протоколы реализованы в XML, которые должны переводить на любой язык.

Вы также можете скачать бесплатную книгу here.

2

RFC 4981, с его огромной библиографией, может быть очень хорошей отправной точкой.