Одноранговая сеть
Одноранговая сеть (англ. peer-to-peer, P2P) — тип архитектуры распределённых приложений, при котором задачи или рабочие нагрузки распределяются между равноправными участниками — узлами, образующими одноранговую сеть[1]. Узлы (одноранговые участники, или «пиры») имеют равные права и могут одновременно выступать как поставщиками, так и потребителями ресурсов, что отличает одноранговую сеть от традиционной клиент-серверной архитектуры[2]. В числе одноранговых сетей по природе являются и персональные сети (англ. personal area network, PAN), обычно объединяющие два устройства[3].
В одноранговых сетях каждый участник делает часть собственных ресурсов (вычислительные мощности, дисковое пространство, сетевую полосу пропускания и пр.) напрямую доступной другим без необходимости в централизованном сервере[4]. Такой подход распространён в различных областях, но наибольшую известность получил благодаря системе файлообмена Napster (см. Napster (англ.)), появившейся в 1999 году[5]. Одноранговые технологии применяются, например, в протоколах BitTorrent, персональных сетях (например, Miracast, Bluetooth)[6]. Концепция одноранговых сетей оказала большое влияние на развитие децентрализованных идей и социальных структур в интернете.
История
До появления Napster одноранговые системы применялись в отдельных приложениях и сетях[7], но именно файлообменные сети (в частности, музыкальный сервис Napster) популяризировали архитектуру P2P. Миллионы пользователей получили возможность объединяться, совместно искать, создавать и распространять данные, превращая глобальную сеть в поисковый и вычислительный ресурс[8].
Прототипы одноранговых принципов прослеживаются уже в первых документах по архитектуре сетей (например, RFC 1, 1969 год). Концепция Тим Бернерс-Ли для Всемирной паутины (англ. World Wide Web) также предполагала активную роль каждого участника в создании и взаимосвязи контента, что сближало Web с одноранговой моделью[9]. Одним из реальных предшественников интернета была разработка ARPANET, где все узлы могли и запрашивать, и предоставлять данные, однако организация маршрутизации и управления не была полностью самоорганизованной[10].
К другим историческим примерам относятся распределённые системы обмена сообщениями Usenet (1979 год) и основной слой пересылки электронной почты на базе SMTP, — оба случая сочетают клиент-серверную и одноранговую модели[11]. Массовое применение одноранговых сетей началось с запуском Napster (1999), который стал первым популярным виртуальным сообществом без централизованной администрации[10].
Архитектура
Одноранговая сеть строится на равноправии всех узлов: каждый одновременно может выступать и как «клиент», и как «сервер» по отношению к другим участникам[12]. Это отличает её от клиент-серверных решений, где все запросы идут к центральному серверу.
Как правило, поверх физической сетевой топологии строится дополнительная виртуальная (overlay network) — логическая сеть, через которую реализуются индексация и поиск участников, необходимых для функционирования P2P[13]. В зависимости от структуры взаимодействия различают неструктурированные, структурированные и гибридные одноранговые сети[14].
В неструктурированных сетях overlay строится на случайных связях между узлами. Примеры: Gnutella, Gossip, Kazaa[15]. Такие сети легко развернуть и они устойчивы к массовым подключениям/отключениям, но поиск редких данных возможно только за счёт широковещательных запросов, что приводит к большим расходам пропускной способности и не гарантирует нахождение нужной информации[16].
В структурированных одноранговых таких как распределённые хеш-таблицы (англ. distributed hash table, DHT) overlay организован строго по заданной топологии, что позволяет эффективно находить ресурсы даже при их малой распространённости[2]. Узлы структурированных сетей должны поддерживать актуальные списки соседей и регулярно их обновлять, что снижает устойчивость к массовым быстрым сменам состава сети (явлению «churn»)[17].
Примеры: Kad network, YaCy, Chord project, Kademlia, PAST storage utility, P-Grid.
Гибридные архитектуры сочетают элементы одноранговой и клиент-серверной моделей[18]. Часто центральный сервер используется только для инициализации соединений между равными. Пример — сетевое распределение программы Spotify в ранних версиях[19].
В одноранговых сетях вопросы безопасности обостряются, поскольку каждый узел может выступать сервером, а потому уязвим для внешних атак. Часто встречаются специфические угрозы: атаки на маршрутизацию, распространение вредоносного ПО, подмена данных[20]. Распространённые контрмеры включают верификацию целостности через хеш-цепочки, шифрование каналов и распределённые системы проверки.
Децентрализованный характер одноранговых сетей делает их устойчивыми к отказу центрального узла (в отличие от клиент-серверных систем). Масштабируемость достигается за счёт добавления новых участников, которые увеличивают суммарные ресурсы сети[21].
P2P-сети обладают своими плюсами и минусами в вопросах резервного копирования и доступности данных. Надёжность доступа к редким файлам значительно ниже, чем в централизованных системах, так как требуется постоянное присутствие хотя бы одного узла с нужными данными[22]. Однако по популярным данным P2P часто более устойчив и менее подвержен централизованному контролю.
Применение
В P2P-системах клиенты одновременно предоставляют и используют ресурсы, что повышает масштабируемость сети и снижает издержки для первоначального распространителя контента.
Файлообменные сети (Gnutella, eDonkey network и др.) способствовали популяризации P2P. Современные аналогичные сети используются для распространения ПО, обновлений, игр и создания распределённых кешей.
Технологии одноранговых сетей часто становятся объектом судебных разбирательств, связанных с нарушением авторских прав[23]. Наиболее известны дела «Grokster против RIAA» и «MGM Studios, Inc. против Grokster, Ltd.», повлиявшие на правоприменение в этой сфере[24].
Протоколы P2PTV, PDTP, одноранговое вещание (peercasting) применяются как в свободном, так и в коммерческом программном обеспечении для трансляции аудио и видео. Создаются университетские P2P-сети (проекты LionShare, Osiris и др.), позволяющие децентрализованное распространение контента.
Одноранговые сети лежат в основе:
- анонимных протоколов (I2P, Freenet);
- распределённых файловых систем (IPFS, Dat (протокол)), поисковиков (YaCy);
- мессенджеров на P2P (Jami, JXTA), облачных каталогов (Syncthing, Resilio Sync);
- криптовалют и блокчейнов (Bitcoin, см. Список криптовалют, Список блокчейнов);
- сетей для научных расчётов (SETI@home, Past storage utility, P-Grid, CoopNet);
- автономных беспроводных сетей (Netsukuku, Wireless community network), распределённых торговых площадок (Tradepal), исследований Министерства обороны США и др.
Социальные аспекты
Для успешной работы многих P2P-систем требуется добровольное и массовое участие пользователей. Проблема «безбилетников» (freerider) — когда часть участников только пользуется ресурсами, не предоставляя свои — может существенно подорвать эффективность сети[25]. Для борьбы с этим разрабатываются различные механизмы поощрения (рейтинги, квоты, штрафы и пр.)[26].
Некоторые проекты (например, Freenet) уделяют особое внимание приватности и анонимности, используя криптографию, onion-маршрутизацию, mix-сети[27]. К P2P-сетям могут обращаться и злоумышленники в целях уклонения от контроля со стороны правоохранительных органов[28].
Политические аспекты
Несмотря на легитимные сценарии, одноранговые сети часто становятся главной технологией нарушения авторских прав. Для привлечения к уголовной ответственности необходимо доказать умысел, направленный на получение выгоды[29]. Исключения типа честное использование (Fair use) допускают ограничённый обмен материалами без согласия правообладателей.
Иногда нелегальные скачивания способствуют росту продаж — например, новых видеоигр, когда коммерческая модель построена на продаже дополнений[30].
P2P-приложения являются одной из причин споров о сетевой нейтральности. Провайдеры часто ограничивают пропускную способность для P2P-протоколов из-за высокой нагрузки на инфраструктуру[31]. В ответ используются методы запутывания трафика (шифрование, смена портов, дробление пакетов и пр.).
Современные исследования
Примечания
Литература
- Barkai, David. Peer-to-peer computing: technologies for sharing and collaborating on the net. — Hillsboro, OR : Intel Press, 2001. — ISBN 978-0970284679.
- Peer-to-peer: harnessing the benefits of disruptive technology : [англ.]. — Sebastopol, California : O'Reilly, 2001. — ISBN 9780596001100.
- Steinmetz, Ralf. Peer-to-Peer Systems and Applications : [англ.] / Ralf Steinmetz, Klaus Wehrle. — Springer, 2005. — P. 9–16. — ISBN 9783540291923. — doi:10.1007/11530657_2.
- Shen, Xuemin. Handbook of Peer-to-Peer Networking / Xuemin Shen, Heather Yu, John Buford … [и др.]. — 1st. — New York : Springer, 2009. — P. 118. — ISBN 978-0-387-09750-3.
- Saroiu, Stefan; Gummadi, Krishna P.; Gribble, Steven D. (1 августа 2003). “Measuring and analyzing the characteristics of Napster and Gnutella hosts”. Multimedia Systems [англ.]. 9 (2): 170—184. DOI:10.1007/s00530-003-0088-1. ISSN 1432-1882. S2CID 15963045.
Ссылки
- Глоссарий одноранговых сетей (архив)
- Форум по одноранговым вычислениям (архив) — спецвыпуск Elsevier Journal of Computer Communication, февраль 2008