[an error occurred while processing this directive]
ODMRP : draft-ietf-manet-odmrp-02.txt
インターネットドラフト 日本語訳(ミズノトモアキ)
全 29 ページ
Last update:2005/04/18


IETF MANET Working Group / INTERNET-DRAFT / Expiration: July 2000
Sung-Ju Lee / William Su / Mario Gerla
University of California, Los Angeles / January 2000

On-Demand Multicast Routing Protocol
(ODMRP) for Ad Hoc Networks



Status of this memo

(省略)

Abstract - 概要

On-Demand Multicast Routing Protocol (ODMRP)はアドホックネットワークのモバイルホスト向けのマルチキャストルーティングプロトコルである。ODMRPはtree-basedではなくmesh-basedであり、フォワーディンググループ(転送グループ:限定フラッディングによりマルチキャストパケットを転送するノードの部分集合)の概念を用いている。また、ODMRPは経路生成、マルチキャストグループのメンバ管理を動的に行うオンデマンド型である。帯域幅が限定され、トポロジの変化が激しく、また電源が限られているようなアドホックネットワークにODMRPは適している。

Contents - 目次

(省略)

1. Introduction - 導入

このドキュメントは、Wireless Adaptive Mobility (WAM) Laboratory(University of California, Los Angeles)[20]にて開発されたOn-Demand Multicast Routing Protocol(ODMRP)[14][15]について記述している。ODMRPはチャネルのオーバヘッド軽減し、スケーラビリティを改善する、”オンデマンド”なルーティングプロトコルである。ODMRPでは”フォワーディンググループ”[5]という概念を用いている。フォワーディンググループはマルチチャストデータの転送に責任を持つノードの集合である。またフォワーディングメッシュは各マルチキャストグループごとに生成される。ツリーの代わりにメッシュを用いることによって、マルチキャストツリーの欠点(e.g. 経路が切断されやすい、トラフィックが一部に集中しやすい、頻繁にツリーの再構成が行われる、共有ツリーでは最短経路にならない、など)を回避することができる。マルチキャストメンバの管理はソフトステート型のアプローチをとっている。したがって、メンバがグループを離脱する際には明示的な宣言を行う必要がない。通信/ストレージのオーバヘッドの軽減と緩やかな接続性によって、ODMRPはモバイルワイヤレスネットワークにおいてより魅力的となるであろう。

以下にODMRPの特徴を記す。
○簡潔である
○通信、ストレージのオーバヘッドが少ない
○最新の最短経路を用いる
○信頼性のある経路とフォワーディンググループを選択する
○ホストの移動に対してロバストである
○代替経路を確保する
○ワイヤレス環境におけるブロードキャストを提供する
○ユニキャストルーティングの機能も持つ

2. Terminology - 用語説明

2.1. General Terms - 一般用語

ここではODMRPで用いる用語を定義する。

ノード(node)
IPを割り当てられたデバイス
隣接ノード(neighbor)
通信範囲内に存在するノード
フォワーディンググループ(forwarding group)
マルチキャストパケットの転送を受け持つノードの集合
マルチキャストメッシュ(multicast mesh)
フォワーディンググループのメンバ間に張られたコネクション
join query
マルチキャストメンバの募集と経路の確立・更新を行うために、マルチキャストの送信元によって送られる特別なデータパケット
join reply
マルチキャストメンバの募集と経路の確立・更新を行うために、マルチキャスト受信ノードとフォワーディングノードによってブロードキャストされるテーブル

2.2. Specification Language - キーワード

本稿で用いている次のキーワード ”MUST”、”MUST NOT”、”REQUIRED”、”SHALL”、”SHALL NOT”、”SHOULD”、”SHOULD NOT”、”RECOMMENDED”、”MAY”、”OPTIONAL”については、RFC 2119[4]にて解説されている。

3. Protocol Overview - プロトコルの概要

3.1. Multicast Route and Mesh Creation - マルチキャストの経路とメッシュの作成

ODMRPでは、マルチキャストメンバとマルチキャスト経路の確立・更新は、マルチキャスト送信元によってオンデマンドに行われる。オンデマンド型のユニキャストルーティングプロトコルと同様に、requestフェーズとreplyフェーズから成っている。マルチキャスト送信元が送るべきパケットを持った際に、マルチキャスト経路とメンバが未知であれば、データのペイロードを上乗せした広告パケットを全メンバにフラッディングする。このパケットを”Join Query”と呼ぶ(パケットのフォーマットは4.1で示す)。Join Queryパケットは定期的にブロードキャストされ、メンバ情報の更新と経路の更新を行う。ノードがJoin Queryパケットを受け取ると、受信ノードは送信元アドレス(source address)とパケットのIDを”メッセージキャッシュ(Message Cache)”に保存する。メッセージキャッシュによりパケットの重複を調べることができる。上流ノードのアドレスは、ソースノードへ向かう際の次ホップのノード(next node)として”ルーティングテーブル(Routing Table)”に格納(更新)する。もし受け取ったJoin Queryパケットが重複しておらずTTL(Time-To-Live)の値が0より大きければ、そのパケットのある特定のフィールドを更新し、再ブロードキャストする(処理の詳細は5.1.2に示す)。

