(57)【特許請求の範囲】
【請求項１】
通信範囲内にある他のノードを検出し、検出した他のノードとデータ通信を行う通信部と、
前記通信部が検出して直接通信可能となった他のノードである直接ノードを示す情報と、当該直接ノードを介して間接的に通信可能となった間接ノードへ至るルートを示す情報と、当該直接ノードまたは当該間接ノードとの通信の確実性の度合いを示す遭遇確度とを含む経路データを記録する経路記録部と、
前記通信部が他のノードを検出したとき、当該他のノードが前記経路データの前記直接ノードおよび前記間接ノードへ至るルート上のノードと合致する場合に、前記他のノードと合致した前記直接ノードの遭遇確度を用いて前記直接ノードおよび前記間接ノードの遭遇確度を補正することにより、前記経路データを更新する経路更新部と、
前記経路更新部により更新された前記経路データの前記直接ノードおよび前記間接ノードの遭遇確度を用いて前記他のノードへデータを送信するか否かを制御する送信制御部と
を備えたことを特徴とするデータ転送装置。
【請求項２】
前記経路更新部は、前記経路データを更新した後、前記通信部が前記他のノードを検出しなくなると、更新後の前記経路データを前記経路記録部から削除することを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
転送すべきコンテンツデータを当該コンテンツデータの宛先ノードを示す情報と対応付けて蓄積するコンテンツデータ記録部をさらに備え、
前記送信制御部は、前記通信部が前記他のノードを検出すると、当該他のノードが前記コンテンツデータの宛先ノードである場合か、あるいは、前記経路データの前記間接ノードに前記宛先ノードが含まれる場合に、当該他のノードへ前記コンテンツデータを送信することを特徴とする請求項１または２に記載のデータ転送装置。
【請求項４】
前記経路更新部は、前記通信部が他のノードを検出したとき、当該他のノードが前記経路データにおける同一の前記間接ノードへ至る複数のルート上のノードと合致する場合に、当該他のノードと合致したノードを含む前記複数のルートで間接的に通信可能となった前記間接ノードの遭遇確度を用いて、前記複数のルートのうちいずれか一つのルートで間接的に通信可能となる前記間接ノードの遭遇確度を算出することにより、前記経路データを更新し、
前記送信制御部は、前記経路更新部により更新された前記経路データの前記直接ノードおよび前記間接ノードの遭遇確度を用いて前記他のノードへデータを送信するか否かを制御することを特徴とする請求項１〜３のいずれか一つに記載のデータ転送装置。
【請求項５】
前記経路更新部は、前記通信部が他のノードを検出したとき、当該他のノードが前記経路データにおける同一の前記間接ノードへ至る複数のルート上のノードと合致する場合に、当該他のノードと合致したノードを含む前記複数のルートで間接的に通信可能となった前記間接ノードの遭遇確度のうち所定値を超える遭遇確度を用いて、前記複数のルートのうちいずれか一つのルートで間接的に通信可能となる前記間接ノードの遭遇確度を算出することを特徴とする請求項４に記載のデータ転送装置。
【請求項６】
前記経路更新部は、前記通信部が他のノードを検出したとき、当該他のノードが前記経路データにおける同一の前記間接ノードへ至る複数のルート上のノードと合致する場合に、当該他のノードと合致したノードを含む前記複数のルートで間接的に通信可能となった前記間接ノードの遭遇確度を用いて、前記複数のルートのうちいずれか一つのルートで間接的に通信可能となる前記間接ノードの遭遇確度を算出するとともに、当該他のノードと合致したノードを含む前記複数のルートに関する情報を前記経路データから削除することを特徴とする請求項４または５に記載のデータ転送装置。
【請求項７】
前記経路更新部は、前記経路データから削除した前記複数のルートの情報を前記送信制御部へ通知し、
前記送信制御部は、前記複数のルートの情報を前記データに付加して前記他のノードへ送信することを特徴とする請求項６に記載のデータ転送装置。
【請求項８】
通信範囲内にある他のノードを検出し、検出した他のノードと通信を行うデータ転送装置が実行するデータ転送方法であって、
直接通信可能となった他のノードである直接ノードを示す情報と、当該直接ノードを介して間接的に通信可能となった間接ノードへ至るルートを示す情報と、当該直接ノードまたは当該間接ノードとの通信の確実性の度合いを示す遭遇確度とを含む経路データを経路記録部に記録し、
前記データ転送装置が他のノードを検出したとき、当該他のノードが前記経路データの前記直接ノードおよび前記間接ノードへ至るルート上のノードと合致する場合に、前記他のノードと合致した前記直接ノードの遭遇確度を用いて前記直接ノードおよび前記間接ノードの遭遇確度を補正することにより、前記経路データを更新し、
更新された前記経路データの前記直接ノードおよび前記間接ノードの遭遇確度を用いて前記他のノードへデータを送信するか否かを制御する
ことを特徴とするデータ転送方法。
【請求項９】
前記データ転送装置が他のノードを検出したとき、当該他のノードが前記経路データにおける同一の前記間接ノードへ至る複数のルート上のノードと合致する場合に、当該他のノードと合致したノードを含む前記複数のルートで間接的に通信可能となった前記間接ノードの遭遇確度を用いて、前記複数のルートのうちいずれか一つのルートで間接的に通信可能となる前記間接ノードの遭遇確度を算出することにより、前記経路データを更新し、
更新された前記経路データの前記直接ノードおよび前記間接ノードの遭遇確度を用いて前記他のノードへデータを送信するか否かを制御する
ことを特徴とする請求項８に記載のデータ転送方法。
【請求項１０】
通信範囲内にある他のノードを検出し、検出した他のノードと通信を行うデータ転送装置に、
直接通信可能となった他のノードである直接ノードを示す情報と、当該直接ノードを介して間接的に通信可能となった間接ノードへ至るルートを示す情報と、当該直接ノードまたは当該間接ノードとの通信の確実性の度合いを示す遭遇確度とを含む経路データを経路記録部に記録し、
前記データ転送装置が他のノードを検出したとき、当該他のノードが前記経路データの前記直接ノードおよび前記間接ノードへ至るルート上のノードと合致する場合に、前記他のノードと合致した前記直接ノードの遭遇確度を用いて前記直接ノードおよび前記間接ノードの遭遇確度を補正することにより、前記経路データを更新し、
更新された前記経路データの前記直接ノードおよび前記間接ノードの遭遇確度を用いて前記他のノードへデータを送信するか否かを制御する
処理を実行させることを特徴とするデータ転送プログラム。
【請求項１１】
前記データ転送装置が他のノードを検出したとき、当該他のノードが前記経路データにおける同一の前記間接ノードへ至る複数のルート上のノードと合致する場合に、当該他のノードと合致したノードを含む前記複数のルートで間接的に通信可能となった前記間接ノードの遭遇確度を用いて、前記複数のルートのうちいずれか一つのルートで間接的に通信可能となる前記間接ノードの遭遇確度を算出することにより、前記経路データを更新し、
更新された前記経路データの前記直接ノードおよび前記間接ノードの遭遇確度を用いて前記他のノードへデータを送信するか否かを制御する
ことを特徴とする請求項１０に記載のデータ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、データ転送方法およびデータ転送プログラムに関する。
【背景技術】
【０００２】
従来、ノード間の物理的なリンクが常に存在するとは限らない通信環境において信頼性が高いデータ転送を実現するネットワーク制御方式として、ＤＴＮ（Delay/Disruption Tolerant Networking）が知られている。ＤＴＮでは、転送するデータを中継ノードで一旦蓄積し、次のホップへの接続がない場合は中継ノードにデータを蓄積したまま転送を待機し、次のホップに接続された際にデータ転送を行うという方式(Store and forward方式)でデータが転送される。ＤＴＮは、ＲＦＣ４８３８で規定されている。ＤＴＮでは、データ転送の遅延は大きくなる可能性があるが、不安定で信頼性が低い通信環境でも、エンド−エンド間のデータ配送確率を高くすることができる。
【０００３】
ＤＴＮのノード間でデータを送受信する場合、主に次の２つのデータ送信方式（ルーティング方式）が知られている。１つ目は、エピデミックルーティング(Epidemic Routing)と呼ばれる方式であり、個々のノードはランダムに移動し、遭遇したノード（通信範囲内に入った他のノード）全てに対して、データコピーを配信する方式である。２つ目は、メッセージフェリー(Message Ferry)と呼ばれる方式であり、固定ノード間を巡回する移動ノードが、固定ノードとデータを交換する方式である。
【０００４】
また、ＤＴＮにおいて、転送するべきコンテンツの一部がキャッシュ断片として蓄積されているノードに優先的にコンテンツを転送する方法も提案されている。さらに、ＤＴＮにおいて移動局と固定局との接続履歴から移動局の位置管理テーブルを作成し、これを固定局へ配信する方式も提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２０５８９０号公報
【特許文献２】特開２００９−５５５１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、エピデミックルーティングでは、遭遇するノード全てにデータのコピーを送信するので、ネットワーク全体でみると、各ノードに蓄積されるデータ量が増大し、さらに、トラヒックも増大する。そのため、各ノードには大容量の蓄積エリアが必要となり、かつ、他のノードと遭遇したときに大量のデータを交換する必要が生じる。その結果、限られた時間内で交換できるデータ量が制限される。
【０００７】
メッセージフェリーでは、トラヒックの増大は抑制されるが、巡回ルートから外れたところに位置する固定ノードは、永遠に通信を行うことができないという問題が発生する。また、上記特許文献１および２に記載のデータ転送方式では、上記課題を解決することは難しい。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、転送するデータ量を抑制しながらも信頼性の高いデータ転送を可能するデータ転送装置、データ転送方法およびデータ転送プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願開示のデータ転送装置は、通信範囲内にある他のノードを検出し、当該検出した他のノードと、データ通信を行う通信部と、前記通信部が検出し、直接通信可能となった他のノードを示す情報と、当該他のノードを介して間接的に通信可能となったノードへのルートを示す情報を含む経路データを記録する経路記録部と、転送すべきコンテンツデータを、当該コンテンツの宛先ノードを示す情報と対応付けて蓄積するコンテンツデータ記録部と、前記通信部が他のノードを検出したとき、当該他のノードの経路データを受信して前記経路記録部の経路データに追加する経路更新部と、前記通信部が前記他のノードを検出したとき、前記経路更新部により当該他のノードの経路データが追加された後の前記経路記録部の経路データを参照して、当該他のノードへ前記コンテンツデータを送信するか否かを制御する送信制御部を備える。
【発明の効果】
【００１０】
本願の開示するデータ転送装置の一つの態様によれば、転送するデータ量を抑制しながらも信頼性の高いデータ転送が可能になるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るデータ転送装置を含むネットワークシステムの例である。
【図２】図２は、データ転送装置の構成の一例を示す機能ブロック図である。
【図３】図３は、インターネットおよびＤＴＮにおけるプロトコルレイヤの例をそれぞれ示す図である。
【図４】図４は、実施例１に係るデータ転送装置の動作例を示すフローチャートである。
【図５Ａ】図５Ａは、遭遇前の経路データおよびルートの一例を示す図である。
【図５Ｂ】図５Ｂは、ノードＡがノードＢと遭遇した後のノードＡの経路データおよびルート一例を示す図である。
【図６】図６は、ＤＴＮを用いたネットワークシステムの具体例を示す図である。
【図７】図７は、エピデミックルーティング方式を適用したＤＴＮネットワークの動作例を説明するための図である。
【図８】図８は、メッセージフェリー方式を適用したＤＴＮネットワークの動作例を説明するための図である。
【図９】図９は、実施例２に係るデータ転送装置の構成例を示す機能ブロック図である。
【図１０】図１０は、本実施例の経路データの具体例を示す図である。
【図１１Ａ】図１１Ａは、ノードＡからノードＤへ３経路が存在する場合のルートテーブルの例である。
【図１１Ｂ】図１１Ｂは、ノードＡからノードＤへ３経路を表す図である。
【図１２】図１２は、本実施例の経路属性データの具体例を示す図である。
【図１３】図１３は、ルート属性テーブルの周期更新処理の一例を示す図である。
【図１４】図１４は、データ転送装置１ａにおけるシステム規定値のデータの例を示す図である。
【図１５Ａ】図１５Ａは、ルート属性テーブルの他の例を示す図である。
【図１５Ｂ】図１５Ｂは、ルート属性テーブルのさらに他の例を示す図である。
【図１６】図１６は、実施例２に係るデータ転送装置の動作例を示すフローチャートである。
【図１７】図１７は、ノードＡが、ノードＢに遭遇する前と、遭遇した後のルートの一例を示す図である。
【図１８】図１８は、ノードＡとノードＢの遭遇前のルート状態を示すルートテーブルの例である。
【図１９】図１９は、ノードＡとノードＢが遭遇し、相手のルートテーブルを受け取って、それぞれのルートテーブルに追加した後の例を示す図である。
【図２０Ａ】図２０Ａは、時刻ｔ１にノードＣとノードＤが遭遇した後のルートテーブルの例とルートを示す図である。
【図２０Ｂ】図２０Ｂは、時刻ｔ２にノードＢとノードＣが遭遇した後のルートテーブルの例とルートを示す図である。
【図２０Ｃ】図２０Ｃは、時刻ｔ３にノードＢとノードＥが遭遇した後のルートテーブルの例とルートを示す図である。
【図２０Ｄ】図２０Ｄは、時刻ｔ４にノードＡとノードＦが遭遇した後のルートテーブルの例とルートを示す図である。
【図２０Ｅ】図２０Ｅは、時刻ｔ５にノードＡとノードＧが遭遇した後のルートテーブルの例とルートを示す図である。
【図２０Ｆ】図２０Ｆは、時刻ｔ６にノードＡとノードＢが遭遇した後のルートテーブルの例とルートを示す図である。
【図２１】図２１は、ノードＡがノードＢと遭遇した場合のノード属性テーブルの更新例を示す図である。
【図２２Ａ】図２２Ａは、ノードＡとノードＢの遭遇前におけるそれぞれのルートテーブルおよびルートの例である。
【図２２Ｂ】図２２Ｂは、ノードＡとノードＢの遭遇後のルートテーブルおよびルートの例である。
【図２２Ｃ】図２２Ｃは、ノードＡとノードＢの遭遇後のノードＡにおけるルート属性テーブルの例である。
【図２３】図２３は、ノードＡと遭遇確度が最も高い経路上のノードＢ以外のノードＣとの遭遇前におけるノードＡのルートテーブルおよびルートの例を示す図である。
【図２４】図２４は、ノードＡとノードＣとの遭遇後におけるノードＡのルートテーブルおよびルートの例を示す図である。
【図２５】図２５は、実施例３に係るデータ転送装置によるデータ転送処理を説明するための図である。
【図２６】図２６は、実施例３に係るデータ転送装置の構成例を示す機能ブロック図である。
【図２７】図２７は、ノードＡとノードＣとの遭遇前におけるノードＡのルートおよびルートテーブルの例を示す図である。
【図２８】図２８は、ノードＡとノードＣとの遭遇後におけるノードＡのルートおよびルートテーブルの例を示す図である。
【図２９】図２９は、実施例３に係るデータ転送装置の動作例を示すフローチャートである。
【図３０】図３０は、更新経路データ生成処理の処理手順を示すフローチャートである。
【図３１】図３１は、データ送信判断処理の処理手順を示すフローチャートである。
【図３２】図３２は、ノードＡとノードＢとが遭遇し、ノードＢの先に複数の経路Ｂ−Ｈ−Ｚ、Ｂ−Ｉ−Ｚ、Ｂ−Ｊ−Ｚ、Ｂ−Ｋ−ＺおよびＢ−Ｌ−Ｚが存在する態様およびノードＡのルートテーブルを示す図である。
【図３３】図３３は、実施例４に係るデータ転送装置によるデータ転送処理を説明するための図である。
【図３４】図３４は、実施例４に係るデータ転送装置の構成例を示す機能ブロック図である。
【図３５】図３５は、データ転送装置におけるシステム規定値のデータ例を示す図である。
【図３６】図３６は、ノードＡとノードＢとの遭遇前におけるノードＡのルートテーブルの例を示す図である。
【図３７】図３７は、遭遇後におけるノードＡのルートテーブルの例を示す図である。
【図３８】図３８は、送信データのデータ構造の一例を示す図である。
【図３９】図３９は、４つの経路がコンテンツデータに付加された送信データの一例を示す図である。
【図４０】図４０は、送信データを受信した他のノードによる処理を説明するための図である。
【図４１】図４１は、実施例４に係るデータ転送装置の動作例を示すフローチャートである。
【図４２】図４２は、更新経路データ生成処理の処理手順を示すフローチャートである。
【図４３】図４３は、データ送信判断処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するデータ転送装置、データ伝送方法およびデータ転送プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例は、開示の技術を限定するものではない。
【実施例１】
【００１３】
図１は、実施例１にかかるデータ転送装置を含むＤＴＮのネットワークシステムの例である。ＤＴＮは、物理的なリンクが常に存在するとは限らない通信環境において、Store And Forward方式でデータを転送していく通信方式である。図１に示すネットワークシステムにおける複数のノードＡ〜Ｄは、それぞれ、通信範囲にある他のノードとデータ通信する機能と、データを蓄積(Store)する機能を持つ。複数のノードＡ〜Ｄは、それぞれ、破線矢印の方向に移動しており、他のノードが通信範囲内にいる場合に、蓄積していたデータを他のノードに転送(forward)する。また、各ノードＡ〜Ｄは、通信範囲に他のノードがないときには、データを保持しておく。ＤＴＮの各ノードは、データの発信源 (source)、データの転送手段(forwarder)、データの宛先(destination)のいずれか、またはこれらの組み合わせになりうる。本実施例では、発信源から宛先へ転送される対象となるデータをコンテンツデータと称する。なお、ＤＴＮのノードには移動しないノードが含まれることもある。
【００１４】
［データ転送装置の構成例］
図２は、ノードＡとなるデータ転送装置の構成の一例を示す機能ブロック図である。なお、他のノードＢ〜Ｄも同様の構成にすることができる。図２に示すデータ転送装置１は、通信部２、制御部３、メモリ６、ストレージ８を備える。制御部３は、例えば、ＣＰＵである。ＣＰＵが所定のプログラムを実行することにより経路更新部４および送信制御部５の機能が実現される。なお、通信部２、経路更新部４および送信制御部５の機能をコンピュータに実行させるためのプログラムまたはそのようなプログラムを記録した記録媒体も本実施例に含まれる。
【００１５】
メモリ６は、例えば、ＲＯＭ、ＲＡＭ等のＣＰＵが読み書きできる記憶装置である。メモリ６には、経路データを記録するための経路記録部７が含まれる。ストレージ８は、例えば、持続的にデータを記録可能な記録装置である。ストレージ８には、コンテンツデータを蓄積するためのコンテンツデータ記録部９が含まれる。コンテンツデータ記録部９は、転送すべきコンテンツデータを、宛先ノードを示す情報と対応付けて蓄積する。
【００１６】
通信部２は、データ転送装置１の通信範囲内にある他のノードを検出し、検出した他のノードと、データ通信を行う。例えば、通信部２は、他のノードがデータ転送装置１に接近し、無線LANまたは、bluetooth（登録商標）で通信が可能な状態になると、通信を開始することができる。なお、ＤＴＮ通信は、例えば、トランスポート層の上にオーバーレイされたバンドル層(Bundle layer)と呼ばれるプロトコルレイヤで実現することができる。図３は、インターネットおよびＤＴＮにおけるプロトコルレイヤの例をそれぞれ示す図である。図３下段に示すBundleレイヤを持つノード（DTN host/DTN router/DTN gateway）はＤＴＮノードと呼ばれ、特にDTN routerやDTN gatewayはForwarderと呼ばれることもある。なお、Bundleレイヤ下のトランスポート層以下のプロトコルは、TCP/IPに限られず任意である。また、ＤＴＮでは、ノード間の通信は、アドホック(ad hoc)通信であってもよい。
【００１７】
経路記録部７は、通信部２が検出して直接通信可能となった他のノード（以下「直接ノード」という）を示す情報と、当該直接ノードを介して間接的に通信可能となったノード（以下「間接ノード」という）へのルートを示す情報を含む経路データを記録する。例えば、図１に示す例において、ノードＡと直接通信可能になった他のノードＢが、さらに他のノードＣと直接通信可能になり、ノードＣがまたさらに他のノードＤと直接通信可能になった場合、ノードＡからのコンテンツデータをノードＤへ送信することができる。一般的に、移動するノードは地理的にその近辺を移動することが多いため、近い将来、ノードＣはノードＢと直接通信可能となり、更にまた、ノードＢはノードＡと直接通信可能状態となる。これにより、ノードＤからのコンテンツデータをノードＡに送信することができる。この場合、ノードＡとノードＤは、間接的に通信可能になる。このようにして、ノードＡ、Ｂ、Ｃ、Ｄは、直接的に、または、間接的に通信可能状態になったとすることができる。なお、ノードは、例えば、EIDのようなノード識別子で表すことができる。EIDは、ＲＦＣ４８４３にて規定されているＤＴＮノード固有番号である。
【００１８】
経路更新部４は、通信部２が他のノードを検出したとき、当該他のノードの経路データを受信して経路記録部７の経路データに追加する。また、送信制御部５は、通信部２が他のノードを検出したとき、当該他のノードの経路データが追加された後の経路記録部７の経路データを参照して、当該他のノードへ前記コンテンツデータを送信するか否かを判断する。経路記録部７は、例えば、当該他のノードがコンテンツデータの宛先ノードである場合か、あるいは経路データで示されるルートで当該他のノードを介して間接的に通信可能となったノードに宛先ノードが含まれる場合に、当該他のノードへ前記コンテンツデータを送信する。この場合、コンテンツデータは、通信部２を介して当該他のノードへ送信される。
【００１９】
［データ転送装置の動作例］
図４は、通信部２が他のノードを検出したときのデータ転送装置１の動作例を示すフローチャートである。図４に示す例では、通信部２が他のノードを検出したとき、経路更新部４は、当該他のノードの経路データを受信して経路記録部７の経路データに追加する（ステップＳ１）。このとき、経路更新部４は、経路記録部７の経路データを、当該他のノードへ送信してもよい。これにより、遭遇したノードと経路データをお互いに交換することができる。
【００２０】
ここで、図５Ａおよび図５Ｂを参照して、通信範囲内に入ってきた（遭遇した）他のノードから受信した経路データを自ノードの経路データに追加する場合の具体例を説明する。図５Ａは、ノードＡが、ノードＢと通信可能になる前、すなわち、遭遇前の経路データの内容およびルートの一例を示す図である。図５Ａに示す例では、ノードＡは、すでに、ノードＦおよびノードＧと通信可能になっている。ノードＦおよびノードＧはいずれも、他のノードと通信可能になっていない。ここで、通信可能になった（遭遇した）ということは、現時点では通信可能でなくなっている場合もあり得る。
【００２１】
図５Ｂは、ノードＡがノードＢと遭遇し、ノードＢから受信した経路データを追加した後のノードＡの経路データの内容の一例を示す図である。図５Ｂに示す例では、ノードＢは、既に、ノードＣおよびノードＥと遭遇しており、ノードＣは、ノードＢに遭遇する前にノードＤに遭遇している。そのため、ノードＢが直接通信可能となった直接ノードとして経路データに追加され、かつ、ノードＥ、ＣおよびＤが、ノードＢを介して間接的に通信可能になった間接ノードとして経路データに追加される。ノードＥ、ＣおよびＤそれぞれへルート（経路）を示す情報も追加される。例えば、ノードＤまでのルートは、ノードＡからノードＢおよびノードＣを経由しているので、経路を示す情報は「Ｂ−Ｃ」となる。
【００２２】
送信制御部５は、このようにして、遭遇している他のノードの経路データが追加された経路データを参照して、遭遇している他のノードに、コンテンツデータを転送するか否かを判断する（ステップＳ２）。例えば、コンテンツデータの宛先ノードがノードＤである場合、図５Ｂに示す例では、経路データに、遭遇しているノードＢを介してノードＤへ達するルートが含まれているので、送信制御部５は、ノードＢにコンテンツデータを転送すると判断する。そのため、通信部２は、宛先ノードをノードＤとするコンテンツデータを、ノードＢに送信する（ステップＳ３）。このステップＳ２、Ｓ３の処理は、コンテンツデータ記録部９に記録されているコンテンツデータ全てについて終了するまで繰り返される（ステップＳ４）。
【００２３】
以上のように、ノードＡ〜Ｄを、図２に示すような構成のデータ転送装置１とすることにより、あるノードが他のノードと遭遇した場合、経路データを受け取ることで、直接遭遇しないノード（間接的に通信可能となったノード）を含めたルートの情報を管理することができる。これにより、直接遭遇しないノードがコンテンツデータの宛先ノードとなっている場合でも、宛先ノード経路を認識してデータ転送することが可能になる。また、上記構成のデータ転送装置１は、Epidemicルーティングのように遭遇したノード全てにデータを転送することをせず、遭遇したノードが、宛先ノードへの経路へ繋がるノードである場合に転送する。そのため、ネットワークにおけるトラヒック量の増大を抑制しつつも、宛先までの経路を認識して適切なノードにコンテンツデータを転送することができる。その結果、信頼性の高いデータ通信が可能になる。
【００２４】
［ＤＴＮの適用例］
図６は、ＤＴＮを用いたネットワークシステムの具体例を示す図である。図６に示す例は、ある地域全体に、温度・湿度・日照時間を測定するセンサＳを配置し、それらの情報を役場にて収集し地域全体の管理を行うことで、その地域の農産品の管理を行うという事業に、ＤＴＮの技術を活用した例である。図６に示す例では、各センサＳに、ＤＴＮの通信装置が設置されている。また、複数の人または車両、および役場にもＤＴＮの通信装置を設置している。ＤＴＮの通信装置を有したものをＤＴＮノードと呼ぶことができる。本例では、センサＳがデータ発信源であるsourceとなり、道路を通る人あるいは車両が携帯するデータ転送装置が、Forwarder (F)となり、役場のノードが宛先ノード(destination)となる。source, Forwarder, destinationは、いずれもＤＴＮノードである。
【００２５】
センサＳは、Forwarderを付けた人または車両が通信範囲に入ってくると、コンテンツデータをForwarderに送信する。コンテンツデータは、例えば、センサＳの測定でえられた測定データであり、宛先ノードが役場のノードであることを示す情報とともにForwarderへ送信される。このとき、センサＳは、Forwarderから経路データを受信し、その経路データに役場のノードまでのルートの情報が含まれる場合に、コンテンツデータをForwarderへ送信することができる。
【００２６】
コンテンツデータを受け取ったForwarderは、道路で他のForwarderとすれ違うときに、他のForwarderの経路データを受信して自分の経路データに追加し、その経路データに役場のノードまでのルートの情報が含まれていればコンテンツデータを送信する。これにより、各センサＳの測定情報は、Forwarderを介して、最終的に役場にて収集される。ここで、各Forwarderは、役場のノードまで確実に転送される可能性の高いルートになるよう、コンテンツデータを転送する相手を選ぶことができる。その結果、地域のネットワークにおけるトラヒック量の増大を抑制しつつ、信頼性の高いルートでデータ転送が可能になる。
【００２７】
［エピデミックルーティング方式の例］
図７は、エピデミックルーティング方式を適用したＤＴＮネットワークの動作例を説明するための図である。図７に示す例では、フェーズ１〜５で発信源ノード(src)から宛先ノード(dst)へコンテンツデータが届けられる。しかし、フェーズ４においてNode５へ転送されたコンテンツデータと、フェーズ５においてNode１に転送されたコンテンツデータは、宛先ノードへ届くことなくノードに蓄積されたままとなる。このように、エピデミックルーティング方式では、宛先ノードへ届くことのない無駄なデータが大量に発生する恐れがある。
【００２８】
例えば、上記の例で１００個のセンサＳが１KBのデータを役場に送信するケースについて考える。もし、１００個のForwarderが存在し、各Forwarderがそれぞれ異なる１つのセンサＳと役場のノードしか遭遇しない場合を考えると、必要な蓄積エリアおよびデータ転送量は、下記のようになる。これは、トラヒック量が最少になるケースである。
１つのForwarderに必要な蓄積エリアは、１KBのみ。
１つのForwarderに発生するデータ転送量は、受信=１KB、送信=１KBのみ。
【００２９】
もし、Forwarderが頻繁にセンサや他Forwarderと遭遇した場合、最悪ケースとしては、１センサー情報を、全Forwarder(１００個)+残りセンサ (９９個)に送ることになる。この場合、必要な蓄積エリアおよびデータ転送量は、下記のようになる。
１つのForwarderに必要な蓄積エリアは、全てのセンサの情報 (１００KB)。１つのForwarderに発生するデータ転送量は、受信=１００KB、送信=１００KB*１９９
つまり、エピデミックルーティング方式では、Forwarderに大容量の蓄積エリアが必要となるという問題と、他のForwarderと遭遇した時に交換すべきデータの量も膨大となるため、限られた時間内で交換できるデータ量が制限されるという問題が発生する。
【００３０】
［メッセージフェリー方式の例］
図８は、メッセージフェリー方式を適用したＤＴＮネットワークの動作例を説明するための図である。図８に示す例では、フェーズ１〜３で、移動ノード(Node２)が巡回することにより、発信源ノード(src)から宛先ノード(dst)へコンテンツデータが届けられる。しかし、もし、フェーズ２において、移動ノードが発信源ノードの通信範囲内を通らない場合は、コンテンツデータを宛先ノードへ届けることがでない。すなわち、巡回ルートから外れたところに位置する固定ノードは、永遠に通信を行うことができない。
【００３１】
本実施例にかかるデータ転送装置によれば、宛先ノードへのルートが繋がる可能性があるノードを選んでコンテンツデータを転送することができるので、トラヒック量の増大を抑制しつつ、信頼性の高いルートでデータ転送が可能になる。また、メッセージフェリー方式のルーティングのように、固定化されたルートを巡回するForwarderの存在が無くても、データを最終送信先ノードへ送ることができる。そのため、上記のエピデミックルーティング方式の問題、およびメッセージフェリー方式の問題をいずれも解決することができる。
【実施例２】
【００３２】
図９は、実施例２に係るデータ転送装置１ａの構成例を示す機能ブロック図である。図９において、図２の機能ブロックと対応する機能ブロックには同じ番号を付す。
【００３３】
［通信の確実性を考慮したルーティングのための構成例］
図９に示すデータ転送装置１ａは、通信部２が検出して直接通信可能となった他のノード（以下「直接ノード」という）の検出頻度を示すデータを記録する経路属性記録部１１をさらに備える。経路更新部４は、直接ノードの検出頻度を基に、当該直接ノードとの通信の確実性の度合いを示す値を算出する。さらに、経路更新部４は、前記検出頻度と前記直接ノードから受信した経路データとを用いて、当該経路データが示す各ルートで間接的に通信可能になったノード（以下「間接ノード」という）との通信の確実性の度合いを示す値を算出する。そして、経路更新部４は、算出した直接ノードとの通信の確実性の度合いを示す値および間接ノードとの通信の確実性の度合いを示す値を前記経路データに追加した上で、経路記録部７の経路データに追加する。
【００３４】
送信制御部５は、経路記録部７の経路データに、コンテンツデータの宛先ノードへのルートが複数含まれる場合、各ルートにおける宛先ノードへの通信の確実性の度合いを示す値をさらに用いて、当該他のノードへ送信するか否かを判断する。これにより、通信の確実性の度合いを考慮して、他のノードへコンテンツデータを転送することができる。そのため、より信頼性の高いルートでデータ転送が可能になる。
【００３５】
直接ノードの検出頻度は、他のノードがデータ転送装置１ａと直接通信可能となった頻度、すなわち他のノードが通信範囲内に入ってきた頻度を表している。そのため、直接ノードの検出頻度は、他のノードと遭遇した頻度と言うこともできる。直接ノードの検出頻度は、例えば、過去の一定期間において、他のノードが通信範囲に入ってきた回数を用いて算出することができる。このような直接ノードとの検出頻度を用いることにより、未来に当該直接ノードと直接通信できることの確実性を示す値を計算することができる。そのため、直接ノードとの通信の確実性の度合いを示す値は、過去の直接ノードとの通信履歴に基づいて得られる推定値であると言うことができる。
【００３６】
このような、直接ノードとの直接通信の確実性を示す情報が経路データに含まれるので、経路データを遭遇したノードから受け取ると、他のノードとの直接通信によってつながるルート上のノードそれぞれについて通信の確実性を計算することが可能になる。
【００３７】
［転送先の容量を考慮したルーティングのための構成例］
また、本実施例において、経路属性記録部１１は、通信可能となった他のノードにおけるコンテンツデータを蓄積可能な空き容量を示すデータをさらに記録する。送信制御部５は、当該他のノードにおけるコンテンツデータを蓄積可能な空き容量をさらに用いて、当該他のノードへ送信するか否かを判断することができる。これにより、転送先の容量を考慮したルーティングが可能になる。
【００３８】
例えば、データ転送装置１ａが遭遇している他のノードの空き容量が、送信しようとしているコンテンツデータより小さい場合には、送信制御部５は、コンテンツデータを送信しないと判断することができる。また、例えば、経路データに、コンテンツデータの宛先ノードへのルートが複数含まれる場合、送信制御部５は、次のホップノードの空き容量が大きな方のルートを優先することができる。
【００３９】
［送信制御機能切り替えのための構成例］
図９に示すデータ転送装置１ａは、ユーザからの送信制御機能の切り替え指示を受付けるインタフェース部１２をさらに備える。送信制御部５は、インタフェース部１２が受付けた前記切り替え指示に基づき、動作モードを切り替える。動作モードには、通信部２が検出した通信可能な他のノードには常にコンテンツデータに送信するよう動作するモード、および、経路データを参照してコンテンツデータを他のノードに送信するか否かを制御するように動作するモードが含まれる。送信制御部５が、常にコンテンツデータを他のノードに送信するよう動作すると、ネットワークにおけるトラヒックは増大するが、コンテンツデータが宛先ノードへ達する確実性は増す。そのため、トラヒックの増大を許しても、確実にコンテンツデータを届けるという要求がある場合に、当該要求を満たしやすいデータ転送方式にデータ転送装置１ａを切り替えることが可能になる。
【００４０】
図９に示す例では、データ転送装置１ａは、ユーザからの指示の入力手段１３およびユーザに対する情報の出力手段１４を備える。インタフェース部１２は、これらの入力手段１３および出力手段１４を介したデータのI/Oを制御する。入力手段１３は、例えば、ボタンなどである。出力手段１４は例えば、状態ランプまたはスピーカなどである。例えば、ユーザは、ボタンを押すことで、動作モードを切り替えることができる。また、状態ランプを点灯または点滅させることにより、ユーザが現在の動作モードを視認することができる。入力手段１３は、例えば、災害等の緊急時にepidemicルーティング方式へ処理を変更するための緊急ボタンとすることができる。この場合、ユーザが、災害時などの緊急時に、このボタンを押下することで、データ転送装置１ａは「緊急モード」となる。「緊急モード」の時、ルーティング方式はEpidemicルーティングとなる。Epidemicルーティングを行うため、例えば、災害時等に、孤立したノードが存在するという情報を収集できる確率を上げることができる。
【００４１】
［経路データおよび経路属性データの具体例］
図１０は、本実施例の経路データの具体例を示す図である。図１０には、経路データの例として、ノードＡのルートテーブルが示されている。ルートテーブルには、相手のノード、相手のノードまでの経路、日時、遭遇確度の値が記録される。「相手」は、ノードＡが直接的にまたは間接的に通信可能となった着信先のノード、すなわち、直接ノードおよび間接ノードを識別するEIDである。「経路」は、経路情報である。自ノードＡから相手のノードへ、近い順序で経路ノードのEIDが記録されている。なお、図１０に示す例において、経路が「−」になっているのは、直接通信可能となったことを意味している。また、ノードＤへの経路情報は「Ｂ−Ｃ」となっているので、ノードＡから、ノードＢとノードＣを経由してノードＤへＤＴＮ通信できることを意味している。
【００４２】
「日時」は、相手のノードが最初に遭遇したノード（経路に記録されたノード内の一番後ろのノード）と遭遇した日時である。「遭遇確度」は、通信の確実性の度合いを示す値の一例であり、今後遭遇できる確率である。本例では、遭遇確度は、０〜１の値を採る。この値は、例えば、後述する「遭遇確度計算処理」にて算出することができる。
【００４３】
図１０に示す例のように、経路データは、他のノードと直接通信可能になったときの時刻、あるいは、間接的に通信可能となったノードがルート上で最初に別のノードと直接通信可能になったときの時刻を示す情報を含むことができる。これにより、相手のノードが最初に別のノードと通信可能になった時点からの経過時間に基づいて、そのルートに関するデータの存続を制御することができる。例えば、相手のノードが最初に通信可能になった時刻から所定時間経過後には、そのノードへのルートを示す情報をルートテーブルから削除することができる。例えば、データ転送装置１ａは、所定の周期で、ルートテーブル中の最初に通信可能になった時から所定時間が経過している経路を検索し、該当する経路を削除することができる。所定時間は、本実施例では、一例として後述するルートテーブル保存期間としてデータ転送装置１ａに記録される。
【００４４】
また、図１０に示す例のように、経路データが、相手のノードとの通信の確実性の度合いを示す値を含むことにより、通信の確実性に応じてルートテーブルのデータを最適化することができる。例えば、データ転送装置１ａは、所定の周期でルートテーブルをチェックし、遭遇確度が所定の値（本実施例では、一例として後述する遭遇確度最低限度値）より低いノードに関するデータは削除することができる。遭遇確度を管理する場合に、システムで規定されている「遭遇確度最低限度値」より低い経路を削除することで、効率的にＤＴＮルートテーブルが肥大化しないようにすることができ、メモリやデータ保存部を圧迫しないようにすることができる。
【００４５】
なお、ルートテーブルには、同一の相手ノードに対し、複数の経路を登録することも可能である。図１１Ａは、ノードＡからノードＤへ３経路が存在する場合のルートテーブルの例である。図１１Ｂは、ノードＡからノードＤへ３経路を表す図である。
【００４６】
図１２は、本実施例の経路属性データの具体例を示す図である。図１２には、経路属性データの例として、ノードＡのルート属性テーブルが示されている。ルートテーブルには、相手のノード、履歴フラグおよび残容量が記録される。これらの情報は、ノードＡがこれまで遭遇して直接通信可能になった相手のノード、すなわち、直接ノードごとに記録される。本例では、ノードＡと直接通信可能になった経験のないノードＣ、Ｄ、Ｅについては、ノードＡのルート属性テーブルへは登録されない。
【００４７】
「履歴フラグ」は、相手のノードの検出頻度を示すデータの一例である。「履歴フラグ」欄の「-４日」から「本日」の各フラグは、各時間帯に遭遇したか否かを、それぞれ示す。例えば、各時間帯において、遭遇していればフラグは１、遭遇していなければフラグは０の値を持つ。履歴フラグは、過去の遭遇の履歴を示すデータの例である。「残HD量」は、遭遇した他のノードにおけるコンテンツデータを蓄積可能な空き容量を示すデータの一例である。ノードＡが最後に遭遇した時の、その相手のノードにおけるコンテンツデータ蓄積エリアの残り容量量である。例えば、経路更新部４が、相手のノードとの遭遇時に、その相手のノードから残HD量の値を受け取って、ルート属性テーブルに記録することができる。
【００４８】
また、データ転送装置１ａは、所定の周期で、ルート属性テーブルを更新することができる。例えば、過去の遭遇の履歴を示す情報を時間の経過に従って周期的に更新することができる。図１２に示す例では、１日ごとの遭遇の有無を示す履歴フラグを記録しているので、１日周期で、履歴フラグを更新することが好ましい。図１３は、ルート属性テーブルの周期更新処理の一例を示す図である。図１３に示す例は、各時間帯のフラグは、１つずつ過去の時間帯へシフトされる。最も古い時間帯(-４日)のフラグは削除され、最も新しい時間帯(本日)のフラグは０にクリアされる。
【００４９】
図１４は、データ転送装置１ａにおけるシステム規定値のデータの例を示す図である。図１４に示すシステム規定値テーブルは、ルート属性テーブル監視周期、ルートテーブル保存期間および遭遇確度最低限度値を記録している。システム規定値テーブルは、例えば、ストレージ８に記録することができる。また、システム規定値テーブルの値は、ＤＴＮのネットワークにおける１つの領域に含まれるノードで共通に設定されることが好ましい。
【００５０】
「ルート属性テーブル監視周期」は、ルート属性テーブルの更新周期を規定する値である。上記の図１２に示す例は、「１日」に設定されることが好ましい。すなわち、遭遇の履歴を示すフラグの基準となる時間の長さとルート属性テーブル監視周期を同じにすることが好ましい。また、このルート属性テーブル監視周期を短くすることで、ノードの遭遇頻度（検出頻度）をもっと短い単位で管理することができる。また、ルート属性テーブル監視周期を長く設定すると、遭遇頻度をさらに長い単位で管理することができる。図１５Ａは、「ルート属性テーブル監視周期」＝１時間である場合のルート属性テーブルの例を示す。図１５Ａは、１０時台の時点におけるルート属性テーブルの内容の一例を示している。図１５Ｂは、「ルート属性テーブル監視周期」＝１週間である場合のルート属性テーブルの例を示す。
【００５１】
「ルートテーブル保存期間」は、ルートテーブルに記録されたレコードの保存期間を示す値である。保存期間は、例えば、上述したように、相手のノードが最初に直接通信可能になった時点(図１０に示す日時)を基準に決定することができる。
【００５２】
［動作例］
図１６は、実施例２に係るデータ転送装置１ａの動作例を示すフローチャートである。図１６は、通信部２が他のノードを検出したときのデータ転送装置１ａの動作例である。図１６において、図４の処理工程に対応する処理工程には同じ番号を付している。図１６に示す例では、経路更新部４は、経路データを更新する（ステップＳ１）。ここで、経路データ更新処理の具体例を説明する。
【００５３】
[経路データ更新処理の具体例（ノードＡとノードＢの遭遇時）]
図１７は、ノードＡが、ノードＢに遭遇し通信可能となる前と、遭遇した後のノードＡおよびノードＢから繋がるルートの一例を示す図である。図１８は、ノードＡとノードＢの遭遇前のルート状態を示すルートテーブルの例である。図１８に示すように、遭遇前のノードＡのルートテーブルには、ノードＫ、ノードＬおよびノードＭそれぞれについて、EID経路、日時および遭遇確度が記録される。遭遇前のノードＢのルートテーブルには、ノードＸ、ノードＹおよびノードＺそれぞれについて、EID、経路、日時および遭遇確度が記録される。
【００５４】
図１９は、ノードＡとノードＢが遭遇し、相手のルートテーブルを受け取って、それぞれのルートテーブルに追加した後の例を示す図である。例えば、下記の処理（１）〜（５）により、図１８に示すルートテーブルが、図１９に示すルートテーブルのように更新される。
（１）ノードＡは、遭遇したノードＢを、ノードＡのルートテーブルに追加する。ノードＡはノードＢと遭遇し直接通信しているので経路は「-」(なし)に設定する。日時は、ノードＡとノードＢが通信可能となった時刻t１が記録される。遭遇確度については後述する。
（２）ノードＢは、遭遇したノードＡを、ノードＢのルートテーブルに追加する。ノードＢはノードＢと遭遇し直接通信しているので経路は「-」(なし)に設定する。日時は、ノードＡとノードＢが通信可能となった時刻t１が記録される。
（３）ノードＡのルートテーブルに、遭遇前のノードＢのルートテーブルのレコード(ノードＸ、Ｙ、Ｚのレコード)を追加する。更に、追加したレコードの経路については、Bを中継することになるので、頭に「B」を挿入する。日時は、相手のノードＸ、Ｙ、Ｚが最初にルート上の別のノードＢ、Ｙ１、Ｚ２と直接通信可能となった時刻ｔｘ,ｔｙ１,ｔｚ２がそれぞれ記録される。
（４）ノードＢのルートテーブルに、遭遇前のノードＡのルートテーブルのレコード(ノードＫ、Ｌ、Ｍ,のレコード)を追加する。更に、追加したレコードの経路については、Ａを中継することになるので、頭に「Ａ」を挿入する。日時は、相手のノードＫ、Ｌ、Ｍが最初にルート上の別のノードＡ,Ｌ１,Ｍ２と直接通信可能となった時刻ｔｋ,ｔｌ１,ｔｍ２がそれぞれ記録される。
（５）ノードＡおよびノードＢは、ぞれぞれのルートテーブル内の全てのレコードについて、日時のデータを参照し、日時のデータが示す時点からの経過時間が「ルートテーブル保存期間」を越えているレコードを検索する。越えているレコードは、ルートテーブルより削除する。
【００５５】
［各ノードが遭遇を繰り返した場合のルートテーブル生成例］
各ノードは、他のノードと遭遇する度に、ルートテーブルの内容を交換することにより、ルートテーブルを更新し生成していく。図２０Ａ〜２０Ｆに示す例は、ノードＣとノードＤが時刻＝ｔ１に遭遇し、さらにその後、ノードＢとノードＣが時刻＝t２に遭遇し、という格好で、ノード同士が遭遇していく過程で、それぞれのルートテーブルが構築されていく様子を示したものである。t１、t２、t３、t４、t５、t６の順に時間が流れている。テーブルの右のルートを示す図において、実線はその時に遭遇したノード同士を結んでおり、点線は、過去にルートテーブルを交換済みの関係にあるノード同士を結んでいる。
【００５６】
図２０Ａは、時刻t１にノードＣとノードＤが遭遇した後のそれぞれのルートテーブルの例とルートを示す図である。ノードＣのルートテーブルにはノードＤのレコードがノードＤのルートテーブルにはノードＣのレコードが追加される。
【００５７】
図２０Ｂは、時刻t２にノードＢとノードＣが遭遇した後のそれぞれのルートテーブルの例とルートを示す図である。ノードＢのルートテーブルにはノードＣのレコードに加えて、ノードＣを介して間接的に通信可能となったノードＤのレコードも追加される。以下、同様に、遭遇した相手のノードのレコードと、遭遇した相手を介して間接的に通信可能となったノードのレコードがルートテーブルに追加されていく。
【００５８】
図２０Ｃは、時刻t３にノードＢとノードＥが遭遇した場合、図２０Ｄは、時刻t４にノードＡとノードＦが遭遇した場合、図２０Ｅは、時刻t５にノードＡとノードＧが遭遇した場合、図２０Ｆは、時刻t６にノードＡとノードＢが遭遇した場合のルートテーブルとルートをそれぞれ示す図である。図２０Ａ〜図２０Ｆに示すようにして生成されたルートテーブルにより、例えば、ノードＡは自身のルートテーブルを参照することで、ノードＢとノードＣを介してノードＤに通信できることを認識することができる。
【００５９】
［経路属性データ更新処理の例］
図１６を再び参照して、経路データが更新されると、経路更新部４は、経路属性データも更新する(図１６のステップＳ１１)。図２１は、ノードＡがノードＢと遭遇した場合のノード属性テーブルの更新例を示す図である。例えば、下記処理（１）〜（３）により、ノード属性テーブルが更新する。
（１）遭遇相手ノードがルートテーブルに登録されていない場合は、新規に登録する。
（２）遭遇相手ノードの「履歴フラグ」の現時点の欄の値を１に更新する。例えば、ルート属性テーブル監視周期＝１日単位の場合は、図２１に示すように「本日」欄に１を設定する。
（３）遭遇相手ノードから残HD量の情報を受け取り、ルート属性テーブルに登録する。
【００６０】
［遭遇確度の計算例］
以上のようにして、経路属性データが更新されると、経路更新部４は、経路データに含まれる相手のノードとの通信の確実性の度合いを示す値を、相手のノードごとに計算し、経路データへ追加するも更新する(図１６のステップＳ１２)。ここでは、通信の確実性の度合いを示す値の一例である遭遇確度の計算例を説明する。遭遇して直接通信をした遭遇相手のノードの遭遇確度は、ルート属性テーブルのデータを基に計算することができる。例えば、ルート属性テーブル監視周期が１日である場合、遭遇相手のノードの遭遇確度は、下記式（Ａ）で計算することができる。
【００６１】
【数１】
0005472064.tif 000002
【００６２】
遭遇相手のノードを介して間接的に通信可能になった相手のノードの遭遇確度は、遭遇相手のノードの遭遇確度と、遭遇相手のルートテーブルに記録された遭遇確度を用いて計算することができる。直接通信した遭遇相手のルートテーブルに登録されていたノードの遭遇確度は、例えば、下記式（Ｂ）により計算することができる。
遭遇確度 = 遭遇相手の遭遇確度  ×  遭遇相手先での遭遇確度      ・・・（Ｂ）
【００６３】
なお、経路更新部４は、計算した遭遇確度が、システム規定値テーブル(図１４参照)の「遭遇確度最低限度値」より小さいノードのレコードについては、ルートテーブルより削除してもよい。
【００６４】
ここで、図２２Ａ〜図２２Ｃを参照して、ノードＡがノードＢに遭遇した場合の、遭遇確度の計算例について説明する。図２２Ａは、ノードＡとノードＢの遭遇前におけるそれぞれのルートテーブルおよびルートの例であり、図２２Ｂは、遭遇後のルートテーブルおよびルートの例、図２２Ｃは、遭遇後のノードＡにおけるルート属性テーブルの例である。
【００６５】
まず、経路更新部４は、直接遭遇したノードＢの遭遇確度について、図２２Ｃに示すルート属性テーブルを基に、上記計算式（Ａ）に従って計算すると、下記式（１）のようになる。
（１）：Bの遭遇確度=(１/１ + １/３ + １/４ + １/５) / (１/１ + １/２ + １/３ + １/４ + １/５) = ０.７８１
次に、ノードＢのルートテーブルに登録されているノードＥ、Ｃ、Ｄ については、ノードＢ上のルートテーブルの遭遇確度の値０.５, ０.４, ０.２を元に、上記計算式（Ｂ）に従って計算すると、下記（２）〜（４）の式ようになる。
（２）：Eの遭遇確度 = ０．７８１(Bの遭遇確度at A) * ０.５(Eの遭遇確度 at B) = ０.３９１（３）：Cの遭遇確度 = ０.７８１(Bの遭遇確度at A) * ０.４(Cの遭遇確度 at B) = ０.３１２（４）：Dの遭遇確度 = ０.７８１(Bの遭遇確度at A) * ０.２(Dの遭遇確度 at B) = ０.１５６
上記式（１）〜（４）の計算結果の値は、図２２Ｂ中の（１）〜（４）で示す場所のデータに対応している。また。上記式（１）〜（４）において「遭遇確度 at B」は、ノードＢでの遭遇確度を意味している。
【００６６】
［送信制御例］
上記のように、遭遇確度が計算されると（ステップＳ１２）、送信制御部５がコンテンツデータを送信するか否かを決定する（ステップＳ２１、Ｓ２）。送信制御部５は、まず、ユーザからの切り替え指示に基づいて決定される動作モードを判断する（ステップＳ２１）。本実施例では、一例として、動作モードに、「緊急モード」と「通常モード」が含まれる。ユーザは、入力手段１３を介して動作モードの切り替え指示を入力し、インタフェース部１２が、ユーザの切り替え指示を受け付ける。
【００６７】
緊急モードの場合は、現在遭遇しているノードに対し、コンテンツデータを送信すると判断とする。この場合、送信制御部５は、全てのコンテンツデータを現在遭遇しているノードへ送信する（ステップＳ２２）。すなわち、緊急モードの場合は、送信制御部５は、経路データを参照してコンテンツデータ送信の要否を判断することなく、無条件でコンテンツデータを遭遇しているノードに送信することになる。
【００６８】
通常モードの場合、送信制御部５は、ルートテーブルを参照し、コンテンツデータ送信の要否を判断する（ステップＳ２）。送信制御部５は、例えば、ルートテーブルの示す他のノードへのルートの情報と、コンテンツデータの宛先ノードとを比較することにより、コンテンツデータ送信の要否を判断することができる。一例として、送信制御部５は、下記処理（１）〜（４）により判断することができる。
（１）コンテンツデータの宛先ノードのEIDへ向かう経路（方路またはルートとも言う）をルートテーブルより抽出する。
（２）宛先ノードへ繋がる経路が無ければ、そのコンテンツデータを送信しない判断とする。
（３）宛先ノードへの経路が１つのみ存在する場合は、以下の（ア）（イ）の判断処理を実行する。
（ア）その経路と、現在遭遇しているノードと合致する場合（現在遭遇しているノードが経路に含まれている場合）、送信するの判断とする。
（イ）そうでない場合は、送信しないの判断とする。
（４）経路が２つ以上存在する場合、以下の（ウ）〜（オ）の処理を実行する。
（ウ）「ルート属性テーブルの残HD量よりも送信データのサイズが小さい」という条件配下で、遭遇確度が一番高い経路を抽出する。
（エ）上記（ウ）の結果、経路が存在しない場合は、送信しない判断とする。
（オ）上記（ウ）の結果、経路が抽出された場合、その経路と、現在遭遇しているノードと合致する場合、送信するの判断とする。そうでない場合は、送信しないの判断とする。
【００６９】
以上の判断の結果、送信すると判断された場合は、コンテンツデータを遭遇しているノードへ送信する（ステップＳ３）。また、送信制御部５は、上記判断（ステップＳ２）および送信（ステップＳ３）を、コンテンツデータ記録部９の全てのコンテンツデータについて実行する（ステップＳ４）。これにより、それぞれのコンテンツデータの宛先に応じた適切なルーティングが可能になる。
【００７０】
以上、データ転送装置１ａの動作例について述べたが、データ転送装置１ａの動作は上記例に限定されない。例えば、経路データにコンテンツデータの宛先ノードへのルートが複数ある場合は、複数のルートでコンテンツデータを転送するように、遭遇した他のノードへの送信要否判断を行うこともできる。また、遭遇した他のノードの空き容量が送信しようとするコンテンツデータより小さい場合には、送信しないようにすることもできる。
【００７１】
上記実施例１および２のデータ転送装置１ａは、ＤＴＮにおけるノードとして好ましく用いることができる。ＤＴＮは、例えば、惑星間通信における通信の他、例えば、現在では災害発生時の通信手段、インターネットに接続できない地域での通信手段、および通常のネットワークに接続していないセンサ等のセンサ情報を収集する手段としても用いることができる。なお、本発明は、上記実施例１、２に限定されるものではない。
【実施例３】
【００７２】
上記実施例２では、コンテンツデータの宛先ノードへ向かう経路が複数存在すると、遭遇確度が最も高い経路上のノードと現在遭遇しているノードとが合致する場合に、遭遇確度が最も高い経路上のノードへコンテンツデータを送信する。しかし、遭遇確度が最も高い経路上のノード以外のノードと現時点で通信可能となった場合には、当該ノードへコンテンツデータを送信することでより信頼性の高いデータ転送を実現することができることもある。
【００７３】
まず、図２３および図２４を参照して、遭遇確度が最も高い経路上のノード以外のノードと現時点で通信可能となった場合に当該ノードへコンテンツデータを送信しないことによる問題点について説明する。図２３は、ノードＡと遭遇確度が最も高い経路上のノードＢ以外のノードＣとの遭遇前におけるノードＡのルートテーブルおよびルートの例を示す図である。図２４は、ノードＡとノードＣとの遭遇後におけるノードＡのルートテーブルおよびルートの例を示す図である。
【００７４】
図２３に示す例では、ノードＡから宛先ノードＺへ向かう経路として、ノードＢを経由する経路とノードＣを経由する経路との２つの経路が存在する。また、ノードＢを経由する経路の遭遇確度が０．４９（＝０．７×０．７）であり、ノードＣを経由する経路の遭遇確度０．４５（＝０．５×０．９）よりも高い。このような状況の下で、ノードＡは、ノードＡのルートテーブルを参照して、遭遇確度が最も高い０．４９である経路上のノードＢに遭遇した場合に、ノードＢへコンテンツデータを送信しようとする。言い換えると、ノードＡは、遭遇確度が最も高い０．４９である経路上のノードＢ以外のノードＣと現時点で通信可能となった場合でもノードＣへコンテンツデータを送信しない。
【００７５】
ノードＡがノードＣと遭遇して現時点で通信可能となった場合には、図２４に示すように、ノードＺに対するノードＣの遭遇確度が０．９となり、ノードＢを経由する経路の遭遇確度０．４９よりも高くなる。このため、ノードＡが現時点で通信可能となっているノードＣへコンテンツデータを送信したならば、ルートテーブルにおいて遭遇確度が最も高い経路上のノードＢへコンテンツデータを送信するよりも信頼性の高いデータ転送が実現されることとなる。しかし、ノードＡは、ルートテーブルにおいて遭遇確度が最も高い経路が依然としてノードＢを経由する経路であるため、ノードＣと現時点で通信可能となった場合でもノードＣへコンテンツデータを送信することができない。その結果、データ転送の信頼性が低下する。
【００７６】
このように、ルートテーブルにおける遭遇確度の値をそのまま用いてデータの送信の要否を判断すると、データ転送の信頼性が低下してしまう。そこで、本実施例では、ルートテーブルにおいて遭遇確度が最も高い経路上のノード以外のノードと現時点で通信可能となった場合にルートテーブルを更新し、更新後のルートテーブルを用いてデータの送信の要否を判断する。
【００７７】
図２５を用いて具体例を説明する。図２５は、実施例３に係るデータ転送装置１ｂによるデータ転送処理を説明するための図である。図２５は、ノードＡとノードＣとの遭遇後におけるノードＡのルートテーブルおよびルートの例を示している。また、図２５では、ノードＡがデータ転送装置１ｂに相当するものとする。また、ノードＡから宛先ノードＺへ向かう経路として、ノードＢを経由する経路とノードＣを経由する経路との２つの経路が存在するものとする。また、ノードＡがノードＣと遭遇する前のルートテーブルにおいて、ノードＢを経由する経路の遭遇確度が０．４９であり、ノードＣを経由する経路の遭遇確度０．４５よりも高かったものとする。
【００７８】
図２５に示すように、ノードＡがノードＣと遭遇して現時点で通信可能となったとする。ノードＣと通信可能となったノードＡは、ノードＣがルートテーブルにおける相手のノードおよび宛先ノードＺへ至る経路上のノードと合致する場合に、ノードＣと合致した相手のノードの遭遇確度が１となるようにルートテーブル中の遭遇確度を補正する。図２５の例では、ノードＡがルートテーブル中の遭遇確度を補正することにより、相手のノードＣの遭遇確度が１となり、ノードＣを経由する経路で間接的に通信可能となる相手のノードＺの遭遇確度が０．９となる。
【００７９】
そして、ノードＡは、更新後のルートテーブルを用いてデータの送信の要否を判断する。図２５の例では、ノードＡは、更新後のルートテーブルを参照して、宛先ノードＺへ向かう経路のうち、遭遇確度が最も高い０．９であるノードＣを経由する経路を抽出し、現時点で遭遇しているノードＣへコンテンツデータを送信することができる。
【００８０】
このように、実施例３に係るデータ転送装置１ｂは、ルートテーブルにおいて遭遇確度が最も高い経路上のノード以外のノードと現時点で通信可能となった場合にルートテーブルを更新し、更新後のルートテーブルを用いてデータの送信の要否を判断する。このため、データ転送装置１ｂは、補正後の正確な遭遇確度を用いてデータの送信の要否を判断することができ、信頼性の高いデータ転送を実現することができる。
【００８１】
[実施例３に係るデータ転送装置の構成例]
次に、実施例３に係るデータ転送装置の構成例について説明する。図２６は、実施例３に係るデータ転送装置１ｂの構成例を示す機能ブロック図である。図２６において、図９の機能ブロック図と対応する機能ブロックには同じ番号を付す。
【００８２】
図２６に示すデータ転送装置１ｂは、図９に示した経路更新部４および送信制御部５に代えて、それぞれ経路更新部４ｂおよび送信制御部５ｂを備える。経路更新部４ｂおよび送信制御部５ｂは、それぞれ、基本的には図９に示した経路更新部４および送信制御部５と同様の処理機能を有する。以下では、経路更新部４ｂおよび送信制御部５ｂの処理機能のうち図９に示した経路更新部４および送信制御部５と異なる処理機能を中心に説明する。
【００８３】
経路更新部４ｂは、通信部２により検出された他のノードが経路記録部７の経路データの直接ノードおよび間接ノードへ至る経路上のノードと合致する場合に、他のノードと合致する直接ノードの遭遇確度を用いて遭遇確度を補正することで、経路データを更新する。補正後の遭遇確度は、例えば、下記式（Ｃ）により計算することができる。
（補正後の遭遇確度）＝（直接ノードおよび間接ノードの遭遇確度）／（遭遇相手と合致した直接ノードの遭遇確度）      ・・・（Ｃ）
【００８４】
ここで、図２７および図２８を参照して、ノードＡがノードＣに遭遇する前後の経路更新部４ｂによる処理の具体例を説明する。図２７は、ノードＡとノードＣとの遭遇前におけるノードＡのルートおよびルートテーブルの例を示す図であり、図２８は、遭遇後におけるノードＡのルートおよびルートテーブルの例を示す図である。
【００８５】
図２７に示すように、ノードＡとノードＣとの遭遇前では、ノードＡから宛先ノードＺへ向かう経路として、ノードＢを経由する経路とノードＣを経由する経路との２つの経路が存在する。また、ノードＢを経由する経路の遭遇確度が０．４９であり、ノードＣを経由する経路の遭遇確度０．４５よりも高い。
【００８６】
図２８に示すように、ノードＡがノードＣと遭遇して現時点で通信可能となると、経路更新部４ｂは、現在遭遇しているノードＣがノードＡのルートテーブルにおける相手のノードＣおよび相手のノードへ至る経路上の先頭ノードＣと合致するか否かを判定する。経路更新部４ｂは、現在遭遇しているノードＣがノードＡのルートテーブルにおける相手のノードＣおよび相手ノードへ至る経路上の先頭ノードＣと合致する場合に、ノードＣの遭遇確度およびノードＣを介して間接的に通信可能になったノードＺの遭遇確度を補正する。補正後の遭遇確度は、上記計算式（Ｃ）に従って計算され、下記式（５）、（６）のようになる。
（５）ノードＣの補正後の遭遇確度＝０．５０（直接ノードＣの遭遇確度）／０．５０（直接ノードＣの遭遇確度）＝１
（６）ノードＣを介して間接的に通信可能になったノードＺの補正後の遭遇確度＝０．４５（間接ノードＺの遭遇確度）／０．５０（直接ノードＣの遭遇確度）
なお、上記式（５）、（６）の計算結果の値は、図２８の（５）、（６）で示すエントリのデータに対応している。
【００８７】
このように、経路更新部４ｂは、遭遇した他のノードが経路記録部７の経路データの直接ノードおよび間接ノードへ至る経路上のノードと合致する場合に、他のノードと合致する直接ノードの遭遇確度を用いて遭遇確度を補正することで、経路データを更新する。そして、経路更新部４ｂは、経路データ中の全ての相手ノードについて上記更新処理を実行すると、更新後の経路データを更新前の経路データとは別に経路記録部７に記録する。なお、以下では、経路更新部４ｂにより経路記録部７に記録された更新後の経路データを「更新経路データ」と呼ぶことがあるものとする。
【００８８】
また、経路更新部４ｂは、経路記録部７の経路データを更新した後、通信部２が通信状態にあった他のノードを検出しなくなると、更新経路データを経路記録部７から削除する。これにより、データ転送装置１ｂが他のノードと遭遇していない期間に更新経路データがメモリを圧迫することを防止することができる。
【００８９】
図２６に戻り、送信制御部５ｂは、経路記録部７の更新経路データにおける遭遇確度を用いて、通信部２が検出した他のノードへコンテンツデータを送信するか否かを判断し、送信すると判断した他のノードへコンテンツデータを送信する。具体的には、送信制御部５ｂは、経路記録部７の更新経路データにコンテンツデータの宛先ノードへのルートが複数含まれる場合に、各ルートのうち遭遇確度が最も高いルートを抽出し、抽出したルートを用いてコンテンツデータを他のノードへ送信する。
【００９０】
［実施例３に係るデータ転送装置の動作例］
次に、実施例３に係るデータ転送装置の動作例について説明する。図２９は、実施例３に係るデータ転送装置１ｂの動作例を示すフローチャートである。図２９は、通信部２が他のノードを検出したときのデータ転送装置１ｂによるデータ転送処理の処理手順である。図２９において、図１６の処理工程に対応する処理工程には同じ番号を付している。
【００９１】
図２９に示す例では、通信部２が他のノードを検出したとき、経路更新部４ｂは、当該他のノードの経路データを受信して経路記録部７の経路データに追加する（ステップＳ１）。そして、他のノードの経路データを経路データに追加すると、経路更新部４ｂは、経路属性データを更新する（ステップＳ１１）。
【００９２】
そして、経路属性データを更新すると、経路更新部４ｂは、経路データに含まれる相手のノードとの通信の確実性の度合いを示す遭遇確度を相手のノードごとに計算し、経路記録部７の経路データへ追加する（ステップＳ１２）。
【００９３】
そして、遭遇確度を経路データへ追加すると、経路更新部４ｂは、更新経路データ生成処理を実行する（ステップＳ１３）。図３０は、更新経路データ生成処理の処理手順を示すフローチャートである。
【００９４】
図３０に示すように、経路更新部４ｂは、経路記録部７の経路データ（ルートテーブル）を複製して所定のワーキングメモリ領域に展開する（ステップＳ１３１）。続いて、経路更新部４ｂは、現在遭遇しているノードがルートテーブルにおける相手のノードおよび相手のノードへ至る経路上の先頭ノードと合致するか否かを判定する（ステップＳ１３２）。
【００９５】
経路更新部４ｂは、現在遭遇しているノードがルートテーブルにおける相手のノードおよび相手のノードへ至る経路上の先頭ノードと合致しない場合には（ステップＳ１３２否定）、処理をステップＳ１３４へ進める。一方、経路更新部４ｂは、現在遭遇しているノードが相手のノードおよび相手のノードへ至る経路上の先頭ノードと合致する場合には（ステップＳ１３２肯定）、合致する直接ノードの遭遇確度を用いて遭遇確度を補正する（ステップＳ１３３）。
【００９６】
続いて、経路更新部４ｂは、経路データ中の全ての相手ノードについてステップＳ１３２の判定処理およびステップＳ１３３の補正処理を繰り返し実行する（ステップＳ１３４否定）。そして、経路更新部４ｂは、経路データ中の全ての相手ノードについてステップＳ１３３の補正処理を実行すると（ステップＳ１３４肯定）、更新後の経路データを更新経路データとして経路記録部７に記録する（ステップＳ１３５）。
【００９７】
図２９の説明に戻り、更新経路データ生成処理が実行されると（ステップＳ１３）、送信制御部５ｂは、コンテンツデータを送信するか否かを決定する。送信制御部５ｂは、まず、ユーザからの切り替え指示に基づいて決定される動作モードを判断する（ステップＳ２１）。本実施例では、一例として、動作モードに、「緊急モード」と「通常モード」が含まれる。ユーザは、入力手段１３を介して動作モードの切り替え指示を入力し、インタフェース部１２が、ユーザの切り替え指示を受け付ける。
【００９８】
動作モードが緊急モードである場合には（ステップＳ２１否定）、送信制御部５ｂは、現在遭遇しているノードに対し、コンテンツデータを送信すると判断する。この場合、送信制御部５ｂは、全てのコンテンツデータを現在遭遇しているノードへ送信する（ステップＳ２２）。すなわち、動作モードが緊急モードである場合は、経路データを参照してコンテンツデータ送信の要否を判断することなく、無条件でコンテンツデータを遭遇しているノードへ送信する。
【００９９】
動作モードが通常モードである場合には（ステップＳ２１肯定）、送信制御部５ｂは、経路記録部７の更新経路データを参照してコンテンツデータの送信の要否を判断するデータ送信判断処理を実行する（ステップＳ２３）。図３１は、データ送信判断処理の処理手順を示すフローチャートである。
【０１００】
図３１に示すように、送信制御部５ｂは、コンテンツデータの宛先ノードへ向かう経路（以下「方路」または「ルート」とも言う）を更新経路データより抽出する（ステップＳ２３１）。宛先ノードへ向かう経路が無ければ（ステップＳ２３２否定）、送信制御部５ｂは、コンテンツデータを送信しないと判断する（ステップＳ２３３）。
【０１０１】
宛先ノードへ向かう経路が１つのみ存在する場合には（ステップＳ２３２肯定、ステップＳ２３４否定）、送信制御部５ｂは、宛先ノードへ向かう経路上のノードと、現在遭遇しているノードとが合致するか否かを判定する（ステップＳ２３５）。宛先ノードへ向かう経路上のノードと、現在遭遇しているノードとが合致する場合には（ステップＳ２３５肯定）、送信制御部５ｂは、コンテンツデータを送信すると判断する（ステップＳ２３９）。一方、宛先ノードへ向かう経路上のノードと、現在遭遇しているノードとが合致しない場合には（ステップＳ２３５否定）、送信制御部５ｂは、コンテンツデータを送信しないと判断する（ステップＳ２３３）。
【０１０２】
一方、宛先ノードへ向かう経路が２つ以上存在する場合には（ステップＳ２３２肯定、ステップＳ２３４肯定）、送信制御部５ｂは、以下の処理を行う。すなわち、送信制御部５ｂは、「ルート属性テーブルの残ＨＤ量よりも送信データのサイズが小さい」という条件の下で、宛先ノードへ向かう各経路のうち遭遇確度が最も高い経路を抽出する（ステップＳ２３６）。
【０１０３】
「ルート属性テーブルの残ＨＤ量よりも送信データのサイズが小さい」という条件の下で遭遇確度が最も高い経路が存在しない場合には（ステップＳ２３７否定）、送信制御部５ｂは、コンテンツデータを送信しないと判断する（ステップＳ２３３）。
【０１０４】
一方、「ルート属性テーブルの残ＨＤ量よりも送信データのサイズが小さい」という条件の下で遭遇確度が最も高い経路が抽出された場合には（ステップＳ２３７肯定）、送信制御部５ｂは、以下の処理を行う。すなわち、送信制御部５ｂは、抽出された経路上のノードと、現在遭遇しているノードとが合致するか否かを判定する（ステップＳ２３８）。抽出された経路上のノードと、現在遭遇しているノードとが合致する場合には（ステップＳ２３８肯定）、送信制御部５ｂは、コンテンツデータを送信すると判断する（ステップＳ２３９）。一方、抽出された経路上のノードと、現在遭遇しているノードとが合致しない場合には（ステップＳ２３８否定）、送信制御部５ｂは、コンテンツデータを送信しないと判断する（ステップＳ２３３）。
【０１０５】
図２９の説明に戻り、データ送信判断処理が実行されると（ステップＳ２３）、送信制御部５ｂは、データ送信判断処理にて送信すると判断された場合に（ステップＳ２４肯定）、コンテンツデータを現在遭遇しているノードへ送信する（ステップＳ２５）。そして、送信制御部５ｂは、送信後のコンテンツデータをコンテンツデータ記録部９から削除する（ステップＳ２６）。一方、送信制御部５ｂは、データ送信判断処理にて送信しないと判断された場合に（ステップＳ２４否定）、コンテンツデータを送信することなく処理をステップＳ２７に進める。
【０１０６】
続いて、送信制御部５ｂは、コンテンツデータ記録部９の全てのコンテンツデータについてステップＳ２３〜Ｓ２６の処理を繰り返し実行する（ステップＳ２７否定）。そして、送信制御部５ｂは、コンテンツデータ記録部９の全てのコンテンツデータについてステップＳ２３〜Ｓ２６の処理を実行すると（ステップＳ２７肯定）、データ転送処理を終了する。
【０１０７】
上述してきたように、実施例３に係るデータ転送装置１ｂは、現在遭遇しているノードが経路データの直接ノードおよび間接ノードへ至るルート上のノードと合致した場合に直接ノードの遭遇確度を用いて遭遇確度を補正することで経路データを更新する。そして、データ転送装置１ｂは、更新後の経路データである更新経路データにおける補正後の遭遇確度を用いて、現在遭遇しているノードへコンテンツデータを送信するか否かを判断する。このため、データ転送装置１ｂは、補正後の正確な遭遇確度を用いてデータの送信の要否を判断することができ、信頼性の高いデータ転送を実現することができる。
【０１０８】
また、実施例３に係るデータ転送装置１ｂは、現在遭遇しているノードがコンテンツデータの宛先ノードである場合か、あるいは、現在遭遇しているノードが経路データの間接ノードに含まれる場合に、現在遭遇しているノードへコンテンツデータを送信する。これにより、データ転送装置１ｂは、コンテンツデータの宛先に応じた適切なデータ転送を可能とすることができる。
【実施例４】
【０１０９】
上記実施例３では、現在遭遇しているノードが経路データの直接ノードおよび間接ノードへ至るルート上のノードと合致した場合に直接ノードの遭遇確度を用いて遭遇確度を補正することで経路データを更新する。しかし、更新後の経路データにおいて現在遭遇しているノードの先に複数の経路が存在する場合に遭遇確度が正確でないという問題がある。
【０１１０】
図３２を参照して、現在遭遇しているノードの先に複数の経路が存在する場合の問題点について説明する。図３２は、ノードＡとノードＢとが遭遇し、ノードＢの先に複数の経路Ｂ−Ｈ−Ｚ、Ｂ−Ｉ−Ｚ、Ｂ−Ｊ−Ｚ、Ｂ−Ｋ−ＺおよびＢ−Ｌ−Ｚが存在する態様およびノードＡのルートテーブルを示す図である。
【０１１１】
図３２に示す例では、ノードＡから宛先ノードＺへ向かう経路として、ノードＲを経由する１つの経路とノードＢを経由する５つの経路との合計６つの経路が存在する。また、ノードＲを経由する１つの経路の遭遇確度が０．１１であり、ノードＢを経由する５つの経路の遭遇確度０．１よりも高い。このような状況の下で、ノードＡは、ノードＡのルートテーブルを参照して、遭遇確度が最も高い０．１１である経路上のノードＲに遭遇した場合に、ノードＲへコンテンツデータを送信しようとする。言い換えると、ノードＡは、遭遇確度が最も高い０．１１である経路上のノードＲ以外のノードＢと現時点で通信可能となった場合でもノードＢへコンテンツデータを送信しない。
【０１１２】
しかしながら、現在遭遇しているノードＢの先にはノードＢを経由する５つの経路Ｂ−Ｈ−Ｚ、Ｂ−Ｉ−Ｚ、Ｂ−Ｊ−Ｚ、Ｂ−Ｋ−ＺおよびＢ−Ｌ−Ｚが存在し、ノードＢがこれら複数の経路上のノードＨ、Ｉ、Ｊ、Ｋ、Ｌのいずれかと遭遇することも想定される。これは、ノードＡがノードＢを経由する５つの経路のうちいずれか一つの経路で間接的に宛先ノードＺと通信可能となることを意味する。一般に、ノードＢを経由する５つの経路のうちいずれか一つの経路で間接的に通信可能となるノードＺの遭遇確度は、下記式（Ｄ）で計算することができる。
Ｚの遭遇確度＝１−（１−［経路Ｂ−Ｈ−Ｚの遭遇確度］）×（１−［経路Ｂ−Ｉ−Ｚ］の遭遇確度）×（１−［経路Ｂ−Ｊ−Ｚの遭遇確度］）×（１−［経路Ｂ−Ｋ−Ｚの遭遇確度］）×（１−［経路Ｂ−Ｌ−Ｚの遭遇確度］）  ・・・  （Ｄ）
＝１−（１−０．１）×（１−０．１）×（１−０．１）×（１−０．１）×（１−０．１）
＝０．４
【０１１３】
ノードＢを経由する５つの経路のうちいずれか一つの経路で間接的に通信可能となるノードＺの遭遇確度は０．４であり、ノードＲを経由する経路で間接的に通信可能となるノードＺの遭遇確度０．１１よりも高い。このため、ノードＡが現時点で遭遇しているノードＢへコンテンツデータを送信したならば、ルートテーブルにおいて遭遇確度が最も高い経路上のノードＲへコンテンツデータを送信するよりも信頼性の高いデータ転送が実現されることとなる。しかし、ノードＡは、ルートテーブルにおいて遭遇確度が最も高い経路がノードＲを経由する経路であるため、ノードＢと現時点で遭遇している場合でもノードＢへコンテンツデータを送信することができない。その結果、データ転送の信頼性が低下する。
【０１１４】
このように、現在遭遇しているノードの先に複数のルートが存在する場合にルートテーブルにおける遭遇確度の値をそのまま用いてデータの送信の要否を判断すると、データ転送の信頼性が低下してしまう。そこで、本実施例では、現在遭遇しているノードの先に複数のルートが存在する場合にルートテーブルを更新し、更新後のルートテーブルを用いてデータの送信の要否を判断する。
【０１１５】
図３３を用いて具体例を説明する。図３３は、実施例４に係るデータ転送装置１ｃによるデータ転送処理を説明するための図である。図３３では、ノードＡがデータ転送装置１ｃに相当するものとする。また、ノードＡから宛先ノードＺへ向かう経路として、ノードＲを経由する１つの経路とノードＢを経由する５つの経路が存在するものとする。また、ノードＡがノードＢと遭遇する前のルートテーブルにおいて、ノードＲを経由する経路の遭遇確度が０．５２５であり、ノードＢを経由する５つの経路の遭遇確度０．２７６、０．２７６、０．２３８、０．１８６、０．２１６よりも高かったものとする。
【０１１６】
図３３に示すように、ノードＡがノードＢと遭遇して現時点で通信可能となったとする。ノードＢと通信可能となったノードＡは、ノードＢがルートテーブルにおける同一の相手ノードＺへ至る経路上のノードと合致する場合に、以下の処理を行う。すなわち、ノードＡは、ノードＢと合致したノードを含む複数の経路で間接的に通信可能となった相手ノードＺの通信確度を用いて、複数の経路のうちいずれか一つの経路で間接的に通信可能となる相手ノードの遭遇確度を算出する。図３３の例では、ノードＢを含む５つの経路Ｂ−Ｈ−Ｚ、Ｂ−Ｉ−Ｚ、Ｂ−Ｊ−Ｚ、Ｂ−Ｋ−Ｚ、Ｂ−Ｌ−Ｚで間接的に通信可能となったノードＺの通信確度を用いて５つの経路のうちいずれか一つの経路で間接的に通信可能となるノードＺの遭遇確度を算出する。すなわち、５つの経路のうちいずれか一つの経路で間接的に通信可能となるノードＺの遭遇確度が０．６８７と算出されてノードＡのルートテーブルが更新される。
【０１１７】
そして、ノードＡは、更新後のルートテーブルを用いてデータの送信の要否を判断する。図３３の例では、ノードＡは、更新後のルートテーブルを参照して、宛先ノードＺへ向かう経路のうち、遭遇確度が最も高い０．６８７であるノードＢを経由する経路を抽出し、現時点で遭遇しているノードＢへコンテンツデータを送信することができる。
【０１１８】
このように、実施例４に係るデータ転送装置１ｃは、現在遭遇しているノードの先に複数のルートが存在する場合にルートテーブルを更新し、更新後のルートテーブルを用いてデータの送信の要否を判断する。このため、データ転送装置１ｃは、遭遇中のノードの先に複数のルートが存在する場合でも、補正後の正確な遭遇確度を用いてデータの送信の要否を判断することができ、データ転送の信頼性を一層向上することができる。
【０１１９】
［実施例４に係るデータ転送装置の構成例］
次に、実施例４に係るデータ転送装置の構成例について説明する。図３４は、実施例４に係るデータ転送装置１ｃの構成例を示す機能ブロック図である。図３４において、図２６の機能ブロック図と対応する機能ブロックには同じ番号を付す。
【０１２０】
図３４に示すデータ転送装置１ｃは、図２６に示した経路更新部４ｂおよび送信制御部５ｂに代えて、それぞれ経路更新部４ｃおよび送信制御部５ｃを備える。経路更新部４ｃおよび送信制御部５ｃは、それぞれ、基本的には図２６に示した経路更新部４ｂおよび送信制御部５ｂと同様の処理機能を有する。以下では、経路更新部４ｃおよび送信制御部５ｃの処理機能のうち図２６に示した経路更新部４ｂおよび送信制御部５ｂと異なる処理機能を中心に説明する。
【０１２１】
経路更新部４ｃは、通信部２により検出された他のノードが経路記録部７の経路データにおける同一の間接ノードへ至る複数のルート上のノードと合致する場合に、以下の処理を行う。経路更新部４ｃは、他のノードと合致したノードを含む複数のルートで間接的に通信可能となった間接ノードの遭遇確度を用いて、複数のルートのうちいずれか一つのルートで間接的に通信可能となる間接ノードの遭遇確度を算出することで経路データを更新する。複数のルートのうちいずれか一つのルートで間接的に通信可能となる間接ノードの遭遇確度は、例えば、下記式（Ｅ）により計算することができる。
（遭遇確度）＝１−（１−［経路１の遭遇確度］）×（１−［経路２の遭遇確度］）×（１−［経路３の遭遇確度］）×（１−［経路４の遭遇確度］）×…  ・・・  （Ｅ）
なお、式（Ｅ）において、「経路１の遭遇確度」は、他のノードと合致したノードを含む経路１で間接的に通信可能となった間接ノードの遭遇確度を意味する。
【０１２２】
また、経路更新部４ｃは、他のノードと合致したノードを含む複数のルートで間接的に通信可能となった間接ノードの遭遇確度のうち所定値を超える遭遇確度を用いて複数のルートのうちいずれか一つのルートで間接的に通信可能となる間接ノードの遭遇確度を算出する。これにより、所定値を超える遭遇確度を用いて上記式（Ｅ）の遭遇確度をより高精度に算出することができる。
【０１２３】
なお、所定値は、本実施例では、一例としてシステムで規定されている「並列経路判定閾値算出値」を用いて算出される並列経路判定閾値である。並列経路判定閾値算出値は、システム規定値としてデータ転送装置１ｃに記録される。図３５は、データ転送装置１ｃにおけるシステム規定値のデータ例を示す図である。図３５に示すシステム規定値テーブルは、ルート属性テーブル監視周期、ルートテーブル保存期間、遭遇確度最低限度値および並列経路判定閾値算出値を記録している。「ルート属性テーブル監視周期」、「ルートテーブル保存期間」および「遭遇確度最低限度値」は、図１４に示したシステム規定値テーブルと同様である。
【０１２４】
ここで、図３６および図３７を参照して、ノードＡがノードＢに遭遇する前後の経路更新部４ｃによる処理の具体例を説明する。図３６は、ノードＡとノードＢとの遭遇前におけるノードＡのルートテーブルの例を示す図であり、図３７は、遭遇後におけるノードＡのルートテーブルの例を示す図である。なお、図３６では、ノードＡがノードＢおよびノードＲと以前に遭遇し、相手のルートテーブルを受け取って自身のルートテーブルに追加しているものとする。
【０１２５】
図３６に示すように、ノードＡとノードＢとの遭遇前では、ノードＡから宛先ノードＺへ向かう経路として、ノードＲを経由する１つの経路とノードＢを経由する５つの経路とが存在する。また、ノードＲを経由する１つの経路の遭遇確度が０．５２５であり、ノードＢを経由する５つの経路の遭遇確度０．２７６、０．２７６、０．２３８、０．１８６、０．２１６よりも高い。
【０１２６】
図３７に示すように、ノードＡがノードＢと遭遇して現時点で通信可能となると、経路更新部４ｃは、現在遭遇しているノードＢがノードＡのルートテーブルにおける同一の相手ノードＺへ至る５つの経路上の先頭ノードＢと合致するか否かを判定する。経路更新部４ｃは、現在遭遇しているノードＢが同一の相手ノードＺへ至る５つの経路上の先頭ノードＢと合致する場合に、以下の処理を行う。すなわち、経路更新部４ｃは、ノードＢを含む５つの経路で間接的に通信可能となったノードＺの遭遇確度を用いてノードＢを含む５つの経路のうちいずれか一つの経路で間接的に通信可能となるノードＺの遭遇確度を算出する。このとき、経路更新部４ｃは、ノードＢを含む５つの経路で間接的に通信可能となったノードＺの遭遇確度のうち並列経路判定閾値を超える遭遇確度を用いて５つの経路のうちいずれか一つの経路で間接的に通信可能となるノードＺの遭遇確度を算出する。また、経路更新部４ｃは、現在遭遇しているノードＢと合致するノードＢを含む５つの経路に関する情報をルートテーブルから削除し、ルートテーブルから削除した５つの経路に関する情報を送信制御部５ｃへ通知する。ノードＢを含む５つの経路のうちいずれか一つの経路で間接的に通信可能となるノードＺの遭遇確度は、例えば、上記式（Ｅ）により計算され、ノードＡのルートテーブルが更新される。
【０１２７】
例えば、下記の処理（１）〜（５）により、図３６に示すルートテーブルが、図３７に示すルートテーブルのように更新される。
（１）経路更新部４ｃは、ノードＢを含む５つの経路で間接的に通信可能となったノードＺの通信確度のうち最大値を選択し、選択した最大値に並列経路判定閾値算出値を乗算して並列経路判定閾値を算出する。図３５に示したシステム規定値の例を用いて説明する。図３５に示した例では、経路更新部４ｃは、ノードＢを含む５つの経路で間接的に通信可能となったノードＺの通信確度のうち最大値０．２７６を選択し、０．２７６に並列経路判定閾値算出値「７０％」を乗算して並列経路判定閾値０．１９３を算出する。
（２）経路更新部４ｃは、ノードＢを含む５つの経路で間接的に通信可能となったノードＺの通信確度のうち並列経路判定閾値を超える遭遇確度を用いて５つの経路のうちいずれか一つの経路で間接的に通信可能となるノードＺの遭遇確度を算出する。すなわち、ノードＢを含む５つの経路で間接的に通信可能となったノードＺの通信確度のうち並列経路判定閾値０．１９３を超える４つの経路「Ｂ−Ｈ−Ｚ」、「Ｂ−Ｉ−Ｚ」、「Ｂ−Ｊ−Ｚ」、「Ｂ−Ｌ−Ｚ」の遭遇確度を用いてノードＺの遭遇確度を算出する。なお、並列経路判定閾値以下となる経路「Ｂ−Ｋ−Ｚ」の情報は、ルートテーブルから削除される。
（３）ノードＢを含む４つの経路「Ｂ−Ｈ−Ｚ」、「Ｂ−Ｉ−Ｚ」、「Ｂ−Ｊ−Ｚ」、「Ｂ−Ｌ−Ｚ」のうちいずれか一つの経路で間接的に通信可能となるノードＺの遭遇確度＝１−（１−０．２７６）×（１−２７６）×（１−０．２３８）×（１−０．２１６）＝０．６８６
なお、上記（３）の計算結果の値は、図３７の（３）で示すエントリのデータに対応している。
（４）経路更新部４ｃは、ノードＢを含む４つの経路「Ｂ−Ｈ−Ｚ」、「Ｂ−Ｉ−Ｚ」、「Ｂ−Ｊ−Ｚ」、「Ｂ−Ｌ−Ｚ」の情報を図３６に示したルートテーブルから削除する。経路更新部４ｃは、ノードＢを含む４つの経路の情報を送信制御部５ｃへ通知する。
【０１２８】
このように、経路更新部４ｃは、他のノードと合致したノードを含む複数のルートで間接的に通信可能となった間接ノードの遭遇確度を用いて、複数のルートのうちいずれか一つのルートで間接的に通信可能となる間接ノードの遭遇確度を算出することで経路データを更新する。そして、経路更新部４ｃは、経路データ中の全ての相手ノードについて上記更新処理を実行すると、更新後の経路データを更新経路データとして経路記録部７に記録する。
【０１２９】
図３４に戻り、送信制御部５ｃは、経路記録部７の更新経路データにおける遭遇確度を用いて、通信部２が検出した他のノードへコンテンツデータを送信するか否かを判断し、送信すると判断した他のノードへコンテンツデータを送信する。具体的には、送信制御部５ｃは、経路記録部７の更新経路データにコンテンツデータの宛先ノードへのルートが複数含まれる場合に、各ルートのうち遭遇確度が最も高いルートを抽出し、抽出したルートを用いてコンテンツデータを他のノードへ送信する。
【０１３０】
また、送信制御部５ｃは、経路更新部４ｃにより経路データから削除された複数の経路の情報を経路更新部４ｃから受け取ると、該複数の経路の情報をコンテンツデータに付加して他のノードへ送信する。なお、以下では、送信制御部５ｃによって複数の経路の情報が付加されたコンテンツデータを「送信データ」と呼ぶこととする。
【０１３１】
ここで、送信データのデータ構造の一例を説明する。図３８は、送信データのデータ構造の一例を示す図である。同図に示すように、送信データは、宛先情報、送信元情報、複数経路送信フラグ、複数経路送信情報および実データを含む。「宛先情報」は、送信データの宛先ノードを示す情報である。「送信元情報」は、送信データの送信元ノードを示す情報である。「複数経路送信フラグ」は、送信データに複数の経路の情報が設定されているか否かを示すフラグであり、「ＯＮ」のとき送信データに複数の経路の情報が設定されていることを示し、「ＯＦＦ」のとき送信データに複数の経路の情報が設定されていないことを示す。「複数経路送信情報」は、送信データの送信対象となる複数の経路の情報を示す。「実データ」は、複数の経路の情報が付加される実際のコンテンツデータを示す。
【０１３２】
例えば、図３６に示したルートテーブルでは、経路更新部４ｃにより４つの経路「Ｂ−Ｈ−Ｚ」、「Ｂ−Ｉ−Ｚ」、「Ｂ−Ｊ−Ｚ」、「Ｂ−Ｌ−Ｚ」の情報が削除されて送信制御部５ｃへ通知される。送信制御部５ｃは、削除された４つの経路「Ｂ−Ｈ−Ｚ」、「Ｂ−Ｉ−Ｚ」、「Ｂ−Ｊ−Ｚ」、「Ｂ−Ｌ−Ｚ」の情報を経路更新部４ｃから受け取る。そして、送信制御部５ｃは、４つの経路「Ｂ−Ｈ−Ｚ」、「Ｂ−Ｉ−Ｚ」、「Ｂ−Ｊ−Ｚ」、「Ｂ−Ｌ−Ｚ」の情報をコンテンツデータに付加して遭遇中の他のノードＢへ送信する。４つの経路がコンテンツデータに付加された送信データの一例を図３９に示す。同図に示すように、送信制御部５ｃは、送信データの「複数経路送信フラグ」を、送信データに４つの経路の情報が設定されていることを示す「ノードＢ＝ＯＮ」に設定する。また、送信制御部５ｃは、送信データの「複数経路送信情報」に、送信データの送信対象となる４つの経路「Ｂ−Ｈ−Ｚ」、「Ｂ−Ｉ−Ｚ」、「Ｂ−Ｊ−Ｚ」、「Ｂ−Ｌ−Ｚ」に含まれる次の送信対象となるノードＨ、Ｉ、Ｊ、Ｌの情報を設定する。
【０１３３】
このように、送信制御部５ｃは、経路更新部４ｃにより経路データから削除された複数の経路の情報を経路更新部４ｃから受け取ると、該複数の経路の情報をコンテンツデータに付加した送信データを他のノードへ送信する。これにより、送信データを受信した他のノードは、自身の経路データを用いて遭遇確度が最も高い経路上のノードへデータ送信するのではなく、送信データの「複数経路送信情報」に設定されたノードのいずれかに遭遇した場合に該ノードに送信データを転送する。
【０１３４】
ここで、送信データを受信した他のノードによる処理を説明する。図４０は、送信データを受信した他のノードによる処理を説明するための図である。なお、図４０は、図３９に示した送信データを受信したノードＢのルートテーブルを示す。図４０に示すように、送信データを受信したノードＢは、「複数経路送信フラグ」が「ＯＮ」であることを確認すると「複数経路送信情報」に設定されたノードを含む経路にチェックを入れる。これにより、ノードＢは、ノードＢ自身のルートテーブルを用いて遭遇確度が最も高い経路上のノードへデータ送信するのではなく、「複数経路送信情報」に設定されたノードのいずれかに遭遇した場合に該ノードに送信データを転送する。図４０の例では、「複数経路送信情報」に設定されたノードＨ、Ｉ、Ｊ、Ｌを含む経路にチェックが入っているので、ノードＢは、ノードＨ、Ｉ、Ｊ、Ｌのいずれかに遭遇した場合に該ノードに送信データを転送する。
【０１３５】
［実施例４に係るデータ転送装置の動作例］
次に、実施例４に係るデータ転送装置の動作例について説明する。図４１は、実施例４に係るデータ転送装置１ｃの動作例を示すフローチャートである。図４１は、通信部２が他のノードを検出したときのデータ転送装置１ｃによるデータ転送処理の処理手順である。図４１において、図２９の処理工程に対応する処理工程には同じ番号を付してその詳細な説明を省略する。
【０１３６】
図４１に示すように、遭遇確度を経路データへ追加すると（ステップＳ１２）、経路更新部４ｃは、更新経路データ生成処理を実行する（ステップＳ１３ａ）。図４２は、更新経路データ生成処理の処理手順を示すフローチャートである。なお、図４２において、図３０の処理工程に対応する処理工程には同じ番号を付してその詳細な説明を省略する。
【０１３７】
図４２に示すように、経路更新部４ｃは、ステップＳ１３４の処理を終えると、現在遭遇しているノードがルートテーブルにおける同一の相手ノードへ至る複数の経路上の先頭ノードと合致するか否かを判定する（ステップＳ１４１）。
【０１３８】
経路更新部４ｃは、現在遭遇しているノードがルートテーブルにおける同一の相手ノードへ至る経路上の先頭ノードと合致しない場合には（ステップＳ１４１否定）、処理をステップＳ１４３へ進める。一方、経路更新部４ｃは、現在遭遇しているノードが同一の相手ノードへ至る経路上の先頭ノードと合致する場合には、以下の処理を行う。すなわち、経路更新部４ｃは、合致する先頭ノードを含む複数の経路で間接的に通信可能となった間接ノードの遭遇確度を用いて、複数の経路のうちいずれか一つの経路で間接的に通信可能となる間接ノードの遭遇確度を算出する（ステップＳ１４２）。
【０１３９】
続いて、経路更新部４ｃは、経路データ中の全ての相手ノードについてステップＳ１４１の判定処理およびステップＳ１４２の補正処理を繰り返し実行する（ステップＳ１４３否定）。そして、経路更新部４ｃは、経路データ中の全ての相手ノードについてステップＳ１４３の補正処理を実行すると（ステップＳ１４３肯定）、更新後の経路データを更新経路データとして経路記録部７に記録する（ステップＳ１３５）。
【０１４０】
図４１の説明に戻り、動作モードが通常モードである場合には（ステップＳ２１肯定）、送信制御部５ｂは、経路記録部７の更新経路データを参照してコンテンツデータの送信の要否を判断するデータ送信判断処理を実行する（ステップＳ２３ａ）。図４３は、データ送信判断処理の処理手順を示すフローチャートである。なお、図４３において、図３１の処理工程に対応する処理工程には同じ番号を付してその詳細な説明を省略する。
【０１４１】
図４３に示すように、宛先ノードへ向かう経路が２つ以上存在する場合には（ステップＳ２３２肯定、ステップＳ２３４肯定）、送信制御部５ｃは、複数経路送信情報に設定されたノードと現在遭遇しているノードとが合致するか否かを判定する（ステップＳ２４１）。複数経路送信情報に設定されたノードと現在遭遇しているノードとが合致しない場合には（ステップＳ２４１否定）、送信制御部５ｃは、以下の処理を行う。すなわち、送信制御部５ｃは、「ルート属性テーブルの残ＨＤ量よりも送信データのサイズが小さい」という条件の下で、宛先ノードへ向かう各経路のうち遭遇確度が最も高い経路を抽出し（ステップＳ２３６）、処理をステップＳ２３７へ進める。一方、複数経路送信情報に設定されたノードと現在遭遇しているノードとが合致する場合には（ステップＳ２４１肯定）、送信制御部５ｃは、ステップＳ２３６の処理を行うことなく、コンテンツデータを送信すると判断する（ステップＳ２３９）。
【０１４２】
そして、「ルート属性テーブルの残ＨＤ量よりも送信データのサイズが小さい」という条件の下で遭遇確度が最も高い経路が抽出された場合には（ステップＳ２３７肯定）、送信制御部５ｃは、以下の処理を行う。すなわち、送信制御部５ｃは、抽出された経路上のノードと、現在遭遇しているノードとが合致するか否かを判定する（ステップＳ２３８）。抽出された経路上のノードと、現在遭遇しているノードとが合致する場合には（ステップＳ２３８肯定）、送信制御部５ｃは、経路更新部４ｃにより経路データから削除された複数の経路の情報を経路更新部４ｃから受け取ったか否かを判定する（ステップＳ２４２）。複数の経路の情報を経路更新部４ｃから受け取っていない場合には（ステップＳ２４２否定）、送信制御部５ｃは、コンテンツデータを送信すると判断する（ステップＳ２３９）。
【０１４３】
一方、複数の経路の情報を経路更新部４ｃから受け取った場合には（ステップＳ２４２肯定）、送信制御部５ｃは、送信データの「複数経路送信フラグ」を送信データに複数の経路の情報が設定されていることを示す「ＯＮ」に設定する（ステップＳ２４３）。続いて、送信制御部５ｃは、送信データの「複数経路送信情報」に、送信データの送信対象となる複数の経路に含まれる次の送信対象ノードの情報を設定し（ステップＳ２４４）、コンテンツデータを送信すると判断する（ステップＳ２３９）。
【０１４４】
図４１の説明に戻り、送信後のコンテンツデータをコンテンツデータ記録部９から削除すると（ステップＳ２６）、送信制御部５ｃは、以下の処理を行う。すなわち、送信制御部５ｃは、経路記録部７の経路データを参照して「複数経路送信情報」に設定されたノードを含む経路であることを示すチェックが入っているか否かを判断する（ステップＳ３１）。チェックが入っている場合には（ステップＳ３１肯定）、送信制御部５ｃは、当該チェックを経路データから削除し（ステップＳ３２）、処理をステップＳ２７に進める。一方、チェックが入っていない場合には（ステップＳ３１否定）、送信制御部５ｃは、処理をステップＳ２７に進める。
【０１４５】
上述してきたように、実施例４に係るデータ転送装置１ｃは、現在遭遇しているノードの先に複数のルートが存在する場合に、複数のルートのうちいずれか一つのルートで間接的に通信可能となる間接ノードの遭遇確度を算出することで経路データを更新する。そして、データ転送装置１ｃは、更新後の経路データを用いてデータの送信の要否を判断する。このため、データ転送装置１ｃは、遭遇中のノードの先に複数のルートが存在する場合でも、補正後の正確な遭遇確度を用いてデータの送信の要否を判断することができ、信頼性の高いデータ転送を実現することができる。
【０１４６】
また、実施例４に係るデータ転送装置１ｃは、複数のルートで間接的に通信可能となった間接ノードの遭遇確度のうち所定値を超える遭遇確度を用いて複数のルートのうちいずれか一つのルートで間接的に通信可能となる間接ノードの遭遇確度を算出する。このため、データ転送装置１ｃは、所定値を超える遭遇確度のみを用いて補正後の遭遇確度をより高精度に算出することができ、データ転送の信頼性を一層向上することができる。
【０１４７】
また、実施例４に係るデータ転送装置１ｃは、現在遭遇している他のノードと合致したノードを含む複数のルートに関する情報を経路データから削除する。このため、データ転送装置１ｃは、経路データの肥大化を阻止することができ、経路データがメモリを圧迫することを防止することができる。
【０１４８】
また、実施例４に係るデータ転送装置１ｃは、経路データから削除した複数のルートの情報をコンテンツデータに付加して現在遭遇中のノードへ送信する。このため、データを受信した他のノードは、複数のルートのうちいずれか一つのルート上のノードに遭遇した場合に該ノードにデータを転送することができる。
【符号の説明】
【０１４９】
１、１ａ、１ｂ、１ｃ  データ転送装置
２  通信部
３  制御部
４、４ｂ、４ｃ  経路更新部
５、５ｂ、５ｃ  送信制御部
６  メモリ
７  経路記録部
８  ストレージ
９  コンテンツデータ記録部
１１  経路属性記録部
１２  インタフェース部
１３  入力手段
１４  出力手段
【図１】
0005472064.tif 000003
【図２】
0005472064.tif 000004
【図３】
0005472064.tif 000005
【図４】
0005472064.tif 000006
【図５Ａ】
0005472064.tif 000007
【図５Ｂ】
0005472064.tif 000008
【図６】
0005472064.tif 000009
【図７】
0005472064.tif 000010
【図８】
0005472064.tif 000011
【図９】
0005472064.tif 000012
【図１０】
0005472064.tif 000013
【図１１Ａ】
0005472064.tif 000014
【図１１Ｂ】
0005472064.tif 000015
【図１２】
0005472064.tif 000016
【図１３】
0005472064.tif 000017
【図１４】
0005472064.tif 000018
【図１５Ａ】
0005472064.tif 000019
【図１５Ｂ】
0005472064.tif 000020
【図１６】
0005472064.tif 000021
【図１７】
0005472064.tif 000022
【図１８】
0005472064.tif 000023
【図１９】
0005472064.tif 000024
【図２０Ａ】
0005472064.tif 000025
【図２０Ｂ】
0005472064.tif 000026
【図２０Ｃ】
0005472064.tif 000027
【図２０Ｄ】
0005472064.tif 000028
【図２０Ｅ】
0005472064.tif 000029
【図２０Ｆ】
0005472064.tif 000030
【図２１】
0005472064.tif 000031
【図２２Ａ】
0005472064.tif 000032
【図２２Ｂ】
0005472064.tif 000033
【図２２Ｃ】
0005472064.tif 000034
【図２３】
0005472064.tif 000035
【図２４】
0005472064.tif 000036
【図２５】
0005472064.tif 000037
【図２６】
0005472064.tif 000038
【図２７】
0005472064.tif 000039
【図２８】
0005472064.tif 000040
【図２９】
0005472064.tif 000041
【図３０】
0005472064.tif 000042
【図３１】
0005472064.tif 000043
【図３２】
0005472064.tif 000044
【図３３】
0005472064.tif 000045
【図３４】
0005472064.tif 000046
【図３５】
0005472064.tif 000047
【図３６】
0005472064.tif 000048
【図３７】
0005472064.tif 000049
【図３８】
0005472064.tif 000050
【図３９】
0005472064.tif 000051
【図４０】
0005472064.tif 000052
【図４１】
0005472064.tif 000053
【図４２】
0005472064.tif 000054
【図４３】
0005472064.tif 000055