B.A.T.M.A.N.(Better Approach To Mobile Adhoc Networking)は、ドイツのFreifunkコミュニティによって開発された、マルチホップ・
モバイルアドホックネットワーク用の
ルーティングプロトコルです。従来のリンクステート
ルーティングプロトコルやOSLRに代わるものとして設計されました。
B.A.T.M.A.N.の主な特徴
B.A.T.M.A.N.の最も重要な特徴は、ネットワーク内の最適な経路に関する情報が集中管理されないことです。つまり、ネットワーク全体に関するデータを持つ単一のノードが存在しないということです。この分散型のアプローチにより、ネットワーク情報を全ノードに拡散する必要がなくなり、効率的なルーティングが可能になります。各ノードは、データの送信先と受信先の「方向」を記憶し、データ
パケットはノードからノードへ動的にルーティングされます。これにより、集合知に基づくネットワークが構築されます。
レイヤー2ルーティング
2007年初頭、B.A.T.M.A.N.の開発者たちは、レイヤー3ではなくレイヤー2(
イーサネット層)でのルーティングを試み始めました。レイヤー3ルーティングデーモンとの区別のため、「adv」(advanced)という接尾辞が採用されました。ルーティングテーブルを操作する代わりに、仮想ネットワークインターフェースを作成し、独自の
パケットを透過的にやり取りします。batman-advカーネルモジュールは、バージョン2.6.38から公式な
Linuxカーネルの一部となっています。
動作原理
B.A.T.M.A.N.は、古典的な
ルーティングプロトコルの要素をいくつか組み合わせています。まず、他のB.A.T.M.A.N.ノードを検出し、それらに到達するための最適な経路を探します。さらに、新しいノードを追跡し、近隣ノードにその存在を通知します。
静的なネットワークでは、ネットワーク管理者や技術者がどのコンピュータにどの経路やケーブルを使って到達するかを決定します。しかし、無線ネットワークは常に変化し、参入障壁も低いため、このタスクをできる限り自動化する必要があります。これがFreifunkネットワークの重要な基礎となっています。
各ノードは定期的にブロードキャストを行い、近隣のノードに自身の存在を通知します。近隣ノードはこのメッセージをさらに近隣ノードに中継し、ネットワーク全体に情報が拡散します。B.A.T.M.A.N.では、特定のノードへの最適な経路を探索するために、このオリジネーターメッセージをカウントし、どの近隣ノードからメッセージが届いたかを記録します。
距離ベクトルプロトコルと同様に、B.A.T.M.A.N.は経路全体を決定するのではなく、オリジネーターメッセージを利用して
パケットの最初のステップを正しい方向へ送信するだけです。データはその方向の次の近隣ノードに渡され、そこで同じ仕組みが繰り返されます。このプロセスは、データが目的地に到達するまで継続されます。
B.A.T.M.A.N.は無線ネットワークだけでなく、
イーサネットなどの一般的な有線接続でも利用できます。
歴史
B.A.T.M.A.N.の開発は、できる限り簡潔で、小さく、高速なプロトコルを作成することを目標としていました。そのため、開発を段階的に行い、反復プロセスを通じて複雑な機能を実装することが効率的だと考えられました。
バージョン1
最初の段階では、ルーティングアルゴリズムが実装され、実際の課題に対する実用性と適合性が試験されました。オリジネーターメッセージ(ノードの存在情報)の送受信には、UDPポート1966が使用されました。
バージョン2
バージョン1のアルゴリズムでは、データの受信が可能なノードは、その時点でデータを送信することも可能であるという前提がありました。しかし、無線ネットワークでは、通信が一方向のみ可能な「非対称リンク」と呼ばれる状況が十分に起こりえます。バージョン2では、この状況に対応するための仕組みが組み込まれ、ノードは近隣ノードとの双方向通信が可能かどうかを判断できるようになりました。双方向通信が可能なノードのみがネットワークの一部とみなされ、一方向ノードは完全には組み込まれなくなりました。
バージョン3
バージョン3の最も大きな新機能は、複数のネットワークインターフェースのサポートです。B.A.T.M.A.N.を実行するコンピュータを教会などの高い建物に設置し、複数の有線および無線ネットワークインターフェースを接続することで、再送信遅延なしに多方向へネットワークデータを中継できるようになりました。
また、最適経路探索において、特定のまれな現象や特別な状況に対応するための改善も行われました。特に、データが目的地に到達できなくなる循環ルーティングを防ぐための対策が施されました。
インターネットへのアクセスを提供するノードは、その情報をネットワークに通知できます。他のノードは、この情報を使って近隣にインターネット接続があるかどうか、および利用可能な帯域幅を評価できます。特定の
ゲートウェイを使用したり、接続速度などの基準に基づいて
ゲートウェイを選択することも可能です。
さらに、このバージョンでは、B.A.T.M.A.N.を直接実行していない機器の通知機能が追加されました。これにより、家庭内ネットワークをメッシュネットワークに接続するのが容易になりました。
このバージョンは高い安定性を示しましたが、実際の運用条件下では収束時間が若干遅いことが判明しました。これは理論的な解析によっても確認されました。
BMX6
BatMan-eXperimental(BMX)は、OGM(オリジネーターメッセージ)を複数のブロードキャストデータグラムで複数回送信することで、より正確な代表者を推定することを目的としています。
バージョン4、5
バージョン4、5に関する詳細は、提供された情報には含まれていません。
メディアへの露出
2017年に
放送された
HBOのドラマシリーズ「シリコンバレー」のシーズン4第2話で、ホワイトボードにB.A.T.M.A.N.が書かれていました。このドラマの主要人物であるリチャード・ヘンドリックスは、彼の「新インターネット」の要素の1つとしてB.A.T.M.A.N.を組み込んでいるようです。
関連項目
メッシュネットワーク
アドホックネットワーク
出典
(出典に関する情報は、提供された資料には含まれていません。)
外部リンク
公式ウェブサイト
修士論文'>Simulation of a Secure Ad Hoc Network Routing Protocol: 107ページのノルウェー科学技術大学に提出された
修士論文
白書'>Introduction to Mesh Networks: airberry (廃止)が提供した無線メッシュネットワークソリューションの2012年に発表された白書
Intel Edison(ロシア語からのゆるい翻訳)'>Developers' club Build of Yocto for
Intel Edison(ロシア語からのゆるい翻訳)
Nightwing: Lugro-Mesh(アルゼンチンを本拠とする無線タスクフォース)の2011年のプロジェクト(廃止)
Freifunk Web-User Interface with B.A.T.M.A.N. (ドイツ語)