Join Queryパケットがマルチキャスト受信ノードへ届くと、受信ノードは”Join Reply”を生成し隣接ノードへブロードキャストする。ノードがこのJoin Replyパケットを受け取ると、そのノードはエントリの中のnext node addressが自分のアドレスと一致するかどうか調べる。一致すれば、そのノードは自分が送信ノードまでの経路上に位置していることを知り、FG_FLAG(Forwarding Group Flag)をセットしてフォワーディンググループに加わる。そして自身のJoin Replyパケットを生成しブロードキャストする。このパケットのnext node addressフィールドは、自身のルーティングテーブルを検索し埋める。このようにしてJoin Replyパケットはフォワーディンググループを伝達し、選択された経路に沿ってマルチキャスト送信ノードまで届く。このプロセスによって、送信ノードから受信ノードまでの経路が形成(更新)され、メッシュとフォワーディンググループが作成される。
figure of section 3.1.
Join Reply of Node R1
Sender Next Node
S1 l1
S2 l2

Join Reply of Node l1
Sender Next Node
S1 S1

上図の例でJoin Replyパケットの送信手順を見てみる。ノードS1とS2はマルチキャスト送信ノードであり、ノードR1とR2はマルチキャスト受信ノードである。ノードR2は、自身のJoin Replyパケットをl1を通してS1とS2に送信し、ノードR1は自身のJoin Replyパケットをl2を通してS2に送信する。受信ノード(R1とR2)がnext hop nodeに対してJoin Replyパケットを送信すると、中間のノードであるl1は、R1から受け取ったJoin Replyパケット中のnext node IDエントリが自分のIDと一致するので、FG_FLAGをセットし、自身のJoin Replyパケットを生成する。ここで注意すべき点は、受け取ったJoin ReplyパケットでのS2に対するnext node addressはl1ではないので、l1の生成するJoin ReplyパケットはS1に対しての1つのエントリしか持たない点である。一方でノードl2はFG_FLAGをセットし、自身のJoin Replyパケットを生成し、隣接ノードに送信する。ここで、l2は2つのJoin Replyパケットを受け取っているにもかかわらず、Join Replyパケットのブロードキャストは1回であることに注意する。これは、2番目に届いたパケットには送信ノードに関する新しい情報は含まれていないためである。このようにすることで、多数のマルチキャスト受信ノードが同一のリンクを共有している場合に、帯域のオーバヘッドを劇的に減少させることができる。

このマルチキャストグループの確立と経路の生成処理が終わると、マルチキャスト送信ノードは選択された経路とフォワーディンググループを通してマルチキャストを行うことができるようになる。送信すべきデータが存在している限り、送信オードはREFRESH_INTERVAL毎にJoin Queryパケットを送信し続ける。このJoin QueryとJoin Replyのやりとりの過程で、フォワーディンググループと経路が更新される。ノードがマルチキャストデータパケットを受け取ると、そのパケットが重複しておらず、かつそのノードのFG_FLAGがセットされていれば、そのノードはデータパケットを転送する。この処理手続きによって、通信のオーバヘッドを最小とし、古くなった経路を使用してしまうことを避けることができる。

3.2. Reliability - 信頼性

Join Replyパケットの信頼性のある伝送は、マルチキャスト経路とフォワーディンググループの確立・更新に重要な役割を担っている。したがって、もしJoin Replyパケットが正確に届かなければ、ODMRPによる効果的なマルチキャストルーティングは期待できない。ワイヤレスネットワークにおける標準であるIEEE 802.11 MAC (Medium Access Control) プロトコル [8]は、確認応答がない場合において信頼性のある伝送を提供する。しかしながら、パケットがブロードキャストで送信される際には確認応答は行われず、再送も行われない。ODMRPでは、Join Replyパケットの伝送において、複数の送信ノードに対応させるため1つ以上の上流隣接ノードに対してたびたびブロードキャストを行う(e.g. 3.1.の例におけるR1の送信するJoin Replyパケットを見よ)。このような場合には、MACレイヤーによるホップ毎のJoin Replyパケットの送信確認と再送は行われない。このような処理はODMRPによって行う必要がある。信頼性のある伝送を実現するための別の方法としては、Join Replyパケットを各next nodeごとに分割する方法がある。例えば3.1.の例で言うと、ノードR1のJoin Replyパケットをl1宛とl2宛の2つのJoin Replyパケットに分割する。これらのJoin Replyパケットは、IEEE 802.11やMACAW[3]のような信頼性のあるMACプロトコルを用いて別々にユニキャスト送信する。たいてい隣接ノード数は限られている(一般に、マルチホップネットワークにおける最適な隣接ノード数は6ノードである[12])ので、多数の送信ノードが存在する場合に対してもスケーラビリティを確保できる。この方法は、以下に述べるように、パッシブ応答の代替として実際に利用することができる。

[10]で用いられている方法を採用する。ノードがJoin Replyパケットを上流の中間ノードに送信する際に、下流の中間ノードが通信範囲内に存在していれば、この伝送を取得することができる。したがって、このパケットは”パッシブ応答(passive acknowledgment)”として利用することができる。このパッシブ応答をJoin Replyパケットの伝送確認として利用する。ただしマルチキャスト送信ノード自身はnext hopを持たないので、アクティブ応答を前ホップのノードに対して送信する必要がある(ただし送信ノードが別のマルチキャストグループのフォワーディンググループノードでもある場合を除く)。

