Главная              Рефераты - Разное

работа по дисциплине: «Сети ЭВМ и телекоммуникации» на тему: «P2P сети» - реферат

Министерство образования Российской Федерации

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Кафедра ИКТ

Курсовая работа

по дисциплине:

«Сети ЭВМ и телекоммуникации»

на тему: «P2P сети».

Выполнила:

Студентка группы С-64

Гришина О.

Проверил:

Орлов П.

Москва 2009

Оглавление

Техническое задание. 3

Теоретическая часть. 4

P2P сети. 4

«Клиент-сервер» и P2P сети. 4

Преимущества пиринговых сетей: 5

Недостатки пиринговых сетей: 5

Стандартизация в области P2P. 5

Области применения. 6

Файлообменные сети P2P. 7

BitTorrent 8

eDonkey2000. 11

Direct Connect 14

Gnutella и Gnutella2. 16

Распределенные вычисления Р2Р. 19

Принцип работы. 19

Применение распределенных вычислений. 20

Проекты распределенных вычислений: 21

ПО для распределенных вычислений. 22

Практическая часть: 23

Заключение. 29

Список использованной литературы: 30

Техническое задание

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

Теоретическая часть:

1. Общее описание P2P-сетей. Принцип работы. Описание существующих топологий. Сферы применения. Преимущества и недостатки P2P-сетей.

2. Обмен файлами, распределенные вычисления. Особенности построения P2P-сетей в зависимости от сферы деятельности, в которой они применяются. Алгоритмы функционирования.

Программные средства:

1. Обзор популярных протоколов для обмена файлами. Сравнительный анализ.

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

Практическая часть:

1. Установка и настройка bitTorrent-трекера.

Теоретическая часть

P2P сети

К Р2Р относятся технологии, предоставляющие компьютерам в сети равноправные возможности обмена различными ресурсами (в том числе и вычислительными). Классическая архитектура - тип сети, в которой все рабочие станции имеют равные возможности и права. Для решения задачи создается одноранговая (peer-to-peer) вычислительная среда, которая позволяет отдельным элементам сети взаимодействовать без помощи серверов. Каждый участвующий компьютер вносит свой вклад в виде файлов, дискового пространства, процессорного времени. «P2P — это технология построения распределенной сети, где каждый узел может одновременно выступать как в роли клиента (получателя информации), так и в роли сервера (поставщика информации) ». P2P сеть (от англ. peer-to-peer, децентрализованная или пиринговая) состоит из равноправных узлов, каждый из которых связан с некоторым подмножеством узлов сети.

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

«Клиент-сервер» и P2P сети.

Централизованная архитектура «клиент-сервер» подразумевает, что сеть зависит от центральных узлов (серверов), обеспечивающих подключенные к сети терминалы (т.е. клиентов) необходимыми сервисами. В этой архитектуре ключевая роль отводится серверам, которые определяют сеть независимо от наличия клиентов. Очевидно, что рост количества клиентов сети типа «клиент–сервер» приводит к росту нагрузок на серверную часть. Таким образом, на определенном уровне развития сети она может оказаться перегруженной. Главным преимуществом такой системы является ее простота. Однако стабильность и надежность таких сетей существенно ниже, чем у пиринговых.

Децентрализованные системы, «чистые P2P сети», примером может послужить сеть Gnutella, представляют собой прямую противоположностью централизованных систем.

Гибридная топология: децентрализованная + централизованная (частично децентрализованная) – в сетях такого типа существуют сервера, основной задачей которых является координации работы, поиск и предоставления информации о существующих машинах сети и их статусе. Частично децентрализованные сети совмещают в себе качества централизованных сетей и надёжность децентрализованных (например сеть не теряет своей работоспособности при возникновении неполадок с одним или несколькими серверами). Примером гибридных файлообменных сетей могут служить: EDonkey и BitTorrent сети.

Рис.1 Топология сетей

Преимущества пиринговых сетей:

· скорость обмена информацией;

· Устойчивость сети к различным сбоям, в том числе устойчивость к внетехнологическому вмешательству;

  • расширяемость — практически неограниченные возможности для расширения информационных ресурсов системы;

· масштабируемость.

Недостатки пиринговых сетей:

  • неуправляемость;
  • проблемы безопасности;
  • информационная несогласованность, недостоверность информации.

Стандартизация в области P2P

P2P — это не только сети, но еще и сетевой протокол, обеспечивающий возможность создания и функционирования сети равноправных узлов, и их взаимодействия. Множество узлов, объединенных в единую систему и взаимодействующих в соответствии с протоколом P2P, образуют пиринговую сеть. Для реализации протокола P2P используются клиентские программы, обеспечивающие функционирование как отдельных узлов, так и всей пиринговой сети.
P2P относятся к прикладному уровню сетевых протоколов и являются наложенной сетью, которая использует транспортные протоколы стека TCP/IP — TCP или UDP. Протоколу P2P посвящено несколько основополагающих документов сети Интернет — RFC (в частности, последний датируется 2008 годом — RFC 5128 State of Peer-to-Peer (P2P) Communication across Network Address Translators).
В настоящее время при реализации пиринговых сетей используются самые различные методологии и подходы. В частности, компания Microsoft разработала протоколы для P2P-сетей Scribe и Pastry. Поддержка протокола PNRP (Peer Name Resolution Protocol), также относящегося к P2P-системам, была включена в состав Windows Vista.
Одну из удачных попыток стандартизации протоколов P2P предприняла компания Sun Microsystems в рамках проекта JXTA. Этот проект реализуется с целью унифицированного создания P2P-сетей для различных платформ. Цель проекта JXTA — разработка типовых инфраструктурных решений и способов их использования при создании P2P-приложений для работы в неоднородных средах.
В рамках проекта JXTA определено шесть протоколов, на основе которых могут создаваться прикладные системы:

