Главная - Smart tv
Как работает маркетинговая технология Peer-to-Peer. Технологии Peer-to-Peer — из золушки в принцессы Что такое протокол peer to peer

Одноранговая сеть (Peer to Peer) - один из наиболее распространённых способов высокоскоростного сетевого взаимодействия, построенный поверх компьютерной сети младшего уровня. Основной принцип работы Peer to Peer (Р2Р) - абсолютное равноправие между всеми пользователями. Как правило, в пиринговой (одноранговой) сети исключается какое-либо разграничение между главным сервером и компьютером клиента, а каждый сетевой узел занимается решением как серверных, так и пользовательских задач.

Пиринговые сети стали востребованными относительно недавно. Ещё десять лет назад абсолютной популярностью пользовались сети, имеющие архитектуру «клиент-сервер». Peer to Peer (Р2Р) удалось вытеснить своего предшественника, благодаря наличию целого ряда преимуществ:

  • анонимность - данные пользователей, задействованных в работе сети, хранятся без привлечения третьих лиц;
  • устойчивость - сеть продолжает работать даже в том случае, если большинство узлов одновременно отключится;
  • масштабируемость - пропускная способность сети имеет постоянную величину и исключается создание так называемого «узкого горлышка» в отдельно взятых точках, так как обмен данными может происходить непосредственно между крайними узлами.

Где применяется Peer to Peer (Р2Р)

Классическая область применения пиринговой сети Peer-to-Peer - децентрализованные файлообменники, например, всем известный протокол BitTorrent. Для поддержания стабильной работы ресурса, а также для обеспечения максимальной скорости, разработчиками используется одноранговая сеть Р2Р, которая предлагает наилучшую масштабируемость, что крайне важно при обмене большими файлами.

Современные ресурсы, славящиеся высоким уровнем анонимности и защищённости пользователя, как правило, используют одноранговые сети. Однако сервисы, подобные тому же «Тору», чаще всего, вызывают озабоченность, так как они являются идеальной площадкой для совершения нелегальных сделок, продажи запрещённых веществ, оружия и т. д. На сегодняшний день данным браузером пользуется свыше двух миллионов человек, а специалисты называют его Black Ethernet (Чёрный Интернет).

Одноранговые сети Р2Р используют криптовалютные платформы, в том числе и Bitcoin. Именно его разработчику, которым является Сатоши Накамото, удалось решить основную задачу - исключение возможности повторного использования одних и тех же средств. Для этого была создана уникальная блокчейн архитектура, работающая по принципу Proof-Of-Work (доказательство выполненной работы). Несмотря на то что сегодня существует колоссальное количество форков, биткоин остаётся наиболее востребованной криптомонетой.

Недостатки Peer to Peer (Р2Р)


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

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

Другая, крайне серьёзная проблема, связанная с безопасностью пиринговых сетей Р2Р, - уязвимость перед хакерской атакой, которая называется Sybil. Она осуществляется путём внедрения в сеть посторонних узлов, имеющих уникальный идентификатор. Сама атака не несёт никакой угрозы одноранговой сети, однако является вспомогательным инструментом для осуществления целого ряда действий, которые ставят под удар безопасность платформы, работающей с Р2Р.

Актуальность Peer to Peer (Р2Р)

Согласно официальной статистике, базирующейся на данных Интернет-провайдеров, на одноранговые сети приходится около 75% всемирного трафика. Однако несмотря на колоссальное доверие разработчиков, пиринговые сети нельзя считать совершенными. Помимо вышеперечисленных проблем с безопасностью, Р2Р также подвержены так называемый timing-атакам, основанных на корреляции. Несмотря на то, что проведение подобных хакерских атак требует привлечения огромных мощностей, их реализация вполне реальна, например, для представителей спецслужб.

Будьте в курсе всех важных событий United Traders - подписывайтесь на наш

Развитие интернета и его широкое распространение по всему миру позволило обмениваться различной информацией с достаточно большой скоростью на огромном расстоянии. Среди многих традиционных средств обмена информацией, все большую популярность приобретают так называемые P2P сети. Что же они собой представляют?

Само понятие P2P (в переводе: «равный равному») подразумевает непосредственный обмен информацией между равноправными участниками. За сетями, относящимися к этому протоколу, закрепились другие названия: пиринговый, одноранговый.

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

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

Современные гибридные P2P сети используют сервер не для хранения информации, а для распределения работы сети и объединения клиентов. Большую известность получили такие пиринговые протоколы BitTorrent, eDonkey и Direct Connect.

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

Наиболее популярными BitTorrent клиентами выступают: Deluge, uTorrent, Vuze, Transmission, BitComet, Shareaza и ряд других. Для сетей Direct Connect предназначены клиенты: StrongDC++, FlylinkDC++, ApexDC++.


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

