P2P Службы и Протокол Gnutella
Вы узнали об FTP и SMB как о способах получения файлов, а сейчас рассмотрим еще однин Прикладной протокол. Обмен файлами через Интернет стал чрезвычайно популярен. С P2P приложениями, основанными на протоколе Gnutella, пользователи всемирной паутины могут делать файлы на своих жестких дисках доступными, чтобы другие могли их скачать. Gnutella-совместимое клиентское программное обеспечение позволяет нам соединяться со службами Gnutella через Интернет, а затем находить необходимые ресурсы, разделяемые другими участниками Gnutella, и копировать себе.

Многие клиентские приложения доступны для использования через сеть Gnutella, включая: BearShare, Gnucleus, LimeWire, Morpheus, WinMX и XoloX (смотрите скриншот LimeWire на рисунке). В то время как Форум Разработчиков Gnutella поддерживает базовый протокол, производители приложений часто разрабатывают расширения, чтобы заставить протокол лучше работать со своими приложениями.

Многие P2P приложения не используют центральную базу данных для записи всех файлов, доступных для участников. Вместо этого, устройства сети сообщают друг другу при соответствующем запросе, какие файлы доступны, и используют протокол Gnutella и службы для поддержки локальных ресурсов. Смотрите рисунок.
Когда пользователь подключается к службе Gnutella, клиентские приложения начинают искать узлы Gnutella, к которым можно подсоединиться. Эти узлы управляют запросами местоположений ресурсов и отвечают на эти запросы. Также они управляют контрольными сообщениями, которые помогают службе обнаруживать другие узлы. Фактическая передача файлов обычно использует HTTP службы.
Протокол Gnutella определяет пять различных типов пакетов:
- ping - для обнаружения устройства
- pong - в качестве ответа на ping
- query - для локации файла
- query hit - в качестве ответа на запрос
- push - запрос на закачку
Далее: Telnet Службы и Протокол