· Peer Discovery Protocol (PDP). Узлы пользуются данным протоколом для поиска всех открытых JXTA-ресурсов. Низкоуровневый протокол PDP поддерживает базовые механизмы поиска. Любые прикладные системы могут включать собственные высокоуровневые механизмы поиска, которые реализованы поверх PDP протокола.

· Peer Resolver Protocol (PRP). Этот протокол стандартизирует формат запросов на доступ к ресурсам и сервисам. При реализации этого протокола с узла может быть послан запрос и получен на него ответ.

· Peer Information Protocol (PIP). Данный протокол применяется для определения состояния узла в сети JXTA. Узел, получающий PIP-сообщение, может в полной или сокращенной форме переслать ответ о своем состоянии либо проигнорировать это сообщение.

· Peer Membership Protocol (PMP). Узлы используют этот протокол для подключения и выхода из группы.

· Pipe Binding Protocol (PBP). В JXTA узел получает доступ к сервису через канал (pipe). С помощью PBP узел может создать новый канал для доступа к сервису или работать через уже существующий.

· Endpoint Routing Protocol (ERP). Используя этот протокол, узел может пересылать запросы к маршрутизаторам других узлов с целью определения маршрутов при отправке сообщений.

Области применения

Наиболее распространенными областями применения P2P технологий являются следующие направления:

· Обмен файлами – так называемые файлообменные сети. P2P файлообменные сети являются альтернативой устаревшим FTP-архивам, не соответствующим современным требованиям. Более подробно файлообменные сети рассмотрены далее.

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

· Обмен сообщениями. Jabber, ICQ.

· P2P-телефония. Skype.

· Сети групповой работы. Groove Network (защищенное пространство для коммуникаций), OpenCola (поиск информации и обмен ссылками).

· Параллельное программирование.

· Резервное копирование данных.

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

Файлообменные сети P2P.

Файлообменная сеть — одна из наиболее распространенных P2P-сетей, предназначенная для для совместного использования файлов. В основе технологии P2P лежит принцип децентрализации. Идея распределенных равноправных узлов является альтернативой подходу клиент—сервер.

Первоначально в файлообменных P2P-сетях использовался централизованный подход, при котором существовало несколько выделенных узлов или серверов, например система Napster. В настоящее время во всех крупных сетях применяется так называемый P2P-подход в «чистом виде», т.е. данные сети построены на основе протоколов, позволяющих сети автономно функционировать без серверов.

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

P2P относятся к прикладному уровню сетевых протоколов и являются наложенной сетью, использующей транспортные протоколы стека TCP/IP — TCP или UDP. Протоколу P2P посвящено несколько основополагающих документов сети Интернет — RFC (в частности, последний датируется 2008 годом — RFC 5128 State of Peer-to-Peer (P2P) Communication across Network Address Translators).

Понятие «клиент» или клиентской программы в P2P сетях обозначает программу, обеспечивающую работу узла, эта программа также является реализацией протокола, лежащее в основе той или иной P2P сети.

Популярность P2P сетей связана с некоторыми особенностями технологии одноранговых сетей:

· децентрализация,

· распределенность,

· самоорганизуемость

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

Рис. 2. Распределение трафика Интернет по протоколам (а) и между P2P-сетями (б) (данные по Германии, 2007 г.)

Следует отметить следующие типы файлообменных сетей:

  • Централизованные сети – к ним относят такие сети как Napster, WinMX, Direct Connect.
  • Децентрализованные сети – к ним относятся Gnutella, Overnet, Kad .
  • Гибридные (частично децентрализованные) сети – к ним относят eDonkey2000.

Наиболее популярными файлообменными сетями являются Bittorrent, eDonkey2000, Gnutella2, Gnutella.

BitTorrent

Протокол BitTorrent – пиринговый сетевой протокол обмена данными, созданный Брэмом Коэном. Протокол впервые представлен общественности 2 июля 2001 года, когда программист Брэм Коэн опубликовал его первую реализацию на языке Python. Принципиальное отличие BitTorrent сетей от других пиринговых сетей: направленность на распространение крупных файлов и частично децентрализованная структура сети.

В службе Napster (до ее закрытия) использовалось централизованное управление для получения списка подключенных компьютеров и их списка предоставляемых файлов, но так как обмен файлами происходил непосредственно без участия центрального сервера данная сеть также являлась peer-to-peer сетью. В сетях FastTrack и eDonkey подобных серверов нет, и архитектура сети предполагает максимальную децентрализацию.

Принцип работы:

1. Для инициализации компьютера в BitTorrent сети клиент обращается к серверу, так назваемому трекеру(tracker), который предоставляет информацию о доступных для скачивания файлах, а также выводит статистическую и маршрутную информацию об узлах сети. Для соединения клиента с трекером используется протокол TCP. Входящий порт трекера: 6969.

2. Для того чтобы опубликовать файл, программа разделяет его на части и создает файл метаданных с расширением .torrent, содержащий информацию об имени файла, его размере и тд, хэш-коды сегментов (контрольные суммы, по умолчанию размером 256 КВ) и URL трекера. Первый узел, опубликовавший файл, называется распространителем (seedеr).

3. Для того чтобы получить искомый файл, клиент должен загрузить набор данных с расширением .torrent – файл метаданных. Перед началом скачивания клиентская программа подсоединяется к серверу по протоколу TCP, сообщает ему хеш-сумму запрашиваемого файла и свой адрес, в ответ клиент получает от сервера адреса других клиентов сети, раздающих или скачивающих искомый файл. Клиентская программа в процессе получения информации периодически информирует сервер о ходе процесса скачивания, а также получает обновлённый список адресов.

4. Клиенты в сети устанавливают соединение по протоколу TCP (входящие порты клиентов: 6881—6889), между клиентами происходит обмен сегментами файлов, при этом трекер в данном процессе не участвует, сервер регулярно обновляет информацию о клиентах участвующих в обмене информацией, и другую статистическую информацию. Для копирования сегмента, клиент посылает запрос и в случае, если второй клиент готов передавать сегмент, то первый клиент получает этот сегмент. Клиентская программа выполняет проверку контрольной суммы сегмента и оповещает всех присоединённых пиров о наличии у него данного сегмента. Клиент контролирует целостность каждого сегмента. Для этого он использует контрольные суммы (хэш-суммы SHA1 - Secure Hash Algorithm 1 — алгоритм криптографического хеширования, описанный в RFC 3174.). Данная функция препятствует возникновению в сети битых сегментов и как следствие поврежденных файлов.

