コンテンツにスキップ

「B.A.T.M.A.N.」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
編集の要約なし
Hmr76(会話 | 投稿記録)
m リリース日を更新
 
(9人の利用者による、間の11版が非表示)
5行目: 5行目:
| ロゴ = [[Image:Official b.a.t.m.a.n. logo.svg|250px]]
| ロゴ = [[Image:Official b.a.t.m.a.n. logo.svg|250px]]
| 開発元 = {{ill2|Freifunk|en|Freifunk}}
| 開発元 = {{ill2|Freifunk|en|Freifunk}}
| 最新版 = Batman-adv 2017.1<ref name="batman-adv-2017-1-release">{{cite web|url=https://www.open-mesh.org/news/78|publisher=open-mesh.org|title= Batman-adv 2017.1 released|accessdate=2017-7-8}}</ref>
| 最新版 = 2022.0<ref name="batman-adv-2022-0-release">{{cite web|url=https://www.open-mesh.org/news/107|title= Batman-adv 2022.0 released|accessdate=2022-02-03}}</ref>
| 最新版発表日 = {{release date|2017|05|23}}<ref name="batman-adv-2017-1-release"/>
| 最新版発表日 = {{release date|2022|02|03}}<ref name="batman-adv-2022-0-release"/>
| プログラミング言語 = [[C (programming language)|C]]
| プログラミング言語 = [[C (programming language)|C]]
| 対応OS = [[Unix-like]]
| 対応OS = [[Unix-like]]
12行目: 12行目:
| 種別 = [[ルーティングプロトコル]]
| 種別 = [[ルーティングプロトコル]]
| ライセンス = [[GNU General Public License|GPL]]
| ライセンス = [[GNU General Public License|GPL]]
| 公式サイト = http://www.open-mesh.org/
| 公式サイト = https://www.open-mesh.org/
}}
}}


19行目: 19行目:
B.A.T.M.A.N. の重要な特徴として、ネットワーク内の最良ルートに関する知識が非集中管理されることである。すなわち、全てのデータを持つ[[ノード (ネットワーク)|ノード]]は一つも存在し ない。この技術によりネットワークに関する情報をネットワーク内の全ノードに拡散する必要がなくなる。個々のノードはデータを受取先と送り先の「方向」を適宜保存する。データはノートからノードへと受け渡され、[[パケット]]は個々に、動的にルーティングされる。 [[集団的知性|集合知]]ネットワークが構築される。
B.A.T.M.A.N. の重要な特徴として、ネットワーク内の最良ルートに関する知識が非集中管理されることである。すなわち、全てのデータを持つ[[ノード (ネットワーク)|ノード]]は一つも存在し ない。この技術によりネットワークに関する情報をネットワーク内の全ノードに拡散する必要がなくなる。個々のノードはデータを受取先と送り先の「方向」を適宜保存する。データはノートからノードへと受け渡され、[[パケット]]は個々に、動的にルーティングされる。 [[集団的知性|集合知]]ネットワークが構築される。


