Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Распределенная хэш - таблица ( ДГТ ) является распределенной системой , которая обеспечивает обслуживание поиска , похожий на хэш - таблице : пары ключ-значение хранятся в DHT, и любое участие узел может эффективно извлекать значение , связанное с заданным ключом . Основное преимущество DHT состоит в том, что узлы можно добавлять или удалять с минимальной трудозатратой на перераспределение ключей. Ключи - это уникальные идентификаторы, которые сопоставляются с определенными значениями , которые, в свою очередь, могут быть чем угодно, от адресов до документов и произвольных данных . [1]Ответственность за поддержание сопоставления ключей и значений распределяется между узлами таким образом, что изменение набора участников вызывает минимальные нарушения. Это позволяет DHT масштабироваться до чрезвычайно большого количества узлов и обрабатывать постоянные прибытия, отправления и отказы узлов.

DHT образуют инфраструктуру, которую можно использовать для создания более сложных сервисов, таких как anycast , совместное веб-кэширование , распределенные файловые системы , службы доменных имен , обмен мгновенными сообщениями , многоадресная рассылка , а также одноранговые системы обмена файлами и распространения контента . Известные распределенные сети, использующие DHT, включают распределенный трекер BitTorrent , Coral Content Distribution Network , сеть Kad , ботнет Storm , мессенджер Tox , Freenet , YaCy.поисковая система и Межпланетная файловая система .

Распределенные хеш-таблицы

История [ править ]

Первоначально исследования DHT были частично мотивированы одноранговыми (P2P) системами, такими как Freenet , Gnutella , BitTorrent и Napster , которые использовали ресурсы, распределенные через Интернет, для создания единого полезного приложения. В частности, они воспользовались увеличенной пропускной способностью и емкостью жесткого диска для предоставления службы обмена файлами. [2]

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

Gnutella и подобные сети перешли на модель лавинной рассылки запросов - по сути, каждый поиск приводил к тому, что сообщение транслировалось на все остальные машины в сети. Избегая единой точки отказа , этот метод был значительно менее эффективен, чем Napster. Более поздние версии клиентов Gnutella перешли на модель динамических запросов, что значительно повысило эффективность. [3]

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

Распределенные хеш-таблицы используют более структурированную маршрутизацию на основе ключей, чтобы достичь как децентрализации Freenet и Gnutella, так и эффективности и гарантированных результатов Napster. Одним из недостатков является то, что, как и Freenet, DHT напрямую поддерживают только поиск с точным соответствием, а не поиск по ключевым словам, хотя алгоритм маршрутизации Freenet может быть обобщен для любого типа ключа, в котором может быть определена операция близости. [5]

В 2001 году четыре системы - CAN , [6] Chord , [7] Pastry и Tapestry - сделали DHT популярной темой для исследований. Проект под названием «Инфраструктура для отказоустойчивых интернет-систем» (Iris) был профинансирован за счет гранта в размере 12 миллионов долларов США от Национального научного фонда США в 2002 году. [8] Среди исследователей были Сильвия Ратнасами , Ион Стойка , Хари Балакришнан и Скотт Шенкер . [9] За пределами академических кругов технология DHT была принята в качестве компонента BitTorrent и в сети распространения контента Coral .

Свойства [ править ]

DHT обычно подчеркивают следующие свойства:

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

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

Некоторые конструкции DHT стремятся защитить себя от злонамеренных участников [10] и позволить участникам оставаться анонимными , хотя это менее распространено, чем во многих других одноранговых системах (особенно в системах обмена файлами ); см. анонимный P2P .

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

Структура [ править ]

Структуру DHT можно разделить на несколько основных компонентов. [11] [12] В основе лежит абстрактное пространство ключей , такое как набор 160-битных строк . Схема разделения пространства ключей разделяет владение этим пространством ключей между участвующими узлами. Затем оверлейная сеть соединяет узлы, позволяя им найти владельца любого заданного ключа в пространстве ключей.