ここで再度3.1.の例を考えてみる。ノードl1とl2はR1からのJoin Replyパケットを受け取り、自身のJoin Replyパケットを生成し送信するのであった(マルチキャスト送信ノードがS1とS2の場合)。Join Replyパケットの送信の際、ノードl1とl2は互いにオーバーラップする。l1とl2が互いに送信範囲内にいる場合は、CSMA (Carrier Sense Multiple Access) [13]に代表されるキャリアセンスによってオーバーラップを発見し回復できる。しかし送信範囲外にいる場合は、l1とl2はR1が”隠れ端末(hidden terminal)”、すなわち(オーバーラップした)パッシブ応答を確認することのできない状態になっていることに気づかない。このようにして、ノードは隠れ端末問題により、上流隣接ノードのパッシブ応答を確認することができないかもしれない。また、上流隣接ノードが移動し離脱した場合もパッシブ応答を確認できない。どちらの場合も一定時間内に応答を受信しなかった際には、ノードはメッセージを再送信する。ここで、応答はいくつかの上流隣接ノードから受け取るかもしれないが、全上流隣接ノードから受け取るとは限らないことに注意する。オプションとして、再送は選択した隣接ノードへ分割したテーブルを用いてユニキャストモードで行われるかもしれない。再送を一定の回数行ってもパケットの送信がうまくいかない場合には、その経路は無効であると判断する。ここで、経路間違いが起こる理由としてもっとも起こりやすいのは、経路上のノードが誤っているか通信範囲外に移動してしまうことである。代替経路は”直ちに”発見される。ノードは送信ノードに届かなかったnext hopを指定して、メッセージを隣接ノードにブロードキャストする。このパケットを受け取ると、そのnext hopへの経路を知っていれば、各隣接ノードはそのJoin Replyパケットを生成しユニキャスト送信する。もし経路を知らない場合は、ただ単純にそのパケットをブロードキャストする。どちらの場合でもノードはFG_FLAGをセットする。この冗長な過程によって、次のリフレッシュでより効率の良い経路が確立されるまでの代替経路は充分確保される。各隣接ノードがFG_FLAGをセットすることは極めて冗長であるかもしれないが、これらのフラグのセットのほとんどはすぐに解除される。なぜなら、本当に必要なフォワーディンググループのみが次のJoin Replyの処理で維持されるからである。

3.3. Soft State - ソフトステート

ODMRPでは、グループを離脱する際に明示的な制御パケットを送信する必要がない。マルチキャスト送信元がグループを離脱したい場合は、ただ単にJoin Queryパケットの送信を止めればよい。これはグループに対して送信すべきデータが何もないためである。マルチキャスト受信者があるマルチキャストグループからのメッセージをもはや受信したくないのであれば、そのグループに対してJoin Replyパケットを送信しなければよい。フォワーディンググループのノードがタイムアウトするまでにリフレッシュされなければ(Join Replyパケットを受け取らなければ)、そのノードはフォワーディンググループでなくなる。

3.4. Selection of Timer Values - タイマーの値の選択

ルートリフレッシュの間隔とフォワーディンググループのタイムアウトまでの間隔は、ODMRPのパフォーマンスに大きく影響する。これらのソフトステートタイマーは、ネットワーク環境に応じた値の選択が必要である(e.g. トラフィックの種類、トラフィック経路、端末の移動可能性、移動速度、帯域 etc)。ルートリフレッシュ間隔を小さく取ると、新しい経路情報とメンバ情報は頻繁に手に入るが、その代わり多くのパケットを生成するコストが掛かり、ネットワークの混雑を引き起こす。その一方で、ルートリフレッシュの間隔を大きく取ると、制御パケットのトラフィックは少なくて済むが、各ノードは最新の経路情報とメンバ情報を得ることはできないであろう。このように、移動の頻繁なネットワークにおいてリフレッシュ間隔を大きく取ると、プロトコルのパフォーマンスは低くとどまってしまう。同様にフォワーディンググループのタイムアウト間隔も慎重に選択する必要がある。通信量の多いネットワークでは、不必要なノードがすばやくタイムアウトできるように、また極端な冗長を引き起こさないようにするために、タイムアウト間隔は小さな値を用いるべきである。しかしながら、より多くの代替経路を提供するためにはタイムアウト間隔はきな値を取る必要がある。フォワーディンググループのタイムアウト間隔をルートリフレッシュ間隔よりも大きく(e.g. 3〜5倍)取るように注意することが重要である。

3.5. Unicast Capability - ユニキャストの能力

ODMRPの大きな強みは、ユニキャスト送信の能力である。ODMRPはその他のユニキャストルーティングプロトコルと共存可能なだけでなく、ユニキャストルーティングプロトコルとしても非常に効率的な働きをすることができる。このように、ODMRPを利用するネットワークでは、別の分離したユニキャストルーティングプロトコルを必要としない。AMRoute [5]、CAMP [7]、RBM [6]、LAM [9]などのその他のマルチキャストルーティングプロトコルはユニキャストルーティングプロトコルが稼動していることが必要である。特にCAMP、RBM、LAMはユニキャストルーティングプロトコルの元でのみ動作する。

3.6. Contents of Tables - テーブルの内容

ODMRPを使用するノードは以下のテーブルを保持する必要がある。これらのテーブルはどんなフォーマットを用いてもよいが、本ドキュメントに挙げる項目は必ず含まなければならない。

3.6.1. Routing Table - ルーティングテーブル

ルーティングテーブルはオンデマンドに生成され、各ノードで管理される。項目は重複していないJoin Queryパケットを受け取ったときに挿入/更新される。ノードは宛先(i.e. Join Queryの送信元ノード)とその宛先へのnext hop(i.e. Join Queryを最後に伝送したノード)を記録する。ルーティングテーブルはJoin Replyを送信する際のnext hopの情報を与える。

3.6.2. Forwarding Group Table - フォワーディンググループテーブル

ノードがマルチキャストグループのフォワーディンググループノードである場合、そのノードはグループの情報をフォワーディンググループテーブルに格納する。マルチキャストグループIDと最後にリフレッシュされた時刻を保持する。

3.6.3. Message Cache - メッセージキャッシュ