5. Клиенты периодически информируют трекер об изменениях в состоянии закачек и обновляют списки IP-адресов.

Рис.3 Принцип работы BitTorrent

Более подробная информация - в спецификации протокола.

Архитектура сети:

Архитектура BitTorrent предполагает пиринговый обмен с использованием центрального tracker-сервера для учета статистики. Трекер(tracker-сервер) — специализированный сервер, работающий по протоколу HTTP. На трекере хранятся следующая информация:

  • IP-адреса,
  • входящие порты клиентов,
  • хеш-суммы, предназначенные для однозначной идентификации объектов.

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

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

В новых версиях протокола были разработаны бестрекерные (trackerless ) системы. В основе работы таких лежит протокол Kademlia. В бестрекерные системах сервер доступен децентрализовано, в форме распределённой хеш-таблицы на клиентах.

Главные особенности BitTorrent сетей по сравнению с другими P2P сетями:

  • самая высокая скорость работы по сравнению с другими пиринговыми сетями и отсутствие очередей, практически моментальный старт закачек;
  • файл разбивается на небольшие сегменты, которые закачиваются по отдельности;
  • возможность просмотра детальной информации о скачиваемом файле (например, для музыкального альбома – это информация о битрейте, треклист, лог-файл программы риппера, обложка), благодаря информационным сайтам, на которых выкладываются торренты;
  • возможность закачки файлов по частям;
  • раздача файлов происходит непосредственно между пользователями, сервера лишь координируют процесс соединения и передачи файлов;
  • после окончания закачки сегменты сразу же доступны для копирования другим клиентам;
  • использование хэш-сумм позволяет контролировать целостность каждого сегмента.

Наиболее популярные торрент-клиенты:

· µTorrent;

· BitComet;

· Anatomic P2P;

· BitSpirit;

Сводная таблица №1

µTorrent

Anatomic P2P

BitComet

BitSpirit

Бесплатный

+

+

+

-

Открытые исходные тексты

-

+

-

-

Windows

+

+

+

+

Linux

-

+

-

-

Mac OS X

+

+

-

-

Русский язык интерфейса

+

-

+

+

Наличие встроенного трекера

+

-

-

-

Шифрование соединений

+

-

+

-

Режим Super-seeding

+

+

-

+

UPnP переадресация

+

+

+

+

NAT переадресация

+

-

+

-

Поддержка DHT

+

-

+

+

Обмен пирами

+

-

+

-

Предварительный просмотр загружаемого медиа

-

-

+

+

Ограничение скорости передачи данных для каждого торрента

+

-

+

+

Поддержка приоритетов

+

-

-

+

Блокировка отдельных пиров

+

-

+

-

Выборочная загрузка файлов из торрентов

+

-

+

+

Поиск торрентов

+

-

+

+

Получение торрентов через RSS-загрузчик

+

-

-

-

Удаленное управление через web-интерфейс

+

-

-

-

Автоматическое обновление продукта

+

-

+

+

eDonkey2000

Сеть EDonkey2000(eDonkey, eD2k) – пиринговая файлообменная сеть, появившаяся в 2000 году. Базируется на основе сетевого протокола прикладного уровня MFTP(Multisource File Transfer Protocol).

В MFTP один и тот же файл запрашивается одновременно у нескольких источников, позволяя добиться более эффективного использования пропускной способности канала и снизить последствия пропадания источников. Одной из ключевых особенностей MFTP является идентификация файлов не по имени, а по содержимому, путём подсчитывания контрольных сумм (хэш - функция MD4, описанная в RFC 1186). Этот принцип гарантирует надежность идентификации файла независимо от его имени, а также контрольные суммы позволяют контролировать целостность получаемых данных в EDonkey2000 сетях, аналогично BitTorrent сетям.

Принцип работы:

1. Для инициализации узла каждый клиент обращается к серверу. При этом сообщая серверу, какие файлы он совместно использует. Каждый сервер в сети содержит и периодически обновляет список файлов всех подключенных к нему клиентов. Информация о файлов в сети размещается клиентом на различных серверах, и представляется в виде ed2k-ссылок, в которых используется уникальный ID ресурса.

2. Клиент посылает запрос поиска его главному серверу через протокол UDP. Все доступные в сети файлы проверяются сервером и он возвращает клиенту список также через протокол UDP.

3. Для загрузки файла сервер создает список клиентов, имеющих или скачивающих запрашиваемый файл или его часть. Затем сервер опрашивает другие, известные ему, серверы на наличие на них клиентов с искомым файлом. При обнаружении клиентов с искомым файлом производится опрос каждого клиента относительно частей данного файла. Данный процесс происходит до тех пор, пока не будет доступен (собран) файл целиком.

Диаграмма 1. Скачивание файла в сети EDonkey2000

Серверы периодически устанавливают соединение друг с другом. Во время этой связи сервер, объявляя о своём существовании, и отсылает список известных ему серверов. В результате получается что серверы таким образом поддерживают списки остальных активных серверов. При соединении клиента с сервером, сервер может предоставить клиенту список всех известных ему серверов.

Более подробная информация - в спецификации протокола.

Архитектура сети:

eDonkey2000 - это гибридная сеть, и одно из главных её достоинств состоит в том, что отключение одного или даже нескольких входящих в ее состав серверов на работу сети практически не влияет. На сервере файлы не хранятся, «индексатор» анализирует подключенные к нему компьютеры на предмет наличия доступных данных и сообщает о результатах анализа пользователям и другим серверам, которые передают информацию по цепочке.

