Тарифы        23.10.2020   

Служебной информации однако централизованные файлообменные. Файлообменная сеть

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

Для разных типов данных применяются разные способы их передачи. К одному из таких способов можно отнести пиринговые сети (P2P), с помощью которых можно обмениваться файлами практически любого размера - от совсем небольших, до тех, которые достигают нескольких десятков гигабайт. Конечно, это не единственная сфера применения одноранговых сетей (это исходное название сетей такого типа). Например, с помощью них можно производить распределенные вычисления, позволяющие задействовать удаленные компьютеры пользователей для выполнения сложной обработки данных. Но в рамках нашего материала мы будем рассматривать эту технологию, именно как удобный инструмент для файлообмена в сети между пользователями.

Пиринговые сети имеют свои правила обмена данными между пользователями, а для осуществления самого обмена требуется использование определённых программ. Наверняка многие из вас слышали такие названия, как µTorrent, eMule, Shareaza, KaZaAи прочие, которые упоминаются, как правило, когда речь заходит о получении какой-либо информацией из сети. Но давайте обо все по порядку. В этом материале мы разберемся, что же такое пиринговые сети, а так же обратим внимание на их самые важные и ключевые моменты работы, дабы принцип их существования стал более понятным.

ЧТО ТАКОЕ ПИРИНГОВЫЕ СЕТИ

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

Одним из таковых является вариант, когда все объединённые между собой компьютеры имеют равнозначные функции, то есть, могут, как принимать информацию, выступая в роли сервера, так ее и отдавать, выступая в роли клиента. Такие сети получили название одноранговых или пиринговых (P2P), от английского «peer-to-peer», что дословно можно перевести как, «равный к равному». Еще такие сетевые объединения называют децентрализованными.

ПРИНЦИП РАБОТЫ ПИРИНГОВЫХ СЕТЕЙ

По своей сути пиринговая сеть представляет собой объединение компьютеров, которое базируется исключительно на равноправии всех участников, называемых в таких системах пирами. От клиент-серверной архитектуры, легшую в основу построения Интернета, такие сети отличаются непосредственно тем, что подобная организация способна сохранить работоспособность совершенно всей пиринговой сети при любом количестве доступных узлов (пиров), а также при любом их сочетании. То есть, при работе с обычными сетями все зависит от пропускной способности самого сервера, а в случае пиринговых сетей такого существенного недостатка нет.

Что бы более наглядно понять разницу между клиент-серверной и пиринговой архитектурой, давайте рассмотрим пример передачи файла по сети в каждой из них. Любая информация в сети передается небольшими кусочками, так называемыми пакетами. Чтобы передать файл от одного компьютера другому, его тоже необходимо разделить на множество частей (пакетов), которые после скачивания собираются в единое целое на машине пользователя, который этот файл запросил.

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

С пиринговой моделью передачи данных по сети дела обстоят несколько по-другому. Здесь не нужно находить конкретный сервер (узел), содержащий необходимый вам файл. С помощью специальных каталогов достаточно просто убедиться, что он где-то присутствует в сети. Если объект найден, то вы легко его можете скачать с помощью специальной программы. Основное отличие от вышеописанного способа заключается в том, что кусочки файла будут приниматься одновременно от нескольких источников. Помните, о чем мы говорили ранее? В одноранговых сетях все компьютеры пользователей являются серверами, а это значит, что закачка файла может вестись одновременно с многих машин, на которых он имеется. Именно поэтому, если каких-то пользователей имеющих нужный вам объект в определенное время не будет в сети, то выручат другие, а скорость получения информации, будет зависеть от количества людей, имеющих ее и конечно, возможностей вашего пропускного канала.

Как уже было сказано ранее, одной из основных сфер применения P2P-сетей является обмен файлами. Описанная выше модель «чистой» одноранговой сети в современной сфере файлообмена практически не встречается. Несмотря на некоторые преимущества такого варианта, например высокую скорость распространения запросов и надежность самой системы, при такой организации обмена данными, существуют и недостатки. Одним из таковых можно назвать сложность поиска именно тех пользователей, у которых имеется нужный в данный момент времени файл и в тоже время находящихся в сети в активном состоянии. Разрешить эту трудность, удалось с помощью использования гибридных сетей, где все же существуют выделенные серверы, на которые возложены функции координации работы, поиска существующих машин в сети, а так же определения их текущего статуса («в сети» или «не в сети»). Именно такая гибридная модель и была положена в основу большинства современных пиринговых файлообменных сетей.

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

ПОПУЛЯРНЫЕ ФАЙЛООБМЕННЫЕ P2P-СЕТИ

В глобальной сети существует несколько десятков крупных файлообменных сетей и огромное количество небольших, например, действующих в рамках одного провайдера. Несмотря на то, что все эти системы являются одноранговыми (децентрализованными) или гибридными (частично децентрализованными) и используют общую концепцию передачи данных, характерную для этих сетей, у каждой из них могут быть свои уникальные принципы и критерии существования, протоколы передачи данных, а так же собственное клиентское программное обеспечение.