メッセージキャッシュは、パケットの重複を検出するために各ノードで保持される。ノードが新しいJoin Queryやデータを受け取ったときに、ノードは送信元アドレスとパケットのUIDを保存する。メッセージキャッシュのレコードは永久に保持される必要がないことに注意する。古いレコードを削除し、メッセージキャッシュのサイズが大きくなるのを防ぐために、メッセージキャッシュにはLRU(Least Recently Used)やFIFO(First In First Out)が用いられる。

3.7. Mobility Prediction - モビリティの予想

3.7.1. Adapting the Refresh Interval via Mobility Prediction
                - モビリティを考慮したリフレッシュレートの選択

ODMRPは経路形成と更新のために定期的にJoin Queryをフラッディングすることを要求する。しかしながら、アドホックネットワークでは帯域が制限されているので過度のフラッディングは望ましくない。さらにフラッディングはたびたびネットワークの混雑や衝突を引き起こす。最適なフラッディング間隔を見つけることは。ODMRPのパフォーマンスに大きく影響する。GPS [11]を利用しているノードによる移動頻度の高いネットワーク(e.g. 軍事用のネットワークを利用する戦車、船、飛行機 etc)では、位置情報や移動情報から導き出した移動パターン・移動速度により、効率的にREFRESH_INTERVALを求めることができる。位置情報や移動情報を利用して、経路が利用可能な状態である存続時間を予想する。経路が断絶する時間を予想することで、Join Queryはセッションが切れる寸前にのみフラッディングされる。ODMRPはこれらのような情報が利用できない場合にも効率的に動作し、これらの情報が利用できる場合にはさらにプロトコルは改良できるということに注意する。

我々の予測方法では、受信する信号の強度は送信者からの距離にのみ依存するfree space propagationモデルを想定している。また、全てのノードはネットワークで同期するクロック(e.g. NTP(Network Time Protocol)[16]やGPSクロック)を持っていると想定してる。したがって、2つの隣接ノードの動作パラメータ(e.g. 移動速度、移動方向、通信範囲 etc)がわかる場合、その2つのノードが接続を維持できる期間を判断することができる。2つのノード i と j がお互いの通信範囲 r の中に位置しているとする。ノード i の座標を ( x( i ), y( i ) )、ノード j の座標を ( x( j ), y( j ) ) とする。同様に各ノードの移動速度を v( i )、v( j )、移動方向を θ( i )、
θ( j )( 0 <= θ( i ), θ( j ) < 2 * pi )とする。そして、2つのノードが接続を維持する期間 D( t ) は以下の式から与えられる:
equation of 3.7.1
もしv( i )=v( j )、θ( i )=θ( j )であれば、上式に当てはめずともD( t )は無限大になることに注意する。

この予測から得られる情報を利用するためには、Join QueryパケットとJoin Replyパケットに特別なフィールドを追加する必要がある。送信元がJoin Queryを送信するとき、そこに位置情報、移動速度、移動方向を付け加える。送信元ノードには上流ノードは存在しないので、MIN_LET(Minimum Link Expiration Time)フィールドにMAX_LET_VALUEをセットする。次ホップの隣接ノードはJoin Queryを受け取ると、上述の式を用いて自分と上流隣接ノード(previous node)のリンクの維持される時間を予測する。この値とJoin Queryに記されたMIN_LETのうちの小さいほうをパケットに挿入する。これは、経路上の一箇所のリンクが切れた場合、その経路全てが無効になってしまうためである。ノードはまた、上流隣接ノードによって記録された位置情報と移動情報のフィールドを、自身の情報に書き直す。マルチキャストメンバのノードがJoin Queryを受け取ると、経路の末端のリンク維持時間(LET)の予測を計算する。この経路の末端のリンク維持時間とJoin Queryに記されたMIN_LETのうちの小さいほうの値をRET(Route Expiration Time)とする。このRETの値はJoin Replyにセットされブロードキャストされる。フォワーディンググループのノードが異なった値のRETを持つ複数のJoin Replyを受け取ると(i.e. 同一の送信元から複数の受信者への経路が存在する場合)、それらのうちの最小のRETを選択し、自身のJoin Replyにはその選択したRETを入れて送信する。送信元ノードがJoin Replyを受け取ると、全Join Replyの中の最小のRETを選択する。そうして、送信元は最小のRETの時間が経つ前に、Join Queryのフラッディングによって新しい経路を構築することができる。

RETの予測に加えて、リフレッシュ間隔の選択には別の要素を考慮する必要がある。ノードの移動頻度が高くトポロジの変化が頻繁である場合、経路はすぐに、またたびたび切断される。送信元ノードは極端な量のJoin Queryを送信し、その極端な量のフラッディングが制御パケットによるネットワークの衝突と混雑を引き起こす可能性がある。したがって、MIN_REFRESH_INTERVALは制御パケットのオーバーフローを回避するように設定しなければならない。ノードが静止しているかゆっくり動いていて、接続が長時間維持される場合には、経路はずっと維持されたままでJoin Queryが送信されることは滅多にないであろう。この状況ではいくつかの問題が発生する。第一に、ノードが突然移動方向や移動速度を変えた場合、予測したRETの値は古いものとなるが経路はすぐには再構築されない。第二に、メンバーでない遠くのノードがマルチキャストグループに参加しようとした場合、Join Queryを受信するまで新しいメンバであることの通知やデータの受信ができない。したがって、MAX_REFRESH_INTERVALはセットする必要がある。MIN_REFRESH_INTERVALとMAX_REFRESH_INTERVALはネットワーク環境に適したものを選択する必要がある。

3.7.2. Route Selection Criteria - 経路選択の基準

