Смекни!
smekni.com

работа по дисциплине: «Сети ЭВМ и телекоммуникации» на тему: «P2P сети» (стр. 2 из 6)

Первоначально в файлообменных 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).