분산 해시 테이블

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
DHT의 개념도

분산 해시 테이블(distributed hash tables, 줄여서 DHT 또는 DHTs)은 이름대로 해시 테이블을 분산하여 관리하는 기술이다.

어떤 항목을 찾아갈 때 해시 테이블을 이용하는데, 중앙 시스템이 아닌 각 노드들이 이름을 값으로 맵핑하는 기능을 하는 방식이다. 부하가 집중되지 않고 분산된다는 큰 장점이 있어, 극단적으로 큰 규모의 노드들도 관리할 수 있다.

DHT는 순수 P2P라도 네트워크의 부하를 억제할 수 있으며 네트워크 상의 콘텐츠를 빠르고 정확히 검색할 수 있는 것이 가능하다. 종래의 순수 P2P에서 채용되었던 방식에서는 수십만 노드 정도가 한계였으나, DHT의 사용으로 수십억개의 노드를 검색범위로 할 수 있게 되었다. 그러나 DHT는 실제 구현이 어렵다. 특히 완전한 일치검색만이 가능하여, 와일드 카드 등을 활용한 복잡한 검색을 하지 못하는 단점이 있다.

DHT를 활용한 대표적인 시스템으로 비트토렌트(DHT를 확장하여 사용), eDonkey 등이 있다.

종류[편집]

본 기술은 P2P 네트워크에 특히 많이 사용되는데, P2P 네트워크는 냅스터 같은 하이브리드 P2P누텔라 같은 순수 P2P로 나뉜다.

하이브리드형은 콘텐츠와 콘텐츠가 배치되는 각 노드의 주소를 중앙의 서버가 목록화하여 관리함으로써 검색 기능을 제공한다. 그러나 중앙의 서버가 개별 노드와 콘텐츠를 관리하게 되므로 서버 관리에 많은 비용이 들어간다.

순수형은 중앙 서버가 없고 개별 노드가 애드 혹 방식으로 서로 접속하는 형태를 취한다. 이 형태는 사용자가 늘어남에 따라 네트워크의 데이터 유동량(트래픽)이 늘어나고, 네트워크 상의 콘텐츠를 찾기가 어려워진다는 단점이 있다.