ODMRPでは、マルチキャスト受信者は遅延が最小の経路(i.e. 最初にJoin Queryを受信した経路)を選択する。しかしモビリティの予測を用いる場合、これとは違った方法の経路選択を適用させることができる。この考えはAssociativity-Based Routing(ABR)protocol[18]、安定した経路を選択するプロトコルから想起される。ODMRPのアルゴリズムでは、最小遅延経路を利用する代わりに最も安定した経路(i.e. 最も長い時間接続を維持できるであろう経路)を選択することが可能である。経路選択に際して、マルチキャスト受信者は、全ての利用可能な経路とその経路の品質について知るために最初のJoin Queryを受信してからしばらくの適正な時間だけ待機する。そして受信者は最も安定した経路を選択し、Join Replyをブロードキャストする。安定した経路を利用することにより、経路切断の発生は少なくなりJoin Queryの伝送量は抑えられるであろう。

3.7.3. Alternative Method of Prediction - 別の予測方法

GPSは特定の環境化では正しく動作しない(e.g. 室内、フェーディングetc)ため、特定のリンクの有効期間をいつでも正しく予想することはできない。しかしながら、リンク維持時間(LET)を予測する別の方法が存在する。この方法はより実際的な伝送モデル元にしており、[1][17]で提案されている。伝送パワーのサンプルは移動する隣接ノードからパケットを受信する際に定期的に計測される。この情報から、特定の隣接ノードの伝送パワーレベルの変化の割合を計算することができる。このようにして、伝送パワーが受信不可能なレベルまで低下するまでの時間を予測することができる。将来このオプションを提案することを予定している。

4. Packet and Table Formats - パケットとテーブルのフォーマット

4.1. Join Query Packet Header - Join Queryパケットのヘッダ

0 8 16 24
Type Reserved Time To Live Hop Count
Multicast Group IP Address
Sequence Number
Source IP Address
Previous Hop IP Address
Previous Hop X Coordinate
Previous Hop Y Coordinate
Previous Hop Moving Speed Previous Hop Moving Direction
Minimum Link Expiration Time
Type
01:ODMRP Join Query
Reserved
Sent as 0:利用しない
Time To Live
このパケットのホップ可能回数
Hop Count
このパケットのホップ数
Multicast Group IP Address
マルチキャストグループのIPアドレス
Sequence Number
パケットをユニークに識別するために送信元が割り当てたシーケンスナンバー
Source IP Address
パケットの送信元ノードのIPアドレス
Previous Hop IP Address
このパケットを最後に処理したノードのIPアドレス
Previous Hop X Coordinate(オプション)
このパケットを最後に処理したノードのX座標。この情報はGPSから得られる。このフィールドはネットワークホストがGPSを実装している場合のみ要求される。
Previous Hop Y Coordinate(オプション)
このパケットを最後に処理したノードのY座標。この情報はGPSから得られる。このフィールドはネットワークホストがGPSを実装している場合のみ要求される。
Previous Hop Moving Speed(オプション)
このパケットを最後に処理したノードの移動速度。この情報はGPSまたはノード自身の計器やセンサ(e.g. campus、odometer、速度センサetc)から得られる。このフィールドはネットワークホストがGPSを実装している場合のみ要求される。
Previous Hop Moving Direction(オプション)
このパケットを最後に処理したノードの移動速度。この情報はGPSまたはノード自身の計器やセンサ(e.g. campus、odometer、速度センサetc)から得られる。このフィールドはネットワークホストがGPSを実装している場合のみ要求される。
Minimum Link Expiration Time(オプション)
このパケットがこれまで通ってきたリンクの最小有効期間。このフィールドはネットワークホストがGPSを実装している場合のみ要求される。

4.2. Join Reply Packet Header - Join Replyパケットのヘッダ

0 8 16 17 18
Type Count R F Reserved
Multicast Group IP Address
Previous Hop IP Address
Sequence Number
Sender IP Address[1]
Next Hop IP Address[1]
Route Expiration Time[1]



Sender IP Address[n]
Next Hop IP Address[n]
Route Expiration Time[n]
Type
02:ODMRP Join Reply
Count
(Sender IP Address、Next Hop IP Address)の組の数
R
確認要求フラグ。このフラグはactive acknowledgmentパケットを要求された際にセットする。
F
フォワーディンググループフラグ。このフラグはフォワーディンググループのノードによって転送された際にセットされる。
Reserved
Sent as 0:利用しない
Multicast Group IP Address
マルチキャストグループのIPアドレス
Previous Hop IP Address
このパケットを最後に処理したノードのIPアドレス
Sequence Number
パケットをユニークに識別するために、このパケットを最後に処理したノードが割り当てたシーケンスナンバー
Sender IP Address[1..n]
このマルチキャストグループの送信元のIPアドレス
Next Hop IP Address[1..n]
このパケットの次の宛先ノードのIPアドレス
Route Expiration Time[1..n](オプション)
このマルチキャストグループの最小経路有効時間。このフィールドはネットワークホストがGPSを実装している場合のみ要求される。

5. Operation - 処理

5.1. Forwarding Group Setup - フォワーディンググループのセットアップ

5.1.1. Originating a Join Query - Join Queryの生成

マルチキャスト送信元ノードが送信するテータを持ち、かつ経路を知らない場合、送信元ノードは”Join Query”パケットを送信する。Typeフィールドは必ず01にセットする。TTLはTIME_TO_LIV_VALUEにセットするが、ネットワークの規模に応じた値をとることを推奨する。Sequence Numberは重複を避けるため必ず大きな値をセットする。Hop Countは初期値を0とする。Source IP AddressとLast HopIP Addressフィールドには送信元ノードのIPアドレスをセットする。ネットワーク中のノードがGPSを実装している場合は、送信元ノード座標、移動速度、移動方向をJoin Queryにセットする。