Один из главных недостатков сети заключается в том что: устаревший протокол, не позволяет грамотно распределять закачку с различных клиентов и разгружать начальные источники. Каждому вновь подключившемуся клиенту сервер присваивает рейтинг, влияющий на позицию в очереди на закачку нужного файла. На этот рейтинг влияет количество розданного контента, соответственно, новый пользователь имеет самый низкий приоритет и начнет скачивание в последнюю очередь.

Особенности eDonkey 2000 сетей по сравнению с другими P2P сетями:

· Клиентские программы способны использовать несколько сетей, для создания одной надежной сети (ED2K, Source Exchange, Kad);

· поиск пользователей, независимо от того, к какому серверу они подключены;

· система приоритетов и рейтингов увеличивает скорость закачки;

· каждый файл проверяется на ошибки по мере скачивания;

· развитый чат, интеграция IRC-клиента

Разработчики исходного клиента прекратили его поддержку, однако сеть продолжает функционировать.

Наиболее популярные клиенты:

· eDonkey 2000;

· eMule;

· mlDonkey;

· Shareaza;

Сводная таблица №2

eDonkey 2000

eMule

mlDonkey

Shareaza

Бесплатный

+

+

+

+

Открытые исходные тексты

-

+

+

+

Windows

+

+

+

+

Linux

+

-

+

-

Mac OS X

+

-

+

-

Русский язык интерфейса

+

+

-

+

Шифрование соединений

-

-

-

-

Веб-интерфейс

-

+

-

+

Предварительный просмотр загружаемого медиа

+

+

-

-

Ограничение скорости передачи данных

+

+

+

-

Поддержка приоритетов

+

+

+

+

Наличие чата

+

+

+

+

IRC-клиент

+

+

-

+

Планировщик

+

+

+

+

Автоматическое обновление продукта

-

-

-

-

Direct Connect

Direct Connect — это децентрализованная пиринговая файлообменная сеть, построена по тому же принципу что и, например, eDonkey, Kazaa, Napster в основе работы которой лежит проприетарный протокол, разработанный фирмой NeoModus. Официальной спецификации протокола не существует.

Принцип работы:

· соединение с сетью Direct Connect обеспечивает специальная программа-клиент, устанавливающая связь с хабом — сервером, расположенный в сети Direct Connect, по умолчанию используется порт 411.

Клиентская программа устанавливает соединение к одному или нескольким хабам по протоколу TCP, при этом хабы не связаны друг с другом. Адрес хаб представляется в следующем виде: dchub://example.com [:411], где 411 – используемый порт.

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

· порт 412 используется для соединения между клиентами, если данный порт 411, 412 и 413 будут заняты, то будет использоваться порт 414. Соединение устанавливается напрямую между клиентам минуя хаб. Подключение к пользователю и загрузка файлов базируется вокруг понятия "слотов" (число открытых позиций для работы). Эти слоты обозначают число людей, которым позволяют загрузить файл от пользователя в любой момент. Слотами управляет клиент. Если соединение с другим клиентом установлено, то для загрузки файла клиент передает ему сообщение, содержащее имя искомого файла, номер открытого порта и IP адрес клиента.

· поиск ведется по протоколу UDP, сравнение и идентификация файла выполняется не только по названию, но и по контрольной сумме(хэш-код TTH (Tiger Tree Hashing)). TTH используется для проверки целостность данных.

Используемые порты: TCP: 411 - это стандартный порт на котором работают большиство хабов.

TCP: 1025-32000 DC будет использовать любой порт в этом радиусе для исходящего трафика, поиска или передачи файлов, если он не указан в настройках соединения.

UDP: 1025-32000 DC будет использовать любой порт в этом радиусе для входящего трафика, поиска или передачи файлов, если он не указан в настройках соединения.

Стандарт: 11469/11469 TCP/UDP

Более подробная информация предоставлена в неофициальной спецификации протокола.

Архитектура сети:

Сеть Direct Connect – централизованная. Архитектура сети и ее философия сходны с OpenNap. Также как и в Napster, создатели Direct Connect разрабатывают клиентское и серверное ПО. Отличие состоит в том, что поддержка сети возлагается на ее участников, некоторые из которых организуют хабы. В сети Direct Connect не предусмотрены система хэширования или взаимодействие серверов между собой для создания общей файловой базы. Direct Connect является отличным решением для локальной файлообменной P2P сети.

Особенности Direct Connect сетей по сравнению с другими P2P сетями:

  • развитый чат;
  • возможность получить список файлов пользователя в виде древовидной структуры папок;
  • возможность скачивать целые папки с файлами;
  • присутствие привилегированных пользователей — операторов, обладающих расширенным набором возможностей управления хабом, в частности, следящих за соблюдением пользователями правил чата и файлообмена;
  • идеальное решение для локальных сетей: файлообменная система и чат;
  • скачивание файлов с автоматической докачкой после обрыва связи;
  • ограничения на минимальное количество расшаренного материала;

Наиболее популярные клиенты:

· DC++;

· StrongDC++;

· LinuxDC++;

Сводная таблица №3

DC++

StrongDC++

LinuxDC++

Бесплатный

+

+

+

Открытые исходные тексты

+

-

+

Windows

+

+

-

Linux

-

-

+

Mac OS X

-

-

-

Русский язык интерфейса

+

+

-

Шифрование соединений

-

-

-

Многопоточная закачка

+

+

+

U/D лимиты

-/-

+/+

-

Ограничение скорости передачи данных

-

+

+

Поддержка приоритетов

+

+

+

Наличие чата

+

+

+

Удаленное управление через web-интерфейс

-

-

-

Интеграция с плеером

-

Winamp

-

Проверка расшареного

-

+

+

Автоматическое обновление продукта

+

+

-

Gnutella и Gnutella2

Gnutella — это одна из первых P2P сетей, которая была создана в 2000 г. Каждый подключенный к сети пользователь — является узлом, обрабатывающим и пропускающим поисковые запросы – поэтому возможности, предоставляемые сетью ограничиваются скоростью канала и мощностью компьютера, именно от этих параметров зависит количество связанных хостов.

