分散ハッシュ(DHT)入門~その1
さて今日から分散ハッシュ(DHT)について、なるべくわかりやすく説明したいと思う。
今回のDHT入門では正確性さは求めず、直感的に説明する事を優先することを最初にお断りしたい。
ではまずおさらいとしてP2Pの種類について復習しましょう。
P2Pは大きく分けて
・Hybrid-P2P(Napster型)
・Pure-P2P(Gnutella型)
の2種類があった。
Hybrid型は中央サーバが存在し、中央サーバに各ユーザの情報を登録しておく。ユーザは中央サーバの情報を基に各PCとP2Pで通信するわけである。
参考:ネットワーク管理者のためのNapster入門
逆にPure-P2Pにはサーバと言うものが存在しない。PCは数珠繋ぎ上にネットワークを構築して、そして自分の欲しいデータ情報などをそのネットワーク上に問い合わせするのである。
参考:ネットワーク管理者のためのGnutella入門
ではお互いの長所・短所を考えてみよう。
Hybrid-P2Pでは全PCの状態について中央サーバが管理できる。これによって非常に多くのPCと通信をすることができる。しかし、ユーザが増える毎にサーバを増設しなければならず、管理者にとっては頭の痛いタネとなる。物凄いコスト増であることは想像できるだろう。
Pure-P2Pではサーバがないためにソフトだけ各PCに導入すればサービスが実現できる。つまりコストが安く導入することができる。しかしユーザが増えるとユーザ間の連携のための情報が増加し、ネットワーク負荷が高まったり、あるいは、通信をする事ができない相手が存在することが生じてくる。
このようにHybrid-P2P、Pure-P2P両者も欠点を持っている。
しかしDHTの登場によりこの状況は一変する。
DHTはPure-P2Pであってもネットワーク負荷はそれほど上がらず、またネットワークに参加している全PCとの通信ができるようになるになるのだ。おまけに相手のPCに対する検索も非常に高速だ。Pure-P2Pの場合は数10万ノードぐらいが限界だと言われているが、DHTを使うと数10億ノードの通信が可能となる。ここでノードはPCと考えても良い。(今後はノードという言葉を使う)さらに、ノードがいきなりネットワークから参加したり離脱することも考慮されている。
また、DHTを使う事で多くのP2Pアプリケーションの作成について容易できる事が期待できる。
こう書くとDHTは長所だらけと思われるが、短所もある。それは実装が難しい事だ。
しかしいずれはDHT用のライブラリーが普及し、この問題は解決するだろうと思われる。
次回は「DHTのキモ~なぜハッシュ関数を使うのか?」について書く予定である。
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- iPhoneのスクリーンショットを自動的にメールに投稿するテクニック[IFTTT](2014.11.23)
- WebRTC研究会開催のお知らせ(2014年12月開催予定)(2014.08.24)
- 「Gunosyオフィスツアー」を振り返る〜世界一のニュースアプリを目指すために(2014.06.01)
- Gunosyオフィスツアーの参加者募集を開始しました!(5月9日[金]開催)(2014.04.29)
- 第4回Twitter研究会(5/18[土])の講演スケジュール(2013.05.10)
この記事へのコメントは終了しました。
コメント