位置情報と移動情報を利用する際には、MIN_LET(Link Expiration Time)フィールドにMAX_LET_VALUEをセットする。なぜなら送信元ノードは前ホップノード(Previous hop node)を1つも持たないためである。送信元ノードがマルチキャスト受信者からのJoin Replyを受け取ると、送信元ノードは全Join Replyパケットの中で最小のRET(Route Expiration Time)を選択する。こうして、最小RETが迫る(i.e. データ送信セッション中の経路の切断が迫る)前に、送信元ノードはJoin Queryの送信によって新しい経路を構築することができる。

※訳者注:以下でパケットフィールド名が「Last Hop」となっているものは「Previous Hop」と同義であるようです。

5.1.2. Processing a Join Query - Join Queryの処理

ノードがJoin Queryパケットを受け取った際の処理は以下である:
  1. (Source IP Address、Sequence Number)の組でメッセージキャッシュのエントリーを検索し、パケットが重複していないかどうか調べる。重複していればパケットを破棄し、処理を終了する。
  2. パケットが重複していなければ、メッセージキャッシュに受信したパケットの情報(i.e. Source IP AddressとSequence Number)をINSERTする。そしてルーティングテーブルにINSERT/UPDATEする(i.e. 後方のリンクを学習する)。
  3. ノードがマルチキャストグループのメンバならば、RET値をセットしたJoin Replyパケットを送信する(5.1.4参照)。
  4. Hop Countフィールドをインクリメントし、TTLフィールドをデクリメントする。
  5. TTLフィールドの値が0以下ならばパケットを破棄し、処理を終了する。
  6. TTLフィールドの値が0より大きければ、Last Hop IP Addressフィールドに自身のIPアドレスをセットしブロードキャストを行い、処理を終了する。

5.1.3. Processing a Join Query When GPS is Used
                    - GPSを利用した場合のJoin Queryの処理

ノードがJoin Queryパケットを受け取った際の処理は以下である:
  1. (Source IP Address、Sequence Number)の組でメッセージキャッシュのエントリーを検索し、パケットが重複していないかどうか調べる。重複していればパケットを破棄し、処理を終了する。
  2. パケットが重複していなければ、メッセージキャッシュに受信したパケットの情報(i.e. Source IP AddressとSequence Number)をINSERTする。そしてルーティングテーブルにINSERT/UPDATEする(i.e. 後方のリンクを学習する)。
  3. 3.7.1で定義した式を用いて自身と上流ノードが接続を維持する時間を予測する

    新しく得た D_{t} の値とJoin QueryのMIN_LETフィールドに示された値のうち、小さいほうをパケットにセットする。なぜなら、経路上の一つのリンクが切れれば、その経路全体が無効になるためである。ノードはまた、前ホップノードによって書かれた位置情報と移動情報フィールドを、自身の情報に上書きする。
  4. ノードがマルチキャストグループのメンバならば、経路の最後のリンクのLETを計算する。このLETとJoin Query中のMIN_LETのうちの小さいほうをRET(Route Expiration Time)とする。

    経路の選択の際、全ての利用可能な経路とそのRETを知るために、マルチキャスト受信者は最初のJoin Queryを受信してからしばらく待機する。それから受信者は最も安定した経路(i.e. 最も大きいRETを持つ経路)を選択し、そのRETを含めてJoin Replyを送信する(5.1.3参照)。
  5. Hop Countフィールドをインクリメントし、TTLフィールドをデクリメントする。
  6. TTLフィールドの値が0以下ならばパケットを破棄し、処理を終了する。
  7. TTLフィールドの値が0より大きければ、Last Hop IP Addressフィールドに自身のIPアドレスをセットしブロードキャストを行い、処理を終了する。

5.1.4. Originating a Join Reply - Join Replyの生成

マルチキャスト受信者はマルチキャスト経路の選択後に”Join Reply”パケットを送信する。マルチキャストグループの各Sender IP AddressとNext Hop IP AddressはJoin Replyパケットに格納される。ネットワークのホストがGPSを利用可能な場合は経路有効時間も含む。

5.1.5. Processing a Join Reply - Join Replyの処理

ノードがJoin Replyパケットを受け取った際の処理は以下である:
  1. ノードは受け取ったJoin ReplyのNext Hop IP Addressフィールドを調べる。自身のIPアドレスと一致するエントリが一つもなければ、何もせず処理を終了する。
  2. 一つ以上のエントリが自身のIPアドレスと一致すれば、FG_FLAGをセットして自身のJoin Replyを構築する。Next Hop IP Addressはルーティングテーブルから得られる。
  3. 隣接ノードにJoin Replyパケットをブロードキャストし、処理を終了する。

5.1.6. Processing a Join Reply When GPS is Used
                    - GPSを利用した場合のJoin Replyの処理

ノードがJoin Replyパケットを受け取った際の処理は以下である:
  1. ノードは受け取ったJoin ReplyのNext Hop IP Addressフィールドを調べる。自身のIPアドレスと一致するエントリが一つもなければ、何もせず処理を終了する。
  2. 一つ以上のエントリが自身のIPアドレスと一致すれば、FG_FLAGをセットして自身のJoin Replyを構築する。RETの異なる複数のJoin Replyを受け取った場合(i.e. そのノードが同一の送信元ノードと複数の受信者の間の経路に位置する場合)、それらのうちの最小のRETを選択し、選択したRETの値をセットする。Next Hop IP Addressはルーティングテーブルから得られる。
  3. 隣接ノードにJoin Replyパケットをブロードキャストする。
  4. ノードが送信元であれば、受信した全てのJoin Replyの中から最小のRETを選択する。こうして最小RETが迫る(i.e. データ送信セッション中の経路の切断が迫る)前に、送信元ノードはJoin Queryの送信によって新しい経路を構築することができる。

5.2. Handling a Multicast Data Packet - マルチキャストデータパケットの操作

マルチキャスト送信元は送信すべきパケットがある限りデータを送信する。ノードは、パケットが重複しておらず、そのマルチキャストグループに対するFG_FLAGが有効である場合のみデータパケットをリレーする。

6. Simulation and Implementation Status
                   - シミュレーションと実行結果

ODMRPはシミュレーションと実環境でのテストの両方を行った。シミュレーションに際して、PERSEC[1]で書かれたGloMoSim[19]ライブラリにてプロトコルを実行している。実環境での実行に際しては、Red Hat Linux version 5.2.で提供される Linux kernel version 2.0.36. でODMRPを開発した。開発に使用した全てのツールとソフトウェアパッケージは、Red Hat Linux version 5.2. のパッケージに特別に含まれたLucent WaveLan IEEE 802.11 デバイスドライバで提供されるソフトウェアバンドルから構築した。

シミュレーション結果と実環境での実行結果を記した論文は以下のウェブサイトからダウンロードできる。

http://www.cs.ucla.edu/NRL/wireless

7. Protocol Applicability - プロトコルの適応性

7.1. Networking Context - ネットワーク環境

ODMRPはモバイルアドホックネットワークに最もよく適応する。

7.2. Protocol Characteristics and Mechanisms - プロトコルの特徴とメカニズム

*本プロトコルは単方向リンクをサポートしますか?(そうであれば、どのようにですか?)
- いいえ。双方向リンクを過程します。
*本プロトコルはトンネリングの利用を要求しますか?(そうであれば、どのようにですか?)
- いいえ。
*本プロトコルはいくつかのソースルーティングの利用を要求しますか?(そうであれば、どのようにですか?)
- いいえ。
*本プロトコルは定期的なメッセージのやりとりの利用を要求しますか?(そうであれば、どのようにですか?)
- はい。しかしマルチキャスト送信元が送信すべきデータパケットを持っているときのみです。
*本プロトコルは信頼性のある、またはシーケンスなパケットの伝送の利用を要求しますか?(そうであれば、どのようにですか?)
- いいえ。
*本プロトコルではルータは複数のホストをサポートしますか?(そうであれば、どのようにですか?)
- いいえ。本稿では各モバイルホストがルータを兼備し、同一のIPアドレスを共有していることを想定しています。しかしながら1つのルータが複数のホストを操作するようにプロトコルを改良することは可能です。
*本プロトコルはIPアドレスアーキテクチャをサポートしますか?(そうであれば、どのようにですか?)
- はい。識別子としてホストのIPアドレスをメッセージに含みます。
*本プロトコルはリンクまたは隣接ノードのステータスのセンシングを要求しますか?(そうであれば、どのようにですか?)
- いいえ。。
*本プロトコルは中央ノードに依存しますか?(そうであれば、どのようにですか?)
- いいえ。
*本プロトコルはリアクティブ型ですか?(そうであれば、どのようにですか?)
- はい。例えば、送信元ノードは送信すべきデータパケットを持っているときにのみ経路とマルチキャスグループトメンバを生成し管理します。
*本プロトコルはプロアクティブ型ですか?(そうであれば、どのようにですか?)
- いいえ。
*本プロトコルはloop-freeなルーティングですか?(そうであれば、どのようにですか?)
- はい。メッセージキャッシュを利用することで重複パケットを検出し、パケットはloop-freeな経路のみを通過することができます。
*本プロトコルはスリープ処理を提供しますか?(そうであれば、どのようにですか?)
- 未定です。現在進行中です。
*本プロトコルはセキュアな仕組みを提供しますか?(そうであれば、どのようにですか?)
- 未定です。現在進行中です。
*本プロトコルはマルチチャンネル、リンクレイヤーをサポートしていますか?(そうであれば、どのようにですか?)
- 本ドキュメントでは任意の単一のリンクレイヤープロトコルを想定しています。ODMRPはどのようなMACプロトコル、リンクレイヤープロトコル上でも動作します。また、マルチチャンネル上でも動作します。(e.g. データチャンネルと制御パケットチャンネルの分離等)


翻訳中...


Acknowledgments - 謝辞

   Authors thank Ching-Chuan Chiang and Guangyu Pei for their initial
   contributions. We also send our gratitude to Sang Ho Bae who 
   implemented ODMRP in a real ad hoc network testbed.