Протокол, на котором работает Gnutella, не предназначен для передачи файлов - это протокол, обеспечивающий поиск компьютеров и файлов, на его базе построена поисковая система InfraSearch. В связи с серьезными недостатками сети Gnutella пользователи сейчас отдают предпочтение сети Gnutella2, однако сеть Gnutella продолжает функционировать. Протокол Gnutella2 не является более новой версией Gnutella, а является его ответвлением.

Отличия сетей Gnutella и Gnutella2.

Протокол Gnutella2 был создан в 2003. В соответствии с этим протоколом часть узлов становится концентраторами, остальные же - обычные узлы(листья). Каждый обычный узел соединен одним или несколькими концентраторами. А сам концентратор соединен с десятками других концентраторов и с множеством листьев. Узлы периодически отправляют концентратору список идентификаторов ключевых слов, по данным спискам осуществляется определение публикуемых данным узлом ресурсов. Эти идентификаторы хранятся в общей таблице на концентраторе. Списки идентификаторов и запросы пересылаются на концентраторы по протоколу UDP.

Одно из отличий Gnutella2 заключается в возможность размножения в сети информации о файле, при этом копирование самого файла не осуществляется. Обе сети имеют много общего и отличаются в основном только форматами пакетов и методом поиска. Формат пакета сети Gnutella2 изначально разрабатывался с возможностью расширения в отличии от формата пакета сети Gnutella, для которого возможность расширения не предусматривалась разработчиками изначально. Для пакетов, передаваемых внутри сети, создан собственный формат, реализующий возможность увеличения функциональности сети в результате добавления дополнительной служебной информации, данный формат похож на XML.

Другое серьёзное отличие одной сети от другой было в алгоритме поиска. Сеть Gnutella 0.4 использовала метод поиска query flooding, а сеть Gnutella2 использует метод обхода сети или метод блужданий. Ключевая идея метода случайных блужданий (Random Walkers algorithm, RWA) заключается в том, что каждый узел случайным образом пересылает сообщение с запросом, именуемое «посылкой», одному из своих соседних узлов. Чтобы сократить время, необходимое для получения результатов, идея одной «посылки» расширена до «k посылок», где k — число независимых посылок, последовательно запущеных от исходного узла.
Ожидается, что «k посылок» после T шагов достигнет тех же результатов, что и одна посылка за kT шагов. Этот алгоритм напоминает метод RBFS(Метод случайного широкого первичного поиска), но в RBFS предполагается экспоненциальное увеличение пересылаемых сообщений, а в методе случайных блужданий — линейное. Оба метода — и RBFS, и RWA — не используют никаких явных правил, чтобы адресовать поисковый запрос к наиболее релевантному содержанию.
Еще одной методикой, подобной RWA, является адаптивный вероятностный поиск (Adaptive Probabilistic Search, APS). В APS каждый узел развертывает локальный индекс, содержащий значения условных вероятностей для каждого соседа, который может быть выбран для следующего перехода для будущего запроса. Главное отличие от RWA в данном случае — это то, что в APS узел использует обратную связь от предыдущих поисков вместо полностью случайных переходов. Такой способ поиска имеет несколько преимуществ. Он более эффективен, так как продолжение поиска в сети, не увеличивает сетевой трафик экспоненциально. Запросы не направляются через большое количество посредников, и это позволяет клиенту остановить поиск при получении требуемого количества информации. Одновременно повышается сложность созданной сети, поэтому может потребоваться специализированное обслуживание сети.

Также появилось различие в терминологии. Узлы, поддерживающие работу сети в Gnutella, называются Ultrapeer, а в сети Gnutella2 — Hub. Также изменилась топология сети.

Спецификация Gnutella2 состоит из двух основных частей: Gnutella2 Network, в которой описывается архитектура сети, и Gnutella2 Standard, где содержатся требования к приложениям, работающим на базе Gnutella2. Обмен информацией в сети может вестись с помощью двух протоколов - UDP и TCP. Сама сеть будет состоять из двух типов узлов: центральных (hub) и концевых (leaf). Главная роль в организации работы сети принадлежит центральным узлам. Они выбираются из наиболее мощных и наиболее доступных компьютеров, способных выполнять функции обслуживания большого числа запросов.

Принцип работы:

  1. При первом запуске клиентской программы(узел — A), пользователь передает в клиент IP-адрес одного из работающих в сети узлов (узел B). Не зная ни одного адреса работающих узлов, пользователь не имеет возможности установить соединение с сетью. Данная информация предоставляется рядом централизованных серверов.
  2. Клиент посылает запрос узлу B на подтверждение подключения к сети. Если узел B не активен , то клиент посылает ещё один запрос, иначе узел А также посылает второму узлу Ping-запрос. В котором указывает кроме общей информации, содержится Time To Live(TTL) — число, показывающее, количество переходов, который может совершить данный запрос от узла к узлу. При прохождении узла TTL уменьшается на 1(если TTL больше 0 и при условии что они не получали этот запрос ранее - способ защиты от зацикливания). Далее узел рассылает запрос своим соседям. По умолчанию Time To Live = 7.
  3. Все узлы, получившие Ping-запрос, отправляют Pong-ответ, в котором находятся IP-адрес отправителя ответа, номер порта и информация о файлах в фонде обмена. Pong-ответ отправляется тем же путем, что и пришел Ping-запрос. При получении клиентом(узлом А) ответов - составляется список доступных клиенту узлов.
  4. При отправлении пользователем поискового запроса – данный запрос рассылается программой по всем узлам из списка, а клиент ждет входящих сообщений. Каждый из узлов - получивший этот запрос, ищет указанный файл в своем фонде. Если искомый файл был найден, то узел посылает ответ с информацией о файле и о себе (IP-адрес) источнику запроса. Иначе узел не отвечает. После получения ответов, программа выбирает один узел из всех приславших ответы и устанавливает стандартное HTTP-соединение, после чего происходит загрузка файла. Все сообщения (от Ping-запроса до скачивания файла) посылаются по HTTP, что затрудняет их отслеживание и блокировку.