К наиболее крупным и популярным файлообменным сетям можно отнести:

  • ED2K (eDonkey2000). Для обмена файлами по протоколу MFTP используется клиент eMule или более устаревший Edonkey. Поддержка этого проекта была прекращена разработчиками в 2005 году, правда сама сеть продолжает функционировать.
  • BitTorrent - самая популярная файлообменная сеть, с высокой скоростью передачи данных. К основным клиентам можно отнести uTorrent, BitComet, BitSpirit, Azureusи прочие.
  • Direct Connect - связанные между собой небольшие хабы (сервера), используемые для поиска информации на компьютерах участников этих сетей. Используется для организации файлового обмена в крупных районных или городских локальных сетях. Основной клиент - DC++.
  • Gnutella и Gnutella2 - одноранговые сети в чистом виде, использующие для передачи данных свой собственный протокол, разработанный фирмой Nullsoft. Основные клиенты: Shareaza, LimeWire, Phex, Morpheusи прочие.
  • FastTrack. Использует классическую версию протокола P2P, правда в передаче информации участвуют только те источники, которые имеют полные версии файлов. Основные клиенты - KaZaA, giFT(KCeasy) и mlDonkey.

ПРАВИЛА ФАЙЛОВОГО ОБМЕНА В ПИРИНГОВЫХ СЕТЯХ

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

Как уже было сказано выше, в основе P2P-сетей лежит принцип равноправия, из которого следует, что файлы нужно не только скачивать, но и обязательно ими делиться. Это самое основное правило, нарушать которое нельзя. Если вы желаете только получать информацию, то в таком случае к вашим услугам множественные файлообменные серверы, типа DepositFiles, Rapidshare, Letitbit, Vip-Files и прочих, использующих клиент-серверную архитектуру. Правда, бесплатно скачивать данные с таких серверов получиться только после просмотра кучи рекламы и на низкой скорости.

Участвуя в обмене файлов в пиринговых сетях желательно больше отдавать информации, чем получать или как минимум делать это в равных частях. Если объем скачиваемой информации будет превышать количество отдаваемой в несколько раз, скорее всего к такому участнику будут применены штрафные санкции, не позволяющие получать данные до тех пор, пока пользователь не начнет ими делиться с другими.

Чтобы не попадать в неприятные ситуации, следует придерживаться нескольких элементарных правил:

  • После того, как закончилось скачивание файла, не нужно его сразу удалять. Пока есть возможность, продолжайте держать его на вашем компьютере, чтобы дать возможность другим скачивать его.
  • Не перемещайте скаченные файлы сразу же после их загрузки, иначе они станут недоступными для других пользователей.
  • Без особой необходимости не стоит занижать скорость исходящего соединения. Естественно, это является определенной нагрузкой на компьютер, однако при низкой скорости отдачи и объемы информации, получаемые от вас другими пользователями, будут малы.
  • Помните, что ваши интересы могут не совпадать с интересами других пользователей, так что на всякий случай, держите всегда на своем компьютере несколько популярных файлов, которые будут интересны многим.

ЗАКЛЮЧЕНИЕ

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

Правда, в последнее время над некоторыми пиринговыми сетями стали сгущаться тучи. А всему виной - распространение через них огромного количества пиратского контента. Вопрос о защите авторских прав при использовании таких сетей сейчас стоит очень остро, ведь распространение таким способом некоторых материалов, безусловно, нарушает авторские права владельцев. Некоторые правообладатели, пытаясь запретить бесплатное распространение контента, с переменным успехом добиваются запрета или ограничения на функционирование некоторых популярных серверов (трекеров) пиринговых сетей. Дискуссии на эту тему уже давно ведутся, только к какому-то конкретному выводу, равно как и действию, на данный момент, прийти, еще пока не удалось. Как следствие - защищенные копирайтом файлы как распространялись, так все еще и распространяются.

Работа таких сетей основана на равноправии участников, то есть в них нет выделенных серверов, а каждый компьютер может быть как сервером, так и клиентом. В чем преимущество такой организации? В том, что работа сети не нарушится, если выйдет из строя какой - нибудь узел (компьютер), и можно спокойно продолжить пользоваться сетью. Причем совсем необязательно днем и ночью мучить компьютер беспрерывной работой, потому что любой пользователь сети P2P может приходить и уходить, когда ему захочется.

P2P сети делятся на централизованные, децентрализованные и гибридные.

Первый вид - это сети, в которых служебную информацию (все - таки нужна инфраструктура для объединения разбросанных клиентов между собой) хранят индексационные серверы. Достоинства - это небольшой объем служебной информации, передаваемой на сервер и простота программирования таких сетей. А вот недостаток все же серьезный - при выходе из строя индексационных серверов сеть перестает работать.

В децентрализованных сетях нет таких серверов, но объем передаваемой служебной информации больше. Однако нет способов заставить такую сеть перестать функционировать.

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

