« [NET]2005年度C&C賞表彰式典&講演会 | トップページ | [P2P]Mixi P2Pコミュニティ新年会 »

2005.12.04

[DHT]DHT(分散ハッシュテーブル)ショートクイズ3

好評を頂いているDHTショートクイズですが、
「現在DHTを勉強中なので答えの公表は待って!」
という声を何人かから頂きましたので、年末年始あたりに
答えを公表したいと思います。皆さんも是非考えてみてくださいね。

さて、今回はNAT処理について考えてみます。

クイズ4:NAT処理(その1)

ある通信企業がDHTによってSNSを構築しようと考えている。
参加したいユーザは通信企業のWebサーバを経由してソフトをダウンロードできる。
またソフトの初回起動時にユーザ登録をする必要がある他、
ソフト自体が定期的にバージョンアップを自動的に行う。
ソフト利用条件としてブロードバンドの回線速度とOS、PCスペック等があるが、通常のファイアウォールやルータ環境下でも使用できるように設計したいと考えている。

A君は通信企業に働く研究者であり、評価版について作成している。
NAT環境でもこのソフトが動くために、プライベートアドレスのPC_AはグローバルアドレスのPC_B、1台と常にTCP接続をさせることにした。

4-1:
今、PC_AがグローバルアドレスのPC_Cと通信したいとする。
その時にはこのように動作するように設計した。
フェーズ1:PC_AがPC_BにPC_Cとの接続要求をする
フェーズ2:PC_BがPC_CのIPアドレスをDHTを使って取得する
フェーズ3:PC_BがPC_AにPC_CのIPアドレスを回答する
フェーズ4:PC_AがPC_CとTCPで接続、リンク確立

逆にPC_CがPC_Aと接続する時にはどのようなフェーズがあるか答えて下さい。
上記の作動フェーズとの違いを特に明確にして下さい。

4-2:
PC_AがPC_Cに通信する場合、4-1でのフェーズだけでは、セキュアな通信はできない。
どうしてセキュアな通信ができないか問題点を抽出してセキュアな通信ができるように設計を行って下さい。
またA君はこれを解決する方法としてIPSecを使おうと考えましが、上司からIPSecの使用は止めた方が良いといわれました。それはどうしてでしょうか?

4-3:
今、プライベードアドレスノードPC_AとPC_Dが通信するために、PC_A ⇔ PC_B ⇔ PC_C ⇔ PC_Dとするように設計を行った。いずれもTCP通信である。ただし、PC_BとPC_Cはグローバルアドレスのノードである。

状況を単純化にするためPC_AはPC_Bと一度接続したら、PC_BがDHTから抜けるまでPC_Bと接続することとする。PC_DとPC_Cの関係も同様である。

今、PC_BとPC_CのようなグローバルアドレスノードがDHTから離脱しないことを考える。(グローバルアドレスノードのDHTへの新規参入はありうる)

この時にPC_A、Dのような任意のプライベートアドレスノード間と通信するには、どのような設計なら実現できそうでしょか?DHTを使いどのノードがどのようなデータを保持するか等の設計の概案を書いてください。

なお、プライベードアドレスのノードはシステムからの参加、離脱はあり得えます。
グローバルアドレスノードのIPは参加者によって自発的にWEB等で公開されています。
(条件としてプライベードアドレスノードはDHTに参加させても参加させなくても良いとします。どちらにするかは回答者の皆様にお任せします。)

|

« [NET]2005年度C&C賞表彰式典&講演会 | トップページ | [P2P]Mixi P2Pコミュニティ新年会 »

P2P」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/18781/7456240

この記事へのトラックバック一覧です: [DHT]DHT(分散ハッシュテーブル)ショートクイズ3:

« [NET]2005年度C&C賞表彰式典&講演会 | トップページ | [P2P]Mixi P2Pコミュニティ新年会 »