1

単一のマシン内でのシミュレーションを通じて、p2p アーキテクチャを学習しています。そのために、名前付きパイプを使用できると言われました。シミュレーションの設計段階にいます。ここに私が前進する予定の方法があります:

  1. p2p 'ネットワーク' に参加できるピア プログラムを作成します。ネットワークは、そのようなピアの集まりです。ピアは、マシンのプロセス ID によって識別されます。

  2. ピアが作成されると、つまりネットワークに参加すると、「マスター ノード」またはトラッカーへのブートストラップを通じてピアの到着がアナウンスされます。ピアが到着をアナウンスすると、マスターノードはピア (プロセス ID) のリストを更新し、ネットワークで利用可能なピアのリストを新しいピアに返します。

  3. ネットワークに入ると、ピアはネットワークからファイルをダウンロードしたり、自分が持っているファイルの着信要求にファイルをアップロードしたりできます。ピアがネットワーク経由で受信したファイルは、自動的にアップロードできるようになります。

  4. ファイルをダウンロードするために、ピアはロケーション アルゴリズムを呼び出し、現在のピアがダウンロードしようとしているファイルがあるピアを特定します。

ご覧のとおり、設計に対する私の理解にはギャップがあります。私の素朴なアプローチから、#2 と #3 は別のステップに見えます。しかし、私はそれらが何らかの形で関連しているに違いないと感じています。Chord や CAN のような分散ハッシュ テーブルとアルゴリズムがどのように機能するかについて、私の理解が不足していると思います。シミュレーションを実際に実装するのに役立つこれらの散在するアイデアをまとめるための助けが必要です。

まず、私の最初の質問は、ロケーション アルゴリズムをどこでどのように開始するかということです。または、上記の手順で作成された分散ハッシュ テーブルはどこにありますか?

4

1 に答える 1

2

Napster のトラッカー サーバーを実装するかどうかを選択できます。または、DHT 対応ノードを実装することもできます - Bit torrent スタイル。

前者の場合、トラッカーは、ホストしているすべてのノードとファイルを追跡します。

後者では、各ノードが情報を追跡します (この場合、ネットワーク内の少なくとも 1 つのピアが想定されます)。次に、新しいピアが DHT 対応ピアの 1 つに接続し、必要なファイルをホストしているノードに関する情報を取得します。

于 2011-04-25T18:09:12.407 に答える