Автор: Пользователь скрыл имя, 17 Марта 2012 в 16:31, курсовая работа
изучение принципа функционирования P2P-сетей, анализ существующих топологий сетей, алгоритмов работы, протоколов и клиентских программ, основных возможностей предоставляемых P2P-сетями, выявление достоинств и недостатков.
Техническое задание
Теоретическая часть
P2P сети
«Клиент-сервер» и P2P сети.
Преимущества пиринговых сетей:
Недостатки пиринговых сетей:
Стандартизация в области P2P
Области применения
Файлообменные сети P2P.
BitTorrent
eDonkey2000
Direct Connect
Gnutella и Gnutella2
Распределенные вычисления Р2Р.
Принцип работы.
Применение распределенных вычислений.
Проекты распределенных вычислений:
ПО для распределенных вычислений
Практическая часть:
Заключение
Список использованной литературы:
Министерство образования Российской Федерации
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
Кафедра ИКТ
Курсовая работа
по дисциплине:
«Сети ЭВМ и телекоммуникации»
на тему: «P2P сети».
Выполнила:
Студентка группы С-64
Гришина О.
Проверил:
Орлов П.
Москва 2009
Оглавление
Техническое задание
Теоретическая часть
P2P сети
«Клиент-сервер» и P2P сети.
Преимущества пиринговых сетей:
Недостатки пиринговых сетей:
Стандартизация в области P2P
Области применения
Файлообменные сети P2P.
BitTorrent
eDonkey2000
Direct Connect
Gnutella и Gnutella2
Распределенные вычисления Р2Р.
Принцип работы.
Применение распределенных вычислений.
Проекты распределенных вычислений:
ПО для распределенных вычислений
Практическая часть:
Заключение
Список использованной литературы:
Цель работы: изучение принципа функционирования P2P-сетей, анализ существующих топологий сетей, алгоритмов работы, протоколов и клиентских программ, основных возможностей предоставляемых P2P-сетями, выявление достоинств и недостатков.
Теоретическая часть:
1. Общее описание P2P-сетей. Принцип работы. Описание существующих топологий. Сферы применения. Преимущества и недостатки P2P-сетей.
2. Обмен файлами, распределенные вычисления. Особенности построения P2P-сетей в зависимости от сферы деятельности, в которой они применяются. Алгоритмы функционирования.
Программные средства:
1. Обзор популярных протоколов для обмена файлами. Сравнительный анализ.
2. Обзор популярных клиентских программ для обмена файлами. Сравнительный анализ.
Практическая часть:
1. Установка и настройка bitTorrent-трекера.
К Р2Р относятся технологии, предоставляющие компьютерам в сети равноправные возможности обмена различными ресурсами (в том числе и вычислительными). Классическая архитектура - тип сети, в которой все рабочие станции имеют равные возможности и права. Для решения задачи создается одноранговая (peer-to-peer) вычислительная среда, которая позволяет отдельным элементам сети взаимодействовать без помощи серверов. Каждый участвующий компьютер вносит свой вклад в виде файлов, дискового пространства, процессорного времени. «P2P — это технология построения распределенной сети, где каждый узел может одновременно выступать как в роли клиента (получателя информации), так и в роли сервера (поставщика информации)». P2P сеть (от англ. peer-to-peer, децентрализованная или пиринговая) состоит из равноправных узлов, каждый из которых связан с некоторым подмножеством узлов сети.
Информация между узлами в сети, которые на данный момент могут быть не связаны непосредственно друг с другом, передается по принципу, схожему со своеобразной эстафетой — от одного узла к другому узлу, также передача информации может происходить в результате установления временного прямого соединения между узлами. Вся информация о маршрутизации и авторизации сообщений, передаваемых от узла к узлу, хранится на этих же самых отдельных узлах, а не на одном выделенном сервере. Такая организация, в отличие от клиент-серверной, позволяет сети при любом количестве узлов и их сочетании сохранять свою работоспособность.
Централизованная архитектура «клиент-сервер» подразумевает, что сеть зависит от центральных узлов (серверов), обеспечивающих подключенные к сети терминалы (т.е. клиентов) необходимыми сервисами. В этой архитектуре ключевая роль отводится серверам, которые определяют сеть независимо от наличия клиентов. Очевидно, что рост количества клиентов сети типа «клиент–сервер» приводит к росту нагрузок на серверную часть. Таким образом, на определенном уровне развития сети она может оказаться перегруженной. Главным преимуществом такой системы является ее простота. Однако стабильность и надежность таких сетей существенно ниже, чем у пиринговых.
Децентрализованные системы, «чистые P2P сети», примером может послужить сеть Gnutella, представляют собой прямую противоположностью централизованных систем.
Гибридная топология: децентрализованная + централизованная (частично децентрализованная) – в сетях такого типа существуют сервера, основной задачей которых является координации работы, поиск и предоставления информации о существующих машинах сети и их статусе. Частично децентрализованные сети совмещают в себе качества централизованных сетей и надёжность децентрализованных (например сеть не теряет своей работоспособности при возникновении неполадок с одним или несколькими серверами). Примером гибридных файлообменных сетей могут служить: EDonkey и BitTorrent сети.
Рис.1 Топология сетей
скорость обмена информацией;
Устойчивость сети к различным сбоям, в том числе устойчивость к внетехнологическому вмешательству;
расширяемость — практически неограниченные возможности для расширения информационных ресурсов системы;
масштабируемость.
неуправляемость;
проблемы безопасности;
информационная несогласованность, недостоверность информации.
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-сетях использовался централизованный подход, при котором существовало несколько выделенных узлов или серверов, например система 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 – пиринговый сетевой протокол обмена данными, созданный Брэмом Коэном. Протокол впервые представлен общественности 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-адреса,
входящие порты клиентов,
хеш-суммы, предназначенные для однозначной идентификации объектов.