Optimized Link State Routing Protocol
最適化されたリンクステートルーティングプロトコル( OLSR ) は、モバイルアドホックネットワーク用に最適化されたIPルーティングプロトコルであり、他のワイヤレスアドホックネットワークでも使用できます。 OLSRは、プロアクティブなリンクステートルーティングプロトコルであり、 helloおよびトポロジ制御(TC)メッセージを使用して、モバイルアドホックネットワーク全体にリンクステート情報を検出して配布します。個々のノードはこのトポロジ情報を使用して、最短のホップ転送パスを使用してネットワーク内のすべてのノードのネクストホップ宛先を計算します。
Open Shortest Path First (OSPF)やIntermediate System to Intermediate System (IS-IS)などのリンクステートルーティングプロトコルは、トポロジ情報のフラッディングを実行するために、すべてのリンクで指定ルーターを選択します。ワイヤレスアドホックネットワークでは、リンクの概念が異なり、パケットは同じインターフェイスを出て行くことができます。したがって、フラッディングプロセスを最適化するには、別のアプローチが必要です。 Helloメッセージを使用して、各ノードのOLSRプロトコルは、2ホップのネイバー情報を検出し、一連のマルチポイントリレー(MPR)の分散選択を実行します。ノードは、MPRとして選択されたノードを介して、その2ホップネイバーのそれぞれへのパスが存在するようにMPRを選択します。次に、これらのMPRノードは、MPRセレクターを含むTCメッセージを送信および転送します。このMPRの機能により、OLSRは他のリンクステートルーティングプロトコルとはいくつかの異なる点で一意になります。TCメッセージの転送パスはすべてのノード間で共有されるわけではなく、送信元によって異なります。ノードのサブセットのみがリンクステート情報を送信します。すべてではありません。ノードのリンクはアドバタイズされますが、MPR選択を表すリンクのみです。
リンクステートルーティングではトポロジデータベースをネットワーク全体で同期する必要があるため、OSPFとIS-ISは信頼性の高いアルゴリズムを使用してトポロジフラッディングを実行します。このようなアルゴリズムは、アドホックワイヤレスネットワーク用に設計するのが非常に難しいため、OLSRは信頼性を気にしません。データベースが長期間非同期のままにならないようにするのに十分な頻度でトポロジデータをフラッディングするだけです。
マルチポイントリレー(MPR)は、ノード間でメッセージを中継します。また、任意の送信元から任意の宛先ノードへの適切なルートをルーティングおよび選択する際の主な役割もあります。
MPRは、MPRセレクター(MPRとして選択されたノード)のリンクステート情報を制御メッセージで定期的にアドバタイズします。 MPRは、ルート計算で特定のノードから任意の宛先へのルートを形成するためにも使用されます。各ノードは、リンクセンシング、ネイバー検出、およびMPR選択プロセスのためにHelloメッセージを定期的にブロードキャストします。
プロアクティブなプロトコルであるため、ネットワーク内のすべての宛先へのルートは、使用前に認識され、維持されます。新しいルートの検索に関連するルート検出の遅延がないため、標準のルーティングテーブル内でルートを使用できるようにすることは、一部のシステムやネットワークアプリケーションで役立ちます。
生成されるルーティングオーバーヘッドは、一般にリアクティブプロトコルのオーバーヘッドよりも大きくなりますが、作成されるルートの数に応じて増加することはありません。
デフォルトルートとネットワークルートは、HNAメッセージによってシステムに挿入でき、 OLSRMANETクラウド内のインターネットまたは他のネットワークへの接続を可能にします。ネットワークルートは、リアクティブプロトコルが現在うまく実行されていないものです。
タイムアウト値と有効性情報は、情報を伝達するメッセージ内に含まれているため、さまざまなノードでさまざまなタイマー値を使用できます。
OLSRの元の定義には、リンク品質の検知に関する規定は含まれていません。多数のhelloパケットが最近受信された場合、リンクがアップしていると単純に想定します。これは、リンクがバイモーダル(機能しているか失敗しているか)であると想定しています。これは、リンクが中間レートのパケット損失を示すことが多いワイヤレスネットワークでは必ずしも当てはまりません。オープンソースOLSRd( Linuxベースのメッシュルーターで一般的に使用される)などの実装は、リンク品質の検出によって拡張されました(v。0.4.8以降)。
プロアクティブなプロトコルであるOLSRは、電力とネットワークリソースを使用して、未使用の可能性のあるルートに関するデータを伝播します。これは有線アクセスポイントやラップトップでは問題になりませんが、OLSRはほとんどの時間スリープしようとするセンサーネットワークには適していません。 CPUパワーが低い小規模の有線アクセスポイントの場合、オープンソースのプロジェクトは、大規模なメッシュネットワークが数千のノードでOLSRdを使用して実行でき、 200CPUパワーが非常に少ないことを示しました。200組み込みデバイス。
リンクステートプロトコルであるOLSRは、ネットワーク内の最適なパスを計算するために、かなり大きな帯域幅とCPUパワーを必要とします。 OLSRが使用される一般的なネットワーク(数百ノードを超えることはめったにありません)では、これは問題ではないようです。
トポロジ情報をフラッディングするためにMPRのみを使用することにより、OLSRはフラッディングプロセスの冗長性の一部を取り除きます。これは、中程度から大きなパケット損失率のネットワークで問題になる可能性がありますただし、MPRメカニズムは自己プルーニングです(つまり、パケット損失の場合、パケットを再送信しなかったはずの一部のノードが再送信する可能性があります)。
OLSRは、「Hello」メッセージを使用して、応答を通じて1つのホップネイバーと2つのホップネイバーを検索します。次に、送信者は、2つのホップノードへの最適なルートを提供する1つのホップノードに基づいて、マルチポイントリレー(MPR)を選択できます。各ノードにはMPRセレクターセットもあり、MPRノードとして選択したノードを列挙します。 OLSRは、トポロジ制御(TC)メッセージとMPR転送を使用して、ネットワーク全体にネイバー情報を配信します。ホストおよびネットワークアソシエーション(HNA)メッセージは、TCメッセージがホストルートをアドバタイズするのと同じ方法で、ネットワークルートアドバタイズメントを配布するためにOLSRによって使用されます。
アドホックワイヤレスネットワークでのルーティングの問題は活発に研究されており、OLSRはいくつかの提案されたソリューションの1つにすぎません。多くの人にとって、まったく新しいプロトコルが必要かどうか、またはOSPFをワイヤレスインターフェイスのサポートで拡張できるかどうかは明らかではありません。
帯域幅と電力が不足している環境では、ルーティングするトラフィックがないときにネットワークをサイレントに保つことは興味深いことです。リアクティブルーティングプロトコルはルートを維持しませんが、オンデマンドで構築します。リンクステートプロトコルはデータベースの同期を必要とするため、このようなプロトコルは通常、 AODVやDSDVのように距離ベクトルアプローチ、または動的ソースルーティングなどの必ずしも最適なパスを構築しないアドホックアプローチを使用します。
詳細については、アドホックルーティングプロトコルのリストを参照してください。
OLSRv2は、2014年4月にIETFによって公開されました。  MPRの選択や普及など、オリジナルの主要な機能の多くを維持しています。主な違いは、共有コンポーネント(パケット形式packetbb、近隣探索プロトコルNHDP)を使用した柔軟性とモジュラー設計です。これらのコンポーネントは、次世代のIETFMANETプロトコル間で共通になるように設計されています。複数のアドレスとインターフェイスが有効なノードの処理の違いは、OLSRとOLSRv2の間にも存在します。
– Linux、Windows、Mac OS X、FreeBSD、NetBSD、およびOpenBSDシステムでのOLSRのダウンロード可能なコード。関連する作業の有益な調査を含む、大量のドキュメントを備えています。
のオープンソースコード。 Windows、MacOS、Linux、Arm / ZaurusやPocket PCなどのさまざまな組み込みPDAシステム、およびシミュレーション環境ns2やOPNETで動作し
– MOVIQUITYによって作成され、プロジェクトWorkpad内の調査に基づいて、プロトコルOLSRを使用してMANET(アドホック、メッシュネット)を展開するためのコードをC#で提供します。 WM 6、Win XP用に開発され、を使用して他のプラットフォームに適合させることができます。ネットフレームワークとコンパクト。 http://sourceforge.net/projects/wmolsr/
バットマン、モバイルアドホックネットワーキングへのより良いアプローチ