Если вы регулярно пользуетесь Интернетом, скорее всего вы слышали о терминах одноранговая сеть, децентрализованная сеть, или пиринговая сеть, peer-to-peer или ее аббревиатура - P2P сеть. Все эти термины обозначают одно и то же. Если вы хотите знать, что такое peer-to-peer, и для чего он используется, вы должны прочитать эту статью.

Что такое P2P или одноранговая сеть?

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

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

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

  • Процессорные мощности
  • Дисковое пространство
  • Пропускная способность сети

Что делают сети P2P (peer-to-peer)?

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

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

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

Почему одноранговые сети полезны?

Сети P2P имеют несколько особенностей, которые делают их полезными:

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

Зачем нужны пиринговые сети? Легальное использование P2P сетей

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

  • Когда вы в своем доме подключаете устройство на Windows к домашней группе компьютеров, вы создаете между ними одноранговую сеть. Homegroup - небольшая группа компьютеров, которые связаны между собой для совместного использования дискового пространства и принтеров. Это одно из самых распространенных применений для одноранговой технологии. Некоторые люди могут сказать, что домашние группы не могут быть одноранговыми, поскольку компьютеры в сети подключены к маршрутизатору. Однако имейте в виду, что маршрутизатор никак не связан именно с управлением сети. Маршрутизатор не работает как сервер, а просто как интерфейс или связующее звено между локальной сетью и Интернетом.
  • Когда вы создаете сеть между двумя компьютерами, вы создаете пиринговую сеть.
  • Совместное использование больших файлов в интернете часто выполняется с использованием сетевой архитектуры P2P. Например, некоторые онлайн-игровые платформы используют P2P сеть для загрузки игр между пользователями. Blizzard Entertainment распространяет Diablo III, StarCraft II и World of Warcraft с использованием P2P. Другой крупный издатель, Wargaming, делает то же самое со своими играми World of Tanks, World of Warships и World of Warplanes. Другие же, такие как Steam или GOG, предпочитают не использовать P2P, а поддерживать выделенные серверы по всему миру.
  • Обновления Windows 10 поставляются как с серверов Microsoft, так и через сеть P2P.
  • Многие операционные системы Linux распространяются через BitTorrent, которые используют одноранговые сети. Такими примерами являются Ubuntu, Linux Mint и Manjaro.
  • И наконец, технология блокчейн использует одноранговые децентрализованные сети для записи информации в распределенном реестре на всех компьютерах сети одновременно. (Более подробно читайте в статьях «Что такое блокчейн простыми словами? » и «Что такое распределенный реестр? »)

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

История сетей P2P

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

Следующей большой вехой в истории одноранговых сетей был 1999 год, когда появился Napster. Napster был файлообменным программным обеспечением, которое люди использовали для распространения и загрузки музыки. Музыка, распространяемая с помощью Napster, обычно защищалась авторским правом и, таким образом, ее распространение было незаконным. Однако это не помешало людям использовать его.

Хотя Napster был тем, кто вывел P2P в мейнстрим, проект в конечном итоге потерпел неудачу и был закрыт властями по причине незаконного распространения контента.

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

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

Незаконное использование одноранговых сетей

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

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

Peer-to-peer технологии

Выполнила:

студентка 1 курса ФМФ магистратуры

Кулаченко Надежда Сергеевна

Проверил:

Чернышенко Сергей Викторович

Москва 2011


Введение

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

Peer-to-peer (англ. равный равному) - древний принцип японских самураев и утопических социалистов. Он обрел настоящую популярность в конце ХХ столетия. Сейчас этот принцип используют миллионы пользователей интернета, разговаривая с друзьями из далеких стран, скачивая файлы у пользователей с которыми никогда не были знакомы.

Peer-to-peer (P2P) технологии являются одной из наиболее популярных тем на сегодняшний день. Популярность, достигнутая с помощью таких программам как Skype, Bittorrent, DirectConnect и список таких программ можно продолжать и продолжать, подтверждает потенциал peer-to-peer систем.

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


1. Napster и Gnutella - первые пиринговые сети

Первая пиринговая сеть Napster появилась в 1999 году и сразу стала известна всему Интернет-сообществу. Автором клиента был восемнадцатилетний Шон Феннинг. Napster соединил тысячи компьютеров с открытыми ресурсами. Изначально пользователи Napster обменивались mp3 файлами.

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

7 декабря Ассоциация индустрии звукозаписи Америки (RIAA) подала на компанию Napster в суд за «прямое и косвенное нарушение копирайта».

В конце концов, Napster сперва продался какой-то европейской фирме, а потом и вовсе был закрыт.