После установки этих компонентов типичное использование DHT для хранения и извлечения может происходить следующим образом. Предположим, что пространство ключей - это набор 160-битных строк. Чтобы проиндексировать файл с заданным именем файла и данными в DHT, создается хэш SHA-1 имени файла , в результате чего получается 160-битный ключ k , и сообщение put ( k, data ) отправляется на любой узел, участвующий в DHT. Сообщение пересылается от узла к узлу через оверлейную сеть, пока не достигнет единственного узла, ответственного за ключ k.как определено разделением пространства ключей. Затем этот узел хранит ключ и данные. Затем любой другой клиент может получить содержимое файла, снова хешируя имя файла для получения k и запрашивая любой узел DHT найти данные, связанные с k, с сообщением get ( k ) . Сообщение снова будет перенаправлено через оверлей на узел, ответственный за k , который ответит сохраненными данными .

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

Разбиение ключевого пространства [ править ]

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

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

Последовательное хеширование [ править ]

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

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

Хеширование рандеву [ править ]

При рандеву-хешировании, также называемом хешированием наивысшего случайного веса (HRW), все клиенты используют одну и ту же хеш-функцию (выбранную заранее) для связывания ключа с одним из n доступных серверов. У каждого клиента один и тот же список идентификаторов { S 1 , S 2 , ..., S n } , по одному для каждого сервера. Учитывая некоторый ключ k , клиент вычисляет n хеш-весов w 1 = h ( S 1 , k ), w 2 = h ( S 2 , k), ..., w n = h ( S n , k ) . Клиент связывает этот ключ с сервером, соответствующим наивысшему весу хэша для этого ключа. Сервер с идентификатором владеет всеми ключами, для которых хэш-вес выше, чем хеш-вес любого другого узла для этого ключа.

Хеширование с сохранением местоположения [ править ]

Хеширование с сохранением местоположения гарантирует, что одинаковые ключи назначаются аналогичным объектам. Это может обеспечить более эффективное выполнение запросов диапазона, однако, в отличие от использования согласованного хеширования, больше нет уверенности в том, что ключи (и, следовательно, нагрузка) равномерно случайным образом распределены по пространству ключей и участвующим одноранговым узлам. Протоколы DHT, такие как Self-Chord и Oscar [13], решают такие проблемы. Self-Chord отделяет ключи объектов от одноранговых идентификаторов и сортирует ключи по кольцу с помощью статистического подхода, основанного на парадигме разведки роя . [14] Сортировка гарантирует, что аналогичные ключи хранятся соседними узлами и что процедуры обнаружения, включая запросы диапазона, может быть выполнено за логарифмическое время. Оскар создает управляемую сеть малого мира на основе выборки случайных блужданий, что также обеспечивает логарифмическое время поиска.

Оверлейная сеть [ править ]

Каждый узел поддерживает набор связей с другими узлами (своими соседями или таблицей маршрутизации ). Вместе эти ссылки образуют оверлейную сеть. [15] Узел выбирает своих соседей в соответствии с определенной структурой, называемой топологией сети .

Все топологии DHT имеют один вариант наиболее важного свойства: для любого ключа k каждый узел либо имеет идентификатор узла, который владеет k, либо имеет ссылку на узел, идентификатор которого ближе к k , с точки зрения расстояния между ключами, определенного выше. . Затем легко направить сообщение владельцу любого ключа k, используя следующий жадный алгоритм (который не обязательно является оптимальным в глобальном масштабе): на каждом шаге пересылать сообщение соседу, идентификатор которого ближе всего к k . Когда такого соседа нет, значит, мы достигли ближайшего узла, который является владельцем k, как определено выше. Этот стиль маршрутизации иногда называютмаршрутизация на основе ключей .

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

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

