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

Автор: Пользователь скрыл имя, 17 Марта 2012 в 16:31, курсовая работа

Описание работы

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

Содержание

Техническое задание
Теоретическая часть
P2P сети
«Клиент-сервер» и P2P сети.
Преимущества пиринговых сетей:
Недостатки пиринговых сетей:
Стандартизация в области P2P
Области применения
Файлообменные сети P2P.
BitTorrent
eDonkey2000
Direct Connect
Gnutella и Gnutella2
Распределенные вычисления Р2Р.
Принцип работы.
Применение распределенных вычислений.
Проекты распределенных вычислений:
ПО для распределенных вычислений
Практическая часть:
Заключение
Список использованной литературы:

Работа содержит 1 файл

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

— 1.57 Мб (Скачать)


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

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

 

Кафедра ИКТ

 

 

 

 

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

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

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

на тему: «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-трекера.


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

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-адреса,

       входящие порты клиентов,

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

Информация о работе Сети ЭВМ и телекоммуникации