Мегаобучалка Главная | О нас | Обратная связь


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



2020-02-04 416 Обсуждений (0)
Файлообменные сети P2P. 0.00 из 5.00 0 оценок




Файлообменная сеть — одна из наиболее распространенных 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, а является его ответвлением.



2020-02-04 416 Обсуждений (0)
Файлообменные сети P2P. 0.00 из 5.00 0 оценок









Обсуждение в статье: Файлообменные сети P2P.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (416)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)