В качестве базового сетевого протокола Gnutella применяет IP, тогда как коммуникации между узлами определяются протоколом прикладного уровня, поддерживающим четыре типа сообщений:

  • Ping – запрос к определенному хосту с целью объявить о себе;
  • Pong – ответ на сообщение Ping, содержащий IP-адрес, порт запрошенного хоста, а также количество и размеры разделяемых файлов;
  • Query – поисковый запрос. В него входят строка поиска и минимальные скоростные требования к отвечающему хосту;
  • Query Hits – ответ на запрос Query , включает IP-адрес, порт и скорость передачи отвечающего хоста, количество найденных файлов и набор их индексов.

Более подробная информация – в спецификация Gnutella.

Архитектура сети.

Gnutella — полностью децентрализованная файлообменная сеть в рамках Интернета, потомок Napster , отличается принципиальным отсутствием центрального сервера. Сеть формируется, когда один пользователь Gnutella соединяется с другим пользователем, после чего они могут обмениваться доступной информацией. Тот пользователь, в свою очередь, соединяются со следующими, в чего результате может получиться сеть с миллиардами узлов. В основе сети Gnutella лежит понятие универсального терминала или сервента (объединение слов "сервер" и "клиент"). Фактически в системе Gnutella был осуществлен переход от централизованной архитектуры сети Р2Р к полностью распределенной системе, что в большей степени соответствует идеологии сети Р2Р.

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

Популярные клиенты:

  • Shareaza;
  • LimeWire;
  • Cabos;
  • mlDonkey;

Сводная таблица №4

LimeWire

Cabos

mlDonkey

Shareaza

Бесплатный

+

+

+

+

Открытые исходные тексты

+

+

+

+

Windows

+

+

+

+

Linux

+

-

+

-

Mac OS X

+

+

+

-

Русский язык интерфейса

-

-

-

+

Шифрование соединений

-

-

-

-

Веб-интерфейс

-

-

-

+

Предварительный просмотр загружаемого медиа

-

-

-

-

Ограничение скорости передачи данных

+

-

+

-

Поддержка приоритетов

-

+

+

+

Наличие чата

+

-

+

+

IRC-клиент

-

-

-

+

Планировщик

-

-

+

+

Автоматическое обновление продукта

+

-

-

-

Наличие встроенного аудиоплеера

+

-

-

-

Распределенные вычисления Р2Р.

Распределённые вычисления — это частный случай параллельных вычислений, представляющий собой способ решения трудоёмких вычислительных задач, разделенных на части, с использованием двух и более компьютеров, объединённых в сеть, для решения частей этих задач. Необходимо, чтобы решаемая задача была разделена на подзадачи, вычисляемые параллельно (сегментирована).

При решении крупных вычислительных задач корпораций и исследовательских центров возникают проблемы обработки больших массивов данных. Идея P2P заключается в решении таких задач путем максимального распараллеливания вычислений среди десятков/сотен тысяч равноправных ПК по всему Интернету и использовании времени простоя пользователей сети.
Раньше обработка результатов проводимых исследований напрямую зависела от имеющихся в научных центрах, компьютеров, т.е. их мощностей. Сейчас на основе распределенных вычислений создается "виртуальный суперкомпьютер", в котором могут участвовать сотни тысяч ПК по всему миру.

Принцип работы.

В большинстве случаев, чтобы принять участие в проекте, владелец ПК должен сначала переписать небольшую программу с web-страницы проекта. После запуска скопированного файла производится установка программы, и она автоматически начинает работу, а вычисления выполняются в те моменты, когда есть свободные вычислительные ресурсы. Программу можно сравнить с хранителем экрана (скринсейвером), который работает в фоновом режиме и не требует вмешательства пользователя. После того как обработка порции данных завершается, при наличии соединения с Интернетом программа посылает результаты расчетов авторам проекта, а затем запрашивает следующую порцию данных для дальнейшей работы.

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

Рис.4 Распределенные вычисления

Применение распределенных вычислений.

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

Объединенная вычислительная система может легко превзойти по мощности обычные компьютеры уровня предприятия. Результат - более быстрое решение задач.

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

Кроме того внутри корпорации проще решаются вопросы безопасности.

Например компания Intel использует тысячи компьютеров своих работников в ночное время, для того чтобы при моделирования микросхем проводить различные сложные вычисления, требующие огромных вычислительных мощностей. Пакет NetBatch, разработанный компанией, позволяет ставить вычислительные задания в очередь и исполнять их на более чем 10тыс. рабочих станций компании в 25 странах.
Программное решение WebProc компании DataSynapse позволяет использовать простаивающие ПК для финансовых расчетов в банках(оценка финансовых рисков в инвестиционном банке и др.). Она работает незаметно для сотрудников компании, поскольку берет управление компьютерами на себя только тогда, когда они свободны. Если сотрудник компании возвращается к своему столу в момент, когда идут вычисления, WebProc немедленно прерывает вычислительную задачу и перенаправляет ее на другую свободную систему. WebProc способна использовать для выполнения ресурсоемких вычислительных задач любые системы, подключенные к корпоративной сети: стоечные серверы или высокопроизводительные настольные ПК.

Кроме того P2P расперделенные вычисления используются для контроль качества обслуживания (QoS). Это традиционно сложная задача, в особенности для Web-сайта, собирающего информацию со всего мира. Компании Entropia и Distributed Science построили глобальные компьютерные матрицы, состоящие из тысяч ПК, подключенных к Интернету по всему миру. В настоящее время эти глобальные распределенные вычислительные сети используются для оценки качества обслуживания сайтов с точки зрения конечных пользователей. Для этого отслеживаются времена отклика на тестовый запрос, запускаемый с разнообразных ПК, подключенных к различным провайдерам и размещенных в самых разных точках.