Gnutella - была создана в 2000 г программистами фирмы Nullsoft как преемница Napster. Она функционирует до сих пор, хотя из-за серьезных недостатков алгоритма пользователи в настоящее время предпочитают сеть Gnutella2. Эта сеть работает без сервера (полная децентрализация).

При подключении клиент получает от узла, с которым ему удалось соединиться, список из пяти активных узлов; им отсылается запрос на поиск ресурса по ключевому слову. Узлы ищут у себя соответствующие запросу ресурсы и, если не находят их, пересылают запрос активным узлам вверх по “дереву” (топология сети имеет структуру графа типа “дерево”), пока не найдется ресурс или не будет превышено максимальное число шагов. Такой поиск называется размножением запросов (query flooding).

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

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

Недостатки протокола Gnutella инициировали разработку принципиально новых алгоритмов поиска маршрутов и ресурсов и привели к созданию группы протоколов DHT (Distributed Hash Tables) - в частности, протокола Kademlia, который сейчас широко используется в наиболее крупных сетях.

Запросы в сети Gnutella пересылаются по TCP или UDP, копирование файлов осуществляется через протокол HTTP. В последнее время появились расширения для клиентских программ, позволяющие копировать файлы по UDP, делать XML-запросы метаинформации о файлах.

В 2003 г. был создан принципиально новый протокол Gnutella2 и первые поддерживающие его клиенты, которые были обратносовместимы с клиентами Gnutella. В соответствии с ним некоторые узлы становятся концентраторами, остальные же являются обычными узлами (leaves). Каждый обычный узел имеет соединение с одним-двумя концентраторами. А концентратор связан с сотнями обычных узлов и десятками других концентраторов. Каждый узел периодически пересылает концентратору список идентификаторов ключевых слов, по которым можно найти публикуемые данным узлом ресурсы. Идентификаторы сохраняются в общей таблице на концентраторе. Когда узел “хочет” найти ресурс, он посылает запрос по ключевому слову своему концентратору, последний либо находит ресурс в своей таблице и возвращает ID узла, обладающего ресурсом, либо возвращает список других концентраторов, которые узел вновь запрашивает по очереди случайным образом. Такой поиск называется поиском с помощью метода блужданий (random walk).

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

2. P2P технологии. Принцип «клиент-клиент»

Одноранговая, децентрализованная или пиринговая (от англ. peer-to-peer, P2P - равный к равному) сеть - это оверлейная компьютерная сеть, основанная на равноправии участников. В такой сети отсутствуют выделенные серверы, а каждый узел (peer) является как клиентом, так и сервером. В отличие от архитектуры клиент-сервера, такая организация позволяет сохранять работоспособность сети при любом количестве и любом сочетании доступных узлов. Участниками сети являются пиры.

Впервые термин peer-to-peer был использован в 1984 г. компанией IBM при разработке сетевой архитектуры для динамической маршрутизации трафика через компьютерные сети с произвольной топологией (Advanced Peer to Peer Networking). В основе технологии лежит принцип децентрализации: все узлы в сети P2P равноправны, т.е. каждый узел может одновременно выступать как в роли клиента (получателя информации), так и в роли сервера (поставщика информации). «Это обеспечивает такие преимущества технологии P2P перед клиент-серверным подходом, как отказоустойчивость при потере связи с несколькими узлами сети, увеличение скорости получения данных за счет копирования одновременно из нескольких источников, возможность разделения ресурсов без “привязки” к конкретным IP-адресам, огромная мощность сети в целом и др.»[ 2]

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

Какой IP-адрес имеет тот или иной пользователь сети;

Какие файлы размещены у какого клиента;

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

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

Работа в типичной файлообменной сети строится следующим образом:

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

Если нужный файл имеется и найден, сервер отдает клиенту IP-адреса других клиентов, у которых данный файл был найден.

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

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

Сервер заносит в свою базу данных кто что скачал (даже если скачаны файлы не целиком).

Сети, созданные на основе технологии Peer-to-Peer, также называются пиринговыми, одноранговыми или децентрализованными. И хотя они используются сейчас в основном для разделения файлов, существует еще много других областей, где данная технология тоже успешно применяется. Это телевидение и аудиотрансляции, параллельное программирование, распределенное кэширование ресурсов для разгрузки серверов, рассылка уведомлений и статей, поддержка системы доменных имен, индексирование распределенных ресурсов и их поиск, резервное копирование и создание устойчивых распределенных хранилищ данных, обмен сообщениями, создание систем, устойчивых к атакам типа “отказ в обслуживании”, распространение программных модулей.


3. Основные уязвимые стороны P2P

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

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

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

