Распределенная хеш-таблица
Распределенная хэш-таблица ( DHT ) — это распределенная система , предоставляющая службу поиска, аналогичную хеш-таблице . Пары ключ-значение хранятся в DHT, и любой участвующий узел может эффективно получить значение, связанное с данным ключом. Основное преимущество DHT заключается в том, что узлы можно добавлять или удалять с минимальными усилиями по перераспределению ключей. [ 1 ] Ключи — это уникальные идентификаторы, которые сопоставляются с определенными значениями , которые, в свою очередь, могут быть чем угодно: от адресов до документов и произвольных данных . [ 2 ] Ответственность за поддержание сопоставления ключей со значениями распределяется между узлами таким образом, чтобы изменение набора участников вызывало минимальный сбой. Это позволяет DHT масштабироваться до чрезвычайно большого количества узлов и обрабатывать непрерывные поступления, отправления и сбои узлов.
DHT образуют инфраструктуру, которую можно использовать для создания более сложных сервисов, таких как Anycast , совместное веб-кэширование , распределенные файловые системы , службы доменных имен , обмен мгновенными сообщениями , многоадресная рассылка , а также одноранговые системы обмена файлами и распространения контента . Известные распределенные сети, использующие DHT, включают сеть распределенный трекер BitTorrent, Kad , ботнет Storm , мессенджер Tox , Freenet , поисковую систему YaCy и InterPlanetary File System .