Что же необходимо сделать, чтобы стать участником файлообменной сети? Во - первых, нужно установить соответствующую типу сети файлообменную программу, которая создана специально для скачивания файлов по сети. Затем, после подключения к сети, взять файл - это может быть программа, музыкальный файл, картинка и т.п. - и «расшарить» его, т. е. дать к нему доступ другим пользователям сети. Как правило, объем таких файлов должен быть несколько гигабайт, но размер не ограничен. Хотя не надо полностью расшаривать свой жесткий диск, особенно системные папки. Открытые для общего доступа директории другие пользователи не смогут изменить и удалить, они имеют возможность их только скачать. Миллионы людей «расшаривают» свои файлы, поэтому все, что еще ннужно сделать - воспользоваться поиском, который присутствует в файлообменной программе и ищет ресурсы, выложенные подобным образом на других компьютерах сети. Число пользователей файлообменников огромно, благодаря этому искомый файл наверняка найдется. Итак, осталось лишь скачать найденные ресурсы, причем бесплатно.

Казалось бы, все отлично - ставь программу, ищи и качай, но и тут есть свои подводные камни. Один из них - доступна для перехвата часть информации об IP - адресах и ресурсах участников, так как хранится и пересылается она в незашифрованном виде. Еще одна проблема-распространение “червей” и фальсификация ID ресурсов для их подделки. Эти вопросы решаются различными средствами, но о полной безопасности говорить пока рано.

А теперь поговорим об одном из ярких представителей децентрализованной файлообменной сети типа P2P - Direct Connect или DC , что расшифровывается как “соединение напрямую”. Это одна из самых популярных сетей P2P в мире, во многом потому, что:

  • в ней присутствует развитый многопользовательский чат
  • сервер (хаб) может быть посвящен конкретной тематике, например, определенному жанру фильмов, что облегчает поиск пользователей с необходимыми файлами
  • в зависимости от клиента, можно скачивать целые директории, установить ограничения на минимальный объем расшаренного материала, получить список файлов пользователя в виде древовидной структуры и т.д.

В специальной программе - клиенте для сети DC указывается, какие папки будут доступны для скачивания, затем она подключается к общему серверу в локальной сети и с помощью него позволяет увидеть другие, подключенные к серверу, компьютеры.
Рассмотрим наиболее популярные файлообменные клиенты для DC , а именно DC++ , ApexDC++ и FlylinkDC ++ . Все они являются программами open source, т.е. с открытым исходным кодом.

По умолчанию, ApexDC++ поддерживает английский интерфейс. Для того, чтобы его русифицировать, нужно скачать специальный файл русификации.

Среди возможностей ApexDC++ есть такие, как блокировка IP - адресов, обновление IP - адреса при запуске, функция сохранения списка нежелательных пользователей, чат.
Версия построена на основе StrongDC 2.22 , который представляет собой модификацию DC++ , с многочисленными улучшениями.

Интуитивно понятный интерфейс позволяет настроить программу под свой вкус, имеется возможность сменить тему оформления программы.

Заключение

Среди рассмотренных файлообменных клиентов для сетей Direct Connect нельзя выделить какой – то один, все они родственны, и различия можно увидеть, установив какой – либо из них себе на компьютер и посмотрев, что нравится, а что нет именно вам.

Итак, если вы хотите вступить в файлообменное сообщество, скачайте какой-либо из клиентов и освободите побольше места на жестком диске - теперь оно вам точно пригодится!

Илья Евсеев (С.-Петербург)

Файлообменные сети (Peering networks, peer-to-peer, P2P) уменьшают нагрузку на существующие серверы FTP и HTTP и ведущие к ним каналы, распределяя ее между всеми участниками сети. Они используют собственный набор протоколов и ПО, несовместимый с FTP/HTTP и обладающий важными особенностями.

Чем файлообменная сеть отличается от FTP и HTTP?

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

Второе отличие заключается в роли сервера: FTP- и HTTP-серверы просто хранят и передают данные клиентам. В файлообменной сети задача сервера (если его наличие вообще предусматривается конкретным протоколом) сводится не только и не столько к хранению и передаче данных, сколько к координации клиентов:

* какой IP-адрес какому клиенту принадлежит;

* у какого клиента какие файлы имеются;

* какие фрагменты каких файлов где находятся;

* кто сколько скачал себе;

* кто сколько дал скачать от себя другим.

Таким образом, в файлообменной сети присутствуют программы не двух, а трех типов:

— клиент-водовоз, который и скачивает, и отдает;

— сервер-координатор (отдает также файлы клиентам, которые обращаются за ними первыми).

При этом в одной программе может быть совмещено несколько функций.

Как работает типичная файлообменная сеть?

* Сервер, отдавая клиенту файл, запоминает IP-адрес клиента и имя файла;

* Если клиент запрашивает у сервера файл, уже имеющийся у других клиентов, сервер указывает ему IP-адреса этих клиентов;

* Клиенты информируют сервер обо всех клиентах, которые к ним подключаются, и файлах, которые те за-прашивают;

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