Серьезная проблема - распространение “червей” и подделка ID ресурсов с целью их фальсификации. Например, в клиенте Kazaa используется хеш-функция UUHash, которая позволяет быстро находить ID для больших файлов даже на слабых компьютерах, но при этом остается возможность для подделки файлов и записи испорченного файла, имеющего тот же ID.

Чтобы справиться с описанной проблемой, клиенты должны пользоваться надежными хеш-функциями (“деревьями” хеш-функций, если файл копируется по частям), такими, как SHA-1, Whirlpool, Tiger, и только для решения малоответственных задач - контрольными суммами CRC. Для уменьшения объемов пересылаемых данных и облегчения их шифрования можно применить компрессию. Для защиты от вирусов нужно иметь возможность хранить идентифицирующую метаинформацию о “червях”, как это, в частности, сделано в сети Gnutella2.

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

Часть клиентов только копируют чужие файлы, но не предлагают ничего для копирования другим (leechers).

В московских домовых сетях на нескольких активистов, делающих доступными более 100 Гбайт информации, приходится около сотни, выкладывающих менее 1 Гбайт. Для борьбы с этим используются разные методы. В eMule применен метод кредитов: скопировал файл - кредит уменьшился, позволил скопировать свой файл - кредит увеличился (xMule - кредитная система с поощрением распространения редких файлов). В сети eDonkey стимулируется размножение источников, в Bittorrent реализована схема “сколько блоков файла получил, столько отдал” и т. п.


4. Некоторые пиринговые сети

4.1 DirectConnect

пиринговый сеть torrent одноранговый

Direct Connect - это частично централизованная файлообменная (P2P) сеть, в основе работы которой лежит особый протокол, разработанный фирмой NeoModus.

NeoModus была основана Джонатаном Хессом (Jonathan Hess) в ноябре 1990 года как компания, зарабатывавшая на adware-программе «Direct Connect». Первым сторонним клиентом стал «DClite», который никогда полностью не поддерживал протокол. Новая версия Direct Connect уже требовала простой ключ шифрования для инициализации подключения, этим он надеялся блокировать сторонние клиенты. Ключ был взломан и автор DClite выпустил новую версию своей программы, совместимой с новым программным обеспечением от NeoModus. Вскоре, код DClite был переписан, и программа была переименована в Open Direct Connect. Кроме всего прочего, ее пользовательский интерфейс стал многодокументным (MDI), и появилась возможность использовать плагины для файлообменных протоколов (как в MLDonkey). У Open Direct Connect также не было полной поддержки протокола, но появился под Java. Немногим позже, начали появляться и другие клиенты: DCTC (Direct Connect Text Client), DC++ и др.

Сеть работает следующим образом. Клиенты подключаются к одному или нескольким серверам, так называемым хабам для поиска файлов, которые обычно не связаны между собой (некоторые типы хабов можно частично или полностью связать в сеть, используя специализированные скрипты или программу Hub-Link) и служат для поиска файлов и источников для их скачивания. В качестве хаба чаще всего используются PtokaX, Verlihub, YnHub, Aquila, DB Hub, RusHub. Для связи с другими хабами используются т.н. dchub-ссылки:

dchub://[ имя пользователя ]@[ IP или Домен хаба ]:[ порт хаба ]/[путь к файлу]/[имя файла]

Отличия от других P2P-систем:

1. Обусловленные структурой сети

· Развитый многопользовательский чат

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

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

2. Зависящие от клиента

· Возможность скачивать целые директории

· Результаты поиска не только по названиям файлов, но и по директориям

· Ограничения на минимальное количество расшаренного материала (по объёму)

· Поддержка скриптов с потенциально безграничными возможностями как на клиентской стороне, так и на стороне хаба (верно не для всяких хабов и клиентов)

Авторы клиента DC++ разработали для решения специфичных проблем принципиально новый протокол, называнный Advanced Direct Connect (ADC), цель которого - повышение надежности, эффективности и безопасности файлообменной сети. 2 декабря 2007 года вышла окончательная версия протокола ADC 1.0. Протокол продолжает развиваться и дополняться.

4.2 Bit Torrent

BitTorrent (букв. англ. «битовый поток») - пиринговый (P2P) сетевой протокол для кооперативного обмена файлами через Интернет.

Файлы передаются частями, каждый torrent-клиент, получая (скачивая) эти части, в то же время отдаёт (закачивает) их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных. Протокол был создан Брэмом Коэном, написавшим первый torrent-клиент «BitTorrent» на языке Python 4 апреля 2001 года. Запуск первой версии состоялся 2 июля 2001 года.

Для каждой раздачи создаётся файл метаданных с расширением.torrent, который содержит следующую информацию:

URL трекера;

Общую информацию о файлах (имя, длину и пр.) в данной раздаче;

