Открыть сервисСервис

P2P-сети: принципы и технологии

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

Принцип работы

В классической клиент-серверной модели при обращении тысяч клиентов к одному серверу нагрузка концентрируется на нём, что создаёт узкое место. В P2P-сети нагрузка распределяется между всеми участниками: чем больше узлов, тем больше суммарная пропускная способность и ёмкость системы. Узлы находят друг друга через протоколы обнаружения сверстников (peer discovery) — централизованные каталоги, децентрализованные распределённые хэш-таблицы (DHT) или широковещательные запросы в локальной сети.

Для поиска данных в децентрализованных P2P-сетях часто применяется распределённая хэш-таблица, например протокол Kademlia, использованный в BitTorrent (DHT) и Ethereum. Ключ хранения сопоставляется с ответственным узлом, а поиск выполняется итеративно по цепочке узлов.

Основные архитектуры

ТипОписаниеПримеры
Централизованный (суперузлы)Поиск через сервер-каталог, обмен данными напрямую между пирамиBitTorrent с трекером,早期 Napster
Децентрализованный (структурированный)Узлы организованы в логическую структуру (DHT), поиск детерминированKademlia, Chord, Pastry
НеструктурированныйСвязи между пирами формируются произвольно, поиск методом обхода (flooding)Gnutella早期版本
ГибридныйКомбинация центрального каталога и прямого обменаBitTorrent DHT + трекеры

История

Идеи равноправного обмена данными возникли в конце 1960-х — начале 1970-х годов в системе ARPANET, где узлы изначально были равноправными. Коммерческое распространение P2P получил в 1999 году с выходом Napster — службы обмена MP3-файлами, использовавшей центральный сервер для индексации. Napster был закрыт в 2001 году по решению суда в связи с нарушением авторских прав.

Следующее поколение — Gnutella (2000) — уже не имело центрального сервера, что сделало его практически неуязвимым для блокировок. В 2001 году появился BitTorrent, протокол, который оптимизировал раздачу больших файлов, разбивая их на сегменты и позволяя узлам обмениваться разными частями одновременно. BitTorrent стал основным протоколом обмена файлами в интернете: по оценкам, на его долю приходилась значительная часть мирового трафика.

Применение

Обмен файлами. BitTorrent — крупнейшее применение P2P, используется для распространения дистрибутивов Linux, больших медиаархивов, подкастов.

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

Криптовалюты и блокчейн. Биткойн, Ethereum и другие блокчейн-сети построены на P2P-архитектуре: полные узлы хранят копию реестра транзакций и согласуют состояние без центрального органа.

Распределённые хранилища. IPFS (InterPlanetary File System) — протокол хранения и поиска файлов, использующий content-addressable идентификацию и DHT. Filecoin — построенная на нём система распределённого возмездного хранения данных.

Облачные и вычислительные сети. Folding@home, BOINC — P2P-сети добровольного распределённого вычисления, объединяющие тысячи компьютеров для научных задач.

Телефония. Skype в ранних версиях использовал P2P-архитектуру для маршрутизации звонков, перейдя позже к гибридной модели.

Преимущества и недостатки

Преимущества:

  • Отсутствие единой точки отказа — сеть продолжает работать при выходе отдельных узлов.
  • Масштабируемость — добавление узлов увеличивает суммарные ресурсы.
  • Снижение затрат на инфраструктуру — не нужно содержать мощные централизованные серверы.
  • Устойчивость к цензуре — отсутствие центрального узла затрудняет блокировку.

Недостатки:

  • Сложность обеспечения качества сервиса — пропускная способность и задержки зависят от добровольных участников.
  • Проблемы безопасности — узлы не анонимны по умолчанию, возможны атаки Sybil (подмена множеством фейковых узлов), eclipse-атаки.
  • Правовые риски — P2P-сети использовались для распространения контента, нарушающего авторские права, что приводило к судебным искам.
  • Неравномерность ресурсов — часть узлов («пиявки», leeches) потребляет, но не отдаёт данные.

P2P и Россия

В российском сегменте интернета P2P-технологии получили распространение через клиенты BitTorrent — RuTracker (ранее RuTracker.org), Rutor, Kinozal. В 2015 году Роскомнадзор внёс RuTracker в реестр запрещённых сайтов по решению суда, однако позже блокировка была снята. Пиратские торрент-трекеры неоднократно блокировались по искам правообладателей.

Российские разработчики внесли вклад в P2P-технологии: в частности, в разработке клиентов eMule и модификаций BitTorrent-клиентов. Компания Yandex использовала P2P-раздачу обновлений для своего браузера и операционной системы.

См. также

  • BitTorrent
  • Kademlia
  • IPFS
  • Блокчейн
  • Распределённые вычисления

Источники

  • Андрейс Ямпольский. «P2P: технологии peer-to-peer»
  • Петер Кляйнрок. «Сети передачи данных»
  • D. Milojicic et al. «Peer-to-Peer Computing», HP Laboratories, 2002
  • I. Stoica et al. «Chord: A Scalable Peer-to-peer Lookup Service», 2001
  • Maymounkov P., Mazières D. «Kademlia: A Peer-to-Peer Information System», 2002
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru