ダイナミック ソース ルーティング( DSR ) は、ワイヤレス メッシュ ネットワーク用のルーティング プロトコルです。送信ノードが要求するとオンデマンドでルートを形成するという点でAODVに似ています。ただし、各中間デバイスのルーティング テーブルに依存するのではなく、 ソース ルーティングを使用します。
通常、ルーターやアクセス ポイントなどのインフラストラクチャが存在しない環境では、DSR は個々のノードの協力に依存してメッセージを目的の宛先に中継することで、効率的なデータ パケット ルーティングを可能にします。このプロトコルは、ノードの移動によりネットワーク トポロジが頻繁に変更される可能性があり、適応型で効率的なルーティングが必要となる モバイル アドホック ネットワーク(MANET)で重要な役割を果たします。
背景
ソース ルートを決定するには、ルート検出中にソースと宛先の間にある各デバイスのアドレスを蓄積する必要があります。蓄積されたパス情報は、ルート検出パケットを処理するノードによってキャッシュされます。学習されたパスは、パケットのルーティングに使用されます。ソース ルーティングを実現するために、ルーティングされたパケットには、パケットが通過する各デバイスのアドレスが含まれます。これにより、IPv6などの長いパスや大きなアドレスでは、オーバーヘッドが高くなる可能性があります。ソース ルーティングを使用しないようにするために、DSR は、パケットをホップごとに転送できるようにするフロー ID オプションをオプションで定義します。
このプロトコルは、すべてのルーティング情報がモバイル ノードで維持 (継続的に更新) されるソース ルーティングに基づいています。このプロトコルには、ルート検出とルート維持という 2 つの主要なフェーズしかありません。ルート応答は、メッセージが目的の宛先ノードに到達した場合にのみ生成されます (ルート要求に最初に含まれていたルート レコードがルート応答に挿入されます)。
ルート応答を返すには、宛先ノードにソース ノードへのルートが必要です。ルートが宛先ノードのルート キャッシュにある場合は、そのルートが使用されます。そうでない場合、ノードはルート要求メッセージ ヘッダーのルート レコードに基づいてルートを反転します (すべてのリンクが対称である必要があります)。致命的な送信が発生した場合、ルート保守フェーズが開始され、ノードでルート エラー パケットが生成されます。エラーのあるホップはノードのルート キャッシュから削除されます。その時点で、そのホップを含むすべてのルートが切り捨てられます。再び、ルート検出フェーズが開始され、最も実行可能なルートが決定されます。
他の同様のプロトコルの詳細については、アドホック ルーティング プロトコルのリストを参照してください。
帯域幅の制限
ダイナミック ソース ルーティング プロトコル (DSR) は、テーブル駆動型アプローチで必要な定期的なテーブル更新メッセージを排除することで、アドホック ワイヤレス ネットワークで制御パケットによって消費される帯域幅を制限するように設計されたオンデマンド プロトコルです。このプロトコルと他のオンデマンド ルーティング プロトコルとの主な違いは、ビーコンが不要で、ノードが近隣ノードに自分の存在を知らせるために使用される定期的な hello パケット (ビーコン) 送信を必要としないことです。このプロトコル (および他のすべてのオンデマンド ルーティング プロトコル) のルート構築フェーズでの基本的なアプローチは、ネットワークにルート要求パケットをフラッディングしてルートを確立することです。宛先ノードは、ルート要求パケットを受信すると、受信したルート要求パケットがたどったルートを運ぶルート応答パケットを送信元に送り返して応答します。
送信先へのルートを持たない送信元ノードを考えてみましょう。送信先に送信するデータ パケットがある場合、送信元ノードは RouteRequest パケットを開始します。この Route Request はネットワーク全体にフラッディングされます。各ノードは Route Request パケットを受信すると、そのノードが送信先ノードではなく、パケットの有効時間(TTL) カウンタが超過していない限り、まだ転送していない場合はそのパケットを近隣ノードに再ブロードキャストします。
各ルート要求には、送信元ノードによって生成されたシーケンス番号と、送信元ノードが通過したパスが付けられます。ノードは、ルート要求パケットを受信すると、パケットを転送する前にパケットのシーケンス番号を確認します。パケットは、重複したルート要求でない場合にのみ転送されます。パケットのシーケンス番号は、ループの形成を防ぎ、複数のパスを介して受信した中間ノードによって同じルート要求が複数回送信されるのを防ぐために使用されます。
したがって、宛先以外のすべてのノードは、ルート構築フェーズ中にルート要求パケットを転送します。宛先ノードは、最初のルート要求パケットを受信した後、ルート要求パケットが通過した逆のパスを介して送信元ノードに応答します。ノードは、プロミスキャス モード (ノードがブロードキャストでも自分宛でもないパケットを受信できる動作モード) で動作している場合、データ パケットが通過した近隣ルートについても学習できます。このルート キャッシュは、ルート構築フェーズでも使用されます。
利点と欠点
利点
このプロトコルは、リアクティブ アプローチを使用します。これにより、テーブル駆動型アプローチで必要な、定期的にネットワークにテーブル更新メッセージを大量に送信する必要がなくなります。このようなリアクティブ (オンデマンド) アプローチでは、必要な場合にのみルートを確立するため、テーブル駆動型アプローチで必要な、ネットワーク内の他のすべてのノードへのルートを検索する必要がなくなります。中間ノードもルート キャッシュ情報を効率的に利用して、制御オーバーヘッドを削減します。
デメリット
このプロトコルの欠点は、ルート メンテナンス メカニズムが壊れたリンクをローカルに修復しないことです。ルート キャッシュ情報が古いと、ルート再構築フェーズで不整合が発生する可能性があります。接続セットアップの遅延は、テーブル駆動型プロトコルよりも大きくなります。このプロトコルは静的でモビリティの低い環境では適切に機能しますが、モビリティが増加するとパフォーマンスが急速に低下します。また、DSR で採用されているソース ルーティング メカニズムにより、かなりのルーティング オーバーヘッドが発生します。このルーティング オーバーヘッドは、パスの長さに正比例します。
参照
参考文献
最初に記述されたのは次のものです:
- 2007 IETF MANET ドラフトRFC 4728 - IPv4 向けモバイル アドホック ネットワークの動的ソース ルーティング プロトコル (DSR)
外部リンク
- DSR 仕様 (RFC)
- piconet オープンソースのPOSIX実装
- Bryan の DSR NS-2 FAQ は、Wayback Machineで 2009-12-21 にアーカイブされています。ネットワーク シミュレーター パッケージ内での DSR の実装について説明しています。
- DSR MANETルーティングプロトコルのシミュレーションモデル
