분산 해시 테이블

Distributed hash table

분산 해시 테이블(DHT)은 해시 테이블과 유사한 Lookup 서비스를 제공하는 분산 시스템입니다.키와 값의 쌍은 DHT에 저장되며 참여 노드는 특정 와 관련된 값을 효율적으로 검색할 수 있습니다.DHT의 주요 장점은 키 재배포에 대한 최소한의 작업으로 노드를 추가하거나 제거할 수 있다는 것입니다.는 특정 에 매핑되는 고유 식별자이며, 주소에서 문서, 임의 [1]데이터에 이르기까지 모든 값이 될 수 있습니다.키에서 값으로의 매핑을 유지하는 책임은 노드 간에 분산되며, 참가자 집합의 변경으로 인해 최소한의 중단이 발생합니다.이를 통해 DHT는 매우 많은 수의 노드로 확장할 수 있으며 지속적인 노드 도착, 출발 및 장애를 처리할 수 있습니다.

DHT는 애니캐스트, 공동 웹 캐싱, 분산 파일 시스템, 도메인 이름 서비스, 인스턴트 메시징, 멀티캐스트피어피어 파일 공유 및 콘텐츠 배포 시스템과 같은 보다 복잡한 서비스를 구축하는 데 사용할 수 있는 인프라를 구성합니다.DHT를 사용하는 주요 분산 네트워크에는 BitTorrent의 분산 트래커, Kad 네트워크, Storm 봇넷, Tox 인스턴트 메신저, 프리넷, YaCy 검색 엔진 및 InterPlanetary File System 등이 있습니다.

분산 해시 테이블

역사

DHT 연구는 부분적으로 프리넷, Gnutella, BitTorrentNapster와 같은 P2P(Peer-to-peer) 시스템에 의해 동기부여되었으며, 이 시스템은 인터넷을 통해 배포된 리소스를 활용하여 유용한 단일 애플리케이션을 제공합니다.특히 대역폭과 하드 디스크 용량이 증가하여 파일 공유 서비스를 [2]제공했습니다.

이들 시스템은 동종 업체에서 제공하는 데이터를 찾는 방법에 차이가 있었습니다.최초의 대규모 P2P 콘텐츠 전송 시스템인 Napster에는 중앙 인덱스 서버가 필요했습니다.각 노드는 가입 시 로컬로 보관된 파일 목록을 서버로 전송하고 서버는 검색을 수행하여 결과를 보유한 노드에 쿼리를 참조합니다.이 중심 구성요소는 시스템을 공격과 소송에 취약하게 만들었습니다.

Gnutella 및 이와 유사한 네트워크는 쿼리 플래딩 모델로 이동했습니다.기본적으로 각 검색은 네트워크 내의 다른 모든 머신에 메시지를 브로드캐스트합니다.이 방법은 단일 장애점을 피하면서도 Napster보다 효율성이 크게 떨어졌습니다.이후 버전의 Gnutella 클라이언트는 동적 쿼리 모델로 전환되어 효율성이 [3]크게 향상되었습니다.

프리넷은 완전히 분산되어 있습니다만, 휴리스틱키 베이스의 루팅을 채용하고 있습니다. 라우팅에서는 각 파일이 키에 관련지어져 있으며, 같은 키를 가지는 파일은 같은 노드 세트에 클러스터 되는 경향이 있습니다.쿼리는 많은 피어를 [4]방문할 필요 없이 네트워크를 통해 이러한 클러스터로 라우팅될 수 있습니다.그러나 프리넷이 데이터를 찾을 수 있다는 보장은 없습니다.

분산 해시 테이블은 Freenet과 Gnutella의 분산화와 Napster의 효율성과 보증 결과를 얻기 위해 보다 구조화된 키 기반 라우팅을 사용합니다.한 가지 단점은 프리넷과 마찬가지로 DHT는 키워드 검색이 아닌 완전 일치 검색만 직접 지원하지만 프리넷의 라우팅 알고리즘은 근접 연산을 정의할 수 있는 모든 키 [5]유형으로 일반화할 수 있다는 것입니다.