Даже если ваша любительская сеть или клиентская сеть Интернет-провайдера закрыты для внешнего доступа, пиринговые системы могут оказаться полезными для передачи данных внутри такой сети. Например, некто с безлимитным тарифом скачивает из Интернета нечто громоздкое, затем остальные абоненты скачивают данные от него (и друг от друга!) через P2P.

Достоинства файлообменной сети

* Поскольку каждый клиент, который что-то скачал, сам готов отдавать данные другим клиентам, постепенно становится много узлов, с которых новые желающие могут получить данные;

* Принимающий узел получает возможность формировать очереди закачки c отдающих узлов пропорционально скоростям приема — чем быстрее связь, тем больше блоков будет скачано с узла;

* Если один из отдающих узлов выключается, это не приводит к срыву закачки в целом;

* У каждого из отдающих узлов нагрузка на сеть снижается тем сильнее, чем их больше;

* Скорость закачки будет ограничиваться (в идеале) только шириной входного канала принимающего узла, поскольку это единственное место, где сводится воедино трафик от многих источников.

Peer-to-peer, клиент-сервер и метаданные

Поскольку клиенты и принимают, и отдают, файообменные сети принято относить к одноранговым сетям, или сетям типа peer-to-peer (равный к равному, P2P). В чем отличие от архитектуры «клиент-сервер», по которой выполнены протоколы FTP и HTTP?

В сети типа «клиент-сервер» сервер — это компьютер, занимающийся непосредственно хранением и/или обработкой полезных данных: файлов, баз данных и т. д.

В P2P-сети в зависимости от конкретного протокола сервер не требуется вообще, требуется обязательно (как в ICQ) или требуется опционально (как контроллер домена в сети Microsoft). Но в любом случае хранением и обработкой данных он не занимается — это задача клиентов. Сервер только управляет их работой и хранит различные служебные данные, необходимые ему для управления.

Например, контроллер домена в сети Microsoft Windows централизованно хранит списки пользователей, а рабочие станции могут напрямую обмениваться друг с другом файлами через сетевые папки (shared folders), которые каждая может как отдавать («расшаривать») в общий доступ, так и подключать из сети; при этом как в правах доступа к папкам, так и в запросах на подключение фигурируют имена пользователей, хранимые и проверяемые контроллером домена.

Служебные данные для обслуживания полезных данных принято обозначать термином «метаданные». Пример: содержимое файла является полезными данными, а его имя, координаты на диске, права доступа, время создания и т. д. — это метаданные. Еще пример: Веб-страницы на HTTP-сервере — это полезные данные, а запись соответствия имени (или имен) HTTP-сервера его IP-адресу (или IP-адресам), хранимая на DNS-сервере, это метаданные, необходимые для координации доступа к веб-страницам.

Капитализм против популизма

Заклятыми врагами файлообменных сетей являются производители любой информации, предназначенной для массовой продажи — музыки, фильмов, книг и ПО, так как пользователи P2P-сети получают возможность бесконтрольно обмениваться всем этим друг с другом, минуя официальных продавцов. Более того, большинство P2P-сетей создано в первую очередь именно для этих целей!

Бороться с бесплатным распространением юридическими средствами имеет смысл при соблюдении двух условий:

* протокол обмена предусматривает наличие координирующего сервера;

* разработчик протокола либо не распространяет программу-сервер вообще, либо распространяет только за деньги.

В таком случае объектом судебной атаки становятся владельцы серверов, а без них тихо умирает и вся сеть. Во всех остальных случаях сеть просто не имеет фиксированных точек, ударами по которым ее можно парализовать. Поэтому пользователи сравнительно более примитивного однорангового протокола Gnutella могут не опасаться неприятностей, а более совершенный Napster, основатель одноименной файлообменной сети и фактически первооткрыватель идеи для массового потребителя, был в итоге засужен Американской Ассоциацией производителей звукозаписей (RIAA). Хронология этих событий увлекательно описана на сайте Грани.ру.

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

Что касается Napster, то его коммерческий успех был обусловлен той же причиной, что и плачевный конец в 2000 году, — централизованностью. Благодаря ей Napster теоретически имел возможность продавать:

* ключи регистрации для программы-клиента;

* право подключения к серверу-координатору на определенный период или на количество раз;

Нынешний Napster вместе со сменой владельцев изменил и правила работы:

* ПО переписано практически полностью;

* доступ к серверу возможен только по подписке;

* количество файлов, загружаемых клиентом за месяц, ограничено;

* пересылка того или иного файла может быть заблокирована по заявлению обладателя прав на оригинал;

* обладатели прав на передаваемые по сети данные получают за это лицензионные отчисления от Napster.

Экскурс в историю

Первый этап: братство сети