Проекты распределенных вычислений:

MD@home - российский проект распределенных вычислений. Официально стартовал 23 ноября 2002г. Цель проекта - изучение взаимовлияния аминокислот друг на друга в зависимости от положения в олигопептидах.

SETI@home – один из наиболее известных в мире проектов распределенных вычислений. Поиск радиосигналов от внеземных цивилизаций - поиск сигналов, которые можно было бы расценивать как признаки разумной жизни. Радиотелескоп "Аресибо"в Пуэрто-Рико сканирует космос. Компьютеры пользователей анализируют пакеты данных на наличие внеземных сигналов. Пользователи скачивают с сайта проекта программу - экранную заставку, эта программа присоединяется к решению общей задачи. Программа периодически передает результаты в центр и получает следующую порцию работы. Сервер, расположенный в Беркли(США) интегрирует результаты, собранные от миллионов участников программы. К весне 2003г. в проекте приняли участие свыше 4 млн. добровольцев. Вычисления, которые программа выполнила за 3 года, могли бы занять у одного компьютера 1 млн. лет.

Проект Folding@home ставит своей целью получение более точного представления о болезнях, вызываемых дефектными белками. Изучаются белки, имеющие отношение к болезни Альцгеймера, Паркинсона, диабету типа II, коровьему бешенству и склерозу. Результаты этого проекта выкладываются в свободный доступ, и могут быть сразу же использованы учёными по всему миру.

Distributed.net - проект по проверке стойкости криптоалгоритмов - распределенный взлом паролей. В 2002г. закончился проект RC5–64-взлом 64-битного ключа. Первоначально считалось, что на взлом подобного ключа потребуется примерно сотня лет при использовании мощных ВС. Распределенное на нескольких сотнях тысяч машин позволило взломать ключ такой длины за 5 лет.

Climate Dynamics – проект по климатическим исследованиям. Изучение климатической системы, как единого целого.

Parabon Computation - биотехнология, в некоторых областях фармакологии, например: статистический анализ препаратов для рака.

United Devices – проект разработки инфраструктур для "сбора" неиспользуемых в Интернете ресурсов.

Исследование болезни Альцгеймера

Исследование раковых заболеваний

В настоящее время исследовательские проекты работают на некоммерческой основе. Но некоторые проекты планируют платить за предоставляемые ресурсы (Parabon Computation), выполненная работа измеряется в мегагерц-часах. В 2001г. Нью-Йоркский провайдер Juno Online Service предлагал другую бизнес-модель в которой ресурсы компьютеров его клиентов, имеющих бесплатный доступ в Интернет в обмен на просмотр рекламы, могут также использоваться для распределенных вычислений.

ПО для распределенных вычислений

По сведениям агенства Bloomberg уже более 200 компаний предлагают ПО, использующее концепцию peer-to-peer:

Agent Ware. Управление распределенным контентом на основе XML, Java Entropia. ПО для молекулярной биологии, метеорологии, экологии, экономики.

TurboLinux . Продукт EnFusion позволяет организовать вычисления для разных компьютерных платформ.

E-speak. Платформа Hewlett-Packard для создания электронных сервисов в том числе рапределенных.

iMulet (первый проект iXelerator) - Платформа для создания мультимедийных коммуникационных систем, для создания распределенных сервисов.

Apache Hadoop - свободный Java фреймворк, поддерживающий выполнение распределённых приложений.

BOINC (Berkeley Open Infrastructure for Network Computing) - открытая программная платформа университета Беркли для распределённых вычислений.

Практическая часть:

Поднятие торрент-трекера и сравнение торрент движков.

Torrent-трекер — это веб-сервер, координирующий клиентов сети. Его основная функция заключается в обработке запросов от клиентов, т.е. трекер связывает друг с другом клиентов, но при этом сам трекер в передаче информации участия не принимает.

Существуют разные реализации трекеров: в виде отдельного веб-сервера, в виде модуля для стороннего HTTP-сервера (например, Apache) или в виде движка сайта, написанного, к примеру, на PHP или JSP.

Наиболее популярными проекты по разработке PHP торрент движков являются:

  • TorrentPier. Один из наиболее популярных движков, именно на TorrentPier 0.3.5 основан torrents.ru - один из крупнейших российский BitTorrent-трекеров. Движок основан на phpBB. Подходит для крупных торрент трекеров, за счет оптимизаций и кэширования выдерживает более 300 тысяч пиров, однако при высокой нагрузке могут возникать ошибки. В настоящее время идет активное развитие и доработка версий движков, однако версии из SVN не всегда являются полными, и не дают никаких гарантий. Сейчас доступна версия TorrentPier R775 modern RC9.
  • TBDev/TBSource. Движок написан на php, основные его недостатком является поддержка сравнительно малого числа пиров, не более 50 тысяч. В связи с этим данный движок подходит для небольших трекеров. Доступно множество различных версий и сборок, например: TBDev SZ, TBDev YSE, TBDev InV Edition, идет активное обновление и доработка.
  • Sky-Tracker – торрент движок, основанный на TBDev. Последняя доступная версия: 015a_fix, дата её выхода 29.03.2008.
  • Проект CyBERhype Tracker является доработкой проекта Sky-Tracker, предназначен для небольших локальных сетей, интеграция множества различных сервисов.
  • PHPBTTracker+ . Этот движок является дополнением оригинального PHPBTTracker, созданного DeHackEd. PHPBTTracker+ базируется на PHPBTTracker 1.4 или на PHPBTTracker 1.5 в зависимости от версии 1.х или 2.х. PHPBTTracker + был создан в октябре 2003. Максимальное количество пиров приблизительно 10000 для версии 2.x, и 4500 для версии 1.х.
  • Btiteam. В данный момент существует две версии: BtiT и XBtiT.