Максимальная длина маршрута тесно связана с диаметром : максимальное количество переходов на любом кратчайшем пути между узлами. Очевидно, что длина маршрута сети в худшем случае по крайней мере равна ее диаметру, поэтому DHT ограничены компромиссом между степенью и диаметром [17], который является фундаментальным в теории графов . Длина маршрута может быть больше диаметра, поскольку жадный алгоритм маршрутизации может не находить кратчайшие пути. [18]

Алгоритмы для оверлейных сетей [ править ]

Помимо маршрутизации, существует множество алгоритмов, которые используют структуру оверлейной сети для отправки сообщения всем узлам или подмножеству узлов в DHT. [19] Эти алгоритмы используются приложениями для наложения многоадресной рассылки , запросов диапазона или для сбора статистики. Две системы, основанные на этом подходе: Structella [20], которая реализует лавинную рассылку и случайные обходы на наложении Pastry, и DQ-DHT, которая реализует алгоритм поиска с динамическими запросами по сети Chord. [21]

Безопасность [ править ]

Благодаря децентрализации, отказоустойчивости и масштабируемости DHT по своей природе они более устойчивы к враждебному злоумышленнику, чем централизованная система. [ расплывчато ]

Возможны открытые системы для распределенного хранения данных , устойчивые к массовым злоумышленникам. [22]

Система DHT, тщательно разработанная для обеспечения византийской отказоустойчивости, может защитить от уязвимости в системе безопасности, известной как атака Сибиллы , которая затрагивает все существующие конструкции DHT. [23] [24]

Петар Маймунков, один из первых авторов « Кадемлии» , предложил способ обойти слабое место атаки Сибиллы, включив в структуру системы отношения социального доверия. [25] Новая система под кодовым названием Tonika или также известная под своим доменным именем 5ttt основана на алгоритме, известном как «электрическая маршрутизация», и написана в соавторстве с математиком Джонатаном Кельнером. [26] Маймунков предпринял комплексные усилия по внедрению этой новой системы. Однако исследование эффективных средств защиты от атак Sybil обычно считается открытым вопросом, и каждый год на ведущих конференциях по исследованию безопасности предлагается широкий спектр потенциальных средств защиты. [ необходима цитата ]

Реализации [ править ]

Наиболее заметные различия, встречающиеся в практических примерах реализации DHT, включают, по крайней мере, следующее:

  • Адресное пространство - это параметр DHT. Некоторые реальные DHT используют 128-битное или 160-битное пространство ключей.
  • Некоторые реальные DHT используют хеш-функции, отличные от SHA-1 .
  • В реальном мире ключ к может быть хэш файла контента , а не хэш файла имя , чтобы обеспечить содержание адресацией памяти , так что переименование файла не мешает пользователям находить его.
  • Некоторые DHT могут также публиковать объекты разных типов. Например, ключ k может быть идентификатором узла, а связанные данные могут описывать, как связаться с этим узлом. Это позволяет публиковать информацию о присутствии и часто используется в приложениях для обмена мгновенными сообщениями и т. Д. В простейшем случае ID - это просто случайное число, которое непосредственно используется в качестве ключа k (поэтому в 160-битном DHT ID будет 160-битным номер, обычно выбираемый случайным образом). В некоторых DHT публикация идентификаторов узлов также используется для оптимизации операций DHT.
  • Для повышения надежности можно добавить избыточность. (К, данные) пара ключей можно хранить в более чем один узел , соответствующий ключу. Обычно, вместо того, чтобы выбирать только один узел, реальные алгоритмы DHT выбирают i подходящих узлов, причем i является параметром DHT, зависящим от реализации. В некоторых проектах DHT узлы соглашаются обрабатывать определенный диапазон пространства ключей, размер которого можно выбирать динамически, а не жестко.
  • Некоторые продвинутые DHT, такие как Kademlia, сначала выполняют итеративный поиск через DHT, чтобы выбрать набор подходящих узлов и отправить сообщения put (k, data) только этим узлам, что значительно снижает бесполезный трафик, поскольку опубликованные сообщения отправляются только узлам, которые кажутся подходящими для хранения ключа k ; а итеративный поиск охватывает только небольшой набор узлов, а не весь DHT, сокращая бесполезную пересылку. В таких DHT пересылка сообщений put (k, data) может происходить только как часть алгоритма самовосстановления: если целевой узел получает сообщение put (k, data) , но считает, что kвыходит за пределы обрабатываемого диапазона и известен более близкий узел (с точки зрения пространства ключей DHT), сообщение пересылается на этот узел. В противном случае данные индексируются локально. Это приводит к некоторому самобалансирующемуся поведению DHT. Конечно, такой алгоритм требует, чтобы узлы публиковали данные о своем присутствии в DHT, чтобы можно было выполнять итеративный поиск.
  • Поскольку на большинстве машин отправка сообщений намного дороже, чем доступ к локальной хеш-таблице, имеет смысл объединить множество сообщений, касающихся конкретного узла, в один пакет. Предполагая, что каждый узел имеет локальный пакет, состоящий не более чем из b операций, процедура объединения выглядит следующим образом. Каждый узел сначала сортирует свой локальный пакет по идентификатору узла, ответственного за операцию. Используя сортировку по ведру , это можно сделать за O (b + n) , где nколичество узлов в DHT. Когда в одном пакете выполняется несколько операций, обращающихся к одному и тому же ключу, пакет уплотняется перед отправкой. Например, несколько поисков одного и того же ключа могут быть сокращены до одного или несколько приращений могут быть сокращены до одной операции добавления. Это сокращение может быть реализовано с помощью временной локальной хеш-таблицы. Наконец, операции отправляются в соответствующие узлы. [27]