2001년에는 4개의 시스템이 있었습니다.CAN,[6] Code,[7] PastryTapestry—DHT를 인기 있는 연구 주제로 삼았습니다.Iris(Infrastructure for Resilient Internet Systems)라고 불리는 프로젝트는 [8]2002년 미국 국립과학재단으로부터 1,200만 달러의 보조금을 지원받았다.연구자들은 실비아 라트나사미, 이온 스토이카, 하리 발라크리슈난, 스콧 [9]셴커포함했다.학계 밖에서는 DHT 기술이 BitTorrent 및 Coral Content Distribution Network의 구성요소로 채택되었습니다.

특성.

DHT는 다음과 같은 특성을 강조합니다.

  • 자율성과 분산성:노드는 중앙 조정 없이 일괄적으로 시스템을 형성합니다.
  • 폴트 톨러런스:노드 가입, 탈퇴 및 [10]장애가 지속적으로 발생하는 경우에도 시스템은 (어떤 의미에서는) 신뢰성이 있어야 합니다.
  • 확장성:시스템은 수천 또는 수백만 개의 노드를 사용하더라도 효율적으로 작동해야 합니다.

이러한 목표를 달성하기 위해 사용되는 주요 기술은 1개의 노드가 시스템 내의 몇 개의 다른 노드(가장 일반적으로는 n명의 참가자의 O(log n))와 조정해야 하기 때문에 구성원 자격의 각 변경에 대해 제한된 양의 작업만 수행할 수 있다는 것입니다.

일부 DHT 설계에서는 악의적인 참가자로부터[11] 안전하고 참가자의 익명성을 유지하려고 합니다.다만, 이것은 다른 많은 피어 투 피어(특히 파일 공유) 시스템에 비해 그다지 일반적이지 않습니다.익명의 P2P참조해 주세요.

구조.

DHT의 구조는 몇 가지 주요 [12][13]구성요소로 분해될 수 있습니다.기초는 160비트 문자열 집합과 같은 추상 키 공간입니다.키스페이스 분할 스킴은 이 키스페이스의 소유권을 참가 노드 간에 분할한다.그런 다음 오버레이 네트워크가 노드를 연결하여 노드들이 키 공간 내에서 지정된 키의 소유자를 찾을 수 있도록 합니다.

이러한 구성 요소가 배치되면 저장 및 검색을 위한 DHT의 일반적인 사용은 다음과 같이 진행될 수 있습니다.키 공간이 160비트 문자열 집합이라고 가정합니다.지정된 파일을 인덱싱하려면filenameDHT 내의 데이터와 파일명SHA-1 해시가 생성되어 160비트키 k가 생성되고 메시지 put(k, data)이 DHT에 참여하는 노드에 전송됩니다.메시지는 키 공간 파티션에서 지정된 k를 담당하는 단일 노드에 도달할 때까지 오버레이 네트워크를 통해 노드 간에 전송됩니다.그런 다음 해당 노드는 키와 데이터를 저장합니다.그 후 다른 클라이언트는 파일 이름을 다시 해시하여 k를 생성하고 DHT 노드에 메시지 get(k)을 사용하여 k와 관련된 데이터를 찾도록 요청함으로써 파일 내용을 가져올 수 있습니다.메시지는 다시 오버레이를 통해 k를 담당하는 노드로 라우팅됩니다.노드는 저장된 데이터로 응답합니다.

대부분의 DHT에 공통되는 주요 아이디어를 포착하기 위해 키스페이스 파티셔닝 및 오버레이 네트워크 컴포넌트를 아래에 설명합니다.상세한 내용은 많은 설계가 다릅니다.

키스페이스 파티셔닝

대부분의 DHT는 일관된 해싱 또는 랑데부해싱의 변형을 사용하여 키를 노드에 매핑합니다.두 알고리즘은 분산 해시 테이블 문제를 해결하기 위해 독립적으로 동시에 설계된 것으로 보입니다.

일관된 해싱과 랑데부해싱은 모두 1개의 노드를 삭제 또는 추가하면 인접 ID를 가진 노드가 소유한 키 세트만 변경되고 다른 모든 노드는 영향을 받지 않는다는 중요한 속성을 가지고 있습니다.이를 하나의 버킷을 추가하거나 삭제하면 키 공간 전체가 거의 다시 매핑되는 기존 해시 테이블과 비교해 보십시오.소유권 변경은 일반적으로 DHT에 저장된 객체의 대역폭 집약적인 이동에 해당하므로 높은 비율의 이탈(노드 도착 및 장애)을 효율적으로 지원하기 위해 그러한 재구성을 최소화할 필요가 있습니다.