Контрольные суммы (точнее, хеш-суммы SHA1) сегментов раздаваемых файлов;

Passkey пользователя, если он зарегистрирован на данном трекере. Длина ключа устанавливается трекером.

Необязательно:

Хеш-суммы файлов целиком;

Альтернативные источники, работающие не по протоколу BitTorrent. Наиболее распространена поддержка так называемых web–сидов (протокол HTTP), но допустимыми также являются ftp, ed2k, magnet URI.

Файл метаданных является словарем в bencode формате. Файлы метаданных могут распространяться через любые каналы связи: они (или ссылки на них) могут выкладываться на веб-серверах, размещаться на домашних страницах пользователей сети, рассылаться по электронной почте, публиковаться в блогах или новостных лентах RSS. Также есть возможность получить info часть публичного файла метаданных напрямую от других участников раздачи благодаря расширению протокола "Extension for Peers to Send Metadata Files". Это позволяет обойтись публикацией только магнет-ссылки. Получив каким-либо образом файл с метаданными, клиент может начинать скачивание.

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

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

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

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

Когда скачивание почти завершено, клиент входит в особый режим, называемый end game. В этом режиме он запрашивает все оставшиеся сегменты у всех подключенных пиров, что позволяет избежать замедления или полного «зависания» почти завершенной закачки из-за нескольких медленных клиентов.

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

Недостатки и ограничения

· Недоступность раздачи – если нет раздающих пользователей (сидов);

· Отсутствие анонимности:

Пользователи незащищенных систем и клиентов с известными уязвимостями могут быть подвергнуты атаке.

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

· Проблема личеров – клиентов, которые раздают гораздо меньше, чем скачивают. Это ведет к падению производительности.

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

Персонализация – протокол не поддерживает ников, чата, просмотра списка файлов пользователя.


Заключение

Современные пиринговые сети претерпели сложную эволюцию и стали во многих отношениях совершенными программными продуктами. Они гарантируют надежную и высокоскоростную передачу больших объемов данных. Они имеют распределённую структуру, и не могут быть уничтожены при повреждении нескольких узлов.

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

Для скоростного распространения дистрибутивов опенсорсных программ (с открытым кодом);

Для распределённых сетей передачи данных таких как Skype и Joost.

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

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

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

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

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

Серьезная проблема - распространение “червей” и подделка ID ресурсов с целью их фальсификации. Например, в клиенте Kazaa используется хеш-функция UUHash, которая позволяет быстро находить ID для больших файлов даже на слабых компьютерах, но при этом остается возможность для подделки файлов и записи испорченного файла, имеющего тот же ID.

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

Также ведется работа по созданию проектов, объединяющих сети и протоколы (например, JXTA – разработчик Билл Джой).


Список литературы

1. Ю. Н. Гуркин, Ю. А. Семенов. «Файлообменные сети P2P: основные принципы, протоколы, безопасность» // «Сети и Системы связи», №11 2006

06/02/2011 17:23 http://www.ccc.ru/magazine/depot/06_11/read.html?0302.htm

2. А. Грызунова Napster: история болезни InterNet magazine, number 22 06/02/2011 15:30 http://www.gagin.ru/internet/22/7.html

3. Современные компьютерные сети Реферат 06/02/2011 15:49 http://5ballov.qip.ru/referats/preview/106448

4. 28/01/2011 16:56 http://ru.wikipedia.org/wiki/Peer-to-peer

5. http://style-hitech.ru/peer-to-peer_i_tjekhnologii_fajloobmjena

28/01/2011 15:51

МГОУ Peer-to-peer технологии Выполнила: студентка 1 курса ФМФ магистратуры Кулаченко Надежда Сергеевна Проверил: Чернышенко Сергей Викторович

Peer-to-peer технологии

Выполнила:

студентка 1 курса ФМФ магистратуры

Кулаченко Надежда Сергеевна

Проверил:

Чернышенко Сергей Викторович

Москва 2011

Введение

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

Peer-to-peer (англ. равный равному) - древний принцип японских самураев и утопических социалистов. Он обрел настоящую популярность в конце ХХ столетия. Сейчас этот принцип используют миллионы пользователей интернета, разговаривая с друзьями из далеких стран, скачивая файлы у пользователей с которыми никогда не были знакомы.

Peer-to-peer (P2P) технологии являются одной из наиболее популярных тем на сегодняшний день. Популярность, достигнутая с помощью таких программам как Skype, Bittorrent, DirectConnect и список таких программ можно продолжать и продолжать, подтверждает потенциал peer-to-peer систем.

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

1. Napster и Gnutella - первые пиринговые сети