Кроме того следует отметить такие проекты как:

  • XBT Tracker. Написан на Си++, не требует веб-сервера, поддерживает UDP. Используется на большинстве крупных западных трекеров. Выдерживает сотни тысяч пиров. Это "голый" трекер, хотя к нему есть интерфейсы под IPB, vBulletin, TBDev, Btit.
  • BNBT и BNBT EasyTracker, написаны на С++, одним из основных недостатков является отсутствие поддержки приватных трекеров (ratio). Данный проект перестал развиваться в 2004-2005 гг.

На основании изученной информации для сравнения были взяты два популярных торрент движка таких как:

  • Движок TBDev InV Edition представляющий собой сборку на базе трекера TBDev Yuna Scatari Edition.
  • Движок CyBERhype Tracker v.1.00 BETA RC2, основанный на веб-форум vBulletin

Установка торрент трекера:

Использованные ресурсы:

· Веб-сервер с поддержкой PHP (Apache)

· PHP 5.0.2

· MySQL 4.1.7

· phpMyAdmin 2.10.2

Процесс установки:

  1. Копирование необходимых данных на сервер.
  2. Создание базы в phpMyAdmin 2.10.2. Установка кодировки БД.

Рис.5 Создание базы данных

  1. Импорт в созданную базу данных файла запросов, в данном случае \TbDev_InV_Edition_new\SQL\tracker.sql. Используемая кодировка базы данных и файла: cp1251

Рис.6 Структура базы данных

Рис.7 Пример: структура таблицы : torrents

  1. Создание пользователя и выдача ему привилегий.

Рис.8 Пользователь и привиллегии

  1. Редактирование PHP файла( в данном случае \TbDev_InV_Edition_new\TBDEV\include.secrets.php) : привязка движка к созданной ранее базу данных.
  2. <?
  3. $mysql_host = "localhost";
  4. $mysql_user = "root";
  5. $mysql_pass = "1111";
  6. $mysql_db = "tbdev";
  7. $mysql_charset = "cp1251";
  8. ?>

Рис.9 Торрент трекер TBDev InV Edition

Установка торрент трекера CyBERhype Tracker v.1.00 BETA RC2 происходит по аналогичному алгоритму, при установке CyBERhype Tracker вместо импорта БД и редактирования php файла необходимо установить install.php.

Рис.10 Торрент трекер CyBERhype Tracker v.1.00 BETA RC2

Сравнение торрент трекеров CyBERhype Tracker v.1.00 BETA RC2 и TBDev InV Edition.

CyBERhype Tracker v.1

TBDev InV Edition

Бесплатный

да

да

Поддерживаемые ОС

Windows, *.nix

Windows

Язык интерфейса

рус/англ

рус

Сборка на основе

vBulletin, Sky-Tracker

TBDev Yuna Scatari Edition

Статистика

+

+

Нагрузка на сервер при одинаковых условиях

Средняя

Низкая

Сгенерировано за

0.060975 секунд с 6 запросами (93.76% PHP / 6.24% MySQL)

0.050372 seconds with 29 queries (79.08% PHP / 20.92% MySQL)

Двойники по ip

+

+

Регистрация с одного ip адреса

-

+

Заливка информации пользователями

uploader

все

Чат

+

+

Закладки

+

+

Журнал пользователей

+, журнал пользователей с низким рейтингом

+

Бонусы

+

+

Загрузка релизов

+

+

Трейлеры

+

-

Группы пользователей

Администратор, Аплоадер, VIP, Модератор, Супер VIP, Пользователь, Гость

Админ, Пользователь, Гость

Опросы

+

+

Лотереи

+

-

Стили

+

-

Наличие доп.модов

+

+

Заключение

В ходе работы были изучены принципы работы P2P сетей и их особенности, проведено сравнение с «клиент-серверной» архитектурой сети и выявлены преимущества и недостатки пиринговых сетей, рассмотрены основные протоколы обмена данными и алгоритмы функционирования файлообменных сетей, таких как BitTorrent, Edonkey2000, Direct Connect, Gnutella, проанализированны и выявлены особенности этих файлообменных сетей, а также клиентских программ, предназначенных для работы в данных сетях. Кроме того в ходе выполнения работы были рассмотрены основные принципы и применение распределенных вычислений, а также основные проекты в которых сейчас применяется данный метод. Получены практические знания по установке и настройке торрент трекеров, а также проведен сравнительный анализ двух установленных движков трекеров.
Список использованной литературы:

  1. Интернет ресурс: http://wikipedia.org
  2. Интернет ресурс: http://book.itep.ru/4/41/p2p.htm
  3. Интернет ресурс: http://www.teamfair.info/DC-Protocol.htm
  4. Интернет ресурс: http://www.bittorrent.org/beps/bep_0003.html
  5. Интернет ресурс: http://tools.ietf.org/html/draft-miller-mftp-spec-02
  6. Интернет ресурс: http://www9.limewire.com/developer/gnutella_protocol_0.4.pdf
  7. Интернет ресурс: http://rhash.anz.ru/hashes.php
  8. Интернет ресурс: http://www.p2pinside.ru/
  9. Интернет ресурс: http://www.nestor.minsk.by/kg/2003/04/kg30405.html
  10. Интернет ресурс: http://www.boinc.ru/Doc/distrib.htm
  11. Интернет ресурс: http://www.dslreports.com/faq/6511
  12. Интернет ресурс: http://www.intuit.ru/department/network/algoprotnet/10/5.html
  13. Интернет ресурс: http://www.emule-project.net/home/perl/general.cgi?l=34
  14. Интернет ресурс: http://translated.by/you/the-bittorrent-protocol-specification/
  15. Интернет ресурс: http://vovikp.h1.ru/bittorrent.htm
  16. Интернет ресурс: http://internetevolution.ru/?p=31
  17. Интернет ресурс: http://www.cs.dartmouth.edu/~campbell/rita-thesis.pdf
  18. Интернет ресурс: http://www.uic.nnov.ru/~chep/html/raznrasp.htm
  19. Интернет ресурс: http://ko-online.com.ua/node/9948
  20. Интернет ресурс: http://www.sabrik.com/articles.php?act=show&id=75