일관된 해시

일관성 있는 해시는 의 거리에 대한 추상적 개념을 정의하는 ( 1, )를 사용합니다.이것은 지리적 거리 또는 네트워크 지연과는 무관합니다.각 노드에는 식별자(ID)라고 하는1개의 키가 할당됩니다.i x { i _ {x }의 노드는 { { m } ( x i k , ) \ \( {} )

예를 들어, 코드 DHT는 노드를 원의 점으로 취급하는 일관된 해시를 사용합니다.「 ( 1 , ) \ displaystyle \( k { , k { {} ) 1 1 2 1( \ _ { { ) 。따라서, k_}} is ispacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepacepace thepacepace엔드포인트가 노드 ID인 인접 세그먼트.})과 에서 까지의 시계방향 거리가 짧은2개의 인접 ID일 ({ i_2}})의 노드가 키를 소유합니다. 입니다.

랑데부 해시

HRW(Highest Random Weight) 해싱이라고도 불리는 랑데부해싱에서는 모든 클라이언트는 동일한 h사전선택)를 사용하여 사용 가능한n개의 서버 중 하나에 키를 관련짓습니다.각 클라이언트에는 각 서버에 대해 하나씩 동일한 식별자1 {S2, S, ..., Sn} 목록이 있습니다.k를 지정하면 클라이언트는 n개의 해시 가중치1 w = h(S1, k), w2 = h(S2, k), ..., wn = h(Sn, k)계산합니다.클라이언트는 이 키를 해당 키의 가장 높은 해시 웨이트에 대응하는 서버에 관련짓습니다. S { 서버는 x , h ( S _ { , k _ { m )\displaystyle h ( S _ { x , k _ { m} )의 모든 하고 .

지역 유지 해시

인접성을 보존하는 해시를 사용하면 유사한 키가 유사한 개체에 할당됩니다.이를 통해 범위 쿼리를 보다 효율적으로 실행할 수 있지만 일관된 해시를 사용하는 것과 달리 키(및 부하)가 키 공간과 참여 피어에 균일하게 분산된다는 보장은 없습니다.Self-Chord나[14] Oscar와 같은 DHT 프로토콜은 이러한 문제를 해결합니다.Self-Chord는 객체 키를 피어 ID에서 분리하여 스몰 인텔리전스 [15]패러다임에 기초한 통계적 접근법에 따라 키를 링에 따라 정렬합니다.정렬을 통해 유사한 키가 인접 노드에 저장되고 범위 쿼리를 포함한 검색 절차를 로그 시간에 수행할 수 있습니다.Oscar는 랜덤 워크 샘플링을 기반으로 탐색 가능한 소규모 네트워크를 구축하여 로그 검색 시간을 확보합니다.

오버레이 네트워크

각 노드는 다른 노드(네이버 또는 라우팅 테이블)로의 링크세트를 유지합니다.이러한 링크가 함께 오버레이 네트워크를 [16]형성합니다.노드는 네트워크의 토폴로지라고 불리는 특정 구조에 따라 네이버를 선택합니다.

모든 DHT 토폴로지는 가장 중요한 속성 중 일부를 공유합니다., 임의의 키 k에 대해 각 노드는 k를 소유하는 노드 ID를 가지거나 위에서 정의한 키 공간 거리로 볼 때 노드 ID가 k에 가까운 노드에 대한 링크를 가집니다.다음으로 다음 그리디 알고리즘(글로벌하게 최적일 필요는 없음)을 사용하여 임의의 키k 소유자에게 메시지를 쉽게 라우팅할 수 있습니다.각 단계에서 메시지를 k에 가장 가까운 ID를 가진 네이버로 전송합니다.이러한 네이버가 존재하지 않는 경우 위에서 정의한 바와 같이 가장 가까운 노드(k의 소유자)에 도달해야 합니다.이런 스타일의 루팅을 키베이스 라우팅이라고 부르기도 합니다.

기본적인 라우팅의 정확성을 넘어 토폴로지의 2가지 중요한 제약사항은 모든 루트의 최대 홉카운트(루트 길이)가 낮아 요구가 신속하게 완료되고 노드의 최대 네이버 수(최대 노드 수)가 낮아 유지 보수 오버헤드가 과도하지 않도록 하는 것입니다.물론 루트가 짧을수록 최대도도 높아집니다.최대 정도 및 루트 길이에 대한 일반적인 선택지는 다음과 같습니다.n은 빅 O 표기를 사용하는 DHT의 노드 수입니다.

최대 학위 최대 루트 길이 사용처 메모
검색 시간이 훨씬 느리고 검색 길이가 가장 짧습니다.
Koorde(일정한 정도) 구현이 더 복잡하지만 고정 수의 연결을 통해 허용 가능한 조회 시간을 찾을 수 있습니다.
코드
카뎀리아
페이스트리
태피스트리
가장 일반적이지만 최적은 아닙니다(도/루트 길이).코드는 가장 기본적인 버전이며, Kademlia는 가장 인기 있는 최적화된 변형으로 보인다(평균 검색을 개선했어야 했다).
Koorde(최적 검색 기능 포함) 구현이 더 복잡하지만 검색 속도가 더 빠를 수 있음(최악의 경우 제한이 더 낮음)
노드가 연결 또는 연결 해제된 후 통신량이 많은 최악의 로컬 스토리지 요구

(log )\ O ( \ n )도/루트 길이라는 가장 일반적인 선택은 정도/루트 길이 트레이드오프 측면에서 최적은 아니지만 일반적으로 이러한 토폴로지를 통해 네이버를 보다 유연하게 선택할 수 있습니다.많은 DHT는 이러한 유연성을 사용하여 물리적인 기반 네트워크에서의 지연에 가까운 네이버를 선택합니다.일반적으로 모든 DHT는 루트 길이와 네트워크 [17]정도를 절충하는 탐색 가능한 소규모 네트워크 토폴로지를 구축합니다.

최대 루트 길이는 직경과 밀접하게 관련되어 있습니다.즉, 노드간의 최단 경로의 최대 홉카운트입니다분명히 네트워크의 최악의 경우 루트 길이는 적어도 직경만큼 크기 때문에 DHT는 그래프 이론에서 기본적인 정도/직경 트레이드오프에[18] 의해 제한됩니다.그리디 라우팅 알고리즘에서는 최단 [19]패스가 검출되지 않을 수 있기 때문에 루트 길이는 직경보다 클 수 있습니다.

오버레이 네트워크 알고리즘

라우팅 이외에도 오버레이 네트워크의 구조를 이용하여 DHT [20]내의 모든 노드 또는 노드의 서브셋에 메시지를 보내는 알고리즘이 많이 있습니다.이러한 알고리즘은 오버레이 멀티캐스트, 범위 쿼리 또는 통계 정보 수집에 응용 프로그램에서 사용됩니다.이 접근방식을 기반으로 하는 2개의 시스템은 Fastry 오버레이에 플래딩과 랜덤 워크를 구현하는 Structella와 [21]Code [22]네트워크를 통해 동적 쿼리 검색 알고리즘을 구현하는 DQ-DHT입니다.

보안.

DHT는 분산, 폴트 톨러런스 및 확장성을 갖추고 있기 때문에 본질적으로 중앙 [vague]집중식 시스템보다 적대적인 공격자에 대한 복원력이 뛰어납니다.

대규모 적대적 공격자에 대해 강력한 분산 데이터 스토리지를 위한 개방형 시스템을 구현할 [23]수 있습니다.

비잔틴 내결함성을 갖도록 신중하게 설계된 DHT 시스템은 대부분의 현재 DHT [24][25]설계에 영향을 미치는 Sybil 공격이라고 알려진 보안 취약점으로부터 방어할 수 있습니다.화나우는 시빌 공격에 [26]저항하기 위해 고안된 DHT이다.


Kademlia의 원작자 중 한 명인 Petar Maymounkov는 시스템 [27]설계에 사회적 신뢰 관계를 포함시킴으로써 Sybil 공격에 대한 약점을 회피하는 방법을 제안했다.코드네임 Tonika 또는 도메인명 5ttt로 알려진 이 새로운 시스템은 "전기 라우팅"으로 알려진 알고리즘 설계에 기초하고 수학자 Jonathan Kelner와 [28]공동 집필했습니다.Maymounkov는 이제 이 새로운 시스템의 포괄적인 구현 노력을 수행했습니다.그러나 시빌 공격에 대한 효과적인 방어에 대한 연구는 일반적으로 미해결 문제로 간주되며, 매년 최고 안보 연구 회의에서 [citation needed]다양한 잠재적 방어 방안이 제안된다.

실장

DHT 구현의 실제 사례에서 발생하는 가장 주목할 만한 차이점은 적어도 다음과 같다.

  • 주소 공간은 DHT의 파라미터입니다.일부 실제 DHT는 128비트 또는 160비트 키 공간을 사용합니다.
  • 일부 실제 DHT는 SHA-1 이외의 해시 함수를 사용합니다.
  • 현실에서 열쇠는k파일 이름 변경 시 사용자가 파일을 찾을 수 없도록 파일 이름의 해시가 아닌 파일 내용의 해시가 될 수 있습니다.
  • 일부 DHT는 다른 유형의 개체를 게시할 수도 있습니다.예를 들어, 키k노드일 수 있습니다.ID및 관련 데이터는 이 노드에 접속하는 방법을 설명할 수 있습니다.이것에 의해, 존재 정보의 공개가 가능하게 되어, IM 애플리케이션등에서 자주 사용됩니다.가장 간단한 경우라면,ID키로서 직접 사용되는 임의의 숫자입니다.k(따라서 160비트 DHT에서는ID160비트 숫자가 됩니다.보통 랜덤으로 선택됩니다.일부 DHT에서는 노드의 ID 공개도 DHT 작업을 최적화하기 위해 사용됩니다.
  • 용장성을 추가하여 신뢰성을 향상시킬 수 있습니다.(k, data)키 쌍은 키에 대응하는 여러 노드에 저장할 수 있습니다.보통 하나의 노드만 선택하는 것이 아니라 실제 DHT 알고리즘은i적절한 노드, 사용iDHT의 구현 고유 매개변수가 됩니다.일부 DHT 설계에서 노드는 특정 키 공간 범위를 처리하는 데 동의합니다. 이 범위는 하드 코딩이 아닌 동적으로 선택될 수 있습니다.
  • Kademlia와 같은 일부 고급 DHT는 적합한 노드 세트를 선택하고 전송하기 위해 먼저 DHT를 통해 반복 조회를 수행합니다.put(k, data)공개된 메시지는 키를 저장하기에 적합한 노드에만 전송되므로 불필요한 트래픽을 대폭 줄일 수 있습니다.k; 및 반복적인 룩업은 DHT 전체가 아닌 소수의 노드 세트만을 대상으로 하므로 불필요한 전송을 줄일 수 있습니다.이러한 DHT에서는,put(k, data)메시지는 자기 인식 알고리즘의 일부로서만 발생할 수 있습니다.타깃 노드가 수신한 경우put(k, data)메시지, 단,k는 처리 범위를 벗어났기 때문에 가까운 노드(DHT 키 스페이스의 경우)가 알려져 있기 때문에 메시지는 해당 노드로 전송됩니다.그렇지 않으면 데이터가 로컬로 인덱싱됩니다.이로 인해 다소 셀프밸런싱 DHT 동작이 발생합니다.물론 이러한 알고리즘에서는 노드가 DHT에 존재 데이터를 게시해야 반복 조회를 수행할 수 있습니다.
  • 대부분의 머신에서는 메시지를 보내는 비용이 로컬 해시 테이블액세스보다 훨씬 비싸기 때문에 특정 노드에 관한 많은 메시지를 1개의 배치에 번들하는 것이 적절합니다.각 노드의 로컬 배지는 최대 다음 구성 요소로 구성되어 있다고 가정합니다.b번들링 순서는 다음과 같습니다.각 노드는 우선 동작을 담당하는 노드의 식별자에 따라 로컬 배치를 정렬한다.버킷 정렬을 사용하면 다음과 같은 작업을 수행할 수 있습니다.O(b + n),어디바이스nDHT 내의 노드 수입니다.1 개의 배치내에 같은 키를 수신처로 하는 복수의 조작이 있는 경우, 배치는 송신되기 전에 집약됩니다.예를 들어, 같은 키의 복수의 룩업을 1개로 축소하거나 복수의 증분을 1회의 추가 조작으로 축소할 수 있습니다.이 감소는 임시 로컬 해시 테이블을 사용하여 구현할 수 있습니다.마지막으로 조작이 각 [29]노드에 송신된다.

DHT 프로토콜 및 구현

DHT를 사용하는 응용 프로그램

「 」를 참조해 주세요.

  • Couchbase Server: memcached 프로토콜과 호환되는 영구적이고 복제된 클러스터된 분산 객체 스토리지 시스템입니다.
  • Memcached: 고성능 분산 메모리 객체 캐싱 시스템.
  • 프리픽스 해시 트리: DHT를 통한 정교한 쿼리.
  • Merkle 트리: 하위 노드의 레이블 해시로 레이블이 지정된 모든 리프 노드가 있는 트리입니다.
  • 대부분의 분산형 데이터 저장소에서는 조회를 위해 일종의 DHT를 사용합니다.
  • 스킵 그래프는 DHT를 구현하기 위한 효율적인 데이터 구조입니다.

레퍼런스

  1. ^ Stoica, I.; Morris, R.; Karger, D.; Kaashoek, M. F.; Balakrishnan, H. (2001). "Chord: A scalable peer-to-peer lookup service for internet applications" (PDF). ACM SIGCOMM Computer Communication Review. 31 (4): 149. doi:10.1145/964723.383071. A value can be an address, a document, or an arbitrary data item.
  2. ^ Liz, Crowcroft; et al. (2005). "A survey and comparison of peer-to-peer overlay network schemes" (PDF). IEEE Communications Surveys & Tutorials. 7 (2): 72–93. CiteSeerX 10.1.1.109.6124. doi:10.1109/COMST.2005.1610546. S2CID 7971188.
  3. ^ Richter, Stevenson; et al. (2009). "Analysis of the impact of dynamic querying models on client-server relationships". Trends in Modern Computing: 682–701.
  4. ^ Searching in a Small World Chapters 1 & 2 (PDF), retrieved 2012-01-10
  5. ^ "Section 5.2.2" (PDF), A Distributed Decentralized Information Storage and Retrieval System, retrieved 2012-01-10
  6. ^ Ratnasamy; et al. (2001). "A Scalable Content-Addressable Network" (PDF). In Proceedings of ACM SIGCOMM 2001. Retrieved 2013-05-20. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  7. ^ 하리 발라크리슈난, M. Frans Kaashoek, David Karger, Robert Morris, Ion Stoica.P2P 시스템에서 데이터를 검색합니다.Communications of the ACM」(2003년 2월).
  8. ^ David Cohen (October 1, 2002). "New P2P network funded by US government". New Scientist. Retrieved November 10, 2013.
  9. ^ "MIT, Berkeley, ICSI, NYU, and Rice Launch the IRIS Project". Press release. MIT. September 25, 2002. Archived from the original on September 26, 2015. Retrieved November 10, 2013.
  10. ^ R Mokadem, A Hameurlain, AM Tjoa.계층형 DHT 시스템의 유지 보수 오버헤드를 최소화하면서 자원 검출 서비스.Proc. iiWas, 2010
  11. ^ Guido Urdaneta, Guillaume Pierre, Maarten van Steen.DHT 보안 기술 조사.ACM 컴퓨팅 조사 43(2), 2011년 1월
  12. ^ 모니 나오르와 우디 위더.P2P 어플리케이션을 위한 새로운 아키텍처: 연속 이산 접근법.검사, SPAA, 2003.
  13. ^ 구르메 싱 만쿠.해저: 웨이백 머신에 보관된 모듈러형 분산 해시 테이블 2004-09-10.박사논문(Stanford University), 2004년8월
  14. ^ Girdzijauskas, Šarūnas; Datta, Anwitaman; Aberer, Karl (2010-02-01). "Structured overlay for heterogeneous environments". ACM Transactions on Autonomous and Adaptive Systems. 5 (1): 1–25. doi:10.1145/1671948.1671950. ISSN 1556-4665. S2CID 13218263.
  15. ^ Forestiero, Agostino; Leonardi, Emilio; Mastroianni, Carlo; Meo, Michela (October 2010). "Self-Chord: A Bio-Inspired P2P Framework for Self-Organizing Distributed Systems". IEEE/ACM Transactions on Networking. 18 (5): 1651–1664. doi:10.1109/TNET.2010.2046745. S2CID 14797120.
  16. ^ Galuba, Wojciech; Girdzijauskas, Sarunas (2009), "Peer to Peer Overlay Networks: Structure, Routing and Maintenance", in LIU, LING; ÖZSU, M. TAMER (eds.), Encyclopedia of Database Systems, Springer US, pp. 2056–2061, doi:10.1007/978-0-387-39940-9_1215, ISBN 9780387399409
  17. ^ Girdzijauskas, Sarunas (2009). Designing peer-to-peer overlays a small-world perspective. epfl.ch. EPFL.
  18. ^ The (Degree,Diameter) Problem for Graphs, Maite71.upc.es, archived from the original on 2012-02-17, retrieved 2012-01-10
  19. ^ 구르메트 싱 만쿠, 모니 나오르, 우디 위더."이웃의 이웃을 알아라: 랜덤화된 P2P 네트워크에서의 예측의 힘"검사, STOC, 2004.
  20. ^ Ali Ghodsi (22 May 2007). "Distributed k-ary System: Algorithms for Distributed Hash Tables". Archived from the original on 4 January 2007.. KTH 로열 테크놀로지 인스티튜트, 2006.
  21. ^ Castro, Miguel; Costa, Manuel; Rowstron, Antony (1 January 2004). "Should we build Gnutella on a structured overlay?" (PDF). ACM SIGCOMM Computer Communication Review. 34 (1): 131. CiteSeerX 10.1.1.221.7892. doi:10.1145/972374.972397. S2CID 6587291.
  22. ^ Talia, Domenico; Trunfio, Paolo (December 2010). "Enabling Dynamic Querying over Distributed Hash Tables". Journal of Parallel and Distributed Computing. 70 (12): 1254–1265. doi:10.1016/j.jpdc.2010.08.012.
  23. ^ 바룩 아우어부흐, 크리스티안 샤이델러."확장성과 견고한 DHT를 지향합니다." 2006.doi:10.1145/1148109.1148163
  24. ^ 맥스웰 영;애니켓 케이트;이안 골드버그, 마틴 카스텐"비잔틴 적국을 용인하는 DHT의 실용적인 견고한 통신"
  25. ^ 나탈리야 페도토바, 조르다노 오르제티, 루카 벨트리, 알레산드로 자카니니"DHT 기반의 피어투피어 네트워크에서의 평판 관리를 위한 쌍방의 계약".doi:10.1109/ICTEL.2008.4652638
  26. ^ 와나우:Sybil-proof 분산 해시 테이블 https://pdos.csail.mit.edu/papers/whanau-nsdi10.pdf
  27. ^ Chris Lesniewski-Laas. "A Sybil-proof one-hop DHT" (PDF): 20. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  28. ^ Jonathan Kelner, Petar Maymounkov (2009). "Electric routing and concurrent flow cutting". arXiv:0909.2859. Bibcode:2009arXiv0909.2859K. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  29. ^ Sanders, Peter; Mehlhorn, Kurt; Dietzfelbinger, Martin; Dementiev, Roman (2019). Sequential and Parallel Algorithms and Data Structures: The Basic Toolbox. Springer International Publishing. ISBN 978-3-030-25208-3.
  30. ^ Tribler Wiki 2010년 12월 4일 Wayback Machine에서 2010년 1월 취득한 아카이브.
  31. ^ 2011년 12월 Retroshare FAQ 취득

외부 링크

  • 분산 해시 테이블, Part 1 by Brandon Wiley.
  • DHT 및 P2P 연구에 관한 Carles Pairot's 페이지 링크 분산 해시 테이블
  • kademlia.scs.cs.nyu.edu Archive.org Archive.org 스냅샷
  • Eng-Keong Lua; Crowcroft, Jon; Pias, Marcelo; Sharma, Ravi; Lim, Steve (2005). "IEEE Survey on overlay network schemes". CiteSeerX 10.1.1.111.4197: {{cite journal}}: DHT(Chord, Pastry, Tapestry 등)를 포함한 구조화되지 않은 분산형 오버레이 네트워크를 커버하는 Cite 저널의 요구(도움말).
  • 핀란드 헬싱키 대학 컴퓨터 과학부의 메인라인 DHT 측정.