Первая пиринговая сеть Napster появилась в 1999 году и сразу стала известна всему Интернет-сообществу. Автором клиента был восемнадцатилетний Шон Феннинг. Napster соединил тысячи компьютеров с открытыми ресурсами. Изначально пользователи Napster обменивались mp3 файлами.

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

7 декабря Ассоциация индустрии звукозаписи Америки (RIAA) подала на компанию Napster в суд за «прямое и косвенное нарушение копирайта».

В конце концов, Napster сперва продался какой-то европейской фирме, а потом и вовсе был закрыт.

Gnutella - была создана в 2000 г программистами фирмы Nullsoft как преемница Napster. Она функционирует до сих пор, хотя из-за серьезных недостатков алгоритма пользователи в настоящее время предпочитают сеть Gnutella2. Эта сеть работает без сервера (полная децентрализация).

При подключении клиент получает от узла, с которым ему удалось соединиться, список из пяти активных узлов; им отсылается запрос на поиск ресурса по ключевому слову. Узлы ищут у себя соответствующие запросу ресурсы и, если не находят их, пересылают запрос активным узлам вверх по “дереву” (топология сети имеет структуру графа типа “дерево”), пока не найдется ресурс или не будет превышено максимальное число шагов. Такой поиск называется размножением запросов (query flooding).

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

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

Недостатки протокола Gnutella инициировали разработку принципиально новых алгоритмов поиска маршрутов и ресурсов и привели к созданию группы протоколов DHT (Distributed Hash Tables) - в частности, протокола Kademlia, который сейчас широко используется в наиболее крупных сетях.

Запросы в сети Gnutella пересылаются по TCP или UDP, копирование файлов осуществляется через протокол HTTP. В последнее время появились расширения для клиентских программ, позволяющие копировать файлы по UDP, делать XML-запросы метаинформации о файлах.

В 2003 г. был создан принципиально новый протокол Gnutella2 и первые поддерживающие его клиенты, которые были обратносовместимы с клиентами Gnutella. В соответствии с ним некоторые узлы становятся концентраторами, остальные же являются обычными узлами (leaves). Каждый обычный узел имеет соединение с одним-двумя концентраторами. А концентратор связан с сотнями обычных узлов и десятками других концентраторов. Каждый узел периодически пересылает концентратору список идентификаторов ключевых слов, по которым можно найти публикуемые данным узлом ресурсы. Идентификаторы сохраняются в общей таблице на концентраторе. Когда узел “хочет” найти ресурс, он посылает запрос по ключевому слову своему концентратору, последний либо находит ресурс в своей таблице и возвращает ID узла, обладающего ресурсом, либо возвращает список других концентраторов, которые узел вновь запрашивает по очереди случайным образом. Такой поиск называется поиском с помощью метода блужданий (random walk).

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

2. P2Pтехнологии. Принцип «клиент-клиент»

Одноранговая, децентрализованная или пиринговая (от англ. peer-to-peer, P2P - равный к равному) сеть - это оверлейная компьютерная сеть, основанная на равноправии участников. В такой сети отсутствуют выделенные серверы, а каждый узел (peer) является как клиентом, так и сервером. В отличие от архитектуры клиент-сервера, такая организация позволяет сохранять работоспособность сети при любом количестве и любом сочетании доступных узлов. Участниками сети являются пиры.

Впервые термин peer-to-peer был использован в 1984 г. компанией IBM при разработке сетевой архитектуры для динамической маршрутизации трафика через компьютерные сети с произвольной топологией (Advanced Peer to Peer Networking). В основе технологии лежит принцип децентрализации: все узлы в сети P2P равноправны, т.е. каждый узел может одновременно выступать как в роли клиента (получателя информации), так и в роли сервера (поставщика информации). «Это обеспечивает такие преимущества технологии P2P перед клиент-серверным подходом, как отказоустойчивость при потере связи с несколькими узлами сети, увеличение скорости получения данных за счет копирования одновременно из нескольких источников, возможность разделения ресурсов без “привязки” к конкретным IP-адресам, огромная мощность сети в целом и др.»[ 2]

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

Какой IP-адрес имеет тот или иной пользователь сети;

Какие файлы размещены у какого клиента;

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

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

Работа в типичной файлообменной сети строится следующим образом:

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

Если нужный файл имеется и найден, сервер отдает клиенту IP-адреса других клиентов, у которых данный файл был найден.

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

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

Сервер заносит в свою базу данных кто что скачал (даже если скачаны файлы не целиком).

