Лоянич Л. Л. Где найти и как скачать море софта, пареза, фильмов и музыки стр.23

Бтобальная сеть Gnutella представляет собой совокупность специализированного программного обеспечения и протоколов передачи данных, позволяющих любому компьютеру выполнять одновременно роль и сервера, и клиента. Для того чтобы компьютер работал по протоколу Gnutella, на нем должен быть установлен специальный клиент, или сервент (от англ. server и client). Протокол и первый клиент были разработаны Джастином Френкелем и Томом Пеппером в компании Nullsoft в марте 2000 года.

В отдельно взятую единицу времени в сети р2р одни клиенты «слушают», другие «говорят». Правила этого диалога и есть протокол Gnutella. Для координации такого общения каждый пакет помечен дескриптором, сообщающим получателю, какая реакция от него ожидается. Четвертая версия Gnutella различает пять дескрипторов: Ping, Pong, Query, QueryHit и Push. Клиент, начинающий диалог, посылает пакет Ping, «слушающие» компьютеры передают его далее по сети, а затем отвечают на него пакетом Pong. Таким образом определяется, кто на данный момент находится в сети. Каждый пакет Ping и Pong имеет GUID. Pong содержит IP-адрес, номер порта и объем доступной информации на отвечающем компьютере. Интересно, что Pong не пересылается сразу тому компьютеру, который начал диалог, а проходит путь «пингового»! пакета. Это одно из слабых мест протокола. I

Получив pong-ответы и определив область поиска, клиент-! инициатор рассылает ответившим компьютерам пакет Query,! который содержит текстовую строку поискового запроса. Ком-[ пьютер, получивший запрос, ищет файл, в полном пути кото-| рого содержится искомая текстовая строка, и пересылает! пакет Query дальше. Запрос, естественно, имеет срок жизни! (TTL), иначе поиск продолжался бы бесконечно. I

Пакеты QueryHit и Push отвечают за передачу найденным файлов. Клиенты, на дисках которых были найдены необходи] мые файлы, пересылают компьютеру-инициатору QueryHit! который содержит IP-адрес и GUID отвечающего компьютер ра, в знак своей готовности к передаче данных. Клиент-инй| циатор, получив данный пакет, устанавливает с ответивши! ми компьютерами HTTP-соединение и начинает скачиват»

файлы методом GET. Если соединение установить не удалось, клиент-инициатор посылает пакет Push, получив который, клиент-источник сам устанавливает соединение.

Как видно из этого описания, протокол Gnutella обеспечивает полную децентрализацию сети. Каждый компьютер может посылать пакеты всех пяти типов и принимать их. Что же тогда тормозит развитие технологий типа Gnutella?..

Безопасность

Как и в любом протоколе передачи данных, у Gnutella имеются свои заголовки.

Стандартный вид заголовка Gnutella - GNUTELLA СОЫЫЕСТ/версия_протокола\п\п. Многие клиенты позволяют изменить стандартное приветствие для формирования закрытой виртуальной сети. На сегодняшний день это единственное средство обеспечения безопасной передачи данных по протоколу. Понятно, что подобный уровень защиты абсолютно неприемлем для применения в электронной коммерции. Для взлома такой сети достаточно просто перехватить один-единственный пакет и прочитать его заголовок. Кроме того, в отличие от семейства протоколов TCP/IP, Gnutella полностью зависит от программного обеспечения, установленного на сервенте.


⇐ Предыдущая страница| |Следующая страница ⇒