1

次のプロパティに従うノードのネットワークがあります。

  • グローバル セットには N 個のノードが含まれます。
  • 各ノードは、X << N である X 個の近隣ノードを検出できます。
  • ネイバーの検出は一方向の操作です (つまり、ネイバーは検出されたことを必ずしも認識しておらず、元のノードを検出しない場合もあります)。

私が達成する必要があるのは、これらのノードが効率的なネットワーク トポロジを自己構築して、すべてのノードが最小限のホップ数で通信できるようにすることです余分な複雑さを伴います)。これはすでに一般的に解決された問題ですか?つまり、標準的なベスト プラクティス ソリューションはありますか?

ノードを手動で組み立てるとしたら、他のノード グループ間のゲートウェイとして機能するいくつかのノードを含む階層を作成することになるでしょう。ただし、このノードを自己集合させるための最善のアプローチが何であるかはよくわかりません。グループ/階層トポロジーは要件ではなく、単なる直感的な例です。

トポロジーが整ったら、効率的なメッセージルーティングアルゴリズムを探しているわけではないことに注意してください(ただし、トポロジーをできるだけ効率的にし、各ノードができるだけX通信チャネルに近いものを使用することを望んでいます)。

4

1 に答える 1

1

分散ハッシュテーブルを探しているようです。名前にもかかわらず、これらはストレージ以外にも使用できます。これらは一般的なルーティングメッシュとして機能し、O(log n)は任意の2つのノード間でメッセージをルーティングするためのホップを期待します。

基本は同じですが、それらを実装する方法には少なくとも2つの異なるアプローチがあります。例として、KademliaChordをチェックアウトすることをお勧めします。Kademliaは実装が簡単ですが、データの保存と取得に重点を置いています。コードはより複雑ですが、より用途が広いです。

于 2011-02-21T23:25:52.357 に答える