距離ベクトルルーティングアルゴリズムの仕組みを説明する

距離ベクトルルーティングアルゴリズムの仕組みを説明する

[[122231]]

現代のコンピュータ ネットワークでは、ネットワーク トポロジやトラフィックの変化に適応できるため、一般的に動的ルーティング アルゴリズムが使用されます。最も一般的な 2 つの動的ルーティング アルゴリズムは、「距離ベクトル ルーティング アルゴリズム」と「リンク状態ルーティング アルゴリズム」です。

距離ベクトル ルーティング (DV) は、ARPANET ネットワークで使用された最も初期のルーティング アルゴリズムです。ベルマン フォード ルーティング アルゴリズムやフォード フルカーソン アルゴリズムとも呼ばれます。主に RIP (ルート情報プロトコル) プロトコルで使用されます。 Cisco の IGRP および EIGRP ルーティング プロトコルも DV ルーティング アルゴリズムを使用します。

「距離ベクトル ルーティング アルゴリズム」の基本的な考え方は次のとおりです。各ルータは距離ベクトル テーブル (通常は遅延を変数として含む) を維持し、隣接するルータ間の距離ベクトル通知を通じて距離ベクトル テーブルを更新します。各距離ベクトル テーブル エントリは、宛先ノードへの最適な出力ルートと、宛先ノードに到達するのに必要な時間または距離の 2 つの部分で構成されます。通信サブネット内の他の各ルータは、テーブル内のエントリを占有し、エントリのインデックスとして機能します。ルータは、定期的に、各宛先ノードからの距離テーブルをすべての隣接ノードに送信し、各隣接ノードから送信された距離テーブルも受信します。などなど。一定期間が経過すると、ネットワーク内の各ルータが取得した距離ベクトル情報は各ルータ上で統合されるので、各ルータは距離ベクトル テーブルをチェックするだけで、異なるソースからのパケットに最適なルートを見つけることができます。

ここで、遅延が距離の尺度として使用されていると仮定します。図 7-37 に示すような簡単な例を見てみましょう。ある時点でルータ Y が隣接ルータ X の距離ベクトルを受信すると仮定します。ここで、m はルータ X に到達するまでに Y によって推定される遅延です。ルータ Y が、自分から隣接ルータ Z までの遅延が n であることを知っている場合、ルータ Y は、Z が Y 経由で X に到達するまでに m+n の時間がかかることを知ることができます。ルータ Z に他の隣接ルータがある場合、ルータ Z は他の各隣接ルータから受信した距離ベクトルに対して同じ計算を実行し、最短時間のルートを Z から X への最適ルートとして選択し、ルーティング テーブルを更新して隣接ルータに通知します。

距離ベクトルルーティングアルゴリズムの簡単な例

次の例は、距離ベクトル アルゴリズムにおけるルート決定プロセスを示しています。各リンク セグメントの遅延が図にマークされています。 A、B、C、D、E は 5 つのルータを表します。ルーティング テーブルの送信方向は、A → B → C → D → E であると仮定します (これは、ルータの起動順序に関連します)。具体的な手順は以下のとおりです。

(1)初期状態では、各ルータは直接接続されたリンクの遅延情報のみを収集し、各ルータノードは図7-39に示すように独自の初期ベクトルテーブルを取得します。ノードはまだルーティング情報を交換していないため、初期のルーティング テーブルもベクター テーブルと同様になります。

図7-38 距離ベクトルアルゴリズムによる経路決定の例

初期状態の各ノードのベクトルテーブル

(2)ルータAはルーティングテーブルをルータBに送信します。このとき、ルータAから送信されたルーティングテーブルと自身の初期ルーティングテーブルを組み合わせて、図7-40の左図に示すように、新しいベクターテーブルを更新します(最終的なベクターテーブルは図の暗い部分です)。図からわかるように、ノード B からノード E へのパスは 2 つあり、1 つは直接パスで、もう 1 つはノード A を経由するパスです。さらに、これら2つの回線のコストは異なります。ノードAを経由してノードEに到達するコスト(7)は、直接回線のコスト(8)よりも低くなります。そのため、最終的なルーティングテーブルでは、図7-40の右図に示すように、ノードEに到達する回線がノードAを通過する回線に変更されます。

ノードBの新しいベクターテーブルとルーティングテーブル

(3)Bは最終的なルーティングテーブルをルータCに送信します。同様に、ルータ C も、図 7-41 の左側に示すように、元の初期ルーティング テーブルとルータ B から送信されたルーティング テーブルを組み合わせて、新しいベクター テーブルを形成する必要があります (最終的なベクター テーブルは、図の暗い部分に表示されます)。新しいベクトルテーブルでは、ノード B と D 間の元の直接接続されたベクトルに加えて、ノード A と E に到達するベクトル情報も新たに収集されます。ノード C はノード A および E と直接接続されていないため、初期ルーティング テーブルにはこれらの 2 つのノードに到達するためのルーティング情報がありません。したがって、ルータ B によって送信されたルーティング テーブルからのパスを使用して、ノード B 経由でノード A および E に到達することしかできません。 #p#

ここで注目すべき点は、ノード B のルーティング テーブルでは、ノード B を経由して直接ノード E に到達するコスト (8) が、ノード B とノード A を順番に経由してノード E に到達するコスト (7) よりも大きいことがすでにわかっているため、ノード C のルーティング テーブルでは、ノード B とノード A を順番に経由してノード E に到達するパスが採用されることです。最終的なルーティング テーブルを図 7-41 の右側に示します。