Первоначально количество компьютеров было невелико, все они были дорогими и многопользовательскими. Терминальные устройства, за которыми работали пользователи, представляли собой симбиоз пишущей машинки, телевизора и программируемого микрокалькулятора, их единственная задача — предоставлять интерфейс для обращения к главному компьютеру. Поэтому с появлением локальных сетей вопрос о предоставлении доступа к ресурсам другого компьютера не возникал — такой доступ был всего лишь развитием уже существующего доступа через терминал. Свою роль играло и то, что значительная часть компьютерного парка находилась в ведении университетов с их весьма демократичной атмосферой. Это формировало слабую дисциплину разработки программ-сервисов и их обслуживания. Каждый компьютер был настроен на обслуживание любого желающего в гостевом или транзитном режиме, если это позволял соответствующий протокол. Например, почтовый сервер Санкт-Петербургского Центра суперкомпьютерных приложений вплоть до осени 1998 года работал в режиме open relay, то есть соглашался пересылать по назначению почту, поступающую от любых внешних клиентов — прекрасный способ забросать Сеть рекламой и остаться незамеченным.

К тому же первые DNS-серверы, в отличие от нынешнего иерархического режима (сбор и рассылка обновлений осуществляются по цепочке «клиент — провайдер — корневой сервер имен»), обменивались данными напрямую. Хотя такая схема открывала богатые возможности для подтасовок, отказались от нее не из-за проблем с безопасностью, а из-за той перегрузки сети, к которой она приводила. Можно сказать, что первоначально Интернет представлял собой одноранговую сеть, и ее техническое несовершенство с учетом малых на тот момент размеров и низкого профессионализма пользователей было некритично.

Второй этап: IBM PC наносит ответный удар

Бум Интернета стал следствием бума персональных компьютеров. Четкое деление «клиент-сервер», которое существует в Интернете с момента его массового распространения и по сей день, обусловлено следующими свойствами ПК:

* ограниченность аппаратных ресурсов;

* недостаток серверного ПО;

* отсутствие полноценной многозадачности, мешающее запускать сетевые сервисы в фоновом режиме;

* повременная оплата соединения с Интернетом через модем;

* постоянная смена IP-адреса, зависящая от выбора провайдера, телефонного номера и номера линии в многоканальном соединении;

* дефицит IP-адресов и беззащитность клиентских компьютеров перед атаками из сети заставляла владельцев сетей «прятать» их от доступа извне за прокси-сервер, сетевой фильтр (firewall) и транслятор сетевых адресов (NAT).

Вследствие этих причин персоналка до поры до времени могла быть в сети только клиентом.

Третий этап: возвращение джедая

К моменту появления первой получившей всеобщее признание файлообменной сети Napster положение дел на рынке ПК было следующим:

* персональные компьютеры стали достаточно мощными;

* настольные операционные системы стали многозадачными;

* программы для организации сервера доступны для всех основных ОС;

* на смену коммутируемым подключениям пришли выделенные, в которых и время на линии, и исходящий трафик бесплатны;

* постоянные подключения позволили делать IP-адрес клиента неизменным;

предстоящее внедрение нового протокола IPv6, в котором под адрес компьютера отводится 128 бит (вместо 32 бит в нынешнем IPv4), позволит провайдерам выдавать клиентам глобально видимые IP-адреса без ограничений;

* появились персональные средства защиты (антивирусные мониторы и сетевые фильтры), способные предохранить ПК от заражений и сетевых атак.

Средний компьютер снова дорос до того, чтобы быть сервером. Но теперь такой сервер имеется в каждой квартире.

Идентификация файлов

Собственно получению файла предшествуют два действия, поддержке которых в FTP/HTTP достаточного внимания не уделено:

* пользователь выбирает файл на сервере;

* клиентская программа получает от сервера надежный идентификатор файла, после чего отправляет запросы на файл с данным идентификатором другим клиентам.

Перечислю сведения о файле, которые сервер, в принципе, может сообщить пользователю, чтобы тот сделал выбор:

имя, размер, время создания и прочие метаданные, предоставляемые файловой системой;

сведения из файлов-описателей, расположенных в том же каталоге (FILE_ID.DIZ, README*, *.LSM, FILES.BBS, DESCRIPT.ION и т. д.);

начальная часть текста, если файл хранит текст (DOC, PDF и т. д.);

содержимое комментариев, если таковые предусмотрены в формате файла (DOC, MP3, EXE, ISO, RPM, ZIP, RAR и т. д.);

Что является надежным идентификатором для файла? Во-первых, GUID, глобально-уникальный идентификатор, автоматически генерируемый и назначаемый файлу в момент публикации. Во-вторых, контрольная сумма, вычисляемая по содержимому файла. Даже если файл будет опубликован независимо несколькими узлами, с разными GUID, по контрольной сумме все равно можно будет понять, что это один и тот же файл. Хотя вычисление контрольных сумм занимает много времени, многие P2P-программы определяют их в фоновом режиме.

Подробнее о GUID

Привычный способ указания программы, которую мы хотим запустить, — указание ее имени в файловой системе, например: C:WinNTSystem32cmd.exe или \servergamestetristet.exe. Протокол HTTP позволяет запускать программы на выполнение другим компьютером удаленно (remote). Например, команда http://www.mail.ru/cgi-bin/auth запустит на сервере Mail.ru утилиту авторизации и выведет на ваш экран веб-страницу, сгенерированную этой утилитой, присланную вам для заполнения и обратной отправки. При повторном запуске утилиты авторизации на Mail.ru произойдет проверка введенных вами данных и вывод веб-страницы с содержимым почтового ящика.

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