Сети, созданные на основе технологии Peer-to-Peer, также называются пиринговыми, одноранговыми или децентрализованными. И хотя они используются сейчас в основном для разделения файлов, существует еще много других областей, где данная технология тоже успешно применяется. Это телевидение и аудиотрансляции, параллельное программирование, распределенное кэширование ресурсов для разгрузки серверов, рассылка уведомлений и статей, поддержка системы доменных имен, индексирование распределенных ресурсов и их поиск, резервное копирование и создание устойчивых распределенных хранилищ данных, обмен сообщениями, создание систем, устойчивых к атакам типа “отказ в обслуживании”, распространение программных модулей.

3. Основные уязвимые стороны P2P

Чтобы справиться с описанной проблемой, клиенты должны пользоваться надежными хеш-функциями (“деревьями” хеш-функций, если файл копируется по частям), такими, как SHA-1, Whirlpool, Tiger, и только для решения малоответственных задач - контрольными суммами CRC. Для уменьшения объемов пересылаемых данных и облегчения их шифрования можно применить компрессию. Для защиты от вирусов нужно иметь возможность хранить идентифицирующую метаинформацию о “червях”, как это, в частности, сделано в сети Gnutella2.

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

Часть клиентов только копируют чужие файлы, но не предлагают ничего для копирования другим (leechers).

В московских домовых сетях на нескольких активистов, делающих доступными более 100 Гбайт информации, приходится около сотни, выкладывающих менее 1 Гбайт. Для борьбы с этим используются разные методы. В eMule применен метод кредитов: скопировал файл - кредит уменьшился, позволил скопировать свой файл - кредит увеличился (xMule - кредитная система с поощрением распространения редких файлов). В сети eDonkey стимулируется размножение источников, в Bittorrent реализована схема “сколько блоков файла получил, столько отдал” и т. п.

4. Некоторые пиринговые сети

4.1 DirectConnect

пиринговый сеть torrent одноранговый

Direct Connect - это частично централизованная файлообменная (P2P) сеть, в основе работы которой лежит особый протокол, разработанный фирмой NeoModus.

NeoModus была основана Джонатаном Хессом (Jonathan Hess) в ноябре 1990 года как компания, зарабатывавшая на adware-программе «Direct Connect». Первым сторонним клиентом стал «DClite», который никогда полностью не поддерживал протокол. Новая версия Direct Connect уже требовала простой ключ шифрования для инициализации подключения, этим он надеялся блокировать сторонние клиенты. Ключ был взломан и автор DClite выпустил новую версию своей программы, совместимой с новым программным обеспечением от NeoModus. Вскоре, код DClite был переписан, и программа была переименована в Open Direct Connect. Кроме всего прочего, ее пользовательский интерфейс стал многодокументным (MDI), и появилась возможность использовать плагины для файлообменных протоколов (как в MLDonkey). У Open Direct Connect также не было полной поддержки протокола, но появился под Java. Немногим позже, начали появляться и другие клиенты: DCTC (Direct Connect Text Client), DC++ и др.

Сеть работает следующим образом. Клиенты подключаются к одному или нескольким серверам, так называемым хабам для поиска файлов, которые обычно не связаны между собой (некоторые типы хабов можно частично или полностью связать в сеть, используя специализированные скрипты или программу Hub-Link) и служат для поиска файлов и источников для их скачивания. В качестве хаба чаще всего используются PtokaX, Verlihub, YnHub, Aquila, DB Hub, RusHub. Для связи с другими хабами используются т.н. dchub-ссылки:

dchub://[ имя пользователя ]@[ IP или Домен хаба ]:[ порт хаба ]/[путь к файлу]/[имя файла]

Отличия от других P2P-систем:

1. Обусловленные структурой сети

· Развитый многопользовательский чат

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

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

2. Зависящие от клиента

· Возможность скачивать целые директории

· Результаты поиска не только по названиям файлов, но и по директориям

· Ограничения на минимальное количество расшаренного материала (по объёму)

· Поддержка скриптов с потенциально безграничными возможностями как на клиентской стороне, так и на стороне хаба (верно не для всяких хабов и клиентов)

Авторы клиента DC++ разработали для решения специфичных проблем принципиально новый протокол, называнный Advanced Direct Connect (ADC), цель которого - повышение надежности, эффективности и безопасности файлообменной сети. 2 декабря 2007 года вышла окончательная версия протокола ADC 1.0. Протокол продолжает развиваться и дополняться.

4.2 BitTorrent

BitTorrent (букв. англ. «битовый поток») - пиринговый (P2P) сетевой протокол для кооперативного обмена файлами через Интернет.

Файлы передаются частями, каждый torrent-клиент, получая (скачивая) эти части, в то же время отдаёт (закачивает) их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных. Протокол был создан Брэмом Коэном, написавшим первый torrent-клиент «BitTorrent» на языке Python 4 апреля 2001 года. Запуск первой версии состоялся 2 июля 2001 года.