История
[ редактировать ]Исследования DHT изначально были частично мотивированы одноранговыми (P2P) системами, такими как Freenet , Gnutella , BitTorrent и Napster , которые использовали ресурсы, распределенные по Интернету, для предоставления единого полезного приложения. В частности, они воспользовались возросшей пропускной способностью и емкостью жесткого диска для предоставления услуг обмена файлами. [ 3 ]
Эти системы различались тем, как они находили данные, предлагаемые их аналогами. Napster, первой крупномасштабной системе доставки контента P2P, требовал центрального индексного сервера: каждый узел при присоединении отправлял список локально хранящихся файлов на сервер, который выполнял поиск и перенаправлял запросы к узлам, на которых хранился файл. результаты. Этот центральный компонент сделал систему уязвимой для атак и судебных исков.
Gnutella и подобные сети перешли на модель лавинной рассылки запросов — по сути, каждый поиск приводил к тому, что сообщение транслировалось на каждую машину в сети. Несмотря на отсутствие единой точки отказа , этот метод был значительно менее эффективным, чем Napster. Более поздние версии клиентов Gnutella перешли на модель динамических запросов , что значительно повысило эффективность. [ 4 ]
Freenet полностью распределен, но использует эвристическую маршрутизацию на основе ключей , при которой каждый файл связан с ключом, а файлы со схожими ключами имеют тенденцию группироваться на аналогичном наборе узлов. Запросы, скорее всего, будут направляться через сеть в такой кластер без необходимости посещения многих узлов. [ 5 ] Однако Freenet не гарантирует, что данные будут найдены.
Распределенные хеш-таблицы используют более структурированную маршрутизацию на основе ключей, чтобы обеспечить как децентрализацию Freenet и Gnutella, так и эффективность и гарантированные результаты Napster. Freenet Одним из недостатков является то, что, как и Freenet, DHT напрямую поддерживают только поиск по точному совпадению, а не поиск по ключевым словам, хотя алгоритм маршрутизации может быть обобщен на любой тип ключа, где может быть определена операция близости. [ 6 ]
В 2001 году четыре системы — CAN , [ 7 ] Аккорд , [ 8 ] Кондитерские изделия и гобелены сделали ДГТ популярной темой исследований. США Проект под названием «Инфраструктура для устойчивых интернет-систем» (Iris) был профинансирован за счет гранта в размере 12 миллионов долларов США от Национального научного фонда в 2002 году. [ 9 ] Среди исследователей были Сильвия Ратнасами , Ион Стойка , Хари Балакришнан и Скотт Шенкер . [ 10 ] За пределами академических кругов технология DHT была принята в качестве компонента BitTorrent и в проектах PlanetLab, таких как Coral Content Distribution Network. [ 11 ]
Характеристики
[ редактировать ]DHT характерно подчеркивают следующие свойства:
- Автономия и децентрализация : узлы коллективно образуют систему без какой-либо центральной координации.
- Отказоустойчивость : система должна быть надежной (в некотором смысле) даже при постоянном присоединении, выходе и сбое узлов. [ 12 ]
- Масштабируемость : система должна эффективно функционировать даже с тысячами или миллионами узлов.
Ключевой метод, используемый для достижения этих целей, заключается в том, что любой узел должен координировать свои действия лишь с несколькими другими узлами в системе чаще всего с O (log n ) из n участников (см. ниже)
Некоторые конструкции DHT направлены на защиту от злоумышленников. [ 13 ] и позволить участникам оставаться анонимными , хотя это встречается реже, чем во многих других одноранговых (особенно файлообменных ) системах; см. анонимный P2P .
Структура
[ редактировать ]Структуру DHT можно разложить на несколько основных компонентов. [ 14 ] [ 15 ] Основой является абстрактное пространство ключей , такое как набор 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 доступных серверов. одинаковый список идентификаторов { S1 . , S2 Каждый клиент имеет ,..., Sn } сервера , по одному для каждого По некоторому ключу k клиент вычисляет n хеш-весов w 1 = h ( S 1 , k ), w 2 = h ( S 2 , k ), ..., w n = h ( S n , k ) . Клиент связывает этот ключ с сервером, соответствующим наибольшему весу хеш-функции для этого ключа. Сервер с идентификатором владеет всеми ключами для которого хеш-вес выше, чем хеш-вес любого другого узла для этого ключа.
Хеширование с сохранением локальности
[ редактировать ]Хеширование с сохранением локальности гарантирует, что аналогичные ключи будут назначены одинаковым объектам. Это может обеспечить более эффективное выполнение запросов диапазона, однако, в отличие от использования последовательного хеширования, больше нет уверенности в том, что ключи (и, следовательно, нагрузка) равномерно и случайно распределены по пространству ключей и участвующим одноранговым узлам. Протоколы DHT, такие как Self-Chord и Oscar [ 16 ] решать подобные вопросы. Self-Chord отделяет ключи объектов от идентификаторов узлов и сортирует ключи по кольцу с помощью статистического подхода, основанного на парадигме роевого интеллекта . [ 17 ] Сортировка гарантирует, что соседние узлы сохраняют одинаковые ключи и что процедуры обнаружения, включая запросы диапазона , могут выполняться за логарифмическое время. Оскар создает навигационную сеть маленького мира на основе выборки случайных блужданий , а также обеспечивает логарифмическое время поиска.
Оверлейная сеть
[ редактировать ]Каждый узел поддерживает набор ссылок на другие узлы (своих соседей или таблицу маршрутизации ). Вместе эти ссылки образуют оверлейную сеть. [ 18 ] Узел выбирает своих соседей в соответствии с определенной структурой, называемой топологией сети .
Все топологии DHT разделяют некоторый вариант наиболее важного свойства: для любого ключа k каждый узел либо имеет идентификатор узла, которому принадлежит k , либо имеет ссылку на узел, чей идентификатор узла ближе к k , с точки зрения расстояния пространства ключей, определенного выше. . Тогда легко направить сообщение владельцу любого ключа k, используя следующий жадный алгоритм (который не обязательно является глобально оптимальным): на каждом шаге пересылайте сообщение соседу, чей идентификатор ближе всего к k . Если такого соседа нет, мы должны прийти к ближайшему узлу, который является владельцем k, как определено выше. Этот стиль маршрутизации иногда называют маршрутизацией на основе ключей .
Помимо базовой корректности маршрутизации, два важных ограничения топологии заключаются в том, чтобы гарантировать, что максимальное количество переходов в любом маршруте (длина маршрута) невелико, чтобы запросы выполнялись быстро; и что максимальное количество соседей любого узла (максимальная степень узла ) невелико, так что накладные расходы на обслуживание не являются чрезмерными. Конечно, более короткие маршруты требуют более высокой максимальной степени . Ниже приведены некоторые распространенные варианты максимальной степени и длины маршрута, где n — количество узлов в DHT, используя обозначение Big O :
Макс. степень | Максимальная длина маршрута | Используется в | Примечание |
---|---|---|---|
Наихудшая длина поиска, вероятно, с гораздо более медленным временем поиска. | |||
Хорда (с постоянной степенью) | Более сложна в реализации, но приемлемое время поиска можно найти при фиксированном количестве соединений. | ||
Аккорд Кадемлия Кондитерские изделия Гобелен |
Самый распространенный, но не оптимальный (градус/длина маршрута). Chord — самая базовая версия, а Kademlia — самый популярный оптимизированный вариант (должен быть улучшен средний поиск). | ||
Шнуры (с оптимальным поиском) | Сложнее реализовать, но поиск может быть быстрее (имеет нижнюю границу наихудшего случая) | ||
Наихудшие потребности в локальном хранилище, с большим объемом обмена данными после подключения или отключения любого узла. |
Самый распространенный выбор, степень/длина маршрута не является оптимальным с точки зрения соотношения степени/длины маршрута, но такие топологии обычно обеспечивают большую гибкость в выборе соседей. Многие DHT используют эту гибкость для выбора соседей, близких по задержке в физической базовой сети. В общем, все DHT создают навигационные топологии сетей маленького мира, в которых длина маршрута находится в компромиссе с уровнем сети. [ 19 ]
Максимальная длина маршрута тесно связана с диаметром : максимальным количеством прыжков на любом кратчайшем пути между узлами. Очевидно, что длина маршрута в наихудшем случае сети, по крайней мере, равна ее диаметру, поэтому DHT ограничены соотношением степени/диаметра. [ 20 ] это фундаментально в теории графов . Длина маршрута может быть больше диаметра, поскольку жадный алгоритм маршрутизации может не найти кратчайшие пути. [ 21 ]
Алгоритмы для оверлейных сетей
[ редактировать ]Помимо маршрутизации, существует множество алгоритмов, которые используют структуру оверлейной сети для отправки сообщения всем узлам или подмножеству узлов в DHT. [ 22 ] Эти алгоритмы используются приложениями для выполнения наложенной многоадресной рассылки , запросов диапазона или для сбора статистики. Две системы, основанные на этом подходе: Structella, [ 23 ] который реализует лавинную рассылку и случайные блуждания в оверлее Pastry, и DQ-DHT, который реализует алгоритм поиска с динамическими запросами в сети Chord. [ 24 ]
Безопасность
[ редактировать ]Благодаря децентрализации, отказоустойчивости и масштабируемости DHT они по своей сути более устойчивы к враждебному злоумышленнику, чем централизованная система. [ нечеткий ]
Открытые системы для распределенного хранения данных , устойчивые к массовым враждебным атакам, вполне осуществимы. [ 25 ]
Система DHT, тщательно спроектированная с учетом византийской отказоустойчивости, может защитить от уязвимости безопасности, известной как атака Сивиллы , которая затрагивает большинство современных разработок DHT. [ 26 ] [ 27 ] Ванау — это DHT, разработанный для защиты от атак Сивиллы. [ 28 ]
Петар Маймунков, один из первых авторов Kademlia , предложил способ обойти слабость атаки Сивиллы путем включения отношений социального доверия в конструкцию системы. [ 29 ] Новая система под кодовым названием Tonika или также известная под своим доменным именем 5ttt основана на алгоритме, известном как «электрическая маршрутизация», и разработана в соавторстве с математиком Джонатаном Келнером. [ 30 ] Маймунков сейчас предпринял комплексные усилия по внедрению этой новой системы. Однако исследование эффективной защиты от атак Сивиллы обычно считается открытым вопросом, и каждый год на ведущих конференциях по исследованию безопасности предлагается широкий спектр потенциальных средств защиты. [ нужна ссылка ]
Реализации
[ редактировать ]Наиболее заметные различия, встречающиеся на практике при реализации DHT, включают, по крайней мере, следующее:
- Адресное пространство является параметром DHT. Некоторые реальные DHT используют 128-битное или 160-битное пространство ключей.
- Некоторые реальные DHT используют хеш-функции, отличные от SHA-1 .
- В реальном мире ключ k файла, может быть хешем содержимого файла а не хешем имени , чтобы обеспечить хранилище с адресацией по содержимому , чтобы переименование файла не мешало пользователям его найти.
- Некоторые DHT также могут публиковать объекты разных типов. Например, ключ k может быть узлом Идентификатор и связанные с ним данные могут описывать, как связаться с этим узлом. Это позволяет публиковать информацию о присутствии и часто используется в приложениях обмена мгновенными сообщениями и т. д. В простейшем случае ID — это просто случайное число, которое напрямую используется в качестве ключа. k (то есть в 160-битном DHT ID будет 160-битным числом, обычно выбираемым случайным образом). В некоторых DHT публикация идентификаторов узлов также используется для оптимизации операций DHT.
- Для повышения надежности можно добавить резервирование. (k, data) пара ключей может храниться более чем в одном узле, соответствующем ключу. Обычно вместо того, чтобы выбирать только один узел, реальные алгоритмы DHT выбирают мне подходят узлы, с i — параметр DHT, специфичный для реализации. В некоторых конструкциях DHT узлы соглашаются обрабатывать определенный диапазон пространства ключей, размер которого можно выбирать динамически, а не жестко запрограммировать.
- Некоторые продвинутые DHT, такие как Kademlia, сначала выполняют итеративный поиск через DHT, чтобы выбрать набор подходящих узлов и отправить сообщения put(k, data) только на эти узлы, что радикально снижает бесполезный трафик, поскольку опубликованные сообщения отправляются только на узлы, которые кажутся подходящими для хранения ключа. к ; а итеративные поиски охватывают лишь небольшой набор узлов, а не весь DHT, что сокращает бесполезную пересылку. В таких DHT пересылка Сообщения put(k, data) могут возникать только как часть алгоритма самовосстановления: если целевой узел получает сообщение put(k, data) сообщение, но считает, что k находится вне обрабатываемого диапазона и известен ближайший узел (с точки зрения пространства ключей DHT), сообщение пересылается на этот узел. В противном случае данные индексируются локально. Это приводит к некоторому самобалансирующемуся поведению DHT. Конечно, такой алгоритм требует, чтобы узлы публиковали данные о своем присутствии в DHT, чтобы можно было выполнять итеративный поиск.
- Поскольку на большинстве машин отправка сообщений обходится намного дороже, чем доступ к локальной хэш-таблице, имеет смысл объединить множество сообщений, касающихся конкретного узла, в один пакет. Предполагая, что каждый узел имеет локальный пакет, состоящий не более чем из b операций, процедура объединения заключается в следующем. Каждый узел сначала сортирует свой локальный пакет по идентификатору узла, ответственного за операцию. Используя сегментную сортировку , это можно сделать в O(b + n) , где n — количество узлов в DHT. Если в одном пакете выполняется несколько операций, обращающихся к одному и тому же ключу, перед отправкой пакет сжимается. Например, несколько поисков одного и того же ключа можно свести к одному, а несколько приращений можно свести к одной операции добавления. Такое сокращение можно реализовать с помощью временной локальной хеш-таблицы. Наконец, операции отправляются на соответствующие узлы. [ 31 ]
Примеры
[ редактировать ]Протоколы и реализации DHT
[ редактировать ]- Апач Кассандра
- Наложение дубинки
- Mainline DHT – стандартный DHT, используемый BitTorrent (на основе Kademlia , предоставленный Khashmir) [ 32 ]
- Сеть с адресацией контента (CAN)
- Аккорд
- Шнуры
- Кадемлия
- Кондитерские изделия
- P-сетка
- Пульсация
- СциллаБД
- Гобелен
- ТомP2P
- Волдеморт
Приложения, использующие DHT
[ редактировать ]- BTDigg : поисковая система BitTorrent DHT.
- Codeen : веб-кэширование
- Freenet : анонимная сеть, устойчивая к цензуре.
- GlusterFS : распределенная файловая система, используемая для виртуализации хранения.
- GNUnet : распределительная сеть, подобная Freenet, включая реализацию DHT.
- I2P : анонимная одноранговая сеть с открытым исходным кодом.
- I2P-Bote : бессерверная безопасная анонимная электронная почта
- IPFS : одноранговый протокол распространения гипермедиа с адресацией по контенту.
- JXTA : P2P-платформа с открытым исходным кодом.
- LBRY : протокол обмена контентом на основе блокчейна, который использует систему DHT под влиянием Kademlia для распространения контента.
- Oracle Coherence : сетка данных в памяти, построенная на основе реализации Java DHT.
- Perfect Dark : одноранговое приложение для обмена файлами из Японии.
- Retroshare : друзей-другов сеть [ 33 ]
- Jami : сохраняющая конфиденциальность платформа голосовой, видео и чат-связи, основанная на Kademlia-подобном DHT.
- Tox : система обмена мгновенными сообщениями, предназначенная для Skype. замены
- Twister : микроблогов. одноранговая платформа
- YaCy : распределенная поисковая система.
См. также
[ редактировать ]- Couchbase Server : постоянная, реплицируемая, кластеризованная система хранения распределенных объектов, совместимая с протоколом memcached.
- Memcached : высокопроизводительная система кэширования объектов с распределенной памятью.
- Префиксное хеш-дерево : сложные запросы по DHT.
- Дерево Меркла : дерево, в котором каждый нелистовой узел помечен хешем меток его дочерних узлов.
- Большинство распределенных хранилищ данных используют для поиска ту или иную форму DHT.
- Графы пропуска — это эффективная структура данных для реализации DHT.
Ссылки
[ редактировать ]- ^ Хота, Читтаранджан; Шримани, Прадип К. (11 января 2013 г.). Распределенные вычисления и интернет-технологии: 9-я Международная конференция ICDCIT 2013, Бхубанешвар, Индия, 5–8 февраля 2013 г., Материалы . Спрингер. ISBN 978-3-642-36071-8 .
- ^ Стойка, И .; Моррис, Р.; Каргер, Д .; Каашук, МФ; Балакришнан, Х. (2001). «Chord: масштабируемая одноранговая служба поиска интернет-приложений» (PDF) . Обзор компьютерных коммуникаций ACM SIGCOMM . 31 (4): 149. дои : 10.1145/964723.383071 . Архивировано (PDF) из оригинала 7 июля 2023 г. Проверено 18 сентября 2018 г.
Значением может быть адрес, документ или произвольный элемент данных.
- ^ Лиз, Кроукрофт; и др. (2005). «Обзор и сравнение схем одноранговых оверлейных сетей» (PDF) . Опросы и учебные пособия IEEE по коммуникациям . 7 (2): 72–93. CiteSeerX 10.1.1.109.6124 . дои : 10.1109/COMST.2005.1610546 . S2CID 7971188 . Архивировано (PDF) из оригинала 05 октября 2023 г. Проверено 24 сентября 2019 г.
- ^ Рихтер, Стивенсон; и др. (2009). «Анализ влияния моделей динамических запросов на отношения клиент-сервер». Тенденции в современных вычислениях : 682–701.
- ^ В поисках маленького мира, главы 1 и 2 (PDF) , заархивировано из оригинала (PDF) 16 марта 2012 г. , получено 10 января 2012 г.
- ^ «Раздел 5.2.2» (PDF) , Распределенная децентрализованная система хранения и поиска информации , заархивировано из оригинала (PDF) 16 марта 2012 г. , получено 10 января 2012 г.
- ^ Ратнасами, Сильвия; Фрэнсис, Пол; Хэндли, Марк; Карп, Ричард; Шенкер, Скотт (27 августа 2001 г.). «Масштабируемая сеть с адресацией по контенту» . СИГКОММ Компьютер. Коммун. Преподобный . 31 (4): 161–172. дои : 10.1145/964723.383072 . ISSN 0146-4833 .
- ^ Хари Балакришнан , М. Франс Каашук , Дэвид Каргер, Роберт Моррис и Ион Стойка. Поиск данных в P2P-системах. Архивировано 19 мая 2016 г. на Wayback Machine . В сообщениях ACM , февраль 2003 г.
- ^ Дэвид Коэн (1 октября 2002 г.). «Новая P2P-сеть, финансируемая правительством США» . Новый учёный . Архивировано из оригинала 6 апреля 2008 года . Проверено 10 ноября 2013 г.
- ^ «MIT, Беркли, ICSI, Нью-Йоркский университет и Райс запускают проект IRIS» . Пресс-релиз . Массачусетский технологический институт. 25 сентября 2002 года. Архивировано из оригинала 26 сентября 2015 года . Проверено 10 ноября 2013 г.
- ^ «Демократизация публикации контента с помощью Coral» (PDF) . НСДИ . 4 . 2004 . Проверено 1 мая 2024 г.
- ^ Р. Мокадем, А. Хамерлен и А. М. Тьоа. Служба обнаружения ресурсов при минимизации затрат на обслуживание в иерархических системах DHT. Архивировано 9 августа 2022 г. на Wayback Machine . Учеб. iiWas, 2010 г.
- ^ Гвидо Урданета, Гийом Пьер и Маартен ван Стен. Обзор методов безопасности DHT , заархивированный 1 июня 2023 г. в Wayback Machine . Обзоры ACM Computing Surveys 43 (2), январь 2011 г.
- ^ Мони Наор и Уди Видер. Новые архитектуры для P2P-приложений: непрерывно-дискретный подход. Архивировано 9 декабря 2019 г. в Wayback Machine . Учеб. СПАА, 2003.
- ^ Гурмит Сингх Манку. Dipsea: модульная распределенная хеш-таблица, заархивировано 10 сентября 2004 г. в Wayback Machine . Докторская диссертация (Стэнфордский университет), август 2004 г.
- ^ Гирдзияускас, Шарунас; Датта, Анвитаман; Аберер, Карл (01 февраля 2010 г.). «Структурированное наложение для гетерогенных сред» . Транзакции ACM в автономных и адаптивных системах . 5 (1): 1–25. дои : 10.1145/1671948.1671950 . ISSN 1556-4665 . S2CID 13218263 . Архивировано из оригинала 12 июля 2020 г. Проверено 12 марта 2020 г.
- ^ Форестьеро, Агостино; Леонарди, Эмилио; Мастроянни, Карло; Мео, Микела (октябрь 2010 г.). «Self-Chord: биоинспирированная P2P-инфраструктура для самоорганизующихся распределенных систем» . Транзакции IEEE/ACM в сети . 18 (5): 1651–1664. дои : 10.1109/TNET.2010.2046745 . S2CID 14797120 . Архивировано из оригинала 1 июля 2012 г. Проверено 28 июля 2019 г.
- ^ Галуба, Войцех; Гирдзияускас, Шарунас (2009), «Оверлейные одноранговые сети: структура, маршрутизация и обслуживание», в LIU, LING ; ОЗСУ, М. ТЭМЕР (ред.), Энциклопедия систем баз данных , Springer US, стр. 2056–2061, doi : 10.1007/978-0-387-39940-9_1215 , ISBN 9780387399409
- ^ Гирдзияускас, Шарунас (2009). Проектирование одноранговой сети отражает точку зрения маленького мира . epfl.ch (Диссертация). ЭПФЛ. doi : 10.5075/epfl-thesis-4327 . Архивировано из оригинала 03 марта 2020 г. Проверено 11 ноября 2019 г.
- ^ Задача (степень, диаметр) для графиков , Maite71.upc.es, заархивировано из оригинала 17 февраля 2012 г. , получено 10 января 2012 г.
- ^ Гурмит Сингх Манку, Мони Наор и Уди Видер. «Знай соседа своего соседа: возможности прогнозирования в рандомизированных P2P-сетях». Архивировано 20 апреля 2008 г. в Wayback Machine . Учеб. СТОК, 2004.
- ^ Али Годси (22 мая 2007 г.). «Распределенная k-арная система: алгоритмы для распределенных хеш-таблиц» . Архивировано из оригинала 22 мая 2007 года . КТН-Королевский технологический институт, 2006 г.
- ^ Кастро, Мигель; Коста, Мануэль; Роустрон, Энтони (1 января 2004 г.). «Должны ли мы построить Gnutella на структурированном оверлее?» (PDF) . Обзор компьютерных коммуникаций ACM SIGCOMM . 34 (1): 131. CiteSeerX 10.1.1.221.7892 . дои : 10.1145/972374.972397 . S2CID 6587291 . Архивировано (PDF) из оригинала 14 февраля 2021 года . Проверено 25 сентября 2019 г.
- ^ Талия, Доменико; Трунфио, Паоло (декабрь 2010 г.). «Включение динамических запросов к распределенным хеш-таблицам». Журнал параллельных и распределенных вычислений . 70 (12): 1254–1265. дои : 10.1016/j.jpdc.2010.08.012 .
- ^ Барух Авербух, Кристиан Шайделер. «На пути к масштабируемому и надежному DHT». 2006. дои : 10.1145/1148109.1148163
- ^ Максвелл Янг; Аникет Кейт; Ян Голдберг; Мартин Карстен. «Практическая надежная связь в DHT, терпящих византийского противника». Архивировано 22 июля 2016 г. в Wayback Machine .
- ^ Наталья Федотова; Джордано Орзетти; Лука Велтри; Алессандро Закканьини. «Византийское соглашение об управлении репутацией в одноранговых сетях на основе DHT». два : 10.1109/ICTEL.2008.4652638
- ^ Ванау: Распределенная хеш-таблица, защищенная от Сивиллы https://pdos.csail.mit.edu/papers/whanau-nsdi10.pdf. Архивировано 25 января 2022 г. в Wayback Machine.
- ^ Лесневски-Лаас, Крис (1 апреля 2008 г.). «Однохоповый DHT, защищенный от Сивиллы» . Материалы 1-го семинара по системам социальных сетей . Социальные сети '08. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники: 19–24. дои : 10.1145/1435497.1435501 . ISBN 978-1-60558-124-8 .
- ^ Келнер, Джонатан; Маймунков, Петр (22 июля 2011 г.). «Электрическая маршрутизация и попутная резка» . Теоретическая информатика . Алгоритмы и вычисления. 412 (32): 4123–4135. дои : 10.1016/j.tcs.2010.06.013 . ISSN 0304-3975 .
- ^ Сандерс, Питер; Мельхорн, Курт; Дитцфельбингер, Мартин; Дементьев, Роман (2019). Последовательные и параллельные алгоритмы и структуры данных: базовый набор инструментов . Международное издательство Спрингер. ISBN 978-3-030-25208-3 . Архивировано из оригинала 17 августа 2021 г. Проверено 22 января 2020 г.
- ^ Вики Tribler. Архивировано 4 декабря 2010 г. на Wayback Machine, получено в январе 2010 г.
- ^ Часто задаваемые вопросы Retroshare. Архивировано 17 июля 2013 г. на Wayback Machine, получено в декабре 2011 г.
Внешние ссылки
[ редактировать ]- Распределенные хэш-таблицы, часть 1 , Брэндон Уайли.
- Распределенные хэш-таблицы связывают страницу Карлеса Паиро, посвященную исследованиям DHT и P2P.
- kademlia.scs.cs.nyu.edu Архив.org снимки kademlia.scs.cs.nyu.edu
- Энг-Кеонг Луа; Кроукрофт, Джон; Пиас, Марсело; Шарма, Рави; Лим, Стив (2005). «Опрос IEEE по схемам наложенной сети». CiteSeerX 10.1.1.111.4197 : охватывает неструктурированные и структурированные децентрализованные оверлейные сети, включая DHT (Chord, Pastry, Tapestry и другие).
- Магистральное измерение DHT на факультете компьютерных наук Хельсинкского университета, Финляндия.