* 48-разрядный адрес сетевой карты;

* текущее время;

* случайный «довесок».

Об удобстве чтения и запоминания речь не идет, поскольку GUID никогда не приходится вводить вручную: программа-клиент всегда хранит фиксированный GUID программы-сервера, для взаимодействия с которой она разработана, а при разработке GUID назначается создаваемым компонентам если не автоматически, то через буфер обмена путем Cut’n’Paste.

Стоит подчеркнуть еще раз: GUID и IP-адрес компьютера — это разные вещи! GUID — это номер (если угодно, адрес) программы внутри компьютера, остающийся неизменным, на каком бы компьютере и в каком каталоге она не была инсталлирована, однако гарантированно не совпадающий с номером любой другой программы. Эти номера позволяют серверу различать разные программы, а клиенту — находить разные экземпляры одной программы на разных серверах. Теоретически алгоритм генерации, принятый сейчас в качестве стандартного, обещает отсутствие случайных совпадений приблизительно до 3400 года. Увы, как минимум одно такое совпадение уже было: вкладка свойств видеокарты S3 для Панели управления и один из компонентов переводчика Stylus имели одинаковые GUID.

Соответствие между GUID и именем файла программы, запускаемой по приходящим из сети запросам, хранится где-то в общесистемных настройках, куда заносится при инсталляции программы. Например, в Windows для этого используется ветка реестра HKEY_CLASSES_ROOT CLSID, а для регистрации в ней — утилита RegSvr32. GUID в Windows назначаются не только сетевым сервисам, но и вообще всему, что может быть запущено или загружено и нуждается в однозначной идентификации: DLL-библиотекам, классам и т. д.

Почему файлообменная сеть совершеннее HTTP/FTP?

P2P-сеть является полноценной распределенной системой, то есть:

* одни и те же данные резервируются на множестве узлов;

* список узлов формируется и обновляется автоматически;

* у клиента существует возможность так же автоматически выбирать узлы для получения данных;

* при выходе из строя части узлов система остается работоспособной.

В то же время FTP/HTTP используют только ту информацию о файле, которая предоставляется им файловой системой, на которой файл расположен: имя, размер, дата создания и последнего доступа — никакие из этих метаданных не уникальны.

Такая же проблема существует не только на сетевом, но и на внутримашинном уровне: попытка разработчика приложения искать динамическую библиотеку (DLL) в общесистемном каталоге по имени вполне может привести к тому, что будет по ошибке за-гружена библиотека с тем же именем, но установленная другим пакетом и хранящая другой набор подпрограмм (с другими или, еще хуже, совпадающими именами). Этой проблемы можно было бы избежать, будь у библиотек названия вида «фирма_продукт_компонент», но пока названия типа strutil, myutil или xbase можно встретить гораздо чаще. Поэтому в протоколах передачи управления и данных через сеть, альтернативных HTTP с надстройкой в виде CGI-BIN, таких, как CORBA и Microsoft DCOM, вызов серверного компонента осуществляется не по имени файла, а по GUID. GUID представляет собой 128-разрядное двоичное число, сгенерированное автоматическим образом на компьютере разработчика из следующих компонентов:

По этой причине ни базовый FTP, ни базовый HTTP распределенными системами не являются. Один и тот же файл или веб-страница могут иметь на разных узлах разное имя. И наоборот, разные файлы и страницы на разных узлах могут называться одинаково. У клиента нет надежного способа определить, на каких узлах находятся требуемые данные. И, как уже говорилось, FTP/HTTP-клиенты по мере получения данных не становятся их распространителями и не разгружают от запросов оригинальный сервер.

Самолет = автомобиль + крылья

В рамках FTP/HTTP-протоколов передачи, наверное, можно было бы добиться близкой к P2P функциональности, внеся следующие дополнения в поведение клиентов и серверов:

* на каждом клиенте в фоновом режиме запускается FTP/HTTP-сервер, чтобы отдавать файлы другим клиентам;

* дополнительная программа, запускаемая на каждом сервере, вычисляет контрольные суммы для публикуемых файлов и записывает их в расположенные рядом служебные файлы-описатели;

* вместе с файлами скачиваются их описатели;

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

* перед началом закачки клиенты загружают с поисковых серверов базу со сведениями о файлах, сообщая серверам о своем существовании (посредством записей, остающихся в log-файле сервера, или специальными уведомлениями через CGI-BIN).

Очевидно, что при таких серьезных усовершенствованиях легче разработать абсолютно новый протокол и программное обеспечение с нуля, нежели цепляться за уже существующие стандарты, что и было сделано Napster’ом, а следом за ним и многими другими.

Аэропорт = самолеты + тягачи