Для каждой раздачи создаётся файл метаданных с расширением.torrent, который содержит следующую информацию:

URL трекера;

Общую информацию о файлах (имя, длину и пр.) в данной раздаче;

Контрольные суммы (точнее, хеш-суммы SHA1) сегментов раздаваемых файлов;

Passkey пользователя, если он зарегистрирован на данном трекере. Длина ключа устанавливается трекером.

Необязательно:

Хеш-суммы файлов целиком;

Альтернативные источники, работающие не по протоколу BitTorrent. Наиболее распространена поддержка так называемых web–сидов (протокол HTTP), но допустимыми также являются ftp, ed2k, magnet URI.

Файл метаданных является словарем в bencode формате. Файлы метаданных могут распространяться через любые каналы связи: они (или ссылки на них) могут выкладываться на веб-серверах, размещаться на домашних страницах пользователей сети, рассылаться по электронной почте, публиковаться в блогах или новостных лентах RSS. Также есть возможность получить info часть публичного файла метаданных напрямую от других участников раздачи благодаря расширению протокола "Extension for Peers to Send Metadata Files". Это позволяет обойтись публикацией только магнет-ссылки. Получив каким-либо образом файл с метаданными, клиент может начинать скачивание.

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

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

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

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

Когда скачивание почти завершено, клиент входит в особый режим, называемый end game. В этом режиме он запрашивает все оставшиеся сегменты у всех подключенных пиров, что позволяет избежать замедления или полного «зависания» почти завершенной закачки из-за нескольких медленных клиентов.

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

Недостатки и ограничения

· Недоступность раздачи – если нет раздающих пользователей (сидов);

· Отсутствие анонимности:

Пользователи незащищенных систем и клиентов с известными уязвимостями могут быть подвергнуты атаке.

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

· Проблема личеров – клиентов, которые раздают гораздо меньше, чем скачивают. Это ведет к падению производительности.

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

Персонализация – протокол не поддерживает ников, чата, просмотра списка файлов пользователя.

Заключение

Современные пиринговые сети претерпели сложную эволюцию и стали во многих отношениях совершенными программными продуктами. Они гарантируют надежную и высокоскоростную передачу больших объемов данных. Они имеют распределённую структуру, и не могут быть уничтожены при повреждении нескольких узлов.

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

Для скоростного распространения дистрибутивов опенсорсных программ (с открытым кодом);

Для распределённых сетей передачи данных таких как Skype и Joost.

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

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

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

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

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

Серьезная проблема - распространение “червей” и подделка ID ресурсов с целью их фальсификации. Например, в клиенте Kazaa используется хеш-функция UUHash, которая позволяет быстро находить ID для больших файлов даже на слабых компьютерах, но при этом остается возможность для подделки файлов и записи испорченного файла, имеющего тот же ID.

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

Также ведется работа по созданию проектов, объединяющих сети и протоколы (например, JXTA – разработчик Билл Джой).

Список литературы

1. Ю. Н. Гуркин, Ю. А. Семенов. «Файлообменные сети P2P: основные принципы, протоколы, безопасность» // «Сети и Системы связи», №11 2006

06/02/2011 17:23 http://www.ccc.ru/magazine/depot/06_11/read.html?0302.htm

2. А. Грызунова Napster: историяболезни InterNet magazine, number 22 06/02/2011 15:30 http://www.gagin.ru/internet/22/7.html

3. Современные компьютерные сети Реферат 06/02/2011 15:49 http://5ballov.qip.ru/referats/preview/106448

4. 28/01/2011 16:56 http://ru.wikipedia.org/wiki/Peer-to-peer

5. http://style-hitech.ru/peer-to-peer_i_tjekhnologii_fajloobmjena



 


Читайте:



Прошивка смартфонов UMI через ROOTJOY Umi Rome X на Алиэкспресс: распродажи, скидки, акции

Прошивка смартфонов UMI через ROOTJOY Umi Rome X на Алиэкспресс: распродажи, скидки, акции

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

Что такое Интернет-анкета?

Что такое Интернет-анкета?

Обман это или нет? Можно ли на самом деле заработать с данным ресурсом? Давайте разбираться. Анкетка - один из наиболее известных опросных сайтов...

Как обновить биос Dell без батареи (Успешно)

Как обновить биос Dell без батареи (Успешно)

Имеется у меня в хозяйстве неубиваемы Dell Vostro 500 (pp29l), живёт и работает более 5 лет, но вот беда - батарея перестала работать в первых...

Устранение неполадок мыши

Устранение неполадок мыши

Ох уж эти компьютеры, всегда найдется чем заняться. Еще во времена, когда вместо Интернета были BBS (Bulletin Board System), заменяющие нынешние...

feed-image RSS