JP2011171973A - 経路計算装置 - Google Patents

経路計算装置 Download PDF

Info

Publication number
JP2011171973A
JP2011171973A JP2010033463A JP2010033463A JP2011171973A JP 2011171973 A JP2011171973 A JP 2011171973A JP 2010033463 A JP2010033463 A JP 2010033463A JP 2010033463 A JP2010033463 A JP 2010033463A JP 2011171973 A JP2011171973 A JP 2011171973A
Authority
JP
Japan
Prior art keywords
value
metric
node
metric value
change
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010033463A
Other languages
English (en)
Inventor
Takuya Yoshihiro
卓哉 吉廣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wakayama University
Original Assignee
Wakayama University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wakayama University filed Critical Wakayama University
Priority to JP2010033463A priority Critical patent/JP2011171973A/ja
Publication of JP2011171973A publication Critical patent/JP2011171973A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】ノード間のメトリック値が急変した場合に、パケットのループが発生することがある。
【解決手段】ノード間のメトリック値がAn−1からAと変化した場合において、その変化量が、所定の範囲内にあるかどうかを判断し、判断の結果、範囲外となればメトリック値An−1を用いて変化量が削減された修正値を算出する。そして、この修正値をメトリック値として確定する。
【選択図】図6

Description

通信ネットワーク技術に関し、特にルーティング(経路制御)の評価尺度となるメトリック値を更新する技術に関する。
メトリック値は、ルーティングの評価尺度となる値である(非特許文献1参照)。
メトリック値を求める仕組みは種々提案されており、例えば、ETX(Expected Transmission Count)では、あるふたつのノードの間でひとつをパケットを送信する場合に、再送も含めた平均パケット送信回数をリンクのメトリック値とするものである(非特許文献2参照)。
また、ルーティングプロトコルとしてOLSR(Optimized Link State Routing)が知られている(非特許文献3参照)。
「アドホック・メッシュネットワーク」、間瀬憲一,阪田史郎、コロナ社、2007年、P33-38,P157-161」 「A High-Throughput Path Metric for Multi-Hop Wireless Routing」、D. De Couto, D. Aguayo, J. Bicket and R. Morris、MOBICOM 2003 「Optimized Link State Routing Protocol (RFC 3626)」、IETF RFC3626、[平成22年2月10日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc3626.txt
ところで、実際のネットワークにおいては、回線状況の変化などの原因によりメトリック値が変化することがある。
例えば、図11に示すように、3つのノードA,B,Cから構成されるネットワークを考える(図11(a))。
図11(a)のネットワークでは、ノードA,BからそれぞれノードCへ至る最短の経路は、A→CまたはB→A→Cである。
ここで、ノードA−C間におけるメトリック値が4から12へと変化したとする。
仮に、ノードA,Bそれぞれのトポロジーテーブルにおいて、この変化に対応する更新が同期していれば適切なルーティングを行うことができる(図11(b))。
もっとも現実には、変更後のメトリック値を送るためのリンク情報(OLSRではTCメッセージ)は一定時間間隔(OLSRにおけるデフォルト値は5秒間隔)ごとに隣接ノードに伝えられることで全体に拡がっていくものである。
このため、トポロジーテーブルの更新タイミングはノード間でずれ、変更前のメトリックを用いて計算されたルーティングテーブルを有するノードと変更後のメトリックを用いたテーブルを有するノードとが混在してしまうことがある。
図11(c)の例は、ノードAはトポロジーテーブルの更新を完了しているのに、ノードBは未更新である場合である。
この場合、ノードAにおけるトポロジーテーブルによると、宛先のノードCに至るためのメトリック値の総和は、A→Cの経路ならば12であり、A→B→Cの経路ならば9(=1+8)である。このため、ノードAは、A→B→Cの経路が最短経路と決定し、ルーティングテーブル100aの宛先ノードCに対応する次ホップのレコードをノードBに更新する。
これに対して、ノードBにおけるトポロジーテーブルにおいては、ノードA−C間のメトリック値は4と古い値のままである。このため、宛先のノードCに至るためのメトリック値の総和は、B→Cの経路ならば8であり、B→A→Cの経路ならば5(=1+4)となる。従ってノードBは、ルーティングテーブル100bの宛先ノードCに対応する次ホップのレコードをノードAに更新する。
このようなルーティングテーブル100a,100bが存在する状況下において、宛先をノードCとするパケットがノードAまたはノードBに到着すると、ノードA側ではノードBへとこのパケットを転送する一方で、ノードB側ではノードAへとこのパケットを転送する。従ってノードA−B間において延々とパケットの転送が繰り返されてしまうこととなる。
このようなパケットのループは、ノードA−B間の輻輳や、これに伴う通信障害を引き起こし得るため問題である。
このような事態を回避するために、TCメッセージの送信間隔を極めて小さくしてトポロジーテーブルの更新を頻繁にする手立ても考えられるが、頻繁にすることはTCメッセージのオーバーヘッド増加につながるので一定の制約があり、望ましい解決方法とは言い難い。
また、パケットのループを検出して、ループパケットを破棄する方法も考えられる。この場合にはループに伴う輻輳、及びこれに伴う通信性能の低下を防ぐことができるが、ループしたパケットは宛先に到達できないため、この間はユーザは通信ができない状態になるため、根本的な解決にはなっていない。
なお、このようにトポロジーテーブルの内容がノード間で異なることに起因してパケットのループが発生する問題は、OLSRに限らず各種ルーティングプロトコルにおいて同様に生じ得る問題である。
本発明はこのような問題に鑑みてなされたものであって、ノード間のメトリック値が変化した場合において、簡易な方法でパケットのループを低減できる経路計算装置を提供することを目的とする。
本発明に係る経路計算装置は、ネットワークを構成するノードであり、送信元ノードから送信先ノードへと至るメトリック値を計算して当該メトリック値が最小となる経路の設定に用いるトポロジーテーブルに用いるメトリック値を更新するための経路計算装置であって、隣接ノードと、各隣接ノードへのメトリック値とを示すネイバーテーブルを記憶する記憶手段と、隣接ノードへのメトリック値(A)を新たに取得する取得手段と、前記取得手段により新たに取得された値(A)の、前記ネイバーテーブルに記憶された対応するメトリック値(An−1)に対する変化量が、所定値の範囲内か判断する判断手段と、前記判断手段により前記変化量が所定値の範囲内と判断されると、前記新たに取得したメトリック値(A)に基づいて、対応するネイバーテーブルのメトリック値を更新し、前記判断手段により前記変化量が所定値の範囲内ではないと判断されると、前記新たに取得したメトリック値(A)には基づかずに、前記ネイバーテーブルに記憶された対応するメトリック値(An−1)を用いて算出した修正値であって、前記変化量がより少なくなる修正値に基づいて、対応するネイバーテーブルのメトリック値を更新する更新手段とを備えることを特徴とするとしている。
この構成によれば、変化量が所定値の範囲内ではない場合には、新たに取得したメトリック値ではなく、変化量がより少なくなる修正値に基づいてメトリック値を更新するので、メトリック値の急変を抑えることができる。
このため、最新のメトリックに基づいて計算されたルーティングテーブルと古いメトリックに基づいて計算されたルーティングテーブルの間の矛盾が発生する可能性を低減することができ、これによりパケットのループが発生する可能性を低減することができる。
ネットワークの概略図 ノード2aの機能ブロック図 各ノード2a〜2fの動作のあらましを説明するフローチャート ネイバーテーブル更新処理の詳細を示すフローチャート トポロジーテーブル更新処理の詳細を示すフローチャート あるネットワークにおけるメトリック値を示す図 メトリック値の変化を示すグラフを示す図 理論的解析で用いる式を示す図 理論的解析で用いる式を示す図 経路ループの発生を説明するための図 メトリック値が変化したときのルーティングを説明する図
以下、図面に基づいて実施の形態について説明する。
<構成>
図1は、ネットワークの概略図である。
図1に示すように、ネットワーク1は、モバイルアドホックネットワーク(MANET:mobile ad hoc network)と呼ばれるタイプであり、6つのノード2a〜2fを含む。各ノード2a〜2fは、OLSR(Optimized Link State Routing)のルーティングプロトコルに従って動作し、ネットワーク1を自律的に構成している。
以下では、ノード2aをノードAというように、ノード2a〜2fを、それぞれノードA〜Fと呼ぶことがある。
なお、OLSRにおいては、ルーティングに必要な情報の伝搬(フラッディング)を効率良くするために、全ノードの中からMPR(Multi-Point Relay)と呼ばれるノードを選択するのであるが、本実施の形態の重要部分ではないので、MPRノードの選択方法などについては説明を省略する。
図2は、ノード2aの機能ブロック図である。なお、ノード2b〜2fもノード2aと同様の構成を備えるため説明を省略する。
ノード2aは、アンテナ10、送受信制御部12、メッセージ処理部14、メトリック値算出部15、ネイバー更新部16、ネイバーテーブル24、トポロジー更新部26、トポロジーテーブル28、ルーティング更新部30、ルーティングテーブル32および送信先決定部34を備える。
アンテナ10は、無指向性のオムニアンテナである。
送受信制御部12は、例えば通信モジュールなどから構成され、アンテナ10を介してデータを送受信する。
メッセージ処理部14は、OLSRで規定されたHello、TC(Topology Control)、MID(Multiple Interface Decraration)、HNA(Host and Network Association)の4種類のメッセージに関する処理を行う。メッセージに関する処理は、各種メッセージを生成して、生成したメッセージを送受信制御部12を介して送信する処理や、送受信制御部12が他のノードから受信した各種メッセージに応じた処理を含む。メッセージ処理部14としては、例えば、ROMに格納されたプログラムとこのプログラムを実行するCPUにより構成される。
メッセージ処理部14は、Helloメッセージを定期的に(例えば、OLSRにおけるデフォルト値である2秒間隔で)ブロードキャストする。
このHelloメッセージには、自身のアドレス、シーケンス番号などの情報が含まれる。
また、メッセージ処理部14は、定期的に(例えば、OLSRにおけるデフォルト値である5秒間隔で)TCメッセージを生成し、隣接ノード2b,2cに送信する。
TCメッセージには、自身のアドレス、シーケンス番号、自身のMPRセレクタのアドレスなどが含まれる。本実施の形態では、OLSRを拡張して、自身のノードと隣接ノードとの間のメトリック値を示す情報をTCメッセージに追加する。
TCメッセージを受信した隣接ノード2b,2cも、受信したTCメッセージをノード2d,2e,2fへと転送する。
このように、ノード2aのメッセージ処理部14が生成・送信したTCメッセージの内容は、ノード2b,2cを経てから、ノード2d,2e,2fへと到達するため、特にノード2d,2e,2fにおける到達時間は生成時間に対して遅延する。そして、この遅延がノード間でのトポロジーテーブルの内容の不一致へとつながることとなる。
なお、メッセージ処理部14が処理をするMIDメッセージは、複数のインターフェイスを有する場合に使用される。また、HNAメッセージはノードがゲートウェイとして機能するときに使用される。
メトリック値算出部15は、メッセージ処理部14が処理をするHelloメッセージに含まれるリンク品質情報と、他のノードから受信したHelloメッセージの受信履歴とを用いることによりETX(ひとつのパケットを送信する場合に、再送も含めた平均パケット送信回数を表す。)と呼ばれるメトリック値を算出する。
このETXの算出の方法は、上述非特許文献2などに掲載されたETX(Expected Transmission Count)の一般的手法を利用できるため、詳細な説明を省略する。
なお、メトリック値算出部15は、例えば、ROMに格納されたプログラムとこのプログラムを実行するCPUにより構成される。
ネイバー更新部16は、取得部18、判断部20および算出部22を備える。ネイバー更新部16は、例えば、ROMに格納されたプログラムとこのプログラムを実行するCPUにより構成される。
取得部18は、メトリック値算出部15とネイバーテーブル24からメトリック値を取得する。
判断部20は取得されたメトリック値を用いて比較を行ってその結果を出力する。
算出部22は、判断部20が出力する結果に応じてメトリック値を算出する。
ネイバーテーブル24は、例えばRAMから構成される。データ構造としては、「隣接ノード」24aと隣接ノードまでの「メトリック値」24bとから構成される。
隣接ノードとは自ノードから1ホップで通信可能なノードである。図2の例では、隣接ノードCに対応するメトリック値は4となっている。
トポロジー更新部26は、送受信制御部12が受信した他のノードが生成したTCメッセージなどに基づいて、ネットワーク全体の構造を示すトポロジーテーブル28を更新する。トポロジー更新部26は、例えばROMに格納されたプログラムとこのプログラムを実行するCPUにより構成される。
ルーティング更新部30は、トポロジーテーブル28を参照して、ダイクストラ(Dijkstra)アルゴリズム等を用いて宛先ノードに至るための最短経路を算出し、宛先ノードと最短経路上の次ホップとを対応付けたデータをルーティングテーブル32に記憶させる。なお、ルーティング更新部30は、例えばROMに格納されたプログラムとこのプログラムを実行するCPUにより構成される。
ルーティングテーブル32は、例えばRAMにより構成され、「宛先ノード」32aと宛先ノードへの経路上にある次のノードである「次ホップ」32bとのデータ構造を含む。図2の例では、宛先ノードBに対応する次ホップはノードBとなっている。
送信先決定部34は、送受信制御部12が受信したパケットのヘッダーに記述された宛先のノードを、ルーティングテーブル32の「宛先ノード」32aと照らし合わせて、ルーティングテーブル32上の「宛先ノード」32aに対応する「次ホップ」32bのノードを送信先として決定する。
<動作>
図3は、実施の形態に係る各ノード2aの動作のあらましを説明するフローチャートである。
動作のあらましは、主にネイバー更新部16が行うネイバーテーブル更新処理(S11)と、主にトポロジー更新部26が行うトポロジーテーブル更新処理(S12)である。このフローチャートでは、説明の便宜上、ネイバーテーブル更新処理の後でトポロジーテーブル更新処理を行う順番としているが、実際には両処理は別個に実行される。すなわち、ネイバーテーブル更新処理(S11)は、Helloメッセージの送信間隔である2秒ごとに実行され(図4:S21)、トポロジーテーブル更新処理(S12)は、TCメッセージを受信するごとに実行される(図5:S41)。
図4は、ネイバーテーブル更新処理の詳細を示すフローチャートである。
まずは、隣接ノードに至るためのメトリック値Aを算出する(S23)。
ステップS23の具体例として、ノードAがノードBに対応するETX(メトリック値)を算出する場合について説明する。上述のように、ノードAのメトリック値算出部15は、Helloメッセージの受信履歴に基づいて、ノードBから送信されてきたはずの最近10回分のHelloメッセージのうち何回受信に成功したかの割合(「r」とする。)を求める。上述のようにHelloメッセージの送信間隔は2秒と決まっているので、受信履歴と送信間隔を照らし合わせることで、受信するはずのHelloメッセージが受信できなかった(受信に失敗した)ことが把握できる。
また同様に、ノードB側でも、ノードAから送信されてきた最近10回分のHelloメッセージのうち何回受信したかの割合(「r」とする。)を算出する。
そして、ノードAのメトリック値算出部15は、ノードBから割合「r」を受信すると、「r」と「r」とを掛け合わせた逆数(1/r*r)をノードBに対応するメトリック値Aとして算出する。
続いて、取得部18はメトリック値算出部15により計測されたメトリック値Aと、ネイバーテーブル24中のメトリック値Aの隣接ノードに対応する隣接ノードのメトリック値An−1(「An−1」は前回更新されたメトリック値である。)とを取得する(S24)。
そして、判断部20は、取得されたメトリック値Aが、
n−1/r≦A≦An−1×r・・・(式2)
の範囲内にあるかどうか判断する。以下の例ではr=1.1として説明する。なお、係数のr(>1)は1に近いほどメトリック値の変化を抑制することができるのであるが詳細は後述する。
範囲内にあれば(S25:Yes)、そのままメトリック値Aを更新すべきメトリック値として確定する(S26)。
範囲内になく、AがAn−1/rより小さくなっていれば(S25:No,A<An−1/r)、算出部22はAn−1/rを更新すべきメトリック値として確定する(S27)。この条件を満たすのは、メトリック値が急減したときである。
範囲内になく、An−1×rよりAが大きくなっていれば、(S25:No,An−1×r<A)、算出部22はAn−1×rを更新すべきメトリック値として確定する(S28)。この条件を満たすのは、メトリック値が急増したときである。
例えば、隣接ノードがノードCとすると、前回更新されたメトリック値はAn−1=4(図2参照)である。そして、メトリック値が急増して、計測されたメトリック値Aが12になったとすると、An−1×r=4*1.1=4.4と12を下回るので、この算出部22はAn−1×r(=4.4)に確定する。
そして、ネイバー更新部16は確定されたメトリック値(以下、ステップS26〜S28のいずれかにより確定された値を「確定値」と呼ぶことがある。)を用いて、ネイバーテーブル24の対応するレコードを更新する(S29)。
例えば、上のノードCの例では、確定値が4.4なので、ノードCに対応する「メトリック値」24bのレコードを4から4.4へと更新する。
続いて、TCメッセージを送信する間隔が到来すれば、メッセージ処理部14はネイバーテーブル24に記述されたメトリック値を含むTCメッセージを作成して送信する(S30)。
このようなネイバーテーブル更新処理(S11)を終えると、トポロジーテーブル更新処理(S12)に移行する。
図5は、トポロジーテーブル更新処理の詳細を示すフローチャートである。
トポロジーテーブル更新処理では、送受信制御部12が他のノードからTCメッセージを受信すると(S41:Yes)、トポロジー更新部26は、受信したTCメッセージに含まれるメトリック値が、トポロジーテーブル28の値から変更されていれば、TCメッセージに含まれるメトリック値により更新する(S42)。
トポロジーテーブル28の更新があれば、ルーティング更新部30は、更新されたトポロジーテーブル28に基づいて宛先ノードへの最短経路を算出して、最短経路に変更があれば、ルーティングテーブル32を更新する(S43)。
以上説明したように、本実施の形態によれば、ネイバーテーブル24に記述された前回の値An−1に対して、メトリック値が急変(急増・急減)した場合には、メトリック値算出部15により実際に計測された値Aを更新に用いる代わりに、前回の値An−1に係数rを積算した値もしくは前回の値An−1を係数rで除算した値を更新に用いる。
このため、トポロジーテーブル28を最新のメトリック値に更新済みのノードと未更新なノードとが混在したとしても、新しいメトリックにより計算されたルーティングテーブルと古いメトリックにより計算されたルーティングテーブル一貫性が失われ、その結果一部のパケットがループして宛先に到達できなくなる可能性を低減できる。
すなわち、メトリック値の急変がもたらすルーティングテーブルの一貫性が喪失する可能性を低減し、もってパケットのループの防止に貢献することができる。
例えば、図6に示すように、図11と同様メトリック値が4から12へと急増した場合を考えると、メトリック値算出部15が計測したメトリック値12(=A)は、前回のメトリック値4(=An−1)に対して急増している(S25:No,An−1×r<A)。このとき、算出部22により修正された値4.4(=4×1.1)が確定値となる(S28)。
この場合、ノードAにおけるトポロジーテーブルによると、宛先ノードCに至るためのメトリック値の総和は、A→Cの経路ならば4.4であり、A→B→Cの経路ならば9(=1+8)である。このため、ノードAはノードCへの最短経路上にある次ホップはノードBと決定する。
これに対して、ノードBにおけるトポロジーテーブルはノードA−C間におけるメトリック値は古い値の4のままであるが、4.4と大差ない。そして、ノードCに至るためのメトリック値の総和は、B→Cの経路ならば8であり、B→A→Cの経路ならば5(=1+4)となる。このため、ノードBはノードCへの最短経路上にある次ホップはノードCと決定する。
従って、ノードCを宛先とするパケットを受信した場合には、ノードAはノードCへとこのパケットを転送し、ノードBもノードCへとこのパケットを転送することとなるので、図11のようにノードAとノードBのルーティングテーブルの一貫性が失われ、パケットがループすることを回避することができる。
<具体例>
図7を用いてメトリック値が変化する具体例について説明する。
(1)急増
図7(a)の例は、メトリック値が4から12へと急増する場合(An-1×r<Anとなる場合)である。
急増直後(t1)におけるメトリック値算出部15の計測値は12となるが、12>4.4(=4×1.1)となるので、確定値は4.4となる。
そして、次の更新タイミング(t2)におけるメトリック値算出部15の計測値は12となるが、12>4.8[=4×(1.1^2)]となるので、確定値は4.8となる。
さらに、次の更新タイミング(t3)におけるメトリック値算出部15の計測値は12となるが、12>5.3[=4×(1.1^3)]となるので、確定値は5.3となる。
このようにネイバーテーブルの更新タイミング(S21)が到来するたびに、確定値を徐々に実測値へと近づけることができ、パケットのループを回避しつつ、効率的な経路選択をも実現できる。
(2)急減
図7(b)の例は、メトリック値が12から4へと急減する場合(An<An-1/rとなる場合)である。
急減直後(t1)におけるメトリック値算出部15の計測値は4となるが、4<10.9(=12/1.1)となるので、確定値は10.9となる。
そして、次の更新タイミング(t2)におけるメトリック値算出部15の計測値は4となるが、12>9.9[=12/(1.1^2)]となるので、確定値は9.9となる。
さらに、次の更新タイミング(t3)におけるメトリック値算出部15の計測値は4となるが、12>9.0[=12/(1.1^3)]となるので、確定値は9.0となる。
このように急減の場合も急増の場合と同様、確定値を徐々に実測値へと近づけることができる。
(3)緩やかに変化
図7(c)の例は、メトリック値が緩やかに変化する場合(An-1/r≦An≦An-1×rとなる場合)である。
最初の更新タイミング(t1)におけるメトリック値算出部15の計測値は3.9となり、4/1.1≦3.9≦4×1.1という関係なので、実測値3.9がそのまま確定値となる。
そして、次の更新タイミング(t2)におけるメトリック値算出部15の計測値は4.1となるが、3.9/1.1≦4.1≦3.9×1.1という関係なので、実測値4.1がそのまま確定値となる。
このように、メトリック値が緩やかに変化する場合には、それに合わせて確定値を追随させることができる。
(4)一瞬急増
図7(d)の例は、メトリック値が一瞬だけ急増して元の値に戻る場合である。
急増直後(t1)におけるメトリック値算出部15の計測値は12となるが、12>4.4(=4×1.1)となるので、確定値は4.4となる。
そして、次の更新タイミング(t2)におけるメトリック値算出部15の計測値は4となるが、4.4/1.1≦4≦4.4×1.1という関係なので、実測値4がそのまま確定値となる。
このように、ノード間の空間で障害物が通り過ぎるなどの理由でメトリック値が一瞬だけ急増するような場合には、メトリック値の変化を抑制することができ、拙速なルーティングの変更を回避できる。
<補足>
(1)rの決め方
実施の形態では、r=1.1として説明したが、rの値はこれに限られない。
パケットのループ防止という側面からは、rの値はより1に近いほどメトリック値の変更を抑えられるので好ましい。もっとも、rの値が1に近づくほど、実際のメトリック値への追随が遅れる結果となり、ネットワークにおけるスループットが悪化するという側面がある。
rの値は、この両方の側面のバランスを考慮して決定することができ、具体的には、ネットワークを構成するノードの数、ネットワークの安定性、パケットループの発生をどの程度許容するかなどの要素に基づいて決定することができる。
例えば、それぞれ無線通信を行う50個のノードを1200メートルx1200メートルのフィールドにランダム配置し、24時間OLSR上で本手法を動作させ、メトリック値をランダムに変更するシミュレーション実験を行ったところ、rを1.5 , 1.2 , 1.10 , 1.08としたときには、それぞれ100回の反復実験を行った中で、100回、60回、1回、0回の実験においてパケットループの可能性があった。
(2)判断方法、算出方法
実施の形態においては、変化量rを用いて、メトリック値が急変しないよう調整する例について説明したが、実施の形態のステップS25の式に限らず、急変を抑えることができるようなやり方であれば種々の手法が考えられる。
例えば、本実施の形態で説明した変化量rは、メトリック値が増加する場合と減少する場合で異なる値になっても良い。あるいは実行するノードによって異なる値を用いても良いし、ネットワーク上のノードの一部のみがこの方法を用いてメトリックを修正しても良い。
さらには、ネットワーク上の、特定の条件を満たす一部のリンクに対してのみ、この変化量rを用いてメトリック値を修正しても良く、またリンクによってrなどのメトリック修正に適用するパラメータを個別に設定しても良い。
また、以前にメトリックを広告してからの経過時間やネットワークの状況によって動的にrなどのパラメータを変動させても良い。
また、実施の形態では、新たなメトリックの取り得る範囲は直近のメトリックのみに依存することになっているが、本発明の原理は一定時間内のメトリックの変化を一定の範囲内に制限することであるので、過去の複数のメトリックに依存して変化量rや新たなメトリック決定されてもよい。例えば、メトリックが増加する場合に、過去10回のメトリックの最小値を求め、その値にrを乗じた値を新たなメトリックの上限としてもよい。
さらに、実施の形態では、メトリック値算出時(S23)にメトリックを修正する形態となっているが、ルーティングテーブルの更新(S43)において修正しても良い。すなわち、TCメッセージにより受信したメトリック値が以前に受信したメトリック値と異なる場合には、ルーティングテーブルを更新するタイミングで、TCメッセージを受信してからの経過時間等に応じて各リンクに対するrを定め、このrに基づいて修正された各リンクのメトリックを用いてルーティングテーブルを計算しても良い。すなわちこの場合には、一定時間後に再びルーティングテーブルを計算し直すことで、徐々にTCメッセージに記載されていたメトリック値に近い値を用いてルーティングテーブルの計算ができる。
(3)メトリック値
実施の形態では、メトリック値を算出する計算方法の一例としてETXを挙げて説明したが、メトリック値を算出する計算方法はこれに限らず一般的な手法を用いることができる。
例えば、例えば、ETT(Expected Transmission Time)や、ETTを応用したWCETT(Weighted Cumulative ETT)など、他のいかなるメトリック値の計算方法を用いてもよい。また、各ノードの移動速度や、各ノードを構成する無線端末のスペック(CPUの処理能力やバッテリ残量)などの測定可能な値からメトリック値を求めても良い。
さらには、上に挙げたメトリック値の計算方法を組み合わせるとしてもよい。
また、メトリック値をノード間で交換のやり方については、実施の形態で説明した形態に限らず、他の一般的な手法を採っても構わない。
(4)ネットワーク
実施の形態においては、モバイルアドホックネットワークを例に挙げて説明したが、ネットワークのタイプとしてはこれに限らず、各種無線ネットワーク、有線ネットワーク、センサーネットワーク、その他経路制御を必要とする種々のネットワークに適用可能である。
もっとも、モバイルアドホックネットワークなどの無線ネットワークは、ネットワーク構成が頻繁に変化する傾向であるので本実施の形態を適用することが特に好適である。
(5)ルーティングプロトコル
実施の形態では、ルーティングプロトコルの例としてOLSRを例に挙げて説明したが、ルーティングプロトコルはこれに限られない。
例えば、OSPF(Open Shortest Path First)を用いてもよい。
OSPFの場合は、メトリック値を示すリンク状態情報であるLSA(Link State Advertisement)をノード間でやりとりすることとなるが、このLSAがすべてのノードに拡がるまで一定の時間を要し、ノード間のトポロジーテーブル(OSPFでは、このトポロジーテーブルをLSDB(Link State Database)とも呼ぶ。)の内容に食い違いが生じる可能性がある。このため、本実施の形態を適用し得る。
その他、OLSRv2,TBRPF(Topology Broadcast Based on Reverse-Path Forwarding),IS−IS(Intermediate System-to-Intermediate System)など、いかなるリンク状態型ルーティングプロトコル(つまり、ネットワーク上のトポロジ情報をノード内に持ち、そのトポロジ情報から通信経路を計算するルーティングプロトコル)にも適用可能である。
(6)上述の実施の形態で示した動作、処理(図4〜図5)を、経路計算装置としてのノード2a〜2fのプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路を介して流通させ頒布することもできる。
このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM等がある。
流通、頒布された制御プログラムは、プロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより実施の形態で示したような各種機能が実現されるようになる。
<解析>
以下、実施の形態で説明したメトリック値に変更に関する理論的解析について説明する。
1.1 緒定義
以下で扱うネットワークをG={N,L}で表す。Nはノードの集合、Lはリンクの集合である。ノードn1,n2∈Nに対して、(n1,n2)∈Lであれば、n1とn2とは「隣接している」と言う。また、隣接するノードの列p=(n1,n2,...,nm)((nk,nk+1)∈L,k=1,2,...,m-1)を、「経路」と言う。
リンクl(エル)=(n1,n2)の時刻tにおけるメトリックをml,tで表す。経路pの時刻tにおけるメトリックは、pに含まれる全てのリンクの時刻tのメトリックの和であり、δt(P)=Σl∈pml,tで表す。ノードs,d∈Nに対して、δt(p)が最小となるsからdへの経路pを時刻tにおけるs,d間の「最短路」と呼ぶ。時刻tの宛先dに対する最短路に含まれる全ての有向リンクから成るグラフをdへの最短路グラフと呼び、Dt(d)で表す。また、2つのグラフG=(V,E),H=(V,F)に対して、グラフの合成をG∪H=(V,E∪F)で定義する。
1.2メトリック変更が一度しか発生しない場合
1.2では、メトリックが特定の変化割合を守って推移する時の経路ループ発生条件を明らかにする。時刻tにおけるリンクlのメトリックml,tは(図8:式1)を満たす範囲の値をとる。これは、メトリック値の単位時間あたりの変動割合をr-1からrまでの間で自由に変動させて良いことを意味する。
このようなメトリック変動によりループが発生する条件を調べる。まずはメトリックの変更が一度しか発生しない場合を考える。つまり時刻0には全てのノードが他の全てのノードの時刻0のメトリックに基づいて計算された経路表を用いており、時刻tに一度だけ各ノードがメトリックを変更する場合である。
このときには、メトリックの伝搬遅延により各ノードの経路再計算のタイミングのずれが発生するため、ループが発生し得る。いま、時刻0のメトリックを用いて計算された経路表が用いられているとする。次に全ノードが時刻tのメトリックを計算し広告する。このメトリックが各ノードに到達するタイミングにはずれが生じる。このため、ネットワーク上には一時的に、時刻0のメトリックと時刻tのメトリックの両方から計算された経路表が混在することになる。この混在時に経路ループが発生しないための十分条件を次に示す。
命題1:経路ループが発生しないための十分条件は、D=D0(d)∪Dt(d)が閉路を持たないことである。
ここで、ループの形成場面について考える。図10は一般的なループ形成の場面を描いた図であり、時刻0とtの宛先dへの最短路によりループが形成された状態である。ループが存在する場合には、ループ中から、D0(d)に属するリンクの始点となり、かつDt(d)に属するリンクの終点となるようなノードn1を選択できる。n1を始点として、ループをD0(d)に属する経路とDt(d)に属する経路が交互に表れるように経路の列p'1,p'2,...,p'2mに分割する。ただし、p'2k-1とp'2k(0<k≦m)はそれぞれD0(d)とDt(d)に属するリンクにより構成される。経路p'2k-1とp'2kの始点をそれぞれn2k-1およびn2kとおく。n2kからdへの時刻0の最短路をp2kとし、n2k-1からdへの時刻tの最短路をp2k-1とする。ここで、次の定理が成立する。
定理1:全てのリンクl∈Eに対して、メトリック値がml,t-t'r-t≦ml,t≦ml,t-t'rtを満たすとき、図8の(式2)はD=D0(d)、Dt(d)が閉路を含まないためのrの十分条件の一つを示す。
ただし、(式2)のKは図8の(式3)により示される。
Proof:時刻0における最短路と時刻tにおける最短路が閉路を形成したとして、そのようなループを一つ考える。この時、各リンクの時刻0と時刻tにおけるメトリックはml,0r-t≦ml,t≦ml,0rtを満たす範囲の値をとる。
しかし考えてみると、図10のループが発生するのは、n1,n2,...,n2mの全てのノードにおいて、時刻0からtの間に最短路が切り替わった時である。つまり、整数k(1≦k≦m)としてp2k-1及びp'2kに含まれる任意のリンクlについてδt(l)=r-tδ0(l)が成り立ち、逆にp2k及びp'2k-1に含まれる任意のリンクlについδt(l')=rtδ0(l')が成り立つ場合に、最も宛先dへの最短路の切り替えが発生しやすい。
つまりは、この場合に経路ループが発生しないならば、各リンクが許容範囲内でどのようなメトリック値をとろうとも、経路ループは発生しない。よって、以後この最悪の場合のみについて解析する。
時刻0において、ノードn2k-1における最短路の条件より、図8の(式4)(式5)の2式が成り立つ。
また、n2kからの最短路の条件より、図8の(式6)(式7)の2式が成り立つ。
(式5)(式6)よりp2k-1とp2kを消去すると、それぞれ、図9の(式8)(式9)となる。
(式8)とδ0(p'2k)>r2tδ0(p'2k)より、図9の(式10)となる。
k=1,2,...,mに関して(式9)(式10)を足して整理すると、図9の(式11)となる。
この(式11)が経路ループが発生する必要条件であることから、経路ループが発生しない十分条件は図9の(式12)で表わされる。
(式12)について、r,K>1より、図9の(式13)が得られる。
1.3メトリック変更が一定時間間隔で発生する場合
上記の結果を、一般的なルーティングプロトコルの挙動に当てはまるように拡張する。OLSRなどのリンク状態型ルーティングプロトコルにおいてメトリックを利用する場合には、ノードは一定時間毎に最新のメトリックを計算し、この値をリンク情報広告メッセージに含めて広告する。リンク情報広告メッセージは各ノードにおいて一定時間間隔ごとに繰り返し送信されることが一般的であり、このためネットワークに伝播されるために時間がかかる。
ここで、tintをリンク情報広告メッセージの送信時間間隔、wをネットワークのホップカウントによる直径とする(つまりwは最もホップ数が長い最短路のホップ数)。r'をメトリック更新1回(リンク情報広告メッセージを送信する度に更新)あたりのメトリックの変動割合の許容量とする。
このとき、あるノードがあるメトリックを受信し、このメトリックを次のノードに転送するための平均待ち時間はtintである。よって、このメトリックは平均してt'=(wtint/2)時間あればネットワーク全体に伝わる。このt'は、ネットワーク全体であるリンクのメトリックが異なり得る変動幅を表している。
つまり、現在時刻をtとすると、この時刻tにおいてネットワーク上で利用される任意のノードu,vが保持しているメトリック値は、時刻t-t'からtの間に生成された値であり、式(1)のtにこのt'を当てはめることで、ループが発生しないr'とt'の条件を求めることができる。つまり、uが保持するメトリック集合から計算される最短路をDu(d)で表すと、Du(d)∪Dv(d)が閉路を持たないことを保証する条件を定理1から導くことができる。
これをu,vだけでなくネットワーク上の全てのノードに適用することで、メトリック変更が一定時間間隔で発生する時にも、ループを発生させないためのr'の条件を求めることができる。
ここでt'=(wtint/2)より、rt'=r'^(t'/tint)=r'^(w/2)であり、定理1より(正式には後述する定理2より)図9の(式14)のようなr'に関してのループが発生しない条件が導かれる。
さて、正式にループが発生しない条件の定式化を行い、定理を証明する。つまり、上記の議論はu,vの2ノードのみに対して行ったものであるが、これを全てのノードに拡張した場合に拡張し、この場合にも同じ条件が当てはまることを証明する。
定理2:ml (i)(1≦i≦N,Nはネットワーク上のノード数)をリンクl∈Eのi番目のメトリック集合Miにおけるメトリックとする。また、全てのi,j(1≦i,j≦N)に対してml (i)r-t'≦ml (j)≦ml (i)rt'を満たすと仮定する。
この時、図9の式15はD=D1∪D2∪...DNが閉路を含まない十分条件の一つである。
証明:経路ループが発生した場合として、再び図10を用いる。ループ中のノードnで、あるメトリック集合Miにおけるnからdへの最短路がループ上の他のノードを含まず、別のメトリック集合Mjにおけるnからdへの最短路がループ上の他のノードを含むようなものを全て選び、任意の一つからループ上の出現順にn1,n2,...,n2mとおく。nkのMiにおけるdへの最短路の一つをpk,Mjにおけるdへの最短路の一つのうち、ループ上にある部分をp'kとおく。ここで、ループが生成されやすい最悪の場合は、Miの下ではpk上のリンク全てが取り得る範囲内の最小値を、p'kとpk+1上のリンク全てが取り得る範囲内の最大値をとり、同時にMjの下ではpk上のリンク全てが取り得る範囲内の最大の値を、p'kとpk+1上のリンク全てが取り得る範囲内の最小の値をとるときである。
逆にこの場合にループが生じなければ、その他の場合にループが生じることはない。ここで、この場合のメトリックを具体的に考えると、次のように当てはめることができる。
つまり、pkのメトリックはMiの下ではr-tδ0(pk)、Mjの下ではδ0(pk)である。
また、p'kとpk+1のメトリックはMiの下ではδ0(p'k),δ0(pk+1),Mjの下ではrtδ0(p'k)、rtδ0(pk+1)である。
このメトリックからは定理1と同じ式が導かれ、その結果、rに関する同じ条件式である(式15)が導かれる。

この(式15)のr'≦K1/wの意味するところを考える。メトリックの取り得る最大値を5、最小値を1とする。また、ネットワークの直径をw=10とする。この場合には、r'≦1.00198≒2%となる。また、w=5とした場合には、r'≦1.007870≒8%となる。ネットワークの大きさにより値は変化するが、このr'の範囲内でメトリックを変更する場合にはループが発生しないことが理論的に証明できた。
本発明に係る経路計算装置は、携帯電話機、携帯ゲーム機などの各種携帯通信機器や、ルータなどのネットワーク機器として有用である。
1 ネットワーク
2a〜2f ノード(経路計算装置)
12 送受信制御部
14 メッセージ処理部
15 メトリック値算出部
16 ネイバー更新部
18 取得部
20 判断部
22 算出部
24 ネイバーテーブル
26 トポロジー更新部
28 トポロジーテーブル
30 ルーティング更新部
32 ルーティングテーブル
34 送信先決定部

Claims (1)

  1. ネットワークを構成するノードであり、送信元ノードから送信先ノードへと至るメトリック値を計算して当該メトリック値が最小となる経路の設定に用いるトポロジーテーブルに用いるメトリック値を更新するための経路計算装置であって、
    隣接ノードと、各隣接ノードへのメトリック値とを示すネイバーテーブルを記憶する記憶手段と、
    隣接ノードへのメトリック値(A)を新たに取得する取得手段と、
    前記取得手段により新たに取得された値(A)の、前記ネイバーテーブルに記憶された対応するメトリック値(An−1)に対する変化量が、所定値の範囲内か判断する判断手段と、
    前記判断手段により前記変化量が所定値の範囲内と判断されると、前記新たに取得したメトリック値(A)に基づいて、対応するネイバーテーブルのメトリック値を更新し、
    前記判断手段により前記変化量が所定値の範囲内ではないと判断されると、前記新たに取得したメトリック値(A)には基づかずに、前記ネイバーテーブルに記憶された対応するメトリック値(An−1)を用いて算出した修正値であって、前記変化量がより少なくなる修正値に基づいて、対応するネイバーテーブルのメトリック値を更新する更新手段と
    を備えることを特徴とする経路計算装置。
JP2010033463A 2010-02-18 2010-02-18 経路計算装置 Withdrawn JP2011171973A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010033463A JP2011171973A (ja) 2010-02-18 2010-02-18 経路計算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010033463A JP2011171973A (ja) 2010-02-18 2010-02-18 経路計算装置

Publications (1)

Publication Number Publication Date
JP2011171973A true JP2011171973A (ja) 2011-09-01

Family

ID=44685635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010033463A Withdrawn JP2011171973A (ja) 2010-02-18 2010-02-18 経路計算装置

Country Status (1)

Country Link
JP (1) JP2011171973A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011250030A (ja) * 2010-05-25 2011-12-08 Nec Corp ルータ装置、コスト値管理方法およびコスト値管理プログラム
CN111831609A (zh) * 2020-06-18 2020-10-27 中国科学院数据与通信保护研究教育中心 一种虚拟化环境中二进制文件度量值统一管理和分发的方法和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011250030A (ja) * 2010-05-25 2011-12-08 Nec Corp ルータ装置、コスト値管理方法およびコスト値管理プログラム
CN111831609A (zh) * 2020-06-18 2020-10-27 中国科学院数据与通信保护研究教育中心 一种虚拟化环境中二进制文件度量值统一管理和分发的方法和系统
CN111831609B (zh) * 2020-06-18 2024-01-02 中国科学院数据与通信保护研究教育中心 虚拟化环境中二进制度量值统一管理和分发的方法和系统

Similar Documents

Publication Publication Date Title
JP5021769B2 (ja) マルチラジオ・マルチチャネル・マルチホップ無線ネットワークのための無線・帯域幅認識型ルーティング・メトリック
Das et al. Simulation‐based performance evaluation of routing protocols for mobile ad hoc networks
Das et al. Simulation based performance evaluation of mobile, ad hoc network routing protocols
US9325626B2 (en) Method and apparatus to reduce cumulative effect of dynamic metric advertisement in smart grid/sensor networks
US7567577B2 (en) Link state advertisements specifying dynamic routing metrics and associated variation metrics and selective distribution thereof
JP4682249B2 (ja) 無線通信ルートの品質を向上させる方法及びシステム
US8837277B2 (en) Source routing convergence in constrained computer networks
EP2361485B1 (en) Selective a priori reactive routing
WO2013021534A1 (ja) センサネットワークシステム、センサネットワーク制御方法、センサノード、センサノード制御方法、及び、センサノード制御プログラム
Jung et al. Distributed potential field based routing and autonomous load balancing for wireless mesh networks
Roy et al. Using minimal source trees for on-demand routing in ad hoc networks
CN111770551B (zh) 一种高动态不确定链路的网关间通信方法、系统及设备
Gorbil et al. Supporting QoS traffic at the network layer in multi-hop wireless mobile networks
Er-rouidi et al. A balanced energy consumption in mobile ad hoc network
Zarei et al. Modified Reverse AODV routing algorithm using route stability in mobile ad hoc networks
JP2011171973A (ja) 経路計算装置
Basagni et al. Localization error-resilient geographic routing for wireless sensor networks
Setty et al. Comparative study of energy aware QoS for proactive and reactive routing protocols for mobile ad-hoc networks
Santhi et al. Enhanced AOMDV for energy conservation in hybrid ad hoc networks
Ziane et al. Inductive routing based on dynamic end-to-end delay for mobile networks
Javaid et al. BIETX: A new quality link metric for Static Wireless Multi-hop Networks
Rehman et al. Associativity-based on-demand multi-path routing in mobile ad hoc networks
JP5483489B2 (ja) マルチラジオ・マルチチャネル・マルチホップ無線ネットワークのための無線・帯域幅認識型ルーティング・メトリック
Singh et al. HP-AODV: an enhanced AODV routing protocol for high mobility MANETs
Nath et al. Performance Comparison of RAODV and MRAODV Routing Protocols in Mobile Ad Hoc Networks

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130507