2

ルーターをシミュレートするクラスのプログラムをコーディングしようとしていますが、これまでのところ基本的な設定は完了しています(「ルーター」は、エミュレートされたサーバーを介して、サーバーに接続されている他の「ルーター」とパケットを送受信できます)。各パケットには、そのルーターの距離ベクトルのみが含まれます。ルーターがパケットを受信すると、ベルマンフォードアルゴリズムを使用して、ルーター自体の距離ベクトルを適宜更新することになっています。私が抱えている問題は、不正行為と隣接行列を使用せずに実際のアルゴリズムを実装できないことに気付いていることです。

たとえば、次のように3台のルーターを接続しているとします。

A ---1--- B ---2--- C

つまり、AとBはリンクコスト1で接続され、BとCはリンクコスト2で接続されます。したがって、ルーターがすべて起動すると、ルーターは、直接接続されている各ネイバーにパケットを送信します。距離ベクトル情報。したがって、AはルーターB(0、1、INF)を送信し、BはAとC(1、0、2)を送信し、CはB(INF、2、0)を送信します。ここで、INFは2つのルーターが直接接続されていないことを意味します。

それでは、ルーターAがルーターBからパケットを受信して​​いるところを見てみましょう。ベルマンフォードアルゴリズムを使用して他のルーターの最小コストを計算するには、次のようにします。

Mincost(a,b) = min((cost(a,b) + distance(b,b)),(cost(a,c) + distance(c,b))

Mincost(a,c) = min((cost(a,b) + distance(b,c)),(cost(a,c) + distance(c,c))

したがって、私が直面している問題は、ルーターから他のすべてのルーターへの最小パスを計算するアルゴリズムを実装する方法を一生理解できないことです。ルーターの数が正確にわかっていれば簡単に作成できますが、ルーターの数が任意に大きくなる可能性がある場合はどうすればよいでしょうか。

4

1 に答える 1

2

DVMRP で最短パスを確認することはできません。1 つの理由で、ネットワークのグローバル ビューを持っていません。各ルーターは認識できる限り動作しており、認識される内容は制限されています。誤解を招く可能性があります。DVMRP のループ問題を調べます。DVMRP は、処理する完全なネットワーク情報を持つことはできません。

スケーラブルでもありません。ルーターの数が増えると、そのパフォーマンスはますます低下します。これは、大量の距離ベクトル更新メッセージと、これらのメッセージの現在の精度によるものです。

これは、最も初期のマルチキャスト プロトコルの 1 つです。ユニキャスト規模のRIPに匹敵する性能です。

于 2012-11-23T01:22:36.523 に答える