ノードCの新しいベクターテーブルとルーティングテーブル

(4)ルータCは最終的なルーティングテーブルをルータDに送信します。同様に、ルータ D も、図 7-42 の左側に示すように、元の初期ルーティング テーブルとルータ C から送信されたルーティング テーブルを組み合わせて、新しいベクター テーブルを形成する必要があります (最終的なベクター テーブルは、図の暗い部分に表示されます)。新しいベクトルテーブルでは、直接接続された C ノードと E ノード間の元のベクトル情報に加えて、A ノードと B ノードに到達するベクトル情報も新たに収集されます。ノード D はノード A および B と直接接続されていないため、初期ルーティング テーブルにはこれら 2 つのノードに到達するためのベクトル情報がありません。この時点では、ノード C を経由してノード A および B に到達するパスが引き続き使用されます。

ここで注目すべき重要な点は、ノード D からノード E へのパスが 2 つあることです。1 つは直接到達するパス、もう 1 つはノード C、B、A を順に経由して到達するパスです。比較すると、直接接続のコスト (2) は、ノード C、B、A を経由してノード E に到達するパスのコスト (10) よりも小さいことがわかり、そのためノード D では直接接続ルートを使用してノード E に到達します。最終的なルーティング テーブルを図 7-42 の右側に示します。

(5)ルータDは最終的なルーティングテーブルをルータEに送信します。同様に、ルータ E も、図 7-43 の左側に示すように、元の初期ルーティング テーブルとルータ D から送信されたルーティング テーブルを組み合わせて、新しいベクター テーブルを形成する必要があります (最終的なベクター テーブルは、図の暗い部分に表示されます)。新しいベクトル テーブルでは、ノード A、B、D 間の元の直接接続されたベクトルに加えて、ノード E はノード C と直接接続されていないため、ノード C に到達するベクトル情報も新たに収集されます。このとき、ノード D を経由してノード C に到達するパスはまだ使用されます。

Dノードの新しいベクターテーブルとルーティングテーブル

ここで注意すべき点が 2 つあります。1 つは、ノード E からノード A へのパスの問題です。この時点では、ノード E とノード A は直接接続されており、そのコスト (1) は、ルータ D からノード D、C、B を経由してノード A に送信された元のルーティング テーブルのパス コスト (11) よりも小さくなります。したがって、ノード E の最終的なルーティング テーブルでは、ノード A へのルートは直接接続になります。 2番目に、ノードEもノードBに直接接続されていますが、そのコスト(8)は、ルータDから最初に送信されたルーティングテーブルに示されているように、ノードDとCを順番に通過してノードBに到達するコスト(5)よりも大きくなります。したがって、ノードEの最終的なルーティングテーブルでは、ノードBに到達するためのパスは、ノードDとCを順番に通過することになります。最終的なルーティング テーブルを図 7-43 の右側に示します。

Eノードの新しいベクターテーブルとルーティングテーブル

上記の手順により、ネットワーク内の各ルータはルーティングテーブル全体の決定を完了しました。もちろん、トポロジが変更されると、各ルータのルーティングテーブルも変更されるため、再度更新する必要があります。

<<:  MapReduceアルゴリズムをわかりやすく説明する方法

>>:  基本的なプログラミングアルゴリズムを簡単にマスターする(パート3)

ブログ    

推薦する

...

人工知能の発展は、人間社会が現実から仮想へと向かう傾向を反映している。

人類は遊牧から農耕へ、そして農耕から工業化へと移行しました。工業化の後半は情報化であり、情報化の究極...

...

AIは教育業界にどのような影響を与えるのでしょうか?これら6つの側面について学ぶ

人工知能は、SFの世界のものから、私たちの日常生活に影響を与える重要な技術へと変化しました。現在、多...

...

賢明な企業はヘルスケアにおける認知AIの成功から学ぶことができる

認知技術は世界最大の課題を解決するために使用されています。この記事では、企業が認知 AI をどのよう...

顔認識ブームは沈静化すべきでしょうか?

北京地下鉄は昨年11月から、セキュリティチェックに顔認識技術を使用する試験運用を開始し、ブラックリス...

Gemini ProはGPT-3.5ほど優れていません。CMUは徹底的な比較研究を実施し、公平性、透明性、再現性を確保しています。

Google Gemini はどれほど強力ですか?カーネギーメロン大学は、専門的かつ客観的な第三者...

AIは役に立たないなんて誰が言ったのでしょうか?パンデミックの間、AIは人類のために多くのことを行ってきました...

[[314062]] 10日以上も経過したが、流行は収束の兆しを見せず、事態はますます深刻化してい...

...

...

AI 実践者が習得する必要がある 10 種類のディープラーニング手法: バックプロパゲーション、転移学習、勾配降下法...

機械学習への関心は過去 10 年間で爆発的に高まりました。ほぼ毎日、さまざまなコンピューターサイエン...

...

AIの次の目的地はどこでしょうか?

[[318187]]私たちはインテリジェント変革の時代に生きており、人工知能技術はあらゆる分野の人...

ついに誰かが様々なStyleGANの大きな概要を作成した

[[435127]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...