Впрочем, одно применение протоколу HTTP в P2P-сетях все же нашлось. Дело в том, что встроенные возможности P2P-протоколов не позволяют составлять полную базу поиска файлов, не перегружая сеть (та же проблема, что и в ранних версиях DNS). Желательно наличие выделенных компьютеров, которые будут вести список известных P2P-серверов, просматривать их в качестве клиентов, дублировать у себя полученную информацию и предоставлять ее настоящим клиентам, не беря на себя координирующих функций. Такое предоставление сведений может осуществляться как через P2P-протокол, так и через обычный веб-интерфейс. Например, сайт www.filedonkey.com/ является веб-интерфейсом поисковой системы по серверам EDonkey2000. Точно так же, кстати, работает поисковая служба FileSearch.ru, но применительно к протоколу FTP: в качестве FTP-клиента обшаривает сеть, сохраняет у себя метаданные файлов и обслуживает запросы пользователей через веб-интерфейс с CGI-сценариями. Некоторые универсальные поисковые системы, например, FileWatcher, в дополнение к поиску по FTP ввели у себя поиск по P2P.

Советы и вопросы на будущее

Услышав термин, в первую очередь постарайтесь понять, названием чего он служит: протокола или программы. Один и тот же протокол может поддерживаться несколькими программами. Например, HTTP-протокол поддерживается серверами Apache и MS IIS, а также клиентами Mozilla, Internet Explorer, Opera и т. д.; P2P-протокол под названием EDonkey2000 поддерживается одноименной программой, а также программами eMule, Shareaza и т. д.

В то же время одна программа может поддерживать несколько протоколов. Например, большинство веб-клиентов (веб-браузеров) поддерживает протоколы HTTP и FTP, а P2P-клиент Shareaza поддерживает P2P-протоколы EDonkey2000, BitTorrent и Gnutella2.

Если речь идет о протоколе, то поинтересуйтесь следующими аспектами:

* Требуется ли отдельный сервер-координатор?

* Какие программы-клиенты его поддерживают?

* Насколько широко клиенты и серверы данного протокола распространены в Интернете?

* Для передачи какой информации (мультимедиа, ISO-образы и т. д.) в первую очередь разрабатывался протокол и поддерживающие его программы?

* Развитием какого протокола является данный протокол и в какой мере они совместимы?

* Существует ли открытое описание либо лицензирование протокола (следствием чего будет более широкий выбор программ)?

* Если протокол закрыт и требуется отдельная программа-сервер, то можно ли подключаться к узлам-серверам бесплатно? Можно ли ее скачать для использования в приватной сети?

Применительно к программе важны ответы на следующие вопросы:

* Какие протоколы она поддерживает?

* Насколько она бесплатна (shareware, adware, open source)?

* На какие платформы она перенесена (Windows, Linux)?

Ответам на эти вопросы по отношению к наиболее популярным протоколам и программам P2P будет посвящена следующая часть статьи.

MoneyWiz 3 – Фиат и Крипто - приложение для iOS, которое значительно облегчит управление финансами, благодаря поддержке функции автоматического внесения данных и категоризации транзакций.

Несколько слов о МаниВиз:

Программа станет вашим надёжным помощником в управлении финансами. С её помощью, вам практически ничего не придётся делать самостоятельно: просто подключитесь к одному из тысяч поддерживаемых банков со всего мира, а приложение загрузит информацию о транзакциях и распределит их по категориям. При этом, последняя версия программы поддерживает работу с операциями с Форекс и криптовалютой. А благодаря использованию собственных алгоритмов искусственного интеллекта, результаты автоматического распределения становятся всё точнее, по мере использования приложения.

Кроме того, программа MoneyWiz 3 - Personal Finance использует сервис синхронизации SYNCbits для поддержания актуальности данных на всех ваших устройствах. Интересной особенностью является функция переноса данных между приложениями, либо ручной синхронизации данных. Она позволяет импортировать операции в формате CSV, QIF, OFX, QFX и файлы в формате MT940. Эти же файлы можно передать на мобильный телефон или компьютер, в том числе и для переноса данных в другие приложения.

Ключевые особенности программы:

  • Поддержка системы интернет-банкинга из любой точки мира.
  • Доступ к более, чем 16000 банков в 50+ странах.
  • Автоматическая категоризация транзакций.
  • Кроссплатформенная синхронизация данных.
  • Высокоэффективное распределение бюджета, планирование транзакций, прогноз финансового состояния и создание отчетов.
  • Возможность ручного ввода операций и импорта банковских выписок.
  • Надёжное шифрование данных.
  • Возможность установки PIN-кода на вход.
  • Поддержка FaceID и TouchID.
  • Доступность программы на русском языке.

Скриншоты

Файлообменная сеть - это общий доступ к компьютерным данным или пространству в сети с различными уровнями. Несмотря на то что файлами можно легко обмениваться вне сети (например, просто передавая или отправляя их на физических носителях), вышеуказанный термин почти всегда означает совместное их сетевое использование, даже если это происходит в небольшой локальной сети.