2007年初頭、B.A.T.M.A.N. 開発者らは[[ネットワーク層|レイヤー3]]ではなく[[データリンク層|レイヤー2]]([[イーサネット]]層)におけるルーティングというアイデアの試験を始めた。レイヤー3ルーティングデーモンとの区別のため、 "adv" ({{lang|en|advanced}}) という[[サフィックス]]が採用された。ルーティングテーブルの操作のためには UDP パケットを送信するのではなく、仮想ネットワークインターフェスを作成して透過的に独自のパケットをやりとりする。 batman-adv [[カーネルモジュール]]はバージョン 2.6.38 から公式な [[Linuxカーネル|Linux カーネル]]の一部となっている<ref>{{cite web2|url=http://kernelnewbies.org/Linux_2_6_38#head-17577655766f585c3c47df886fe91dba276f4c3f|title=Linux 2 6 38 - Linux Kernel Newbies|publisher=Linux Kernel Newbies}}</ref>。
2007年初頭、B.A.T.M.A.N. 開発者らは[[ネットワーク層|レイヤー3]]ではなく[[データリンク層|レイヤー2]]([[イーサネット]]層)におけるルーティングというアイデアの試験を始めた。レイヤー3ルーティングデーモンとの区別のため、 "adv" ({{lang|en|advanced}}) という[[サフィックス]]が採用された。ルーティングテーブルの操作のためには UDP パケットを送信するのではなく、[[仮想ネットワークインターフェ]]を作成して透過的に独自のパケットをやりとりする。 batman-adv [[カーネルモジュール]]はバージョン 2.6.38 から公式な [[Linuxカーネル|Linux カーネル]]の一部となっている<ref>{{cite web2|url=http://kernelnewbies.org/Linux_2_6_38#head-17577655766f585c3c47df886fe91dba276f4c3f|title=Linux 2 6 38 - Linux Kernel Newbies|publisher=Linux Kernel Newbies|accessdate=2020-08-19}}</ref>。


== 動作 ==
== 動作 ==
39行目: 39行目:


=== バージョン 2 ===
=== バージョン 2 ===
バージョン 1 のアルゴリズムでは、存在データを受信できたノードはその時点でデータを送り返すことも可能と考えるという重大な仮定が用いられていた。しかし、無線ネットワークでは、通信が一方向にのみ可能であるという、非対称リンクと呼ばれる状況が十分にありうる<ref>{{Cite web2|url=http://ieeexplore.ieee.org/document/965940/|title=On Supporting Link Asymmetry in Mobile Ad Hoc Networks - Kim, Toh, Choi, IEEE GLOBECOM 2001.}}</ref>。この状況を許容し、これによって引き起こされる問題に対処するための仕組みが組み込まれた。 この仕組みにより、ノードは近隣ノードとの双方向通信が可能かどうかを判断することができるようになった。双方向通信の可能なノードのみがネットワークの一部とみなされ、一方向ノードは完全には組込まれなくなった。
バージョン 1 のアルゴリズムでは、存在データを受信できたノードはその時点でデータを送り返すことも可能と考えるという重大な仮定が用いられていた。しかし、無線ネットワークでは、通信が一方向にのみ可能であるという、非対称リンクと呼ばれる状況が十分にありうる<ref>{{Cite web2|url=http://ieeexplore.ieee.org/document/965940/|title=On Supporting Link Asymmetry in Mobile Ad Hoc Networks - Kim, Toh, Choi, IEEE GLOBECOM 2001.|accessdate=2020-08-19}}</ref>。この状況を許容し、これによって引き起こされる問題に対処するための仕組みが組み込まれた。 この仕組みにより、ノードは近隣ノードとの双方向通信が可能かどうかを判断することができるようになった。双方向通信の可能なノードのみがネットワークの一部とみなされ、一方向ノードは完全には組込まれなくなった。


=== バージョン 3 ===
=== バージョン 3 ===
このバージョンの B.A.T.M.A.N. における最も大きな 新機能は、複数{{ill2|ネットワーク機器|en|Network_hardware}}のサポートである。B.A.T.M.A.N. を実行するコンピュータを教会その他の高い建物に設置し、複数の有線および無線ネットワークインターフェースを接続することによって、再送信ディレイなしに多方向へネットワークデータを中継できるようになった。
このバージョンの B.A.T.M.A.N. における最も大きな 新機能は、複数{{ill2|ネットワーク機器|en|Network_hardware}}のサポートである。B.A.T.M.A.N. を実行するコンピュータを教会その他の高い建物に設置し、複数の有線および無線ネットワークインターフェースを接続することによって、再送信ディレイなしに多方向へネットワークデータを中継できるようになった。


最適路探索に際し、特定の稀な現象や特別な状況が生じうる。これらに対する取り組みと、発生するとデータが目的地到達到達できなくなる循環ルーティングを防ぐための対処が行われた。
最適路探索に際し、特定の稀な現象や特別な状況が生じうる。これらに対する取り組みと、発生するとデータが目的地到達できなくなる循環ルーティングを防ぐための対処が行われた。


インターネットへのアクセスを提供するノードはそのことをネットワークに通知することができる。この情報を使って他のノードは近隣にインターネット接続があるかどうかと、どれだけの{{ill2|label=帯域幅|帯域幅 (コンピュータ)|en|Bandwidth_(computing)}}が利用可能かを評価する。また、特定のゲートウェイを使うことも B.A.T.M.A.N. に接続速度などの基準に基いてどのゲートウェイを使うかを決めさせることもできる。
インターネットへのアクセスを提供するノードはそのことをネットワークに通知することができる。この情報を使って他のノードは近隣にインターネット接続があるかどうかと、どれだけの{{ill2|label=帯域幅|帯域幅 (コンピュータ)|en|Bandwidth_(computing)}}が利用可能かを評価する。また、特定の[[ゲートウェイ]]を使うことも B.A.T.M.A.N. に接続速度などの基準に基いてどのゲートウェイを使うかを決めさせることもできる。


このバージョンでは、B.A.T.M.A.N. を自分では実行していない機器の通知機能が追加された。通常、この手法は家内ネットワークをメッシュネットワークに接続するために用いられる。B.A.T.M.A.N. を通じて無線ネットワークに接続するためのアンテナを家の屋根に設置し、建物内の残りの機器を単に通知することでこれらも到達可能となる。
このバージョンでは、B.A.T.M.A.N. を自分では実行していない機器の通知機能が追加された。通常、この手法は家内ネットワークをメッシュネットワークに接続するために用いられる。B.A.T.M.A.N. を通じて無線ネットワークに接続するためのアンテナを家の屋根に設置し、建物内の残りの機器を単に通知することでこれらも到達可能となる。


このバージョンの B.A.T.M.A.N. は高い安定性を示したが、実運用条件では若干収束時間が遅いことが示された<ref>{{Cite journal|last=M. Abolhasan|year=2009|title=Real-world performance of current proactive multi-hop mesh protocols|url=http://ro.uow.edu.au/infopapers/736/}}</ref>。このことは理論的解析からも確認された<ref>{{Cite web2|url=http://lists.alioth.debian.org/pipermail/babel-users/2008-August/000151.html|title=A few comments on the BATMAN routing protocol|author=J. Chroboczek}}</ref>。
このバージョンの B.A.T.M.A.N. は高い安定性を示したが、実運用条件では若干収束時間が遅いことが示された<ref>{{Cite journal|last=M. Abolhasan|year=2009|title=Real-world performance of current proactive multi-hop mesh protocols|url=http://ro.uow.edu.au/infopapers/736/|accessdate=2020-08-19}}</ref>。このことは理論的解析からも確認された<ref>{{Cite web2|url=http://lists.alioth.debian.org/pipermail/babel-users/2008-August/000151.html|title=A few comments on the BATMAN routing protocol|author=J. Chroboczek|accessdate=2020-08-19}}</ref>。


=== BMX6 ===
=== BMX6 ===
BatMan-eXperimental (BMX) は OGM を別々のブロードキャストデータグラムで複数回送ることにより実際の代表者を推定することを狙っている<ref>{{Cite web2|url=http://lists.alioth.debian.org/pipermail/babel-users/2008-August/000153.html|title=A few comments on the BATMAN routing protocol|author=Axel Neumann}}</ref>。
BatMan-eXperimental (BMX) は OGM を別々のブロードキャストデータグラムで複数回送ることにより実際の代表者を推定することを狙っている<ref>{{Cite web2|url=http://lists.alioth.debian.org/pipermail/babel-users/2008-August/000153.html|title=A few comments on the BATMAN routing protocol|author=Axel Neumann|accessdate=2020-08-19}}</ref>。


=== バージョン 4 ===
=== バージョン 4 ===
{{節スタブ|date=2016-6}}
{{節スタブ|date=2016-6}}
<ref name="V">{{Cite web2|url=https://www.open-mesh.org/projects/batman-adv/wiki/BATMAN_V|title=BATMAN V - batman-adv|publisher=open-mesh.org}}</ref>
<ref name="V">{{Cite web2|url=https://www.open-mesh.org/projects/batman-adv/wiki/BATMAN_V|title=BATMAN V - batman-adv|publisher=open-mesh.org|accessdate=2020-08-19}}</ref>


=== バージョン 5 ===
=== バージョン 5 ===
64行目: 64行目:


== メディアへの露出 ==
== メディアへの露出 ==
2017年に放映された [[HBO]] のドラマシリーズ『{{ill2|シリコンバレー (ドラマ)|label=シリコンバレー|en|Silicon_Valley_(TV_series)}}』のシーズン4第2話において、ホワイトボードに B.A.T.M.A.N. が書かれていた。このドラマの主要人物であるリチャード・ヘンドリクスは彼の「新インターネット」の要素の一つに B.A.T.M.A.N. を組み込んでいるようであるt of his "new Internet" concept (the text is visible on the top-right of the whiteboard). <ref name="siliconvalleys04e02">{{Cite web2|url=https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2017-May/017081.html|title=Silicon Valley Season 4 trailer links|author=Sven Eckelmann|date=May 3, 2017}}</ref>
2017年に放映された [[HBO]] のドラマシリーズ『{{ill2|シリコンバレー (ドラマ)|label=シリコンバレー|en|Silicon_Valley_(TV_series)}}』のシーズン4第2話において、ホワイトボードに B.A.T.M.A.N. が書かれていた。このドラマの主要人物であるリチャード・ヘンドリクスは彼の「新インターネット」の要素の一つに B.A.T.M.A.N. を組み込んでいるようである<ref name="siliconvalleys04e02">{{Cite web2|url=https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2017-May/017081.html|title=Silicon Valley Season 4 trailer links|author=Sven Eckelmann|date=May 3, 2017|accessdate=2020-08-19}}</ref>


== 関連項目 ==
== 関連項目 ==
84行目: 84行目:
== 外部リンク ==
== 外部リンク ==
* {{Official website}}
* {{Official website}}
* [http://ntnu.diva-portal.org/smash/record.jsf?pid=diva2:453358 Simulation of a Secure Ad Hoc Network Routing Protocol]: 107ページの{{ill2|ノルウェー科学技術大学|en|Norwegian_University_of_Science_and_Technology}}に提出された[[修士論文]]
* [http://ntnu.diva-portal.org/smash/record.jsf?pid=diva2:453358 Simulation of a Secure Ad Hoc Network Routing Protocol]: 107ページの[[ノルウェー科学技術大学]]に提出された[[修士論文]]
* [http://wayback.archive.org/web/20130811032810/http://airberry.com/downloads/airberry_Whitepaper_EN_02_Wireless_Mesh.pdf Introduction to Mesh Networks]: ''airberry'' (廃止)が提供した無線メッシュネットワークソリューションの2012年に発表された[[白書]]<br>
* [https://web.archive.org/web/20130811032810/http://airberry.com/downloads/airberry_Whitepaper_EN_02_Wireless_Mesh.pdf Introduction to Mesh Networks]: ''airberry'' (廃止)が提供した無線メッシュネットワークソリューションの2012年に発表された[[白書]]
* [http://developers-club.com/posts/267817/ Developers' club] Build of Yocto for [[Intel Edison]](ロシア語からのゆるい翻訳)
* [http://developers-club.com/posts/267817/ Developers' club] Build of Yocto for [[Intel Edison]](ロシア語からのゆるい翻訳)
* [http://web.archive.org/web/20160423122303/http://nightwing.lugro-mesh.org.ar/en/ Nightwing]: Lugro-Mesh(アルゼンチンを本拠とする無線タスクフォース)の2011年のプロジェクト(廃止)
* [https://web.archive.org/web/20160423122303/http://nightwing.lugro-mesh.org.ar/en/ Nightwing]: Lugro-Mesh(アルゼンチンを本拠とする無線タスクフォース)の2011年のプロジェクト(廃止)
* [http://freifunk.schmudde.com/ipkg Freifunk Web-User Interface with B.A.T.M.A.N.] (ドイツ語)
* [http://freifunk.schmudde.com/ipkg Freifunk Web-User Interface with B.A.T.M.A.N.] {{de icon}}


{{デフォルトソート:はつとまん}}
{{デフォルトソート:はつとまん}}


[[Category:通信プロトコル]]
[[Category:アドホックルーティングプロトコル]]
[[Category:ルーティング]]
[[Category:オープンソースソフトウェア]]
[[Category:メッシュネットワーク]]
[[Category:メッシュネットワーク]]
[[Category:オープンソースソフトウェア]]

2022年3月8日 (火) 01:37時点における最新版

B.A.T.M.A.N.
開発元 Freifunk英語版
最新版
2022.0[1] / 2022年2月3日 (2年前) (2022-02-03)[1]
プログラミング
言語
C
対応OS Unix-like
サポート状況 Active
種別 ルーティングプロトコル
ライセンス GPL
公式サイト https://www.open-mesh.org/
テンプレートを表示

Better Approach To Mobile Adhoc Networking (B.A.T.M.A.N.) とは、ドイツの "Freifunk" コミュニティが開発するマルチホップ英語版モバイルアドホックネットワークルーティングプロトコルである。リンクステートルーティングプロトコル、OSLR英語版 を置き換えることを意図している。

B.A.T.M.A.N. の重要な特徴として、ネットワーク内の最良ルートに関する知識が非集中管理されることである。すなわち、全てのデータを持つノードは一つも存在し ない。この技術によりネットワークに関する情報をネットワーク内の全ノードに拡散する必要がなくなる。個々のノードはデータを受取先と送り先の「方向」を適宜保存する。データはノートからノードへと受け渡され、パケットは個々に、動的にルーティングされる。 集合知ネットワークが構築される。

2007年初頭、B.A.T.M.A.N. 開発者らはレイヤー3ではなくレイヤー2イーサネット層)におけるルーティングというアイデアの試験を始めた。レイヤー3ルーティングデーモンとの区別のため、 "adv" (advanced) というサフィックスが採用された。ルーティングテーブルの操作のためには UDP パケットを送信するのではなく、仮想ネットワークインターフェイスを作成して透過的に独自のパケットをやりとりする。 batman-adv カーネルモジュールはバージョン 2.6.38 から公式な Linux カーネルの一部となっている[2]

動作

[編集]

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. は無線ネットワークの他にも、イーサネットなどの一般的な有線接続でも使うことができる。

歴史

[編集]

課題は、できるかぎり簡潔で、小さく、高速なプロトコルを創出することであった。したがって、開発を数段階に分け、反復過程を通じて複雑な機能を実装していくことが賢明であると思われた。

バージョン 1

[編集]

最初の段階として、ルーティングアルゴリズムが実装され、実際の課題に対する実用性と適性が試験された。オリジネーターメッセージ(ノードの存在についての情報)を送受信するためには、UDP ポート 1966 が使われた。

バージョン 2

[編集]

バージョン 1 のアルゴリズムでは、存在データを受信できたノードはその時点でデータを送り返すことも可能と考えるという重大な仮定が用いられていた。しかし、無線ネットワークでは、通信が一方向にのみ可能であるという、非対称リンクと呼ばれる状況が十分にありうる[3]。この状況を許容し、これによって引き起こされる問題に対処するための仕組みが組み込まれた。 この仕組みにより、ノードは近隣ノードとの双方向通信が可能かどうかを判断することができるようになった。双方向通信の可能なノードのみがネットワークの一部とみなされ、一方向ノードは完全には組込まれなくなった。

バージョン 3

[編集]

このバージョンの B.A.T.M.A.N. における最も大きな 新機能は、複数ネットワーク機器英語版のサポートである。B.A.T.M.A.N. を実行するコンピュータを教会その他の高い建物に設置し、複数の有線および無線ネットワークインターフェースを接続することによって、再送信ディレイなしに多方向へネットワークデータを中継できるようになった。

最適経路探索に際し、特定の稀な現象や特別な状況が生じうる。これらに対する取り組みと、発生するとデータが目的地に到達できなくなる循環ルーティングを防ぐための対処が行われた。

インターネットへのアクセスを提供するノードはそのことをネットワークに通知することができる。この情報を使って他のノードは近隣にインターネット接続があるかどうかと、どれだけの帯域幅英語版が利用可能かを評価する。また、特定のゲートウェイを使うことも B.A.T.M.A.N. に接続速度などの基準に基いてどのゲートウェイを使うかを決めさせることもできる。

このバージョンでは、B.A.T.M.A.N. を自分では実行していない機器の通知機能が追加された。通常、この手法は家庭内ネットワークをメッシュネットワークに接続するために用いられる。B.A.T.M.A.N. を通じて無線ネットワークに接続するためのアンテナを家の屋根に設置し、建物内の残りの機器を単に通知することでこれらも到達可能となる。

このバージョンの B.A.T.M.A.N. は高い安定性を示したが、実運用条件では若干収束時間が遅いことが示された[4]。このことは理論的解析からも確認された[5]

BMX6

[編集]

BatMan-eXperimental (BMX) は OGM を別々のブロードキャストデータグラムで複数回送ることにより実際の代表者を推定することを狙っている[6]

バージョン 4

[編集]

[7]

バージョン 5

[編集]

[7]

メディアへの露出

[編集]

2017年に放映された HBO のドラマシリーズ『シリコンバレー英語版』のシーズン4第2話において、ホワイトボードに B.A.T.M.A.N. が書かれていた。このドラマの主要人物であるリチャード・ヘンドリクスは彼の「新インターネット」の要素の一つに B.A.T.M.A.N. を組み込んでいるようである[8]

関連項目

[編集]

出典

[編集]
  1. ^ a b Batman-adv 2022.0 released”. 2022年2月3日閲覧。
  2. ^ "Linux 2 6 38 - Linux Kernel Newbies". Linux Kernel Newbies. 2020年8月19日閲覧
  3. ^ "On Supporting Link Asymmetry in Mobile Ad Hoc Networks - Kim, Toh, Choi, IEEE GLOBECOM 2001". 2020年8月19日閲覧
  4. ^ M. Abolhasan (2009). Real-world performance of current proactive multi-hop mesh protocols. http://ro.uow.edu.au/infopapers/736/ 2020年8月19日閲覧。. 
  5. ^ J. Chroboczek. "A few comments on the BATMAN routing protocol". 2020年8月19日閲覧
  6. ^ Axel Neumann. "A few comments on the BATMAN routing protocol". 2020年8月19日閲覧
  7. ^ a b "BATMAN V - batman-adv". open-mesh.org. 2020年8月19日閲覧
  8. ^ Sven Eckelmann (3 May 2017). "Silicon Valley Season 4 trailer links". 2020年8月19日閲覧

外部リンク

[編集]