Примеры [ править ]

Протоколы и реализации DHT [ править ]

  • Apache Cassandra
  • BATON Накладка
  • Mainline DHT - стандартный DHT, используемый BitTorrent (на основе Kademlia, предоставленного Khashmir) [28]
  • Сеть с адресацией по содержанию (CAN)
  • Аккорд
  • Koorde
  • Кадемлия
  • Кондитерские изделия
  • P-сетка
  • Риак
  • Гобелен
  • TomP2P
  • Волан-де-Морт

Приложения, использующие DHT [ править ]

  • BTDigg : поисковая система BitTorrent DHT
  • Codeen : веб-кеширование
  • Сеть распространения контента Coral
  • Freenet : анонимная сеть, устойчивая к цензуре
  • GlusterFS : распределенная файловая система, используемая для виртуализации хранилища.
  • GNUnet : распределительная сеть, подобная Freenet, включая реализацию DHT.
  • I2P : анонимная одноранговая сеть с открытым исходным кодом
  • I2P-Bote : безопасная анонимная электронная почта без сервера
  • IPFS : протокол однорангового распространения гипермедиа с адресацией по содержимому
  • JXTA : P2P-платформа с открытым исходным кодом
  • Oracle Coherence : сетка данных в памяти, построенная на основе реализации Java DHT
  • Perfect Dark : приложение для однорангового обмена файлами из Японии
  • Retroshare : сеть друзей [29]
  • Jami : сохраняющая конфиденциальность коммуникационная платформа для голоса, видео и чата, основанная на DHT, подобном Kademlia.
  • Tox : система обмена мгновенными сообщениями , предназначенная для замены Skype.
  • Twister : пиринговая платформа для микроблогов
  • YaCy : распределенная поисковая система

См. Также [ править ]

  • Couchbase Server : постоянная, реплицированная, кластерная распределенная система хранения объектов, совместимая с протоколом memcached.
  • Memcached : высокопроизводительная система кэширования объектов с распределенной памятью.
  • Префиксное хеш-дерево : сложные запросы к DHT.
  • Дерево Меркла : дерево, в котором каждый нелистовой узел помечен хешем меток его дочерних узлов.
  • В большинстве распределенных хранилищ данных для поиска используется та или иная форма DHT.
  • Графики пропуска - это эффективная структура данных для реализации DHT.