Что они собой представляют?

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

В течение многих лет файлообменная сеть представляла собой функцию многоэлементных и многопользовательских компьютерных систем. С появлением интернета широко используется система, называемая протоколом передачи файлов (FTP).

Самый известный пример

FTP может использоваться для чтения и, возможно, записи файлов, общих для определенного набора пользователей сайта FTP-сервера, с доступом по паролю. Многие FTP-сайты предлагают общий доступ к файлам или, по крайней мере, возможность просматривать или копировать данные, загружать их, используя общедоступный пароль (который является «анонимным»). Большинство разработчиков веб-сайтов используют эту систему для загрузки новых или пересмотренных файлов на сервер. Более того, сама Всемирная паутина может рассматриваться как крупномасштабная файлообменная сеть, в которой запрашиваемые страницы или файлы постоянно загружаются или копируются пользователями.

Обмен файлами - это практика совместного использования или предоставления доступа к цифровой информации или ресурсам, включая документы, мультимедиа (аудио/видео), графику, компьютерные программы, изображения и электронные книги. Это частное или публичное распространение данных или ресурсов в сети с разными уровнями привилегий на совместное использование. Еще одним примером такой системы можно назвать бесплатные файлообменники, которые позволяют загружать и получать данные для пользователей сети.

Виды файлообменных сетей

Обмен файлами можно выполнить несколькими способами. Наиболее распространенные методы их хранения, распространения и передачи включают в себя следующее:

  • Съемные устройства хранения данных.
  • Централизованные установки сервера (файлового хостинга в сетях).
  • Веб-ориентированные гиперссылки.
  • Распределенные одноранговые сети.

Как обеспечивается функциональность?

В большинстве задач файлообменной сети используются два основных набора сетевых критериев:

Peer-to-Peer (P2P), файлообменная сеть Peers или общий доступ к файлам: это самый популярный способ совместного использования данных, который обеспечивается за счет однорангового программного обеспечения. Пользователи сетевого компьютера определяют общие данные с помощью стороннего программного обеспечения. Обмен файлами P2P позволяет пользователям напрямую получать доступ, скачивать и редактировать данные. Некоторое стороннее программное обеспечение облегчает обмен P2P путем сбора и сегментации больших файлов на более мелкие части (например, Ares).

Файлообменная сеть как услуги хостинга файлов: эта альтернатива предоставляет широкий выбор популярных онлайн-материалов. Эти службы довольно часто используются с методами совместной работы в Интернете, включая электронную почту, блоги, форумы или другие среды, в которые могут быть включены прямые ссылки на скачивание из служб хостинга файлов. На этих веб-сайтах обычно размещаются файлы, позволяющие пользователям загружать их.

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

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

Службы синхронизации файлов и совместного доступа

Службы синхронизации и совместного использования файлов на основе облака реализуют автоматическую их передачу путем обновления файлов из выделенного каталога общего доступа на сетевых устройствах каждого пользователя. Данные, размещенные в этой папке, также обычно могут быть просмотрены и загружены через веб-сайт и мобильное приложение и могут быть доступны другим пользователям для просмотра или совместной работы. Такие услуги стали популярными благодаря ориентированному на потребителя предоставлению услуг файлообменных сетей, в частности, Dropbox и GoogleDrive.

Rsync - более традиционная программа, выпущенная в 1996 году, которая синхронизирует файлы на прямой машинной основе.Синхронизация данных в целом может использовать другие подходы к обмену данными. В качестве характерных примеров можно привести распределенные файловые системы, контроль версий или зеркала.

История развития файлообменных сетей

Сначала файлы обменивались с помощью съемных носителей. Компьютеры смогли получать доступ к удаленным данным с помощью установки файловой системы, систем досок объявлений (1978), Usenet (1979) и FTP-серверов (1985).

Возникшие позже InternetRelayChat (1988) и Hotline (1997) позволили пользователям общаться удаленно через чат и обмениваться файлами. В конце 1990-х годов широкое распространение получила кодировка mp3, которая была стандартизована в 1991 году и существенно уменьшала размер аудиофайлов.

В июне 1999 года был разработан Napster как неструктурированная централизованная одноранговая система, требующая сервера для индексирования и обнаружения других участников соединения. Gnutella, eDonkey2000 и Freenet были выпущены в 2000 году и сразу широко распространились по многим странам.

Так, Gnutella была первой децентрализованной сетью обмена файлами. В этой сети все соединительные программы считались равными, и поэтому она не имела центральной точки отказа. Freenet стала первой сетью, гарантирующей анонимность. Затем было выпущено клиентское и серверное программное обеспечение eDonkey2000, которое стало прообразом популярных сегодня торрентов.

В 2001 году были выпущены Kazaa и Poisoned для Mac. Их сеть FastTrack была распределена лучше, хотя, в отличие от Gnutella, она несла в себе больше трафика, чтобы повысить эффективность маршрутизации. Сеть была проприетарной и зашифрованной, и разработчики Kazaa в результате выиграли конкуренцию.