Reference - 参考文献

   [1] P. Agrawal, D.K. Anvekar, and B. Narendran.   Optimal 
       Prioritization of Handovers in Mobile Cellular Networks.   In 
       Proceedings of IEEE PIMRC'94, The Hague, Netherlands, Sep. 1994,
       pp. 1393-1398.

   [2] R. Bagrodia, R. Meyer, M. Takai, Y. Chen, X. Zeng, J. Martin, 
       and H.Y. Song.   PARSEC: A Parallel Simulation Environment for 
       Complex Systems.   IEEE Computer, vol. 31, no. 10, Oct. 1998, 
       pp.77-85.

   [3] V. Bharghavan, A. Demers, S. Shenker, and L. Zhang.   MACAW: A 
       Media Access Protocol for Wireless LANs.   In Proceedings of ACM
       SIGCOMM'94, London, UK, Sep. 1994, pp. 212-225.

   [4] S. Bradner.  Key words for use in RFCs to Indicate
       Requirement Levels.  RFC 2119, March 1997.

   [5] E. Bommaiah, M. Liu, A. McAuley, and R. Talpade.   AMRoute: 
       Adhoc Multicast Routing Protocol.   Internet Draft,
       draft-talpade-manet-amroute-00.txt, Aug. 1998. Work in progress.

   [5] C.-C. Chiang, M. Gerla, and L. Zhang.  Forwarding Group 
       Multicast Protocol (FGMP) for Multihop, Mobile Wireless Networks.
       ACM/Baltzer Cluster Computing, vol. 1, no. 2, 1998.

   [6] M.S. Corson and S.G. Batsell.   A Reservation-Based Multicast
       (RBM) Routing Protocol for Mobile Networks: Initial Route
       Construction Phase.   ACM/Baltzer Wireless Networks, vol. 1,
       no. 4, Dec. 1999, pp. 427-450.

   [7] J.J. Garcia-Luna-Aceves and E.L. Madruga.   A Multicast Routing
       Protocol for Ad-Hoc Networks.   In Proceedings of IEEE 
       INFOCOM'99, New York, NY, Mar. 1999, pp. 784-792.

   [8] IEEE Computer Society LAN MAN Standards Committee.   Wireless
       LAN Medium Access Protocol (MAC) and Physical Layer (PHY)
       Specification. IEEE std 802.11-1997. The Institute of Electrical
       and Electronics Engineers, New York, NY, 1997.

   [9] L. Ji and M.S. Corson.   A Lightweight Adaptive Multicast
       Algorithm. In Proceedings of IEEE GLOBECOM'98, Sydney, 
       Australia, Nov. 1998, pp. 1036-1042.

  [10] J. Jubin and J.D. Tornow.   The DARPA Packet Radio Network 
       Protocols.   Proceedings of the IEEE, vol. 75, no. 1, Jan. 1987,
       pp. 21-32.

  [11] E.D. Kaplan (Editor).   Understanding the GPS: Principles and
       Applications, Artech House, Boston, MA, Feb. 1996.

  [12] L. Kleinrock and J. Silvester.   Optimum Transmission Radii for 
       Packet Radio Networks or Why Six is a Magic Number.   In 
       Proceedings of National Telecommunications Conference, 
       Birmingham, AL, Dec. 1978, pp. 4.3.2-4.3.5.

  [13] L. Kleinrock and F.A. Tobagi.   Packet Switching in Radio 
       Channels: Part I - Carrier Sense Multiple-Access Modes and Their
       Throughput-Delay Characteristics.   IEEE Transactions on 
       Communications, vol. COM-23, no. 12, Dec. 1975, pp. 1400-1416.

  [14] S.-J. Lee, M. Gerla, and C.-C. Chiang.   On-Demand Multicast
       Routing Protocol.   In Proceedings of IEEE WCNC'99, New Orleans,
       LA, Sep. 1999, pp. 1298-1302.

  [15] S.-J. Lee, W. Su, and M. Gerla.   Ad hoc Wireless Multicast with
       Mobility Prediction.   In Proceedings of IEEE ICCCN'99, Boston, 
       MA, Oct. 1999, pp. 4-9.

  [16] D.L. Mills.   Internet Time Synchronization: the Network Time 
       Protocol.   IEEE Transactions on Communications, vol. 39, no. 10,
       Oct. 1991, pp. 1482-1493.

  [17]  B. Narendran, P. Agrawal, and D.K. Anvekar.   Minimizing 
        Cellular Handover Failures Without Channel Utilization Loss. 
        In Proceedings of IEEE GLOBECOM'94, San Francisco, CA, 
        Dec. 1994, pp. 1679-1685.

  [18] C.-K. Toh.  Associativity-Based Routing for Ad-Hoc Mobile 
       Networks.   Wireless Personal Communications Journal, Special 
       Issue on Mobile Networking and Computing Systems, Kluwer 
       Academic Publishers, vol. 4, no. 2, Mar. 1997, pp. 103-139.

  [19] UCLA Parallel Computing Laboratory and Wireless Adaptive Mobility
       Laboratory.   GloMoSim: A Scalable Simulation Environment for 
       Wireless and Wired Network Systems. 
       http://pcl.cs.ucla.edu/projects/domains/glomosim.html

  [20] UCLA Wireless Adaptive Mobility (WAM) Laboratory.
       http://www.cs.ucla.edu/NRL/wireless

Chair's Address

   The Working Group can be contacted via its current chairs:

        M. Scott Corson
        Institute for Systems Research
        University of Maryland
        College Park, MD  20742
        USA

        Phone:  +1 301 405-6630
        Email:  corson@isr.umd.edu


        Joseph Macker
        Information Technology Division
        Naval Research Laboratory
        Washington, DC  20375
        USA

        Phone:  +1 202 767-2001
        Email:  macker@itd.nrl.navy.mil

Authors' Addresses

   Questions about this document can also be directed to the authors:

        Sung-Ju Lee
        3771 Boelter Hall
        Computer Science Department
        University of California
        Los Angeles, CA  90095-1596
        USA

        Phone:  +1 310 206-8589
        Fax:    +1 310 825-7578
        Email:  sjlee@cs.ucla.edu


        William Su
        3771 Boelter Hall
        Computer Science Department
        University of California
        Los Angeles, CA  90095-1596
        USA

        Phone:  +1 310 206-8589
        Fax:    +1 310 825-7578
        Email:  wsu@cs.ucla.edu


        Mario Gerla
        3732F Boelter Hall
        Computer Science Department
        University of California
        Los Angeles, CA  90095-1596
        USA

        Phone:  +1 310 825-4367
        Fax:    +1 310 825-7578
        Email:  gerla@cs.ucla.edu