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

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

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

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

Содержание

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

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

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

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

 

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 млн. лет.

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