(57)【要約】  各ノードＡ〜Ｚは、宛先ノードへの配送確率を計算し、隣接ノードに対して配送確率を互いにＳＶメッセージとして交換する。このとき、各ノードＡ〜Ｚが計算した宛先ノードへの配送確率を送信すると同時に、その宛先ノードに対する次ホップノードを一緒に送信する。各ノードＡ〜Ｚでは、宛先ノードへの配送確率およびそのノードに対する次ホップノードを受信すると、次ホップノードが自ノードと同一であるかどうかを調べ、それらが同一の場合には、配送確率データベースに登録しないようにする。対応する宛先ノードへの次ホップノードとして該配送確率を送信したノードが選択されないようにしているので、ノード間のルーティングループを防止することができる。
2010047024.tif 000002
【特許請求の範囲】
【請求項１】
自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、前記宛先ノードへのデータ転送の経路を決定するネットワーク通信システムであって、
前記ネットワーク通信システムを構成する各ノードは、
自ノードが計算した前記宛先ノードへの配信確率、および隣接ノードから受信した配送確率が、登録される配送確率データベースと、
前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、前記配送確率データベースに登録する配送確率計算手段と、
前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、隣接ノードに送信すると共に、前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、前記隣接ノードから受信する配送確率交換手段と、
前記隣接ノードから受信した次ホップノードと前記自ノードとが同一であるか否かを判断し、前記次ホップノードが前記自ノードと同一でなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノードが前記自ノードと同一であれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにする配送確率受付判断手段と、
前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する経路計算手段と
を含む、ネットワーク通信システム。
【請求項２】
配送確率受付判断手段は、受信された、次ホップノードが自ノードと同一である配送確率が既に前記配送確率データベースに登録されている場合には、当該配送確率を削除する、請求項１に記載のネットワーク通信システム。
【請求項３】
自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、前記宛先ノードへのデータ転送の経路を決定するネットワーク通信システムであって、
前記ネットワーク通信システムを構成する各ノードは、
自ノードが計算した前記宛先ノードへの配信確率、および隣接ノードから受信した配送確率が、登録される配送確率データベースと、
前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、前記配送確率データベースに登録する配送確率計算手段と、
前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記自ノードからｎホップ目（ｎは整数）までのノードを列挙したリストである次ホップノード列とを併せて、隣接ノードに送信すると共に、前記隣接ノードが計算した前記宛先ノードへの配送確率とその宛先ノードに対する経路の次ホップノード列とを併せて、前記隣接ノードから受信する配送確率交換手段と、
前記隣接ノードから受信した次ホップノード列に前記自ノードが含まれているか否かを判断し、前記次ホップノード列に前記自ノードが含まれていなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノード列に前記自ノードが含まれていれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにする配送確率受付判断手段と、
前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する経路計算手段と
を含む、ネットワーク通信システム。
【請求項４】
配送確率受付判断手段は、受信された、次ホップノード列に前記自ノードが含まれている配送確率が既に前記配送確率データベースに登録されている場合には、当該配送確率を削除する、請求項３に記載のネットワーク通信システム。
【請求項５】
前記ホップノード列は、ＭＡＮＥＴルーティングプロトコルによって計算される、請求項３に記載のネットワーク通信システム。
【請求項６】
自ノードが計算した宛先ノードへの配信確率、および隣接ノードから受信した配送確率が登録される配送確率データベースと、
前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、前記配送確率データベースに登録する配送確率計算手段と、
前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、隣接ノードに送信すると共に、前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、前記隣接ノードから受信する配送確率交換手段と、
前記隣接ノードから受信した次ホップノードと前記自ノードとが同一であるか否かを判断し、前記次ホップノードが前記自ノードと同一でなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノードが前記自ノードと同一であれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにする配送確率受付判断手段と、
前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する経路計算手段と
を含む、ノード装置。
【請求項７】
自ノードが計算した宛先ノードへの配信確率、および隣接ノードから受信した配送確率が、登録される配送確率データベースと、
前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、前記配送確率データベースに登録する配送確率計算手段と、
前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記自ノードからｎホップ目（ｎは整数）までのノードを列挙したリストである次ホップノード列とを併せて、隣接ノードに送信すると共に、前記隣接ノードが計算した前記宛先ノードへの配送確率とその宛先ノードに対する経路の次ホップノード列とを併せて、前記隣接ノードから受信する配送確率交換手段と、
前記隣接ノードから受信した次ホップノード列に前記自ノードが含まれているか否かを判断し、前記次ホップノード列に前記自ノードが含まれていなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノード列に前記自ノードが含まれていれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにする配送確率受付判断手段と、
前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する経路計算手段と
を含む、ノード装置。
【請求項８】
自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、宛先ノードへのデータ転送の経路を決定するルーティング方法であって、
前記自ノードは、
前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、配送確率データベースに登録すると共に、前記自ノードが計算した前記宛先ノードへの配信確率と、その宛先ノードに対する経路の次ホップノードとを併せて、隣接ノードに送信し、
前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、前記隣接ノードから受信し、前記隣接ノードから受信した次ホップノードと前記自ノードとが同一であるか否かを判断し、前記次ホップノードが前記自ノードと同一でなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノードが前記自ノードと同一であれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにし、
前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する、ルーティング方法。
【請求項９】
自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、宛先ノードへのデータ転送の経路を決定するルーティング方法であって、
前記自ノードは、
前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、配送確率データベースに登録すると共に、前記自ノードが計算したその宛先ノードに対する経路の配送確率と、前記自ノードからｎホップ目（ｎは整数）までのノードを列挙したリストである次ホップノード列とを併せて、隣接ノードに送信し、
前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記隣接ノードからｎホップ目（ｎは整数）までのノードを列挙した次ホップノード列とを併せて、前記隣接ノードから受信し、前記隣接ノードから受信した次ホップノード列に前記自ノードが含まれているか否かを判断し、前記次ホップノード列に前記自ノードが含まれなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノード列に前記自ノードが含まれれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにし、
前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する、ルーティング方法。
【請求項１０】
自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、宛先ノードへのデータ転送の経路を決定するネットワーク通信システムのルーティングを、コンピュータで行うためのルーティングプログラムであって、
前記宛先ノードに対する自ノードの配送確率を計算するステップと、
前記自ノードが計算した前記宛先ノードへの配信確率を配送確率データベースに登録するステップと、
前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、隣接ノードに送信するステップと、
前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、前記隣接ノードから受信するステップと、
前記隣接ノードから受信した次ホップノードと前記自ノードとが同一であるか否かを判断するステップと、
前記次ホップノードが前記自ノードと同一でなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノードが前記自ノードと同一であれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにするステップと、
前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定するステップと
を含む、ルーティングプログラム。
【請求項１１】
自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、宛先ノードへのデータ転送の経路を決定するネットワーク通信システムのルーティングをコンピュータで行うためのルーティングプログラムであって、
前記宛先ノードに対する自ノードの配送確率を計算するステップと、
前記自ノードが計算した前記宛先ノードへの配信確率を配送確率データベースに登録するステップと、
前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記隣接ノードからｎホップ目（ｎは整数）までのノードを列挙した次ホップノード列とを併せて、隣接ノードに送信するステップと、
前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記隣接ノードからｎホップ目（ｎは整数）までのノードを列挙した次ホップノード列とを併せて、前記隣接ノードから受信するステップと、
前記隣接ノードから受信した次ホップノード列に前記自ノードが含まれているか否かを判断するステップと、
前記次ホップノード列に前記自ノードが含まれなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノード列に前記自ノードが含まれれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにするステップと、
前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定するステップと
を含む、ルーティングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて宛先ノードへのデータ転送の経路を決定するネットワーク通信システム、および、このような通信システムに用いられるノード装置、ルーティング方法、ルーティングプログラムに関する。
本願は、２００８年１０月２３日に、日本に出願された特願２００８−２７３１３４号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
従来、ＤＴＮやアドホックネットワークなどのモバイルマルチホップネットワークでは、ノードの移動を伴うため、ソースノードから宛先ノードまでの経路は一定ではなく、データ転送時のノード配置によってその都度最適化がなされる。比較的ノード分布が密で、エンド−エンド間の直接経路ができやすいアドホックネットワークでは、ＡＯＤＶ（Ad Hoc On Demand Distance Vector algorithm）やＯＬＳＲ（Optimized Link State Routing protocol）などのＭＡＮＥＴ（Mobile Adhoc NETwork）ルーティングプロトコルが用いられるのが一般的である。【０００３】
ＤＴＮは、無線アドホックネットワークや衛星回線など、ノード間の接続性が不安定、低信頼な場合であっても、エンド−エンド間でデータ・コンテンツを高信頼に届けることを可能にするネットワークシステムである。ＤＴＮは、転送データをバンドルと呼ばれる単位サイズに分割し、バンドル単位で宛先ノードへの転送処理を行う。ＤＴＮの最大の特徴として、転送しようとするバンドルの宛先ノードへの経路が不明な場合であっても、そのバンドルを廃棄せず、転送すべき次ホップが見つかるまでそのバンドルを蓄積して待機する、という点が挙げられる。このような動作をとることにより、ソースノードから宛先ノードまでのエンド−エンドの経路が同時に存在しない、ノード分布が疎なネットワークの場合でも、途中のノードまでバンドルを転送しておき、その後に宛先ノードまでの経路ができた時点でバンドルの転送を再開するということが可能となり、その結果宛先ノードへの到達率が向上するという効果がある。【０００４】
したがって、ＤＴＮにおける経路制御方法は、従来のソースノードから宛先ノードまでのエンド−エンドの経路を発見するＩＰルーティングとは異なる方法が用いられる。【０００５】
ＤＴＮにおけるルーティングにおける代表的な方法の１つとして、非特許文献１に記載されている、ＰＲＯＰＨＥＴと呼ばれる宛先ノードへの配送確率に基づくルーティング方法がある。【０００６】
非特許文献１を参照すると、ＰＲＯＰＨＥＴと呼ばれる方式について説明されている。
ＰＲＯＰＨＥＴでは、宛先ノードへの配送確率(delivery predictability)に基づいたルーティングを行う。具体的には、あるノードＡにおいて、別のノードＢが隣接したときに、ノードＡは、ノードＢに対する配送確率 P_i を以下の式で更新する。【０００７】
P_i = P_(i-1) + (1 - P_(i-1)) * P_init (0 < P_init < 1)ここで、P_(i-1) は、更新前のノードＡにおけるノードＢに対する配送確率であり、P_initは、初期化定数である。【０００８】
また、ノードＡとノードＢが隣接していない状態が継続する場合は、エージングと呼ばれる方法で次の式に従って定期的に更新し、配送確率を逓減させる。【０００９】
P_i ＝ P_(i-1) * γ^k (0 < γ < 1)
ここでγは、最後にノードＡとノードＢが隣接してから単位時間が経過した回数である。【００１０】
各ノードは、あるノードを宛先とするバンドルをもっている場合、その宛先ノードに対する配送確率 P_i を隣接ノードと交換し、最も高い配送確率をもつ隣接ノードにそのバンドルを渡す。また、もし自ノードがもつその宛先ノードまでの配送確率よりも、隣接ノードがもつその宛先ノードまでの配送確率の方が小さい場合、そのバンドルはその隣接ノードへ渡さずに、自ノードで保持し続ける。【００１１】
以上のようにして、ＰＲＯＰＨＥＴでは、隣接履歴に基づいて計算された宛先ノードへの配送確率の大小の比較によるルーティングが行われる。【００１２】
また、特許文献１では、隣接履歴によって配送確率を計算するだけではなく、ノード内のルーティングテーブルに登録されている宛先ノードへの過去から現在までのエンド−エンドの経路の履歴に基づいて、宛先ノードへの配送確率を計算する方法について記載されている。このように、ＰＲＯＰＨＥＴにおいては、配送確率として必ずしも隣接履歴だけによって計算された値のみを用いるだけではなく、特許文献１に記載されているような他のパラメータによって計算された値を用いるように拡張する方法も考えられる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特願２００７−３２４５６３号公報
【非特許文献】
【００１４】
【非特許文献１】Anders Lindgren, Avri Doria, Olv Schelen, "Probabilistic Routing in Intermittently Connected Networks," In Proceedings of the The First International Workshop on Service Assurance with Partial and Intermittent Resources(SAPIR 2004), August 2004, Fortaleza,  Brazil.
【発明の概要】
【発明が解決しようとする課題】
【００１５】
ＰＲＯＰＨＥＴでは、定期的に他のノードへの配送確率を計算し、隣接ノードとその配送確率のリストを交換する。そして転送すべきバンドルが発生した際に、そのバンドルの宛先ノードに対する配送確率を参照し、最も配送確率が高い隣接ノードへそのバンドルを転送する、という動作を行う。【００１６】
しかしながら、この動作では、配送確率を隣接ノードへ送信するためのメッセージがロスした場合、隣接ノードとの間で配送確率の大小関係に一貫性が失われ、一時的にルーティングループが発生する場合がある。このルーティングループの発生の具体的な例について、図１４を参照しながら説明する。【００１７】
図１４を参照すると、互いに隣接しているノードＡとノードＢが示されている。ノードＡとノードＢはそれぞれ、定期的に他ノードへの配送確率を計算し、隣接ノードへ計算した配送確率を送信している。ここでは、配送確率を送信するためのメッセージはＳｕｍｍａｒｙ  Ｖｅｃｔｏｒメッセージ（以降ＳＶメッセージ）であるとし、他のノードとして、ノードＡおよびノードＢ以外のノードＸへの配送確率が計算・送信されているものとする。【００１８】
まず初期状態として、時刻Ｔ０において、ノードＡにおけるノードＸへの配送確率は「０．７」であると計算されており、また、他のノードから受信した配送確率はないものとする。したがって時刻Ｔ０においてノードＡにおけるノードＸ宛てのバンドルを転送するための次ホップは、ノードＡと設定される。【００１９】
また、同じ時刻Ｔ０において、ノードＢでは、ノードＸへの配送確率は「０．５」であると計算されており、また、他のノードから受信した配送確率はないものとする。したがって時刻Ｔ０においてノードＢにおけるノードＸ宛てのバンドルを転送するための次ホップは、ノードＢと設定される。【００２０】
次に、時刻Ｔ１において、ノードＡにおいてノードＸへの配送確率が再計算され、「０．７」から「０．６」へ更新されるものとする。更新された配送確率は、直ちにＳＶメッセージによってノードＢを含む隣接ノードへブロードキャストされる（メッセージＭ３０１）。【００２１】
ノードＢは時刻Ｔ１において、ノードＡからノードＸへの更新された配送確率を受信すると、受信した配送確率として、その値である「０．６」と、その配送確率を送信したノードであるノードＡを登録する。すなわち、図１４では「０．６（Ａ）」と登録されている。同時に、ノードＢが計算した配送確率「０．５」と、受信した配送確率「０．６」とを比較し、「０．６」の方が大きいため、その配送確率を送信したノードであるノードＡを、ノードＸへの次ホップとして設定する。【００２２】
次に、時刻Ｔ２において、ノードＢにおいてノードＸへの配送確率が再計算され、「０．５」から「０．４」へ更新されるものとする。更新後、計算した配送確率「０．４」と、受信した配送確率「０．６」とを比較し、「０．６」の方が大きいため、ノードＸへの次ホップはノードＡのままにする。更新された配送確率は、直ちにＳＶメッセージによってノードＡを含む隣接ノードへブロードキャストされる（メッセージＭ３０２）。【００２３】
ノードＡは時刻Ｔ２において、ノードＢからノードＸへの更新された配送確率を受信すると、受信した配送確率として、その値である「０．４」と、その配送確率を送信したノードであるノードＢを登録する。すなわち、図１４では「０．４（Ｂ）」と登録されている。同時に、ノードＡが計算した配送確率「０．６」と、受信した配送確率「０．４」とを比較し、「０．６」の方が大きいため、ノードＸへの次ホップはノードＡのままである。【００２４】
次に、時刻Ｔ３において、ノードＡにおいてノードＸへの配送確率が再計算され、「０．６」から「０．２」へ更新されるものとする。更新後、計算した配送確率「０．２」と、受信した配送確率「０．４」とを比較し、「０．４」の方が大きいため、その配送確率を送信したノードであるノードＢを、ノードＸへの次ホップとして設定する。そして、ノードＡは、時刻Ｔ１における動作と同様に、更新された配送確率をＳＶメッセージによってブロードキャストする（メッセージＭ３０３）。しかしながら、ここで、ノードＢは何らかの原因によりそのＳＶメッセージを受信できなかったとする。受信できない原因としては、無線エラーによるパケットロスや、輻輳によるバッファあふれなどが挙げられる。【００２５】
時刻Ｔ３において、ノードＡが送信したＳＶメッセージをノードＢが受信できなかった場合、ノードＢでは何も状態が変化しないため、ノードＸへの次ホップ設定はノードＡのままとなる。【００２６】
時刻Ｔ３以降、ノードＡにおけるノードＸへの次ホップはノードＢ、また、ノードＢにおけるノードＸへの次ホップはノードＡとなる。この状態でいずれかのノードにおいてノードＸ宛のバンドルが発生すると、そのバンドルはノードＡとノードＢとの間で行ったり来たりを繰り返し、すなわちループ状態となる。【００２７】
次に、時刻Ｔ４において、ノードＢにおいてノードＸへの配送確率が再計算され、「０．４」から「０．３」へ更新されるものとする。更新後、計算した配送確率「０．３」と、受信した配送確率「０．６」とを比較し、「０．６」の方が大きいため、ノードＸへの次ホップはノードＡのままにする。更新された配送確率は、直ちにＳＶメッセージによってノードＡを含む隣接ノードへブロードキャストされる（メッセージＭ３０４）。【００２８】
ノードＡは時刻Ｔ４において、ノードＢからノードＸへの更新された配送確率を受信すると、受信した配送確率として、その値である「０．３」と、その配送確率を送信したノードであるノードＢを登録する。すなわち、図１４では「０．３（Ｂ）」と登録されている。同時に、ノードＡが計算した配送確率「０．２」と、受信した配送確率「０．３」とを比較し、「０．３」の方が大きいため、ノードＸへの次ホップはノードＢのままとする。【００２９】
次に、時刻Ｔ５において、ノードＡにおいてノードＸへの配送確率が再計算され、「０．２」から「０．１」へ更新されるものとする。更新後、計算した配送確率「０．１」と、受信した配送確率「０．３」とを比較し、「０．３」の方が大きいため、ノードＸへの次ホップはノードＢのままにする。そしてノードＡは、更新された配送確率をＳＶメッセージによってブロードキャストする（メッセージＭ３０５）。時刻Ｔ５で送られたＳＶメッセージは正常にノードＢが受信できたものとする。【００３０】
ノードＢは時刻Ｔ５において、ノードＡからノードＸへの更新された配送確率を受信すると、受信した配送確率として、「０．１（Ａ）」を登録する。同時に、ノードＢが計算した配送確率「０．３」と、受信した配送確率「０．１」とを比較し、「０．３」の方が大きいため、自ノードであるノードＢを、ノードＸへの次ホップとして設定する。この時点で、ノードＡ、ノードＢの両方においてノードＸへの次ホップはノードＢとなり、時刻Ｔ３以降継続していたルーティングループ状態は解消される。【００３１】
したがって、時刻Ｔ３からＴ５まで、ノードＡとノードＢとの間でルーティングループ状態が継続することになる。【００３２】
以上にように、従来のＰＲＯＰＨＥＴでは、配送確率を送信するためのメッセージのロスが発生すると、ルーティングループが発生することという問題点がある。【００３３】
上述の課題に鑑み、本発明は、データを転送する際の経路を、自ノードおよび隣接ノードにおいて計算された宛先ノードへの配送確率に基づいて決定する際に、ループの発生を防止できることを目的とする。
【課題を解決するための手段】
【００３４】
本発明は、上述の課題を解決するために為されたものであり、本発明に係るネットワーク通信システムは、自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、前記宛先ノードへのデータ転送の経路を決定するネットワーク通信システムであって、前記ネットワーク通信システムを構成する各ノードは、自ノードが計算した前記宛先ノードへの配信確率、および隣接ノードから受信した配送確率が、登録される配送確率データベースと、前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、前記配送確率データベースに登録する配送確率計算手段と、前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、隣接ノードに送信すると共に、前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、前記隣接ノードから受信する配送確率交換手段と、前記隣接ノードから受信した次ホップノードと前記自ノードとが同一であるか否かを判断し、前記次ホップノードが前記自ノードと同一でなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノードが前記自ノードと同一であれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにする配送確率受付判断手段と、前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する経路計算手段とを含む。【００３５】
上記発明に係るネットワーク通信システムにおいて、配送確率受付判断手段は、受信された、次ホップノードが自ノードと同一である配送確率が既に前記配送確率データベースに登録されている場合には、当該配送確率を削除するものとしてもよい。【００３６】
また、本発明に係るネットワーク通信システムは、自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、前記宛先ノードへのデータ転送の経路を決定するネットワーク通信システムであって、前記ネットワーク通信システムを構成する各ノードは、自ノードが計算した前記宛先ノードへの配信確率、および隣接ノードから受信した配送確率が、登録される配送確率データベースと、前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、前記配送確率データベースに登録する配送確率計算手段と、前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記自ノードからｎホップ目（ｎは整数）までのノードを列挙したリストである次ホップノード列とを併せて、隣接ノードに送信すると共に、前記隣接ノードが計算した前記宛先ノードへの配送確率とその宛先ノードに対する経路の次ホップノード列とを併せて、前記隣接ノードから受信する配送確率交換手段と、前記隣接ノードから受信した次ホップノード列に前記自ノードが含まれているか否かを判断し、前記次ホップノード列に前記自ノードが含まれていなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノード列に前記自ノードが含まれていれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにする配送確率受付判断手段と、前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する経路計算手段とを含む。【００３７】
上記ネットワーク通信システムにおいて、配送確率受付判断手段は、受信された、次ホップノード列に前記自ノードが含まれている配送確率が既に前記配送確率データベースに登録されている場合には、当該配送確率を削除するものとしてもよい。【００３８】
上記ネットワーク通信システムにおいて、前記ホップノード列は、ＭＡＮＥＴルーティングプロトコルによって計算されるものとしてもよい。【００３９】
本発明に係るノード装置は、自ノードが計算した宛先ノードへの配信確率、および隣接ノードから受信した配送確率が登録される配送確率データベースと、前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、前記配送確率データベースに登録する配送確率計算手段と、前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、隣接ノードに送信すると共に、前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、前記隣接ノードから受信する配送確率交換手段と、前記隣接ノードから受信した次ホップノードと前記自ノードとが同一であるか否かを判断し、前記次ホップノードが前記自ノードと同一でなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノードが前記自ノードと同一であれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにする配送確率受付判断手段と、前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する経路計算手段とを含む。【００４０】
本発明に係るノード装置は、自ノードが計算した宛先ノードへの配信確率、および隣接ノードから受信した配送確率が、登録される配送確率データベースと、前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、前記配送確率データベースに登録する配送確率計算手段と、前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記自ノードからｎホップ目（ｎは整数）までのノードを列挙したリストである次ホップノード列とを併せて、隣接ノードに送信すると共に、前記隣接ノードが計算した前記宛先ノードへの配送確率とその宛先ノードに対する経路の次ホップノード列とを併せて、前記隣接ノードから受信する配送確率交換手段と、前記隣接ノードから受信した次ホップノード列に前記自ノードが含まれているか否かを判断し、前記次ホップノード列に前記自ノードが含まれていなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノード列に前記自ノードが含まれていれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにする配送確率受付判断手段と、前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する経路計算手段とを含む。【００４１】
本発明に係るルーティング方法は、自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、宛先ノードへのデータ転送の経路を決定するルーティング方法であって、前記自ノードは、前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、配送確率データベースに登録すると共に、前記自ノードが計算した前記宛先ノードへの配信確率と、その宛先ノードに対する経路の次ホップノードとを併せて、隣接ノードに送信し、前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、前記隣接ノードから受信し、前記隣接ノードから受信した次ホップノードと前記自ノードとが同一であるか否かを判断し、前記次ホップノードが前記自ノードと同一でなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノードが前記自ノードと同一であれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにし、前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する。【００４２】
本発明に係るルーティング方法は、自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、宛先ノードへのデータ転送の経路を決定するルーティング方法であって、前記自ノードは、前記宛先ノードへの配送確率を計算し、前記自ノードが計算した前記宛先ノードへの配信確率を、配送確率データベースに登録すると共に、前記自ノードが計算したその宛先ノードに対する経路の配送確率と、前記自ノードからｎホップ目（ｎは整数）までのノードを列挙したリストである次ホップノード列とを併せて、隣接ノードに送信し、前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記隣接ノードからｎホップ目（ｎは整数）までのノードを列挙した次ホップノード列とを併せて、前記隣接ノードから受信し、前記隣接ノードから受信した次ホップノード列に前記自ノードが含まれているか否かを判断し、前記次ホップノード列に前記自ノードが含まれなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノード列に前記自ノードが含まれれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにし、前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定する。【００４３】
本発明に係るルーティングプログラムは、自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、宛先ノードへのデータ転送の経路を決定するネットワーク通信システムのルーティングを、コンピュータで行うためのルーティングプログラムであって、前記宛先ノードに対する自ノードの配送確率を計算するステップと、前記自ノードが計算した前記宛先ノードへの配信確率を配送確率データベースに登録するステップと、前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、隣接ノードに送信するステップと、前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の次ホップノードとを併せて、前記隣接ノードから受信するステップと、前記隣接ノードから受信した次ホップノードと前記自ノードとが同一であるか否かを判断するステップと、前記次ホップノードが前記自ノードと同一でなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノードが前記自ノードと同一であれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにするステップと、前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定するステップとを含む。【００４４】
本発明に係るルーティングプログラムは、自ノードおよび隣接ノードが計算した宛先ノードへの配送確率に基づいて、宛先ノードへのデータ転送の経路を決定するネットワーク通信システムのルーティングをコンピュータで行うためのルーティングプログラムであって、前記宛先ノードに対する自ノードの配送確率を計算するステップと、前記自ノードが計算した前記宛先ノードへの配信確率を配送確率データベースに登録するステップと、前記自ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記隣接ノードからｎホップ目（ｎは整数）までのノードを列挙した次ホップノード列とを併せて、隣接ノードに送信するステップと、前記隣接ノードが計算した前記宛先ノードへの配送確率と、その宛先ノードに対する経路の前記隣接ノードからｎホップ目（ｎは整数）までのノードを列挙した次ホップノード列とを併せて、前記隣接ノードから受信するステップと、前記隣接ノードから受信した次ホップノード列に前記自ノードが含まれているか否かを判断するステップと、前記次ホップノード列に前記自ノードが含まれなければ、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録し、前記次ホップノード列に前記自ノードが含まれれば、前記隣接ノードから受信した配送確率を前記配送確率データベースに登録しないようにするステップと、前記配送確率データベースに登録されている自ノードが計算した前記宛先ノードへの配信確率と、前記配送確率データベースに登録されている前記隣接ノードから受信した配送確率とを参照して、前記宛先ノードへの経路を設定するステップとを含む。
【発明の効果】
【００４５】
本発明によれば、データを転送する際の経路を、自ノードおよび隣接ノードにおいて計算された宛先ノードへの配送確率に基づいて決定する際に、ループの発生を防止することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明の第１の実施形態の通信ネットワークシステムの概要の説明図である。
【図２】本発明の第１の実施形態の通信ネットワークシステムにおけるノードの一例のブロック図である。
【図３Ａ】本発明の第１の実施形態における、自ノードが計算した配送確率の配送確率データベースの説明図である。
【図３Ｂ】本発明の第１の実施形態における、他ノードから受信した配送確率の配送確率データベースの説明図である。
【図４】本発明の第１の実施形態におけるルーティングテーブルの説明図である。
【図５】本発明の第１の実施形態の通信ネットワークシステムにおける配送確率送信時の動作を示すフローチャートである。
【図６】本発明の第１の実施形態の通信ネットワークシステムにおける配送確率受信時の動作を示すフローチャートである。
【図７】本発明の第１の実施形態の通信ネットワークシステムにおけるメッセージの送受信の説明図である。
【図８】本発明の第１の実施形態の通信ネットワークシステムにおけるルーティングの説明図である。
【図９】本発明の第２の実施形態の通信ネットワークシステムにおけるノードの一例のブロック図である。
【図１０】本発明の第２の実施形態の通信ネットワークシステムにおけるメッセージの送受信の説明図である。
【図１１】本発明の第２の実施形態におけるルーティングテーブルの説明図である。
【図１２】本発明の第２の実施形態の通信ネットワークシステムにおける配送確率送信時の動作を示すフローチャートである。
【図１３】本発明の第２の実施形態の通信ネットワークシステムにおける配送確率受信時の動作を示すフローチャートである。
【図１４】従来の通信ネットワークシステムにおけるルーティングの説明図である。
【発明を実施するための形態】
【００４７】
以下、具体的な実施形態を参照しながら、本発明について説明する。当業者であれば、本発明の記載を基に、多様な異なる実施形態を採り得るであろうし、本発明は、説明のために図示された実施形態に限定されるものではない。
【００４８】
（第１の実施の形態）
図１は、本発明の第１実施形態の通信ネットワークシステム１０１の概要を示すものである。図１において、通信ネットワークシステム１０１は、ノードＡ、ノードＢ、ノードＣ、…、ノードＷ、ノードＸ、ノードＹ、ノードＺから構成されている。通信ネットワークシステム１０１は、ＤＴＮ(Delay/Disruption Tolerant Network)や無線アドホックネットワークのような、モバイルマルチホップのネットワーク環境のものである。各ノードＡ〜Ｚでは、例えば無線を使って、転送データをバンドルと呼ばれる単位サイズに分割し、バンドル単位で宛先ノードへの転送処理を行っている。各ノードＡ〜Ｚの数や配置は任意であり、また、各ノードＡ〜Ｚは、移動することができる。
【００４９】
図２は、各ノードＡ〜Ｚの構成を示すものである。図２において、各ノードＡ〜Ｚは、確率ルーティングプロトコル部１５１と、ルーティングテーブル１５２と、ＤＴＮ転送部１５３と、ＴＣＰ／ＩＰ転送部１５４とから構成される。
【００５０】
確率ルーティングプロトコル部１５１は、ルーティングテーブル１５２のエントリを作成するために、隣接ノードと経路制御情報を交換し、経路を作成する機能を備える。
【００５１】
確率ルーティングプロトコル部１５１は、配送確率計算部１６１と、配送確率データベース（ＤＢ）１６２と、配送確率交換部１６３と、配送確率受付判断部１６４と、経路計算部１６５とから構成される。
【００５２】
配送確率計算部１６１は、宛先ノードへの配送確率を計算し、計算された配送確率を配送確率データベース１６２へ登録する機能を備える。配送確率の計算アルゴリズムの例としては、隣接する／しないに基づく計算方法（非特許文献１）や、経路履歴に基づく計算方法（特許文献１）などが挙げられる。なお、配送確率の計算方法としては、これに限定されるものではなく、どのような計算方法を用いても良い。
【００５３】
配送確率データベース１６２は、配送確率計算部１６１によって計算された配送確率をデータベースとして蓄積する機能を備える。配送確率データベース１６２は、後に説明するように、自ノードが計算した配送確率データベースと、他ノードから受信した配送確率データベースとに分かれている。
【００５４】
配送確率交換部１６３は、隣接ノードに対して自ノードがもつ宛先ノードへの配送確率を送信する機能および隣接ノードから送信されたその隣接ノードがもつ宛先ノードへの配送確率を受信する機能を備える。この配送確率の情報は、ＳＶメッセージとして送受される。本発明の第１の実施形態では、このとき、宛先ノードへの配送確率と共に、その宛先ノードに対する次ホップノードが含められる。すなわち、自ノードのもつ宛先ノードへの配送確率を送信する際は、配送確率データベース１６２を参照し、自ノードが計算した宛先ノードへの配送確率を送信すると同時に、その宛先ノードに対する次ホップノードを一緒に送信する。また、隣接ノードからは、その隣接ノードが計算した宛先ノードへの配送確率と同時に、その宛先ノードに対する次ホップノードを一緒に受信する。
【００５５】
配送確率受付判断部１６４は、配送確率交換部１６３を介して隣接ノードから受信した配送確率を、隣接ノードから受信した宛先ノードへの配送確率として配送確率データベース１６２に登録するかどうかを判断する機能を備える。本発明の第１の実施形態では、隣接ノードが計算した宛先ノードへの配送確率と同時に、その宛先ノードに対する次ホップノードを一緒に受信しており、配送確率受付判断部１６４は、受信した次ホップノードと自ノードとが同一であるかを調べ、次ホップノードと自ノードとが同一でない場合は、受信した配送確率を配送確率データベース１６２に登録し、次ホップノードと自ノードとが同一である場合は、受信した配送確率を配送確率データベース１６２に登録しないようにしている。
【００５６】
経路計算部１６５は、配送確率データベース１６２を参照して、各宛先ノードに対する次ホップノードを決定し、ルーティングテーブル１５２へルーティングエントリとして登録する。ルーティングテーブル１５２には、各宛先ノードごとに、次ホップノードとその次ホップノードに対応するＩＰアドレスである次ホップＩＰアドレスが登録される。
【００５７】
ＤＴＮ転送部１５３は、ＤＴＮ転送を行う機能を備える。具体的には、隣接ノードから受信したバンドルをデータとして再構成し、自ノードに一旦蓄積を行う。そして転送すべき次ホップが見つかった時点で、そのデータをバンドルに分割し、次ホップへ転送を行う。ここで、転送すべき次ホップはルーティングテーブル１５２を参照することにより決定する。また、バンドルの送受信は、ＴＣＰ／ＩＰ転送部１５４を介して送受信を行う。
【００５８】
なお、ＤＴＮ転送部１５３は、ノードＡ２がＤＴＮ転送を行う場合は必要な構成要素であるが、ＤＴＮ転送を行わない通常のＴＣＰ／ＩＰ転送のみを行うノードである場合は、必ずしも必要な構成要素ではない。
【００５９】
ＴＣＰ／ＩＰ転送部１５４は、ＤＴＮ転送部１５３が送受信するバンドルをＩＰパケットとして他ノードと送受信する機能を有する。各バンドルは、直接ＩＰパケットのペイロードとして埋め込まれるのではなく、ＴＣＰ(Transmission Control Protocol)やＵＤＰ(User Datagram Protocol)などのトランスポートプロトコルのデータグラムとしてＩＰパケット化され、隣接ノードと送受信が行われる。
【００６０】
上述のように、本発明の第１の実施形態のシステムでは、各ノードＡ〜Ｚは、宛先ノードへの配送確率を計算し、隣接ノードに対して配送確率を互いにＳＶメッセージとして交換している。このとき、各ノードＡ〜Ｚが計算した宛先ノードへの配送確率を送信すると同時に、その宛先ノードに対する次ホップノードを一緒に送信している。そして、各ノードＡ〜Ｚでは、宛先ノードへの配送確率およびそのノードに対する次ホップノードを受信すると、次ホップノードが自ノードと同一であるかどうかを調べ、次ホップノードと自ノードとが同一の場合には、配送確率データベース１６２に登録しないようにしている。
【００６１】
図３Ａおよび図３Ｂは、配送確率データベース１６２に登録される配送確率エントリの例を示すものである。
【００６２】
図３Ａおよび図３Ｂを参照すると、配送確率データベース１６２は、配送確率データベース（自ノードが計算した配送確率）１６２ａ（図３Ａ）と、配送確率データベース（他ノードから受信した配送確率）１６２ｂ（図３Ｂ）とに分かれている。
【００６３】
ここで、ノードＡの場合には、配送確率データベース１６２ａには、ノードＡの配送確率計算部１６１が計算した配送確率が登録されている。図３Ａを参照すると、ノードＸに対する配送確率は「０．６」、ノードＹに対する配送確率は「０．２」、ノードＺに対する配送確率は「０．３」であることが示されている。
【００６４】
また、配送確率データベース１６２ｂには、ノードＡが隣接ノード（ノードＢ、ノードＣ等）から受信した配送確率が登録されている。図３Ｂを参照すると、宛先ノードに対する配送確率およびその配送確率を送信したノードおよびその配送確率の有効期限が登録されている。例えば、ノードＸに対しては２つのノードから配送確率を受信しており、１つは配送確率が「０．４」で、送信したノードはノードＢ、有効期限は「２００８年８月１８日１７時１０分４９．５００秒」であり、もう１つは配送確率が「０．１」で、送信したノードはノードＣ、有効期限は「２００８年８月１８日１７時１１分１０．０００秒」であることがわかる。
【００６５】
図２における経路計算部１６５は、図３Ａおよび図３Ｂに示したような配送確率データベース１６２を参照して、各宛先ノードに対する次ホップノードを決定する。基本的には、配送確率データベース１６２中で、宛先ノードへの配送確率を比較し、最も配送確率が大きいものを次ホップノードとして決定する。
【００６６】
例えば、自ノードが計算した配送確率データベース１６２ａおよび他ノードから受信した配送確率データベース１６２ｂが図３Ａおよび図３Ｂに示すようなものであるとする。この場合、経路計算部１６５は、以下のようにして、各宛先ノードに対する次ホップノードを決定し、図４に示すように、ルーティングテーブル１５２に、ルーティングエントリを登録する。
【００６７】
まず、宛先ノードがノードＸである場合、図３Ａの自ノードが計算した配送確率データベース１６２ａおよび図３Ｂの他ノードから受信した配送確率データベース１６２ｂを参照すると、配送確率データベース１６２ａに登録されているノードＸへの配送確率は「０．６」、配送確率データベース１６２ｂに登録されているノードＸへの配送確率は「０．４」と「０．１」である。したがって、配送確率データベース１６２ａに登録されている「０．６」が最も大きい配送確率である。このため、経路計算部１６５は、図４に示すように、その配送確率を計算した自ノード（ノードＡ）を次ホップノードとしてルーティングテーブル１５２として登録する。
【００６８】
また、宛先ノードがノードＹである場合、図３Ａの配送確率データベース１６２ａに登録されているノードＹへの配送確率は「０．２」、図３Ｂの配送確率データベース１６２ｂに登録されているノードＹへの配送確率は「０．５」である。したがって、配送確率データベース１６２ｂに登録されている「０．５」が最も大きい配送確率である。
このため、経路計算部１６５は、図４に示すように、その配送確率を計算したノードであるノードＣを次ホップノードとしてルーティングテーブル１５２に登録する。同様に、経路計算部１６５は、ノードＺ，Ｗに対しては、それぞれ、図４に示すように、ノードＡ，ノードＢを次ホップノードとしてルーティングテーブル１５２に登録する。
【００６９】
図４は、ルーティングテーブル１５２に登録されるエントリの例を示すものである。
【００７０】
例えば、ルーティングテーブル１５２がノードＡのテーブルであるとすると、図４に示すように、ルーティングテーブル１５２には、各宛先ノードごとに、次ホップノードとその次ホップノードに対応するＩＰアドレスである次ホップＩＰアドレスが登録される。
【００７１】
例えば、宛先ノードＸおよび宛先ノードＺに対しては、次ホップノードは自ノードであるノードＡで、次ホップＩＰアドレスは「１０．０．０．１」であることがわかる。また、宛先ノードＹに対しては、次ホップノードはノードＣで、次ホップＩＰアドレスは「１０．０．０．３」であり、ノードＷに対しては、次ホップノードはノードＢで次ホップＩＰアドレスは「１０．０．０．２」であることがわかる。宛先ノードがノードＸまたはノードＺであるバンドルに対しては、そのバンドルを他の隣接ノードへ転送せずに蓄積保持する。
【００７２】
図５は、本発明の第１の実施形態の通信ネットワークシステム１０１において、ノードＡが配送確率を隣接ノードに送信する際の動作を示すフローチャートである。
【００７３】
まず、ノードＡにおいて、配送確率計算部１６１で、配送確率を計算する（ステップＳ１）。そして、配送確率計算部１６１は、既に同一宛先ノードに対する配送確率が配送確率データベース１６２に登録されているかどうかを調べ（ステップＳ２）、同一宛先ノードに対する配送確率が登録されている場合、配送確率データベース１６２の既存エントリにおける配送確率を更新し（ステップＳ３）、同一宛先ノードに対する配送確率が登録されていない場合は、配送確率を新規登録する（ステップＳ４）。
【００７４】
経路計算部１６５は、最大の配送確率を計算したノードを、宛先ノードに対する次ホップノードとして設定する。ここで、最大の配送確率を計算したノードが自ノードであれば、経路計算部１６５は、自ノードを次ホップノードとして設定する（ステップＳ５）。配送確率交換部１６３は、隣接ノードに配送確率と宛先ノードに対するホップノードを含むＳＶメッセージをブロードキャストで送信する（ステップＳ６）。これらの処理は、コンピュータのソフトウェアにより実現できる。
【００７５】
図６は、本発明の第１の実施形態において、ノードＡが配送確率を隣接ノードから受信した際の動作を示すフローチャートである。
【００７６】
まず、ノードＡにおいて、配送確率交換部１６３が隣接ノードから配送確率のリストと宛先ノードに対する次ホップノードを含むＳＶメッセージを受信する（ステップＳ１０１）。配送確率交換部２６３は受信した配送確率のリストを配送確率受付判断部１６４へ渡す。
【００７７】
次に、配送確率受付判断部１６４は、ステップＳ１０１で受信した配送確率のそれぞれに対して、その配送確率を配送確率データベース１６２へ登録するかどうかの判断を行う。配送確率受付判断部１６４は、配送確率と対になって送信された次ホップノードを参照し、次ホップノードが自ノードと同一であるかを調べる（ステップＳ１０２）。
【００７８】
ステップＳ１０２において、次ホップノードが自ノードと同一ではない場合、配送確率受付判断部１６４は、既に同じノードから同一宛先ノードに対する配送確率が配送確率データベース１６２に登録されているかどうかを調べる（ステップＳ１０３）。
【００７９】
ステップＳ１０３において、既に同一のノードから同一宛先ノードに対する配送確率が登録されている場合、配送確率受付判断部１６４は、配送確率データベース１６２の既存エントリにおける配送確率および次ホップノードを更新する（ステップＳ１０４）。また、ステップＳ１０３において、まだ同一のノードから同一宛先ノードに対する配送確率が登録されていない場合は、配送確率受付判断部１６４は、配送確率データベース１６２に受信した配送確率および次ホップノードを新規登録する（ステップＳ１０５）。
【００８０】
ステップＳ１０２において、次ホップノードが自ノードと同一である場合、配送確率受付判断部１６４は、既に同じノードから同一宛先ノードに対する配送確率が登録されているかどうかを調べる（ステップＳ１０６）。
【００８１】
ステップＳ１０６において、既に同一のノードから同一宛先ノードに対する配送確率が登録されている場合、配送確率受付判断部１６４は、配送確率データベース１６２の既存エントリを削除する（ステップＳ１０７）。また、ステップＳ１０６において、まだ同一のノードから同一宛先ノードに対する配送確率が登録されていない場合は、配送確率受付判断部１６４は、ステップＳ１０１で受信した配送確率を無視し（ステップＳ１０８）、終了する。
【００８２】
ステップＳ１０４、Ｓ１０５、Ｓ１０７の後、これらのステップにより配送確率の更新／登録／削除が行われた結果、宛先ノードに対する最大の配送確率は変化したかどうかを調べる（ステップＳ１０９）。
【００８３】
ステップＳ１０９において、変化があった場合、経路計算部１６５は、最大の配送確率を計算したノードを、宛先ノードに対する次ホップノードとして設定する。ここで、最大の配送確率を計算したノードが自ノードであれば、経路計算部１６５は、自ノードを次ホップノードとして設定する（ステップＳ１１０）。これらの処理は、コンピュータのソフトウェアにより実現できる。
【００８４】
例えば、図７に示すように、ノードＡとノードＢとのメッセージの送受信を行ったとする。ここでは、ノードＡ、Ｂは、自ノードが計算した配送確率と同時に、そのノードに対する次ホップノードを一緒に送信している。
【００８５】
図４では、ノードＢがＳＶメッセージ「Ｐ（Ｙ）＝０．５，Ｎ（Ｙ）＝Ａ」を送信している（メッセージＭ１）。このＳＶメッセージＭ１中、「Ｐ（Ｙ）＝０．５」は、ノードＹへの配送確率が「０．５」であることを示している。また、「Ｎ（Ｙ）＝Ａ」は、そのノード（ノードＹ）に対する次ホップノードがノードＡであることを示している。このメッセージを受信したノードＡは、配送確率と対になって送信されている次ホップノードがＮ（Ｙ）＝Ａとなっており、自ノードと同一である判断する。よって、この配送確率は、ノードＡの配送確率データベース１６２には登録されない。
【００８６】
これに対して、ノードＢが送信したその他のＳＶメッセージ「Ｐ（Ｘ）＝０．８，Ｎ（Ｘ）＝Ｂ」（メッセージＭ２）、「Ｐ（Ｚ）＝０．１，Ｎ（Ｚ）＝Ｂ」（メッセージＭ３）は、次ホップノードＮ（Ｘ），Ｎ（Ｚ）がノードＡではないため、ノードＡの配送確率データベース１６２に登録される。
【００８７】
上述のように、本発明の第１の実施形態では、各ノードＡ〜Ｚは、宛先ノードへの配送確率を計算し、隣接ノードに対して配送確率を互いに交換する際に、各ノードＡ〜Ｚが計算した宛先ノードへの配送確率を送信すると同時に、その宛先ノードに対する次ホップノードを一緒に送信している。そして、各ノードＡ〜Ｚでは、宛先ノードへの配送確率およびそのノードに対する次ホップノードを受信すると、次ホップノードが自ノードと同一であるかを調べ、次ホップノードと自ノードとが同一の場合には、配送確率データベース１６２に登録しないようにしている。これにより、配送確率を隣接ノードへ送信するためのメッセージをロスした場合でも、ルーティングループの発生が防止できる。このことについて、図８に示す例を参照しながら示す。
【００８８】
図８を参照すると、互いに隣接しているノードＡとノードＢが示されている。ノードＡとノードＢはそれぞれ、定期的に、配送確率と次ホップノードを含むＳＶメッセージを送信している。ここでは、宛先ノードＸにバンドルを送る場合について説明する。
【００８９】
まず初期状態として、時刻Ｔ０において、ノードＡにおけるノードＸへの配送確率は「０．７」であると計算されており、また、他のノードから受信した配送確率はないものとする。したがって、時刻Ｔ０においてノードＡにおけるノードＸ宛てのバンドルを転送するための次ホップは、自ノードであるノードＡと設定される。
【００９０】
また、同じ時刻Ｔ０において、ノードＢでは、ノードＸへの配送確率は「０．５」であると計算されており、また、他のノードから受信した配送確率はないものとする。したがって、時刻Ｔ０においてノードＢにおけるノードＸ宛てのバンドルを転送するための次ホップは、自ノードであるノードＢと設定される。
【００９１】
次に、時刻Ｔ１において、ノードＡにおいてノードＸへの配送確率が再計算され、「０．７」から「０．６」へ更新されるものとする。更新された配送確率は、直ちにＳＶメッセージによってノードＢを含む隣接ノードへブロードキャストされる。ここで、配送確率Ｐ（Ｘ）と一緒にノードＡにおけるノードＸへの次ホップノードＮ（Ｘ）も送信される。
すなわち、「Ｐ（Ｘ）＝０．６，Ｎ（Ｘ）＝Ａ」がノードＡから送信される（メッセージＭ１０１）。
【００９２】
ノードＢは時刻Ｔ１において、ノードＡからノードＸへの更新された配送確率を含むメッセージＭ１０１受信すると、その配送確率を配送確率データベース１６２へ登録するかどうかを判断するため、対になって送信されたノードＸへの次ホップノードが自ノードと同一であるかを調べる。調べた結果、Ｎ（Ｘ）＝Ａであり自ノード（ノードＢ）と同一ではないため、受信した配送確率の値である「０．６」と、その配送確率を送信したノードであるノードＡを配送確率データベース１６２へ登録する。すなわち、図８では、「０．６（Ａ）」と登録されている。同時に、ノードＢが計算した配送確率「０．５」と、ノードＡから受信した配送確率「０．６」とを比較し、「０．６」の方が大きいため、この配送確率を送信したノードであるノードＡを、ノードＸへの次ホップとして設定する。実際には、ノードＡ以外の隣接ノードから受信した配送確率も比較するが、この例では簡単のために、ノードＢにはノードＡだけから配送確率を受信しているものとして説明する。
【００９３】
次に、時刻Ｔ２において、ノードＢにおいてノードＸへの配送確率が再計算され、「０．５」から「０．４」へ更新されるものとする。更新後、計算した配送確率「０．４」と、受信した配送確率「０．６」とを比較し、「０．６」の方が大きいため、ノードＸへの次ホップはノードＡのままにする。更新された配送確率は、ノードＢから、直ちにＳＶメッセージによってノードＡを含む隣接ノードへブロードキャストされる。ここで、配送確率Ｐ（Ｘ）と一緒にノードＢにおけるノードＸへの次ホップノードＮ（Ｘ）も送信される。すなわち、ノードＢからは、「Ｐ（Ｘ）＝０．４，Ｎ（Ｘ）＝Ａ」が送信される（メッセージＭ１０２）。
【００９４】
ノードＡは時刻Ｔ２において、ノードＢからノードＸへの更新された配送確率を含むメッセージＭ１０２を受信すると、その配送確率を配送確率データベース１６２へ登録するかどうかを判断するため、対になって送信されたノードＸへの次ホップノードが自ノードと同一であるかを調べる。調べた結果、「Ｎ（Ｘ）＝Ａ」であり自ノード（ノードＡ）と同一であるため、受信した配送確率は配送確率データベース１６２へ登録しないと判断する。
【００９５】
次に、時刻Ｔ３において、ノードＡにおいてノードＸへの配送確率が再計算され、「０．６」から「０．２」へ更新されるものとする。そして、ノードＡは、時刻Ｔ１における動作と同様に、更新された配送確率をＳＶメッセージによってブロードキャストする。すなわち、ノードＡからは、「Ｐ（Ｘ）＝０．２，Ｎ（Ｘ）＝Ａ」が送信される（メッセージＭ１０３）。しかしながら、ここで、ノードＢは何らかの原因により、このメッセージＭ１０３を受信できなかったとする。
【００９６】
時刻Ｔ３において、ノードＡが送信したＳＶメッセージ（メッセージＭ１０３）をノードＢが受信できなかった場合、ノードＢでは何も状態が変化しないため、ノードＸへの次ホップ設定はノードＡのままとなる。
【００９７】
次に、時刻Ｔ４において、ノードＢにおいてノードＸへの配送確率が再計算され、「０．４」から「０．３」へ更新されるものとする。更新された配送確率は、ノードＢから、直ちにＳＶメッセージによってノードＡを含む隣接ノードへブロードキャストされる。ここで、配送確率Ｐ（Ｘ）と一緒にノードＢにおけるノードＸへの次ホップノードＮ（Ｘ）も送信される。すなわち、ノードＢからは、「Ｐ（Ｘ）＝０．３，Ｎ（Ｘ）＝Ａ」が送信される（メッセージＭ１０４）。
【００９８】
ノードＡは時刻Ｔ４において、ノードＢからノードＸへの更新された配送確率を含むメッセージＭ１０４を受信すると、その配送確率を配送確率データベース１６２へ登録するかどうかを判断するため、対になって送信されたノードＸへの次ホップノードが自ノードと同一であるかを調べる。調べた結果、「Ｎ（Ｘ）＝Ａ」であり自ノード（ノードＡ）と同一であるため、受信した配送確率は配送確率データベース１６２へ登録しないと判断する。
【００９９】
次に、時刻Ｔ５において、ノードＡにおいてノードＸへの配送確率が再計算され、「０．２」から「０．１」へ更新されるものとする。そしてノードＡは、更新された配送確率をＳＶメッセージによってブロードキャストする。ここで、配送確率Ｐ（Ｘ）と一緒にノードＡにおけるノードＸへの次ホップノードＮ（Ｘ）も送信される。すなわち、「Ｐ（Ｘ）＝０．１，Ｎ（Ｘ）＝Ａ」がノードＡから送信される（メッセージＭ１０５）。時刻Ｔ５で送られたメッセージＭ１０５は正常にノードＢが受信できたものとする。
【０１００】
ノードＢは時刻Ｔ５において、ノードＡからノードＸへの更新された配送確率を含むＳＶメッセージ（メッセージＭ１０５）を受信すると、その配送確率を配送確率データベース１６２へ登録するかどうかを判断するため、対になって送信されたノードＸへの次ホップノードが自ノードと同一であるかを調べる。調べた結果、「Ｎ（Ｘ）＝Ａ」であり自ノード（Ｂ）と同一ではないため、受信した配送確率の値である「０．１」と、その配送確率を送信したノードであるＡを配送確率データベース１６２へ登録する。すなわち、図８では０．１（Ａ）と登録されている。同時に、ノードＢが計算した配送確率「０．３」と、受信した配送確率「０．１」とを比較し、「０．３」の方が大きいため、自ノードであるノードＢを、ノードＸへの次ホップとして設定する。
【０１０１】
以上の例は、時刻Ｔ０以降いずれの時間においてもノードＡとノードＢとの間でルーティングループ状態が発生していない。これは、受信した配送確率を登録するかしないかの判断を、一緒に受信した配送確率に対応する次ホップノードに基づいて行っているため、２ノード間のループが起こる可能性のあるノードを次ホップノードとして設定する可能性をなくしているからである。
【０１０２】
以上説明したように、本発明の第１の実施形態によれば、配送確率を送信するノードは、隣接ノードへ配送確率を送信する際に、一緒に対応する宛先ノードに対する次ホップノードを送信し、配送確率を受信したノードは、受信した次ホップノードが自ノードと同一であるかを調べ、同一である場合は受信した配送確率を登録しないことにより、対応する宛先ノードへの次ホップノードとして該配送確率を送信したノードが選択されないようにしている。このため、配送確率に基づくルーティング方法において、２ノード間のルーティングループを防止することができる。
【０１０３】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。前述の第１の実施の形態では、２ノード間のルーティングループを防止するのに有効であったが、３ノード以上のルーティングループは防止することができなかった。これに対して、この実施形態は、３ノード以上のルーティングループを防止できるようにしている。
【０１０４】
本発明の第２の実施形態のシステムは、図１に示した前述の第１の実施形態の通信ネットワークシステム１０１と同様に、ノードＡ、ノードＢ、ノードＣ、…、ノードＷ、ノードＸ、ノードＹ、ノードＺから構成されている。
【０１０５】
図９は、本発明の第２の実施形態のノードＡ〜Ｚの構成を示すものである。本発明の第２の実施形態においては、各ノードＡ〜Ｚは、確率ルーティングプロトコル部２５１と、ルーティングテーブル２５２と、ＤＴＮ転送部２５３と、ＴＣＰ／ＩＰ転送部２５４とから構成される。
【０１０６】
確率ルーティングプロトコル部２５１は、配送確率計算部２６１と、配送確率データベース（ＤＢ）２６２と、配送確率交換部２６３と、配送確率受付判断部２６４と、経路計算部２６５と、ＭＡＮＥＴルーティングプロトコル２６６とから構成される。
【０１０７】
ＤＴＮ転送部２５３、ＴＣＰ／ＩＰ転送部２５４の機能については、前述の第１の実施形態におけるＤＴＮ転送部１５３、ＴＣＰ／ＩＰ転送部１５４と同様であるため、その説明は省略する。また、確率ルーティングプロトコル部２５１における、配送確率計算部２６１、配送確率データベース（ＤＢ）２６２は、前述の第１の実施形態の確率ルーティングプロトコル部１５１における、配送確率計算部１６１と、配送確率データベース（ＤＢ）１６２と同様であるため、その説明は省略する。
【０１０８】
配送確率交換部２６３は、第１の実施形態における配送確率交換部１６３のもつ配送確率を送受信する機能において、配送確率と共に、対応するルーティングテーブル２５２における次ホップノード列を一緒に送信する。次ホップノード列とは、自ノードから宛先ノードまでの転送経路における自ノードからｎホップ目（ｎ＝整数）までのノードを列挙したリストである。例えば、ノードＡからノードＸまでの転送経路が、ノードＡ，ノードＢ、ノードＤ、ノードＥ、ノードＸの順であり、ホップ数ｎが（ｎ＝２）である場合、次ホップノード列は、ノードＡから２ホップ目までのノードである、ノードＢ，ノードＤとなる。
【０１０９】
図１０は、配送確率交換部２６３によって送信される配送確率および次ホップノード列のリストの例を示すものである。
【０１１０】
図１０を参照すると、ノードＡとノードＢとノードＣが互いに隣接しており、ノードＡ、ノードＢ、ノードＣから配送確率および次ホップノード列のリストがブロードキャストされている。この例では、ノードＸ，Ｙ，Ｚへの配送確率Ｐ（Ｘ），Ｐ（Ｙ），Ｐ（Ｚ）と次ホップノード列Ｎ（Ｘ），Ｎ（Ｙ），Ｎ（Ｚ）とがそれぞれ対になって送信されている。ここで、次ホップノードが自ノードの場合は、２ホップ目のノードはないので、自ノードであるＡだけが自ノード列として入れられる。
【０１１１】
配送確率受付判断部２６４は、第１の実施形態における配送確率受付判断部１６４と同様に、隣接ノードから受信した配送確率を配送確率データベース２６２における他ノードから受信した配送確率として登録するかどうかを判断する機能を備える。配送確率受付判断部２６４は、この判断基準として、配送確率交換部２６３が配送確率と対で受信した次ホップノード列に自ノードが含まれる場合は登録しない、という基準を用いる。
【０１１２】
配送確率を送受信する機能において、例えば図１０では、ノードＢが配送確率「Ｐ（Ｙ）＝０．５」を送信しているが（メッセージＭ２０１）、このメッセージを受信したノードＡは、その配送確率と対になって送信されている次ホップノード列が「Ｎ（Ｙ）＝Ａ−Ｆ」となっており、自ノードが含まれているため、その配送確率を配送確率データベース２６２へ登録しない。ノードＢはまた、配送確率「Ｐ（Ｚ）＝０．１」を送信しているが（メッセージＭ２０２）、このメッセージを受信したノードＣは、その配送確率と対になって送信されている次ホップノード列が「Ｎ（Ｚ）＝ノードＥ−Ｃ」となっており、自ノード（ノードＣ）が含まれているため、その配送確率を配送確率データベース２６２へ登録しない。
【０１１３】
同様にして、ノードＡが送信した配送確率「Ｐ（Ｙ）＝０．２」（メッセージＭ２０３），Ｐ（Ｚ）＝０．３（メッセージＭ２０４）はそれぞれノードＣ，ノードＢにおいて配送確率データベース２６２へ登録されない。また、ノードＣが送信した配送確率「Ｐ（Ｘ）＝０．３」（メッセージＭ２０５）はノードＡおよびノードＢにおいて配送確率データベースへ登録されない。
【０１１４】
ＭＡＮＥＴルーティングプロトコル２６６は、各宛先ノードに対する次ホップノード列を計算し、ルーティングテーブル２５２へ登録する。ＭＡＮＥＴルーティングプロトコル２６６で動作するルーティングプロトコルの例として、ＯＬＳＲが挙げられる。ＯＬＳＲは、リンクステート型のルーティングプロトコルであるため、次ホップノード列の計算を行うことが可能である。
【０１１５】
また、ＭＡＮＥＴルーティングプロトコル２６６によってルーティングテーブル２５２に登録されるエントリと、経路計算部２６５によって登録されるエントリが競合する場合、エンド−エンド間の経路であるＭＡＮＥＴルーティングプロトコル２６６によって登録されるエントリを優先するのが一般的である。
【０１１６】
ルーティングテーブル２５２は、図４に示したルーティングテーブル１５２と比べて、宛先ノードに対する次ホップではなく、次ホップノード列が登録され、宛先ノードに対する次ホップＩＰアドレスではなく、次ホップＩＰアドレス列が登録される点が異なる。図１１にルーティングテーブル２５２に登録されるエントリの例を示す。
【０１１７】
図１１のルーティングテーブル２５２を参照すると、宛先ノードＹに対しては、次ホップノード列はノードＣ、ノードＤの順であり、次ホップＩＰアドレスは、「１０．０．０．３」、「１０．０．０．４」の順であることがわかる。同様にして、宛先Ｚに対しては、次ホップノード列はノードＢ、ノードＥの順であり、次ホップＩＰアドレスは、「１０．０．０．２」、「１０．０．０．５」の順であることがわかる。
【０１１８】
図１２は、本発明の第２の実施形態において、ノードＡが配送確率を隣接ノードに送信する際の動作を示すフローチャートである。
【０１１９】
まず、ノードＡにおいて、配送確率計算部２６１で、配送確率を計算する（ステップＳ２０１）。そして、配送確率計算部２６１は、既に同一宛先ノードに対する配送確率が配送確率データベース２６２に登録されているかどうかを調べ（ステップＳ２０２）、同一宛先ノードに対する配送確率が登録されている場合、配送確率データベース２６２の既存エントリにおける配送確率を更新し（ステップＳ２０３）、同一宛先ノードに対する配送確率が登録されていない場合は、配送確率を新規登録する（ステップＳ２０４）。
【０１２０】
経路計算部２６５は、最大の配送確率を計算したノードを、宛先ノードに対する次ホップノードとして設定する。ここで、最大の配送確率を計算したノードが自ノードであれば、経路計算部２６５は、自ノードを次ホップノードとして設定する（ステップＳ２０５）。配送確率交換部２６３は、隣接ノードに配送確率と宛先ノードに対する次ホップノード列を含むＳＶメッセージをブロードキャストで送信する（ステップＳ２０６）。これらの処理は、コンピュータのソフトウェアにより実現できる。
【０１２１】
図１３は、本発明の第２の実施の形態においてノードが配送確率を隣接ノードから受信した際の動作を示すフローチャートである。
【０１２２】
まず、各ノードにおいて、配送確率交換部２６３が隣接ノードから配送確率のリストと宛先ノードに対する次ホップノード列を含むＳＶメッセージを受信する（ステップＳ３０１）。配送確率交換部２６３は受信した配送確率のリストを配送確率受付判断部２６４へ渡す。
【０１２３】
次に、配送確率受付判断部２６４は、ステップＳ３０１で受信した配送確率のそれぞれに対して、その配送確率を配送確率データベース２６２へ登録するかどうかの判断を行う。配送確率と対になって送信された次ホップノード列を参照し、その次ホップノード列に自ノードが含まれるかどうかを調べる（ステップＳ３０２）。
【０１２４】
ステップＳ３０２において、次ホップノード列に自ノードが含まれていない場合、既に同じノードから同一宛先ノードに対する配送確率が配送確率データベース２６２に登録されているかどうかを調べる（ステップＳ３０３）。
【０１２５】
ステップＳ３０３において、既に同一のノードから同一宛先ノードに対する配送確率が登録されている場合、配送確率受付判断部２６４は、配送確率データベース２６２の既存エントリにおける配送確率および次ホップノードを更新する（ステップＳ３０４）。また、ステップＳ３０３において、まだ同一のノードから同一宛先ノードに対する配送確率が登録されていない場合は、配送確率受付判断部２６４は、配送確率データベース２６２に受信した配送確率および次ホップノードを新規登録する（ステップＳ３０５）。
【０１２６】
ステップＳ３０２において、次ホップノード列に自ノードが含まれている場合、既に同じノードから同一宛先ノードに対する配送確率が登録されているかどうかを調べる（ステップＳ３０６）。
【０１２７】
ステップＳ３０６において、既に同一のノードから同一宛先ノードに対する配送確率が登録されている場合、配送確率受付判断部２６４は、配送確率データベース２６２の既存エントリを削除する（ステップＳ３０７）。また、ステップＳ３０６において、まだ同一のノードから同一宛先ノードに対する配送確率が登録されていない場合は、配送確率受付判断部２６４は、ステップＳ３０１で受信した配送確率を無視し（ステップＳ３０８）、終了する。
【０１２８】
ステップＳ３０４、Ｓ３０５、Ｓ３０７の後、これらのステップにより配送確率の更新／登録／削除が行われた結果、宛先ノードに対する最大の配送確率は変化したかどうかを調べる（ステップＳ３０９）。
【０１２９】
ステップＳ３０９において、変化があった場合、経路計算部２６５は、最大の配送確率を計算したノードを、宛先ノードに対する次ホップノードとして設定する。ここで、最大の配送確率を計算したノードが自ノードであれば、経路計算部２６５は、自ノードを次ホップノードとして設定する（ステップＳ３１０）。これらの処理は、コンピュータのソフトウェアにより実現できる。
【０１３０】
この実施形態では、配送確率交換部２６３が、配送確率を送信する際に、一緒に対応する宛先ノードに対する次ホップノード列を送信する。また配送確率を受信したノードは、配送確率受付判断部２６４が一緒に受信した次ホップノード列に自ノードが含まれるかどうかを調べ、含まれている場合は受信した配送確率を配送確率データベース２６２に登録しないことにより、経路計算部２６５によって対応する宛先ノードへの次ホップノードとしてその配送確率を送信したノードが選択されないようにする。
【０１３１】
このようにすることにより、ループが起こる可能性のあるノードを次ホップノードとして設定することがなくなる。
【０１３２】
前述の第１の実施の形態では、２ノード間のルーティングループを防止するのに有効であったが、３ノード以上のルーティングループは防止することができなかった。これに対して、この実施形態では、３ノード以上のルーティングループは防止することができる。
【０１３３】
具体的には、配送確率交換部２６３が送信する次ホップノード列でｎホップ目までのノードを送信する場合、（ｎ＋１）ノード間のループを防止することができ、ｎの値を変更することで任意の数のノード間でのループを防止することが可能になる。例えば、ｎ＝２として２ホップ目までの次ホップノード列を送信する場合は、３ノード間までのループを防止することができる。
【０１３４】
本発明の第２の実施形態によれば、配送確率を送信するノードは、隣接ノードへ配送確率を送信する際に、対応する宛先ノードに対する次ホップノード列を送信し、配送確率を受信したノードは、受信した次ホップノード列に自ノードが含まれるかどうかを調べ、含まれる場合は受信した配送確率を登録しないことにより、対応する宛先ノードへの次ホップノードとして該配送確率を送信したノードが選択されないようにしているので、配送確率に基づくルーティング方法において、任意の数のノード間のルーティングループを防止することができる。また、次ホップノード列の送信において、何ホップ目までのノードを送信するかを変更することによって、防止する対象となるルーティングループのノード数を調整することができる。
【０１３５】
本発明は、上述の実施形態に限定されず、本発明の主旨を逸脱しない範囲で、適宜修正や変更が可能である。
【産業上の利用可能性】
【０１３６】
本発明は、自ノードおよび隣接ノードにおいて計算された宛先ノードへの配送確率に基づいて、データを転送する際の経路を決定するネットワーク通信システム等に適用可能である。
【符号の説明】
【０１３７】
１０１    通信ネットワークシステム
１５１    確率ルーティングプロトコル部
１５２    ルーティングテーブル
１５３    ＤＴＮ転送部
１５４    ＴＣＰ／ＩＰ転送部
１６１    配送確率計算部
１６２    配送確率データベース
１６３    配送確率交換部
１６４    配送確率受付判断部
１６５    経路計算部
２５１    確率ルーティングプロトコル部
２５２    ルーティングテーブル
２５３    ＤＴＮ転送部
２５４    ＴＣＰ／ＩＰ転送部
２６１    配送確率計算部
２６２    配送確率データベース
２６３    配送確率交換部
２６４    配送確率受付判断部
２６５    経路計算部
２６６    ＭＡＮＥＴルーティングプロトコル
【図１】
2010047024.tif 000003
【図２】
2010047024.tif 000004
【図３Ａ】
2010047024.tif 000005
【図３Ｂ】
2010047024.tif 000006
【図４】
2010047024.tif 000007
【図５】
2010047024.tif 000008
【図６】
2010047024.tif 000009
【図７】
2010047024.tif 000010
【図８】
2010047024.tif 000011
【図９】
2010047024.tif 000012
【図１０】
2010047024.tif 000013
【図１１】
2010047024.tif 000014
【図１２】
2010047024.tif 000015
【図１３】
2010047024.tif 000016
【図１４】
2010047024.tif 000017
【国際調査報告】
2010047024.tif 000018
2010047024.tif 000019
2010047024.tif 000020