Ссылки [ править ]

  1. ^ Stoica, I .; Morris, R .; Каргер, Д .; Kaashoek, MF; Балакришнан, Х. (2001). «Chord: масштабируемая одноранговая служба поиска для интернет-приложений» (PDF) . Обзор компьютерных коммуникаций ACM SIGCOMM . 31 (4): 149. DOI : 10,1145 / 964723,383071 . Значение может быть адресом, документом или произвольным элементом данных.
  2. ^ Лиз, Кроукрофт; и другие. (2005). «Обзор и сравнение схем одноранговых оверлейных сетей» (PDF) . Обзоры и учебные пособия по коммуникациям IEEE . 7 (2): 72–93. CiteSeerX 10.1.1.109.6124 . DOI : 10,1109 / COMST.2005.1610546 .  
  3. ^ Рихтер, Стивенсон; и другие. (2009). «Анализ влияния моделей динамических запросов на отношения клиент-сервер». Тенденции в современных вычислениях : 682–701.
  4. ^ Поиск в маленьком мире, главы 1 и 2 (PDF) , получено 10 января 2012 г.
  5. ^ «Раздел 5.2.2» (PDF) , Распределенная децентрализованная система хранения и поиска информации , получено 10 января 2012 г.
  6. ^ Ратнасами; и другие. (2001). «Масштабируемая сеть с адресацией к содержимому» (PDF) . В материалах ACM SIGCOMM 2001 . Проверено 20 мая 2013 . Cite journal requires |journal= (help)
  7. Хари Балакришнан , М. Франс Каашук , Дэвид Каргер, Роберт Моррис и Ион Стойка. Поиск данных в системах P2P . В сообщениях ACM , февраль 2003 г.
  8. Дэвид Коэн (1 октября 2002 г.). «Новая P2P-сеть, финансируемая правительством США» . Новый ученый . Проверено 10 ноября 2013 года .
  9. ^ «Массачусетский технологический институт, Беркли, ИКСИ, Нью-Йоркский университет и Райс запускают проект IRIS» . Пресс-релиз . Массачусетский технологический институт. 25 сентября, 2002. Архивировано из оригинального 26 сентября 2015 года . Проверено 10 ноября 2013 года .
  10. ^ Гвидо Урданета, Гийом Пьер и Маартен ван Стин. Обзор методов безопасности DHT . ACM Computing Surveys 43 (2), январь 2011 г.
  11. ^ Мони Наор и Уди Видер. Новые архитектуры для приложений P2P: непрерывно-дискретный подход . Proc. СПА, 2003.
  12. ^ Гурмит Сингх Манку. Dipsea: Модульный Distributed Hash Table в архив 2004-09-10 в Wayback Machine . Докторская диссертация (Стэнфордский университет), август 2004 г.
  13. ^ Girdzijauskas, Šarūnas; Датта, Анвитаман; Аберер, Карл (01.02.2010). «Структурированный оверлей для гетерогенных сред» . ACM-транзакции в автономных и адаптивных системах . 5 (1): 1–25. DOI : 10.1145 / 1671948.1671950 . ISSN 1556-4665 . 
  14. ^ Форестьеро, Агостино; Леонарди, Эмилио; Мастроянни, Карло; Мео, Микела (октябрь 2010 г.). «Self-Chord: био-вдохновленная P2P-платформа для самоорганизующихся распределенных систем» . Транзакции IEEE / ACM в сети . 18 (5): 1651–1664. DOI : 10.1109 / TNET.2010.2046745 .
  15. ^ Галуба, Войцех; Гирдзияускас, Шарунас (2009), «Одноранговые оверлейные сети: структура, маршрутизация и обслуживание», в LIU, LING; ÖZSU, М. укротитель (ред.), Энциклопедия систем баз данных , Springer США, С. 2056-2061,. Да : 10,1007 / 978-0-387-39940-9_1215 , ISBN 9780387399409
  16. ^ Girdzijauskas, Сарунас (2009). Проектирование одноранговой сети перекрывает перспективу маленького мира . epfl.ch . EPFL.
  17. ^ The (степень, диаметр) Задача для графов , Maite71.upc.es, архивируются с оригинала на 2012-02-17 , извлекаться 2012-01-10
  18. ^ Гермит Сингх Manku, Moni Naor и Уди Wieder. «Знай своего соседа: сила предвидения в случайных P2P-сетях» . Proc. СТОК, 2004.
  19. ^ Али Годси . «Распределенная k-арная система: алгоритмы для распределенных хеш-таблиц» , заархивировано 22 мая 2007 г. на Wayback Machine . KTH-Королевский технологический институт, 2006 г.
  20. ^ Кастро, Мигель; Коста, Мануэль; Роустрон, Энтони (1 января 2004 г.). «Должны ли мы строить Gnutella на структурированном оверлее?» (PDF) . Обзор компьютерных коммуникаций ACM SIGCOMM . 34 (1): 131. CiteSeerX 10.1.1.221.7892 . DOI : 10.1145 / 972374.972397 .  
  21. ^ Талия, Доменико; Трунфио, Паоло (декабрь 2010 г.). «Включение динамических запросов по распределенным хеш-таблицам». Журнал параллельных и распределенных вычислений . 70 (12): 1254–1265. DOI : 10.1016 / j.jpdc.2010.08.012 .
  22. ^ Барух Авербух, Кристиан Шайделер. «На пути к масштабируемому и надежному DHT». 2006. DOI : 10,1145 / 1148109.1148163
  23. ^ Максвелл Янг; Аникет Кейт; Ян Голдберг; Мартин Карстен. «Практическая надежная коммуникация в DHT, терпящая византийского противника» .
  24. ^ Наталья Федотова; Джордано Орцетти; Лука Велтри; Алессандро Дзакканнини. «Византийское соглашение об управлении репутацией в одноранговых сетях на основе DHT». DOI : 10,1109 / ICTEL.2008.4652638
  25. ^ Крис Лесневски-Лаас. "Защита от Сибиллы с одним прыжком" (PDF) : 20. Cite journal requires |journal= (help)
  26. ^ Джонатан Кельнер, Петар Маймунков (2009). «Электрическая трассировка и параллельная резка» . arXiv : 0909.2859 . Bibcode : 2009arXiv0909.2859K . Cite journal requires |journal= (help)
  27. ^ Сандерс, Питер; Мельхорн, Курт; Дицфельбингер, Мартин; Дементьев, Роман (2019). Последовательные и параллельные алгоритмы и структуры данных: базовый набор инструментов . Издательство Springer International. ISBN 978-3-030-25208-3.
  28. ^ Tribler вики архивации 4 декабря 2010, в Wayback Machine извлекаться января 2010.
  29. ^ Часто задаваемые вопросы Retroshare получены в декабре 2011 г.

Внешние ссылки [ править ]

  • Распределенные хеш-таблицы, часть 1 , Брэндон Вили.
  • Распределенные хеш-таблицы связывают страницу Карлеса Пайро об исследованиях DHT и P2P
  • kademlia.scs.cs.nyu.edu Archive.org снимки kademlia.scs.cs.nyu.edu
  • Энг-Кеонг Луа; Кроукрофт, Джон; Пиас, Марсело; Шарма, Рави; Лим, Стив (2005). «Обзор IEEE по схемам оверлейных сетей». CiteSeerX  10.1.1.111.4197 : Cite journal requires |journal= (help) покрывающие неструктурированные и структурированные децентрализованные оверлейные сети, включая DHT (Chord, Pastry, Tapestry и другие).
  • Измерение основного DHT на факультете компьютерных наук Хельсинкского университета, Финляндия.