(57)【要約】【課題】断続的通信環境であっても効率的なエンドツーエンドのメッセージ送信を実現する。【解決手段】蓄積転送型通信により他の通信装置を介して宛先の通信装置との間でメッセージの送受信を行う通信装置であって、生成（又は受信）したメッセージを隣接上位装置（最も信頼度の大きい隣接通信装置）に対して送信する。自分宛へのメッセージの確認するときは、メッセージ要求を隣接上位装置に対して送信する。メッセージ要求を受信したとき、メッセージ要求を生成した通信装置を宛先とするメッセージ内容を記憶しているならば、当該メッセージ内容を隣接通信装置に対して送信し、そうでなければ当該メッセージ要求を隣接上位装置に対して送信する。【選択図】  図１
2015192347.tif 000002
【特許請求の範囲】
【請求項１】
蓄積転送型通信により他の通信装置を介して宛先の通信装置との間でメッセージの送受信を行う通信装置であって、
隣接通信装置の信頼度を示す信頼度情報と、受信したメッセージの宛先と内容とを対応付けたメッセージ情報とを予め記憶した記憶部と、
メッセージを生成したとき又は他の通信装置から自分宛ではないメッセージを受信したとき、前記信頼度情報を参照して、最も信頼度の大きい隣接通信装置である隣接上位装置に対して該メッセージを送信するメッセージ送信手段と、
前記信頼度情報を参照して前記隣接上位装置に対してメッセージ要求を送信するメッセージ要求手段と、
前記メッセージ要求を受信したとき、前記メッセージ情報を参照し、該メッセージ要求を生成した通信装置を宛先とするメッセージの内容を記憶しているならば、該メッセージ要求を送信した隣接通信装置に対して該メッセージ内容を送信するメッセージ返信処理を、該メッセージ要求を生成した通信装置を宛先とするメッセージの内容を記憶していないならば、前記信頼度情報を参照して前記隣接上位装置に対して該メッセージ要求を送信するメッセージ要求転送処理を行うメッセージ応答手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記メッセージ又は前記メッセージ要求の少なくとも一方には、該メッセージ及び該メッセージ要求を送信した通信装置の信頼度が記されており、
前記メッセージ又は前記メッセージ要求を受信したとき、これらの情報に記された信頼度に基づいて前記信頼度情報を更新する信頼度情報更新手段を更に有する請求項１に記載の通信装置。
【請求項３】
前記信頼度情報には、更に、自らの信頼度が記憶され、
前記信頼度情報更新手段は、前記自らの信頼度よりも大きい信頼度を有する他の通信装置までのネットワーク距離が小さいほど、前記信頼度情報における自らの信頼度を大きい値に更新する請求項２に記載の通信装置。
【請求項４】
前記信頼度情報更新手段は、前記自らの信頼度よりも大きい信頼度を有する他の通信装置の信頼度が大きいほど、前記信頼度情報における自らの信頼度を大きい値に更新する請求項３に記載の通信装置。
【請求項５】
前記メッセージ送信手段により前記メッセージを送信したとき、該メッセージを送信した前記隣接上位装置の信頼度が大きいほど、優先的に該メッセージの内容を前記記憶部から削除するメッセージ削除手段を更に有する
請求項１〜請求項４の何れか一項に記載の通信装置。
【請求項６】
蓄積転送型通信により他の通信装置を介して宛先の通信装置との間でメッセージの送受信を行う通信装置で実行されるプログラムであって、
隣接通信装置の信頼度を示す信頼度情報と、受信したメッセージの宛先と内容とを対応付けたメッセージ情報とを予め記憶しており、
前記プログラムは、コンピュータに、
メッセージを生成したとき又は他の通信装置から自分宛ではないメッセージを受信したとき、前記信頼度情報を参照して、最も信頼度の大きい隣接通信装置である隣接上位装置に対して該メッセージを送信する処理と、
前記信頼度情報を参照して前記隣接上位装置に対してメッセージ要求を送信する処理と、
前記メッセージ要求を受信したとき、前記メッセージ情報を参照し、該メッセージ要求を生成した通信装置を宛先とするメッセージの内容を記憶しているならば、該メッセージ要求を送信した隣接通信装置に対して該メッセージ内容を送信するメッセージ返信処理を、該メッセージ要求を生成した通信装置を宛先とするメッセージの内容を記憶していないならば、前記信頼度情報を参照して前記隣接上位装置に対して該メッセージ要求を送信するメッセージ要求転送処理を
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、断続的通信環境であっても装置間においてメッセージの蓄積転送を行うことによってエンドツーエンドのメッセージ送信を実現する通信装置およびプログラムに関する。
【背景技術】
【０００２】
大規模災害により、固定電話網、携帯電話網、インターネットといったような既存の通信インフラが大きなダメージを受けて、例えば、通信経路の物理的なリンクが途切れたり、極端に大きな通信遅延やデータ欠損が発生するような場合、エンドツーエンドでの正常な物理リンクが確立している通信環境を前提とした既存のアプリケーションは、正常に動作しない恐れがある。これにより、例えば、利用者の家族間における安否情報などといった重要なメッセージの伝達が困難となる恐れがある。
【０００３】
近年、大規模災害などによって生じた劣悪な通信環境においてもエンドツーエンドの情報伝達を実現する技術的な枠組みとして、遅延耐性ネットワーク（ＤＴＮ：Delay, Disruption, Disconnection Tolerant Networking）が注目されている。ＤＴＮは、エンドツーエンドで物理的なリンクが常に確立しているとは限らない断続的通信環境を想定しているため、メッセージを中継するノードのバッファ内にメッセージを一旦蓄積し、ノードの移動や通信環境の変動などに伴って他のノードと通信可能となったとき（接触状態）、当該蓄積したメッセージを転送するといった蓄積転送型通信（ＳＣＦ：Store-Carry-Forward、蓄積運搬型転送ともいう）によってメッセージを送信することを特徴の一つとしている。
【０００４】
蓄積転送型通信における、単純な方式として、メッセージを蓄積しているノードが他のノードと接触状態となったとき、蓄積しているメッセージのコピーを他のノードに無条件に送信する感染形中継転送方式（Epidemic Routing）が提案されている（非特許文献１）。この方式では、接触状態となったノードに対して次々にメッセージを転送していくため、複製メッセージが感染するように伝達されていくことになる。
【０００５】
また、接触パターンの履歴情報などを活用した蓄積転送型通信も提案されている。例えば、特許文献１には、移動ノードの履歴情報（行動履歴）を各ノードで共有し、当該履歴情報（行動履歴）に基づいて所定の宛先ノードに対してメッセージを到達させる可能性の高い移動ノードを選択して転送する技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【非特許文献１】A.Vahdat and D.Becker:Epidemic routing for partially connected ad hoc networks:Technical Report CS-2000-06
【特許文献１】特開２０１２−２５３４５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、感染形中継転送方式は、接触状態にあるノードにメッセージを拡散（感染）させていくことから、ネットワーク資源を著しく消費してしまうといった問題があった。すなわち、大規模災害の発生直後のように、各ノードがメッセージを一斉に送信した場合、情報の輻輳（通信トラフィックの増大、ノードの記憶領域の逼迫）が発生する。また、メッセージの宛先とは全く関係のないネットワークセグメント内にまでもメッセージが伝播されていくことから、ネットワーク全体として通信のための電力消費も激しいものとなる。
【０００８】
また、特許文献１のような移動ノードの履歴情報に基づいて転送対象の移動ノードを選択する従来技術では、移動ノードの行動パターンが決まっていない場合におけるメッセージの到達率に課題を有する。すなわち、人間や動物のように不規則に移動する移動ノード同士の接触パターン（偶発的接触）においては、過去の履歴情報によってメッセージを到達させる可能性の高い移動ノードを推測することは困難であるため、宛先ノードに対してメッセージを到達させることができないケースが多発することになる。
【０００９】
そこで、本発明は、メッセージを長期間管理・中継する能力の高さを表す信頼度を各ノードにおいて規定し、接触状態にあるノードの中で、最も信頼度の高いノードに対してメッセージを送信していくことにより、大規模災害時のような劣悪な通信環境においても、ネットワーク資源の消費を抑制しつつ高い到達率でエンドツーエンドにおけるメッセージ送信が可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
上記した目的を達成するために、蓄積転送型通信により他の通信装置を介して宛先の通信装置との間でメッセージの送受信を行う通信装置であって、
隣接通信装置の信頼度を示す信頼度情報と、受信したメッセージの宛先と内容とを対応付けたメッセージ情報とを予め記憶した記憶部と、メッセージを生成したとき又は他の通信装置から自分宛ではないメッセージを受信したとき、前記信頼度情報を参照して、最も信頼度の大きい隣接通信装置である隣接上位装置に対して該メッセージを送信するメッセージ送信手段と、前記信頼度情報を参照して前記隣接上位装置に対してメッセージ要求を送信するメッセージ要求手段と、
前記メッセージ要求を受信したとき、前記メッセージ情報を参照し、該メッセージ要求を生成した通信装置を宛先とするメッセージの内容を記憶しているならば、該メッセージ要求を送信した隣接通信装置に対して該メッセージ内容を送信するメッセージ返信処理を、該メッセージ要求を生成した通信装置を宛先とするメッセージの内容を記憶していないならば、前記信頼度情報を参照して前記隣接上位装置に対して該メッセージ要求を送信するメッセージ要求転送処理を行うメッセージ応答手段と、を備えることを特徴とする通信装置を提供する。
【００１１】
かかる構成により、生成されたメッセージは、自らの通信装置と通信可能な複数の他の通信装置（以下、「隣接通信装置」という）の中から、最も信頼度の大きい隣接通信装置である隣接上位装置に対して送信される。そして、当該メッセージは、より高い信頼度を有する通信装置に向かって転送及び蓄積されていき、また、自らの通信装置に対するメッセージを確認する問合せ（メッセージ要求）もより高い信頼度を有する通信装置に向かって転送されていく。そして、自分宛のメッセージを蓄積した通信装置に自らが送信したメッセージ要求が到達したとき、当該メッセージ内容を、メッセージ要求が伝播したルートを辿って自分宛に送信される。したがって、たとえ断続的通信環境であったとしても、既知のルーティング技術により通信経路を確立することなく、通信装置間においてエンドツーエンドの通信を行うことが可能となる。特に、生成されたメッセージ及びメッセージ要求は、高い信頼度を有する通信装置に向かって集約されていくことになるため、高い信頼度を有する通信装置において両メッセージが互いに巡り会う確率が高くなることから、高い到達率によりエンドツーエンドの通信を行うことができる。さらに、隣接上位装置に対してのみ、メッセージ（及びメッセージ要求）を送信するため、情報の輻輳（通信トラフィックの増大、ノードの記憶領域の逼迫）を抑制することができる。
【００１２】
また、本発明の好ましい態様として、前記メッセージ又は前記メッセージ要求の少なくとも一方には、該メッセージ及び該メッセージ要求を送信した通信装置の信頼度が記されており、前記メッセージ又は前記メッセージ要求を受信したとき、これらの情報に記された信頼度に基づいて前記信頼度情報を更新する信頼度情報更新手段を更に有するものとする。
【００１３】
かかる構成により、信頼度情報を更新するためだけの通信（例えば、隣接通信装置の存在を確認してその信頼度を確認するために相互に行う通信）を行う必要性が無いため、通信トラフィックをより抑制しながら、時々刻々変化する信頼度情報を最新の状態に動的に更新させていくことができる。
【００１４】
また、本発明の好ましい態様として、前記信頼度情報には、更に、自らの信頼度が記憶され、前記信頼度情報更新手段は、前記自らの信頼度よりも大きい信頼度を有する他の通信装置までのネットワーク距離が小さいほど、前記信頼度情報における自らの信頼度を大きい値に更新するものとする。
【００１５】
かかる構成により、通信環境の変動に応じて、より信頼度の大きい他の通信装置にネットワーク距離が小さい位置（ネットワーク的に近い位置）にある通信装置であるほど大きい信頼度になるように更新する。ここで、ネットワーク距離とは、ノード間にかかるネットワークコストのことを意味し、ホップ数や、帯域幅などによって定まる、いわゆるメトリックのことをいう。例えば、信頼度の大きい他の通信装置に、より少ないホップ数の位置にある通信装置であるほど大きい信頼度になるように更新する。これにより、信頼度がより上位の通信装置まで、ネットワーク的に最短距離（例えば、最も少ないホップ数）でメッセージを送信できる通信装置に、メッセージを集まり易くすることができる。したがって、全体的に最短距離で高信頼度の通信装置までメッセージを送信することができるようになり、より通信トラフィックを抑制した効率的な通信が可能となる。
【００１６】
また、本発明の好ましい態様として、前記信頼度情報更新手段は、前記自らの信頼度よりも大きい信頼度を有する他の通信装置の信頼度が大きいほど、前記信頼度情報における自らの信頼度を大きい値に更新するものとする。
【００１７】
かかる構成により、通信環境の変動に応じて、より信頼度の大きい通信装置にメッセージが集まり易くすることができ、より通信トラフィックを抑制した効率的な通信が可能となる。
【００１８】
また、本発明の好ましい態様として、前記メッセージ送信手段により前記メッセージを送信したとき、該メッセージを送信した前記隣接上位装置の信頼度が大きいほど、優先的に該メッセージの内容を前記記憶部から削除するメッセージ削除手段を更に有するものとする。
【００１９】
かかる構成により、信頼度の大きい通信装置にメッセージを送信するほど、当該メッセージが宛先の通信装置に到達する可能性がより高まることから、当該メッセージを保持しておく必要性が低くなるため、当該メッセージを優先的に消去する。これにより、不必要なメッセージを大量に記憶することによる、通信装置の記憶容量のオーバーフローを抑制することができる。
【００２０】
また、蓄積転送型通信により他の通信装置を介して宛先の通信装置との間でメッセージの送受信を行う通信装置で実行されるプログラムであって、隣接通信装置の信頼度を示す信頼度情報と、受信したメッセージの宛先と内容とを対応付けたメッセージ情報とを予め記憶しており、
前記プログラムは、コンピュータに、メッセージを生成したとき又は他の通信装置から自分宛ではないメッセージを受信したとき、前記信頼度情報を参照して、最も信頼度の大きい隣接通信装置である隣接上位装置に対して該メッセージを送信する処理と、前記信頼度情報を参照して前記隣接上位装置に対してメッセージ要求を送信する処理と、前記メッセージ要求を受信したとき、前記メッセージ情報を参照し、該メッセージ要求を生成した通信装置を宛先とするメッセージの内容を記憶しているならば、該メッセージ要求を送信した隣接通信装置に対して該メッセージ内容を送信するメッセージ返信処理を、該メッセージ要求を生成した通信装置を宛先とするメッセージの内容を記憶していないならば、前記信頼度情報を参照して前記隣接上位装置に対して該メッセージ要求を送信するメッセージ要求転送処理を実行させることを特徴とするプログラムであってもよい。
【００２１】
このプログラムによっても、上記の通信装置と同様に、たとえ断続的通信環境であったとしても、情報の輻輳を抑制しつつ、高い到達率により、エンドツーエンドの通信を行うことが可能となる。
【発明の効果】
【００２２】
上記のように、本発明によれば、大規模災害時のような劣悪な通信環境においても、ネットワーク資源の消費を抑制しつつ高い到達率でエンドツーエンドにおけるメッセージ送信を可能とすることができる。
【図面の簡単な説明】
【００２３】
【図１】メッセージの送受信の概略説明図
【図２】通信装置の構成を示すブロック図
【図３】信頼度情報を示すテーブル
【図４】近接上位信頼度と近接距離の説明図
【図５】メッセージ情報を示すテーブル
【図６】応答待ち状態情報を示すテーブル
【図７】メッセージパケット構造の説明図
【図８】メッセージ送信処理を示すフローチャート
【図９】信頼度比較処理を示すフローチャート
【図１０】メッセージ要求パケット構造の説明図
【図１１】メッセージ応答パケット構造の説明図
【図１２】メッセージ応答処理を示すフローチャート
【図１３】信頼度情報更新処理（第二の処理）の説明図
【図１４】メッセージ応答転送処理を示すフローチャート
【発明を実施するための形態】
【００２４】
以下、所定のエリア（地域）に存在する複数の通信装置間において蓄積転送型通信を行うことにより、エンドツーエンドでメッセージの通信を行う通信装置の実施形態について図面を参照して具体的に説明する。
【００２５】
図１は、本発明における通信装置１によるメッセージ通信の概略を説明する図である。図１において、符号１Ａ〜１Ｓで示した円形は、互いに異なる場所にある通信装置１を表している。本実施形態における通信装置１は、蓄積転送型通信を行うことが可能な通信機能を有する固定端末又は移動端末であり、例えば、利用者に所持される携帯電話、スマートフォン、タブレットや、家庭や会社に設置されるＰＣ／サーバ、警備装置、家電製品、スマートメーターや、車／飛行船／飛行ロボットなどに搭載される通信モジュールなどが挙げられる。また、同図において、通信装置１の間を結んだ点線は、有線又は無線により互いに直接的に通信可能であることを表している。すなわち、当該点線で結ばれた通信装置１は、通信的に接触状態にあることを意味しており、以下では、これらの通信装置１を「隣接している」として表現する。また、同図では、便宜上、通信装置１ごとに設定された「信頼度」に基づく階層（レイヤー）により各通信装置１を隔てて表現している。ここで、信頼度とは、通信装置１における、受信したメッセージを長期間管理（記憶）して他の通信装置１に送信できる能力の高さを表すパラメータであり、管理者等により予め設定されていたり、自動的に生成・更新したりすることにより、通信装置１毎に設定されるものである。後述するように、信頼度は、通信装置１に固定的に設定される静的信頼度と動的に更新される動的信頼度とから構成されるが、ここでは簡易的に静的信頼度と動的信頼度を包含する概念である信頼度を用いて説明する。
【００２６】
はじめに、通信装置１Ａから通信装置１Ｆ宛にメッセージを送信する場合について、図１（ａ）を用いて説明する。まず、任意のタイミングで通信装置１Ｆ宛のメッセージを送信しようとする通信装置１Ａは、隣接している通信装置である隣接通信装置１Ｂ（信頼度１）、１Ｇ（信頼度２）の全てに対してメッセージを送信する「感染形中継転送方式」とは異なり、自装置の信頼度以上であって最も信頼度が大きい隣接通信装置１Ｇ（信頼度２）に対してのみメッセージを送信する。以下、本実施形態において、自装置の信頼度以上であって最も信頼度が大きい隣接通信装置を「隣接上位装置」という。そして、通信装置１Ａからメッセージを受信した通信装置１Ｇは、当該メッセージの内容（以下、「メッセージデータ」という）を一旦記憶し、当該メッセージのコピーを、隣接上位装置１Ｍ（信頼度３）、１Ｎ（信頼度３）に対して送信する。このように、隣接上位装置へのメッセージの送信（転送）を繰り返すことにより、通信装置１Ａから送信されたメッセージは、同図における実線の矢印で示したように、Ａ→Ｇ→Ｎ→Ｏ→Ｒ→Ｓと転送されていき、メッセージを受信したこれらの通信装置１夫々には、当該メッセージ（のコピー）が記憶されることになる。
【００２７】
一方、任意のタイミングで自分宛のメッセージが送信されているか否かを確認しようとする通信装置１Ｆは、隣接上位装置１Ｌ（信頼度２）に対してのみメッセージ要求を送信する。ここで、任意のタイミングとは、例えば、通信装置１Ｆを利用している利用者がメッセージの確認操作をしたタイミングや、通信装置１Ｆが定期的（例えば１時間に１回）に行うタイミングなどが挙げられる。そして、通信装置１Ｆからメッセージ要求を受信した通信装置１Ｌは、通信装置１Ｆ宛のメッセージデータを記憶していないならば、受信したメッセージ要求を隣接上位装置１Ｋに対して送信する。このように、隣接上位装置へのメッセージ要求の送信（転送）を繰り返すことにより、通信装置１Ｆから送信されたメッセージ要求は、図１（ａ）における点線の矢印で示したように、Ｆ→Ｌ→Ｋ→Ｑ→Ｐ→Ｓと転送されていく。そして、当該メッセージ要求を受信した通信装置１Ｓは、通信装置１Ｆ宛のメッセージデータを記憶しているため、当該メッセージ要求を送信した隣接通信装置１Ｐに対して、当該メッセージデータを記したメッセージ応答を送信する。そして、当該メッセージ応答を受信した通信装置１Ｐは、当該メッセージ応答に記されたメッセージデータを一旦記憶し、当該メッセージ応答に対応するメッセージ要求を送信した隣接通信装置１Ｑに対して、受信したメッセージ応答を送信（転送）する。このように、メッセージ要求を送信した隣接通信装置へのメッセージ応答の送信（転送）を繰り返すことにより、通信装置１Ｓから送信されたメッセージ応答は、図１（ａ）における破線の矢印で示したように、Ｓ→Ｐ→Ｑ→Ｋ→Ｌ→Ｆと転送されていく。いわば、メッセージ要求によって確立していることが確認された通信経路を遡ってメッセージ応答が転送されていくことにより、メッセージ応答がメッセージ要求を生成した通信装置１Ｆに到達することが保証される。
【００２８】
このように、通信装置１Ｆは、メッセージ応答に記された自分宛のメッセージデータを受信することができる。したがって、たとえ断続的通信環境であったとしても、通信装置１Ａと通信装置１Ｆとの間でエンドツーエンドにより通信を行うことが可能となる。また、同図において、黒色の円形で表した通信装置は、メッセージデータを記憶している通信装置を表しており、白色の円形で表した通信装置は、メッセージデータを記憶していない通信装置を表している。したがって、本発明における通信装置１は、「感染形中継転送方式」とは異なり、隣接上位装置に対してのみ、メッセージ（及びメッセージ要求）を送信するため、情報の輻輳（通信トラフィックの増大、ノードの記憶領域の逼迫）を抑制することができる。例えば、図１（ａ）の例では、通信装置１Ｂ〜１Ｅ、１Ｈ〜１Ｊに対してメッセージ・メッセージ要求・メッセージ応答のいずれも送信されないため、これらの通信装置１における不要な通信を削減することができ、かつ、これらの通信装置１に対して不要なメッセージを記憶させないようにすることができる。
【００２９】
次に、通信装置１Ｄから通信装置１Ｆ宛にメッセージを送信する場合について、図１（ｂ）を用いて説明する。まず、任意のタイミングで通信装置１Ｆ宛のメッセージを送信しようとする通信装置１Ｄは、隣接上位装置１Ｋ（信頼度２）に対してメッセージを送信する。そして、通信装置１Ｄからメッセージを受信した通信装置１Ｋは、当該メッセージデータを一旦記憶し、当該メッセージのコピーを、隣接上位装置１Ｑ（信頼度３）に対して送信する。このように、隣接上位装置へのメッセージの送信（転送）を繰り返すことにより、通信装置１Ｄから送信されたメッセージは、同図における実線の矢印で示したように、Ｄ→Ｋ→Ｑ→Ｐ→Ｓ→Ｒと転送されていき、メッセージを受信したこれらの通信装置１夫々には、当該メッセージ（のコピー）が記憶されることになる。
【００３０】
一方、任意のタイミングで自分宛のメッセージが送信されているか否かを確認しようとする通信装置１Ｆは、メッセージ要求を隣接上位装置１Ｌ（信頼度２）に対して送信する。そして、通信装置１Ｆからメッセージ要求を受信した通信装置１Ｌは、通信装置１Ｆ宛のメッセージデータを記憶していないため、受信したメッセージ要求を隣接上位装置１Ｋに対して送信する。当該メッセージ要求を受信した通信装置１Ｋは、通信装置１Ｆ宛のメッセージデータを記憶しているため、当該メッセージ要求を送信した隣接通信装置１Ｌに対して、当該メッセージデータを記したメッセージ応答を送信する。そして、当該メッセージ応答は、通信装置１Ｌを介して通信装置１Ｆに転送される。
【００３１】
図１（ｂ）で例示したように、通信装置１Ｆから送信されたメッセージ要求は、メッセージデータを記憶している通信装置１Ｋまで転送されるものの、当該通信装置１Ｋ以降の隣接上位装置１Ｑ、１Ｐ、１Ｓ、１Ｒには送信（転送）されない。同様に、メッセージデータを記憶している通信装置１Ｑ、１Ｐ、１Ｓ、１Ｒから通信装置１Ｆに対してメッセージ応答が送信されていない。したがって、本発明における通信装置１は、必ずしも最上位の通信装置１に対するメッセージの有無の問合せ（メッセージ要求）を行うことを要さずに、必要最小限の通信によってメッセージデータの送受が可能であるため、信頼度が最上位の通信装置１と通信ができない通信環境であったとしても、情報の輻輳（通信トラフィックの増大、ノードの記憶領域の逼迫）を抑制して通信装置間でエンドツーエンドにより通信を行うことができる。
【００３２】
このように、本発明における通信装置１は、メッセージの送信側が信頼度の高い複数の通信装置１に対してのみメッセージデータを分散して記憶させていき、かつ、メッセージの受信側が信頼度の高い通信装置１に対してのみメッセージデータの有無を問い合わせる。したがって、本発明における通信装置１は、メッセージの送信先とメッセージの問い合わせ先（メッセージ要求の送信先）とが互いに高信頼度の通信装置に向かって収斂していく（集まっていく）性質を有することから、情報の輻輳を抑制することができるだけでなく、高い到達率でメッセージを相手に到達させることができる。
【００３３】
次に、上述した実施形態を実現する通信装置１の実施例について説明する。図２は、通信装置１の概略構成図である。通信装置１は、入力部１１、出力部１２、通信部１３、記憶部１４、制御部１５を有する。なお、本実施例では、通信装置１を、専用のデバイスにより構成している。しかし、これに限らず、汎用のデバイス（例えば、パーソナルコンピュータ、スマートフォンなど）に、専用のアプリケーションプログラムをインストールすることによって、通信装置１を構成することも可能である。
【００３４】
入力部１１は、キーボードやマウス、タッチパネル、可搬記憶媒体の読取装置、マイク、カメラ等の情報入力デバイスである。利用者は、入力部１１を用いて、通信装置１に対して、文字情報、音声情報、画像情報などのメッセージデータを入力することができる。なお、入力部１１は、外部の装置からのメッセージデータを入力できる通信インタフェースを含んでもよい。この場合、入力部１１は、通信部１３と共通のインタフェース装置であってもよい。
【００３５】
出力部１２は、図示していないディスプレイやスピーカ等の情報出力デバイスであり、制御部１５からの出力信号に基づいて表示出力や音声出力等の情報出力を行う。利用者は、出力部１２からの情報出力に基づいて、自らが入力したメッセージデータの確認や、他の通信装置１から受信したメッセージデータの確認などを行うことができる。なお、出力部１２は、外部の装置に対してメッセージデータを出力できる通信インタフェースを含んでもよい。この場合、出力部１２は、通信部１３と共通のインタフェース装置であってもよい。
【００３６】
通信部１３は、他の通信装置１との間で通信を行う通信インタフェースである。通信部１３は、例えば、有線ＬＡＮやＵＳＢ等の有線通信が可能な有線通信インタフェースであってもよいし、ＩＥＥＥ８０２．１１諸規格のいずれかに準拠したいわゆる無線ＬＡＮやＢｌｕｅｔｏｏｔｈ（登録商標）等の無線通信が可能な無線インタフェースであってもよい。
【００３７】
記憶部１４は、ＲＯＭ、ＲＡＭ又はＨＤＤにて構成され、通信装置１を動作させるための各種データ及び各種プログラムなどを記憶する。各種データには、信頼度情報１４１、メッセージ情報１４２、応答待ち状態情報１４３、その他、制御部１５の処理に使用される各種情報（例えば、送受信したパケットＩＤのリスト、各種閾値など）を記憶している。
【００３８】
信頼度情報１４１は、自らの通信装置及び隣接通信装置の信頼度について示した情報であり、図３に例示するように、通信装置１の識別情報（以下「装置ＩＤ」という）と、静的信頼度と、近接上位信頼度と、近接距離とを対応付けたテーブル情報である。静的信頼度とは、各通信装置１における記憶装置の記憶容量の大きさやその多重化レベル、電源設備の安定度やその多重化レベル、通信設備の安定度やその多重化レベルなどによって定められる、通信装置１がメッセージを長期間管理・中継できることを示す指標であり、管理者等により各通信装置１に固定的に設定される値である。近接上位信頼度とは、自らの通信装置１の静的信頼度よりも上位の静的信頼度を有する複数の他の通信装置１の中で、自らの通信装置１から最も近接し（最もホップ数の小さい位置に存在し）、最も高い静的信頼度を有する他の通信装置（以下、「近接上位装置」という）の静的信頼度である。近接距離とは、当該近接上位装置までの距離（ホップ数）のことをいう。
【００３９】
図４を用いて、近接上位信頼度と近接距離とを具体的に説明する。図４において、符号１ａ〜１ｇで示した円形は、互いに異なる場所にある通信装置１を表しており、通信装置１の間を結んだ点線は、隣接関係にあることを表している。通信装置１ａにとっての近接上位装置は、通信装置１ｃ（静的信頼度２、ホップ数２）であるため、近接上位信頼度が２、近接距離が２となる。また、通信装置１ｄにとっての近接上位装置は、通信装置１ｇ（静的信頼度３、ホップ数３）であるため、近接上位信頼度が３、近接距離が３となる。
【００４０】
信頼度情報１４１における動的信頼度は、初期値は０（又はＮＵＬＬ）と設定されており、後述する制御部１５の信頼度情報更新手段１５４にて、通信に伴って動的に更新される。なお、以下では、近接上位信頼度と近接距離とを併せて動的信頼度と称して、値が変動しない静的信頼度に対応する用語として用いることがある。また、本明細書において、信頼度と記載しているときは、静的信頼度と動的信頼度とを含んだものとして用いることとする。
【００４１】
メッセージ情報１４２は、通信部１３にて隣接通信装置から受信した他の通信装置１宛のメッセージの複製を記録した情報であり、メッセージを受信する度に当該メッセージに記載された情報を基に追記される情報である。具体的には、メッセージ情報１４２は、図５に示したように、受信したメッセージの宛先となる通信装置１の装置ＩＤである宛先ＩＤと、当該メッセージの内容であるメッセージデータと、破棄スコアとを対応付けたテーブル情報である。破棄スコアとは、通信装置１の記憶容量がオーバーフローしてしまわないよう、後述するメッセージ破棄手段１５６にて、メッセージ情報１４２に記憶された各メッセージのレコードを所定のタイミングにて破棄（データの削除）する際に参照される値である。すなわち、当該破棄スコアが大きい値のレコードであるほど、メッセージ破棄手段１５６により優先的にメッセージ情報１４２から破棄される。なお、破棄スコアは、後述するようにメッセージ又はメッセージ応答を送信（転送）するたびに、メッセージ破棄手段１５６により更新される。
【００４２】
応答待ち状態情報１４３は、通信部１３にて隣接通信装置から受信したメッセージ要求を隣接上位装置に転送した際に、当該隣接上位装置からメッセージ応答が送信されるまでの待ち状態（応答待ち状態）を記した情報である。応答待ち状態情報１４３は、メッセージ要求に対するメッセージ応答を転送する際の転送経路に関する情報として利用され、いわばメッセージ応答をどの隣接通信装置に転送するかを判断するための情報として利用される。具体的には、応答待ち状態情報１４３は、図６に示したように、受信したメッセージ要求に記された宛先ＩＤと、当該メッセージ要求を直接送信してきた隣接通信装置の装置ＩＤである送信元ＩＤと、当該メッセージ要求の受信時刻とを対応付けたテーブル情報である。後述するように、メッセージ応答を受信したとき、当該メッセージ応答に記された宛先ＩＤに対応する送信元ＩＤの隣接通信装置に対して、当該メッセージ応答を送信する。なお、受信時刻は、応答待ち状態を解除するためのタイムアウトを計時するための開始時刻として利用され、制御部１５は、受信時刻から現在時刻までの時間間隔が予め定めた閾値を超えたとき、状態待ち状態を解除し、応答待ち状態情報１４３から該当するレコードを削除する。
【００４３】
制御部１５は、ＣＰＵ等を備えたマイクロコンピュータ並びにその周辺回路で構成され、上述した各部を制御して通信装置１を動作させる。制御部１５は、上記のマイクロコンピュータ及びマイクロコンピュータ上で実行されるコンピュータプログラムによって実現される機能モジュールとして、メッセージ送信手段１５１、メッセージ要求手段１５２、メッセージ応答手段１５３、信頼度情報更新手段１５４、メッセージ応答転送手段１５５、メッセージ破棄手段１５６、メッセージ出力手段１５７を有する。
【００４４】
メッセージ送信手段１５１は、利用者からのメッセージに係る情報（例えば、利用者の安否情報）が入力部１１により入力され、制御部１５によりメッセージデータが生成されたとき、又は、他の通信装置１から他の通信装置１宛のメッセージを受信したときに、これらのメッセージを送信（又は転送）するための処理であるメッセージ送信処理を行う。
【００４５】
ここで、メッセージを送信するためのパケット（以下、「メッセージパケット」という）のパケット構造を図７に表す。図７に表すように、メッセージパケットは、メッセージの宛先となる通信装置１の装置ＩＤである宛先ＩＤと、メッセージを送信する通信装置１の装置ＩＤである送信元ＩＤと（自らが送信する場合は自装置の装置ＩＤと等しい）、メッセージを送信する通信装置１の信頼度（静的信頼度及び動的信頼度）を示す送信元信頼度と、当該メッセージを受信することが可能な通信装置１の信頼度を示す受信許可信頼度（受信許可信頼度以上の通信装置１が受信可能）と、パケットの識別子であるパケットＩＤと、メッセージデータとにより、少なくとも構成される。以下、メッセージ送信手段１５１が実行するメッセージ送信処理の流れの一例について、図８のフローチャートを参照しながら詳細に説明する。
【００４６】
図８は、本実施形態におけるメッセージ送信処理を説明するフローチャートである。メッセージ送信手段１５１は、制御部１５によりメッセージデータが生成されたとき、又は、他の通信装置１から他の通信装置１宛のメッセージを受信したときに、メッセージ送信処理を開始する。
【００４７】
メッセージ送信処理では、まず、制御部１５によってメッセージデータが生成されたのか否かを判定する（ＳＴ１１）。ＳＴ１１にて、制御部１５によってメッセージデータが生成されていないと判定したとき（ＳＴ１１−Ｎｏ）、すなわち、他の通信装置１から他の通信装置１宛のメッセージを受信したとき、信頼度情報更新手段１５４に対して信頼度情報更新処理を実行させる（ＳＴ１２）。信頼度情報更新処理は、受信したメッセージに記された送信元信頼度に基づいて、記憶部１４の信頼度情報１４１を更新するための処理であり、後述する信頼度情報更新手段１５４にて実行される処理である。なお、信頼度情報更新処理の詳細については後述する。
【００４８】
次に、受信したメッセージパケットのパケットＩＤが、未送信（すなわち自分が以前送信したメッセージパケットを再受信していない）、かつ、未受信（すなわち以前受信したことがあるメッセージパケットを再受信していない）であるか否かを判定する（ＳＴ１３）。この際、パケットの生成時及び受信時に記憶部１４に一時的に記憶したパケットＩＤのリストを参照し、受信したメッセージパケットのパケットＩＤが記憶してあるかどうかを確認することにより判定する。なお、制御部１５は、生成した全ての種類のパケット、及び受信した全ての種類のパケットに関するパケットＩＤを、記憶部１４に一時的に記憶して管理しているものとする。ＳＴ１３にて、受信したメッセージパケットのパケットＩＤが、未送信かつ未受信でないとき（ＳＴ１３−Ｎｏ）、受信したメッセージパケットを破棄し、メッセージ送信処理を終了する。
【００４９】
一方、ＳＴ１３にて、受信したメッセージパケットのパケットＩＤが、未送信かつ未受信であるとき（ＳＴ１４−Ｙｅｓ）、受信したメッセージパケットに記された受信許可信頼度と、信頼度情報１４１に記された自装置の信頼度との間において、どちらが上位であるかを比較する信頼度比較処理を実行する（ＳＴ１４）。なお、信頼度比較処理の詳細については後述する。
【００５０】
次に、ＳＴ１４の信頼度比較処理の結果、受信したメッセージパケットに記された受信許可信頼度の方が、自装置の信頼度よりも上位であるか否かを判定する（ＳＴ１５）。ＳＴ１５にて、受信したメッセージパケットに記された受信許可信頼度の方が自装置の信頼度よりも上位であると判定されたとき（ＳＴ１５−Ｙｅｓ）、受信したメッセージパケットを破棄し、メッセージ送信処理を終了する。
【００５１】
一方、ＳＴ１５にて、受信したメッセージパケットに記された受信許可信頼度の方が自装置の信頼度よりも上位ではないと判定されたとき（ＳＴ１５−Ｎｏ）、又は、ＳＴ１１にて、制御部１５によってメッセージデータが生成されたと判定したとき（ＳＴ１１−Ｙｅｓ）、信頼度情報１４１に記された自装置及び隣接通信装置の中で信頼度の大きさを比較し、自装置の信頼度以上であって最も信頼度が大きい隣接通信装置（隣接上位装置）を特定する信頼度比較処理を実行する（ＳＴ１６）。なお、信頼度比較処理の詳細については後述する。
【００５２】
ＳＴ１６の信頼度比較処理にて隣接上位装置が求まると、当該隣接上位装置の信頼度を送信するメッセージパケットにおける受信許可信頼度の値に設定する信頼度設定処理を実行する（ＳＴ１７）。なお、ＳＴ１６の信頼度比較処理にて、信頼度情報１４１に隣接通信装置が全く存在していなかった場合、ＳＴ１７における信頼度設定処理で設定される受信許可信頼度を、信頼度０として設定し、全ての隣接通信装置が当該メッセージパケットを受信することができるようにする。これにより、信頼度情報１４１には、隣接通信装置が存在していないと記憶していた場合であっても、他の通信装置の移動や起動に伴って、隣接通信装置が出現した場合に受信されることを想定して、メッセージをばら撒くことができる。また、ＳＴ１６の信頼度比較処理にて、隣接通信装置が存在しているものの隣接上位装置が存在していないとき（すなわち全ての隣接通信装置の信頼度よりも自装置の信頼度の方が大きいとき）、ＳＴ１７の信頼度設定処理にてメッセージパケットの信頼度を設定することなく、メッセージ送信処理を終了する。
【００５３】
ＳＴ１７の信頼度設定処理にてメッセージパケットの信頼度が設定されると、当該メッセージパケットの送信元ＩＤを自装置の装置ＩＤとして設定した上で、当該メッセージパケットを通信部１３により送信する処理を実行する（ＳＴ１８）。この際、全てのメッセージデータを送信完了するまで、ＳＴ１８の処理を繰り返して実行し、複数パケットによってメッセージデータを送信する。次に、ＳＴ１８にて送信したメッセージパケットのメッセージデータを宛先ＩＤと対応付けて、記憶部１４のメッセージ情報１４２に記憶するメッセージ情報１４２の更新処理を実行する（ＳＴ１９）。また、この際、メッセージ送信手段１５１は、後述するメッセージ破棄手段１５６に対して、更新したメッセージ情報１４２における破棄スコアも更新させる。メッセージ送信手段１５１は、ＳＴ１９にて、メッセージ情報の更新処理を実施した後にメッセージ送信処理を終了する。
【００５４】
続いて、前述したメッセージ送信処理のＳＴ１４及びＳＴ１６にて実行される信頼度比較処理について説明する。信頼度比較処理は、「比較対象の信頼度」と「比較元の信頼度」とを比較して、どちらの信頼度が上位であるかを比較判定するための処理である。ここで、ＳＴ１４の信頼度比較処理においては、「比較対象の信頼度」が受信したメッセージパケットに記された受信許可信頼度に相当し、「比較元の信頼度」が信頼度情報１４１に記された自装置の信頼度に相当する。また、ＳＴ１６の信頼度比較処理においては、「比較対象の信頼度」及び「比較元の信頼度」のいずれも、信頼度情報１４１に記された各隣接通信装置の信頼度に相当する。すなわち、ＳＴ１６では、各隣接通信装置の信頼度を順次比較していくことにより、最上位の信頼度を有する通信装置（隣接上位装置）を求める。
【００５５】
信頼度比較処理では、信頼度を比較するに際し、まず、静的信頼度の大きさを比較して、静的信頼度の大きい方を信頼度が上位であると判定する。静的信頼度の大きさが等しい場合、動的信頼度の大きさを比較して、動的信頼度の大きい方を信頼度が上位であると判定する。動的信頼度を比較するにあたって、まず、近接距離が小さい方を信頼度が上位であると判定し、近接距離が等しい場合は、近接上位信頼度の大きい方を信頼度が上位であると判定する。なお、静的信頼度及び動的信頼度（近接距離と近接上位信頼度）のいずれも等しいとき、比較元の信頼度が上位と判定する。以下、信頼度比較処理の流れの一例について、図９のフローチャートを参照しながら詳細に説明する。
【００５６】
信頼度比較処理では、まず、比較対象の静的信頼度と比較元の静的信頼度との大小を比較し（ＳＴ３１）、比較対象の静的信頼度の方が比較元の静的信頼度よりも小さいと判定されたとき（ＳＴ３１−Ｙｅｓ）、比較元の信頼度が上位であると判定し（ＳＴ３２）、信頼度比較処理を終了する。ＳＴ３１にて、比較対象の静的信頼度の方が比較元の静的信頼度よりも小さいくないと判定されたとき（ＳＴ３１−Ｎｏ）、比較対象の静的信頼度と比較元の静的信頼度とが等しいか否かを判定し（ＳＴ３３）、比較対象の静的信頼度と比較元の静的信頼度とが等しくないとき（ＳＴ３３−Ｎｏ）、すなわち、比較対象の静的信頼度の方が比較元の静的信頼度よりも大きいとき、比較対象の信頼度が上位であると判定し（ＳＴ３４）、信頼度比較処理を終了する。
【００５７】
一方、比較対象の静的信頼度と比較元の静的信頼度とが等しいとき（ＳＴ３３−Ｙｅｓ）、動的信頼度を比較する処理を実行する（ＳＴ３５〜ＳＴ３７）。動的信頼度を比較するにあたり、まず、比較対象の近接距離が比較元の近接距離よりも大きいか否かを判定し（ＳＴ３５）、比較対象の近接距離が比較元の近接距離よりも大きいとき（ＳＴ３５−Ｙｅｓ）、比較元の信頼度が上位であると判定し（ＳＴ３２）、信頼度比較処理を終了する。一方、ＳＴ３５にて、比較対象の近接距離が比較元の近接距離よりも大きくないとき（ＳＴ３５−Ｎｏ）、比較対象の近接距離と比較元の近接距離とが等しいか否かを判定し（ＳＴ３６）、比較対象の静的信頼度と比較元の静的信頼度とが等しくないとき（ＳＴ３６−Ｎｏ）、すなわち、比較対象の近接距離の方が比較元の近接距離よりも小さいとき、比較対象の信頼度が上位であると判定し（ＳＴ３４）、信頼度比較処理を終了する。
【００５８】
ＳＴ３６にて、比較対象の静的信頼度と比較元の静的信頼度とが等しいとき（ＳＴ３６−Ｙｅｓ）、比較対象の近接上位信頼度と比較元の近接上位信頼度とを比較する処理を実行する（ＳＴ３７）。ＳＴ３７にて、比較対象の近接上位信頼度が比較元の近接上位信頼度以下であるとき（ＳＴ３７−Ｙｅｓ）、比較元の信頼度が上位であると判定し（ＳＴ３２）、信頼度比較処理を終了する。
【００５９】
メッセージ要求手段１５２は、自装置宛のメッセージの有無を確認する「メッセージ要求」を生成して送信するための処理であるメッセージ要求処理を行う。メッセージ要求処理は、任意のタイミングに実施され、例えば、利用者が入力部１１からの入力操作に基づくタイミングや、予め定めたスケジュールに基づくタイミングに実施される。
【００６０】
ここで、メッセージ要求を送信するためのパケット（以下、「メッセージ要求パケット」という）のパケット構造を図１０に表す。図１０に表すように、メッセージ要求パケットは、メッセージの宛先となる通信装置１であってメッセージ要求を生成した通信装置１の装置ＩＤである宛先ＩＤと、メッセージ要求を送信する通信装置１の装置ＩＤである送信元ＩＤと、メッセージ要求を送信する通信装置１の信頼度（静的信頼度及び動的信頼度）を示す送信元信頼度と、当該メッセージ要求を受信することが可能な通信装置１の信頼度を示す受信許可信頼度（受信許可信頼度以上の通信装置１が受信可能）と、パケットの識別子であるパケットＩＤとにより、少なくとも構成される。ここで、メッセージ要求パケットにおける受信許可信頼度は、メッセージパケットと同様に信頼度情報１４１を参照して識別された隣接上位装置の信頼度が設定されるものとする。
【００６１】
メッセージ応答手段１５３は、通信部１３からメッセージ要求を受信したとき、当該メッセージ要求に記された宛先ＩＤのメッセージデータをメッセージ情報１４２に記憶しているならば当該メッセージデータを「メッセージ応答」として送信し、当該メッセージ要求に記された宛先ＩＤのメッセージデータをメッセージ情報１４２に記憶していないならば隣接上位装置に対して当該メッセージ要求を送信（転送）するメッセージ応答処理を行う。
【００６２】
ここで、メッセージ応答を送信するためのパケット（以下、「メッセージ応答パケット」という）のパケット構造を図１１に表す。図１１に表すように、メッセージ応答パケットは、メッセージ応答の宛先となる通信装置１の装置ＩＤである宛先ＩＤと、メッセージ応答の送信先である隣接通信装置の装置ＩＤである送信先ＩＤと、パケットの識別子であるパケットＩＤと、メッセージデータとにより、少なくとも構成される。以下、メッセージ応答手段１５３が実行するメッセージ応答処理の流れの一例について、図１２のフローチャートを参照しながら詳細に説明する。
【００６３】
図１２は、本実施形態におけるメッセージ応答処理を説明するフローチャートである。メッセージ応答手段１５３は、通信部１３からメッセージ要求を受信したときに、メッセージ応答処理を開始する。
【００６４】
メッセージ応答処理では、まず、受信したメッセージ要求に記された送信元信頼度に基づいて、記憶部１４の信頼度情報１４１を更新する信頼度情報更新処理を、後述する信頼度情報更新手段１５４に対して実行させる（ＳＴ４１）。なお、信頼度情報更新処理の詳細については後述する。
【００６５】
次に、受信したメッセージパケットのパケットＩＤが、未送信（すなわち自分が以前送信したメッセージ要求パケットを再受信していない）、かつ、未受信（すなわち以前受信したことがあるメッセージ要求パケットを再受信していない）であるか否かを判定する（ＳＴ４２）。この際、パケットの生成時及び受信時に記憶部１４に一時的に記憶したパケットＩＤのリストを参照し、受信したメッセージ要求パケットのパケットＩＤが記憶してあるかどうかを確認することにより判定する。ＳＴ４２にて、受信したメッセージ要求パケットのパケットＩＤが、未送信かつ未受信でないとき（ＳＴ４２−Ｎｏ）、受信したメッセージ要求パケットを破棄し、メッセージ応答処理を終了する。
【００６６】
一方、ＳＴ４２にて、受信したメッセージ要求パケットのパケットＩＤが、未送信かつ未受信であるとき（ＳＴ４２−Ｙｅｓ）、受信したメッセージ要求パケットに記された受信許可信頼度と、信頼度情報１４１に記された自装置の信頼度との間において、どちらが上位であるかを比較する信頼度比較処理を実行する（ＳＴ４３）。メッセージ応答処理における信頼度比較処理は、メッセージ送信処理における信頼度比較処理（ＳＴ１４）と同じであるため、ここでは説明を省略する。
【００６７】
次に、ＳＴ４３の信頼度比較処理の結果、受信したメッセージ要求パケットに記された受信許可信頼度の方が、自装置の信頼度よりも上位であるか否かを判定する（ＳＴ４４）。ＳＴ４４にて、受信したメッセージ要求パケットに記された受信許可信頼度の方が自装置の信頼度よりも上位であると判定されたとき（ＳＴ４４−Ｙｅｓ）、受信したメッセージ要求パケットを破棄し、メッセージ応答処理を終了する。
【００６８】
一方、ＳＴ４４にて、受信したメッセージ要求パケットに記された受信許可信頼度の方が自装置の信頼度よりも上位ではないと判定されたとき（ＳＴ４４−Ｎｏ）、メッセージ情報１４２を参照して、受信したメッセージ要求パケットに記された宛先ＩＤと一致するメッセージを受信済みであるか否かを判定する（ＳＴ４５）。
【００６９】
受信したメッセージ要求パケットに記された宛先ＩＤと一致するメッセージを受信済みであるとき（ＳＴ４５−Ｙｅｓ）、当該メッセージのメッセージデータをメッセージ応答パケットにて送信するメッセージ返信処理（ＳＴ４６、ＳＴ４７）を実行する。メッセージ返信処理では、まず、メッセージ情報１４２からメッセージ要求パケットの宛先ＩＤに対応するメッセージデータを読み出し、当該メッセージデータを用いてメッセージ応答パケットを生成し、メッセージ要求を送信した隣接通信装置に対して（当該隣接通信装置の装置ＩＤを送信先ＩＤに指定して）送信する処理を実行する（ＳＴ４６）。次に、後述するメッセージ破棄手段１５６に対して、送信したメッセージデータに対応する破棄スコアを更新させるメッセージ情報の更新処理を実行する（ＳＴ４７）。メッセージ返信処理を実行し終えると、メッセージ応答手段１５３は、メッセージ応答処理を終了する。
【００７０】
一方、受信したメッセージ要求パケットに記された宛先ＩＤと一致するメッセージを受信済みではないとき（ＳＴ４５−Ｎｏ）、当該メッセージ要求パケットを隣接上位装置に対して送信（転送）するメッセージ要求転送処理を実行する（ＳＴ４８〜ＳＴ５１）。メッセージ要求転送処理では、まず、隣接上位装置を特定する信頼度比較処理を実行し（ＳＴ４８）、メッセージ要求パケットの受信許可信頼度の値を、特定した隣接上位装置の信頼度の値に設定する信頼度設定処理を実行する（ＳＴ４９）。メッセージ要求転送処理における信頼度比較処理及び信頼度設定処理は、メッセージ送信処理における信頼度比較処理（ＳＴ１６）及び信頼度設定処理（ＳＴ１７）と同じであるため、ここでは説明を省略する。次に、ＳＴ４９にて受信許可信頼度が設定されたメッセージ要求パケットについて、送信元ＩＤと送信元信頼度とを自らの装置ＩＤと信頼度に設定して、当該メッセージ要求パケットを送信（転送）するメッセージ要求パケットの送信処理を実行する（ＳＴ５０）。次に、応答待ち状態情報１４３に、メッセージ要求パケットに記された宛先ＩＤと送信元ＩＤの組を記録するよう更新する（ＳＴ５１）。メッセージ要求転送処理を実行し終えると、メッセージ応答手段１５３は、メッセージ応答処理を終了する。
【００７１】
信頼度情報更新手段１５４は、受信したメッセージ（パケット）及びメッセージ要求（パケット）に記された信頼度（静的信頼度及び動的信頼度）に基づいて、信頼度情報１４１を更新する信頼度情報更新処理を行う。信頼度情報更新処理では、受信したメッセージパケット（又はメッセージ要求パケット）に記された送信元信頼度に基づいて、信頼度情報１４１における隣接通信装置の信頼度（静的信頼度及び動的信頼度）を更新する第一の処理を行う。すなわち、第一の処理では、受信したメッセージパケット（又はメッセージ要求パケット）に記された送信元信頼度が、当該送信元（隣接通信装置）の最新の信頼度であるとして、信頼度情報１４１を上書き更新する。この際、信頼度情報１４１に送信元である隣接通信装置のレコードが存在しない場合、新規にレコードを追加する処理を行う。
【００７２】
また、信頼度情報更新処理では、受信したメッセージパケット（又はメッセージ要求パケット）に記された送信元信頼度に基づいて、信頼度情報１４１における自装置の動的信頼度を更新する第二の処理を行う。以下、信頼度情報更新処理（第二の処理）について、図１３を用いて、詳細に説明する。図１３において、符号１ｈ〜１ｋで示した円形は、互いに異なる場所にある通信装置１を表しており、通信装置１の間を結んだ点線は、隣接関係にあることを表している。また、各通信装置１におけるフキダシ箇所に、それぞれの信頼度を記している。
【００７３】
図１３（ａ）は、通信装置１ｉからメッセージ（又はメッセージ要求）を受信したときにおける通信装置１ｈの動的信頼度の更新を説明する図である。通信装置１ｈは、まず、受信パケットに記された送信元信頼度から、（１）静的信頼度“１”を抽出し、その距離を“１”（隣接装置の距離）として一時的に記憶する。また、通信装置１ｈは、受信パケットに記された送信元信頼度から、（２）動的信頼度である近接上位信頼度“３”及び近接距離“１”を抽出し、当該近接距離に“１”を加算した値を距離として一時的に記憶する。さらに、通信装置１ｈは、信頼度情報１４１から、（３）自装置の動的信頼度を抽出して一時的に記憶する。同図の例では、自装置の動的信頼度がまだ未登録の状態であるため「なし」として記憶する。そして、一時的に記憶した（１）〜（３）の値のうち、自装置の静的信頼度よりも大きく、距離が最も小さいものを自装置の新しい動的信頼度として採用し、信頼度情報１４１を更新する。すなわち、同図の例では（２）の近接上位信頼度３及び近接距離２を自装置の動的信頼度として信頼度情報１４１を更新する。
【００７４】
図１３（ｂ）は、図１３（ａ）の後に、通信装置１ｋからメッセージ（又はメッセージ要求）を受信したときにおける通信装置１ｈの動的信頼度の更新を説明する図である。通信装置１ｈは、まず、受信パケットに記された送信元信頼度から、（１）静的信頼度“２”を抽出し、その距離を“１”（隣接装置の距離）として一時的に記憶する。また、通信装置１ｈは、受信パケットに記された送信元信頼度から、（２）動的信頼度（この場合は「なし」）を抽出して一時的に記憶する。さらに、通信装置１ｈは、信頼度情報１４１から、（３）自装置の動的信頼度である近接上位信頼度“３”及び近接距離“２”を抽出して一時的に記憶する。そして、一時的に記憶した（１）〜（３）の値のうち、自装置の静的信頼度よりも大きく、距離が最も小さいもの（この例では（１））を自装置の新しい動的信頼度として採用し、信頼度情報１４１を更新する。
【００７５】
なお、信頼度情報更新処理（第二の処理）では、静的信頼度が下位の隣接通信装置からメッセージ（又はメッセージ要求）を受信した場合、自装置の動的信頼度を更新しないようにしている。例えば、図１３の通信装置１ｋが隣接通信装置１ｈからメッセージ（又はメッセージ要求）を受信した場合であっても、通信装置１ｋは自らの動的信頼度を更新しないようにする。本実施例では、静的信頼度が下位の隣接通信装置に対して、メッセージ（又はメッセージ要求）が送信されることはないため、このような下位の隣接通信装置を経由する動的信頼度は意味を成さない。そればかりか、このような意味を成さない動的信頼度によって、意味を成す動的信頼度が上書き更新されてしまう恐れもある。したがって、本実施例では、静的信頼度が下位の隣接通信装置からのメッセージ（又はメッセージ要求）によって自装置の動的信頼度を更新しないようにし、動的信頼度の有効な更新のみを行うようにしている。
【００７６】
このように、メッセージ（又はメッセージ要求）の受信により、静的信頼度の大きい通信装置１に近い（少ないホップ数である）ことが判明するほど、自らの動的信頼度をより大きい値に更新する処理を繰り返すことにより、信頼度の大きい通信装置１を中心に同心円状の信頼度の山を形成していくことが可能となる。なお、本実施例では、通信装置１が存在するうちに少しでも早く上位の通信装置１に対してデータを預けることを狙って、（１）〜（３）の比較において、距離の短いものを優先して自装置の新しい動的信頼度として採用している。しかし、これに限らず、（１）〜（３）の比較において、近接上位信頼度が大きいものを優先して自装置の新しい動的信頼度として採用してもよい。
【００７７】
メッセージ応答転送手段１５５は、通信部１３から他装置宛（宛先ＩＤが他の通信装置１の装置ＩＤ）のメッセージ応答を受信したとき、予め応答待ち状態情報１４３に記憶した隣接通信装置（応答待ち状態情報１４３の送信元ＩＤの通信装置１）に対して、当該メッセージ応答を送信（転送）するメッセージ応答転送処理を行う。
【００７８】
図１４は、本実施形態におけるメッセージ応答転送処理を説明するフローチャートである。メッセージ応答転送手段１５５は、通信部１３から他装置宛のメッセージ応答を受信したときに、メッセージ応答転送処理を開始する。
【００７９】
メッセージ応答転送処理では、まず、受信したメッセージ応答パケットのパケットＩＤが、未送信（すなわち自分が以前送信したメッセージ応答パケットを再受信していない）、かつ、未受信（すなわち以前受信したことがあるメッセージ応答パケットを再受信していない）であるか否かを判定する（ＳＴ６１）。この際、パケットの生成時及び受信時に記憶部１４に一時的に記憶したパケットＩＤのリストを参照し、受信したメッセージ要求パケットのパケットＩＤが記憶してあるかどうかを確認することにより判定する。ＳＴ６１にて、受信したメッセージ応答パケットのパケットＩＤが、未送信かつ未受信でないとき（ＳＴ６１−Ｎｏ）、受信したメッセージ応答パケットを破棄し、メッセージ応答転送処理を終了する。
【００８０】
一方、ＳＴ６１にて、受信したメッセージ応答パケットのパケットＩＤが、未送信かつ未受信であるとき（ＳＴ６１−Ｙｅｓ）、受信したメッセージ応答パケットに記された送信先ＩＤが自装置の装置ＩＤと同じであるか否かを判定する（ＳＴ６２）。受信したメッセージ応答パケットの送信先ＩＤが、自装置の装置ＩＤと同じでないとき（ＳＴ６２−Ｎｏ）、受信したメッセージ応答パケットを破棄し、メッセージ応答転送処理を終了する。
【００８１】
一方、ＳＴ６２にて、受信したメッセージ応答パケットの送信先ＩＤが、自装置の装置ＩＤと同じであるとき（ＳＴ６２−Ｙｅｓ）、応答待ち状態情報１４３を参照してメッセージ応答パケットに記された宛先ＩＤが、応答待ち状態情報１４３に登録されているか否かを判定する（ＳＴ６３）。メッセージ応答パケットに記された宛先ＩＤが、応答待ち状態情報１４３に登録されていないとき（ＳＴ６３−Ｎｏ）、受信したメッセージ応答パケットを破棄し、メッセージ応答転送処理を終了する。
【００８２】
メッセージ応答パケットに記された宛先ＩＤが、応答待ち状態情報１４３に登録されているとき（ＳＴ６２−Ｙｅｓ）、メッセージ応答パケットを隣接通信装置に送信（転送）するメッセージ応答パケットの転送処理を実行する（ＳＴ６４）。この際、メッセージ応答パケットの送信先ＩＤを、応答待ち状態情報１４３においてメッセージ応答パケットに記された宛先ＩＤに対応して記録された送信元ＩＤに書き換える。これにより、メッセージ要求を前に送信した隣接通信装置を直接指定する形で、当該メッセージ要求に対応するメッセージ応答を転送することになる。このように、各通信装置１においてメッセージ応答転送処理を繰り返すことにより、メッセージ要求パケットの辿ったルートと同じルート（方向は逆方向）を辿って、メッセージ要求を生成した通信装置１（宛先ＩＤ）に対してメッセージ応答を送信することが可能となる。
【００８３】
メッセージ破棄手段１５６は、メッセージ又はメッセージ応答を送信する都度、メッセージ情報１４２の破棄スコアを更新する処理（ＳＴ１９及びＳＴ４７のメッセージ情報の更新処理にて実施）と、当該破棄スコアを参照して所定のタイミングにてメッセージ情報１４２に記憶されたレコードを破棄（データの削除）するメッセージ破棄処理とを実行する。
【００８４】
ここで、破棄スコアを更新する処理においては、メッセージをより信頼度の大きい通信装置１に送信するほど、優先的に破棄されるように破棄スコアを更新する。例えば、メッセージ送信処理にて、メッセージパケットを自分よりも信頼度の高い隣接通信装置に対して送信したときに破棄スコアを２増加させ、自分と同じ信頼度の隣接通信装置に対して送信したときに破棄スコアを１増加させる。このように、より信頼できる通信装置１にメッセージデータを伝えることができた場合においては、自己の通信装置１において当該メッセージデータを記憶しておく必要性がより低くなることから、より優先的に破棄されるように破棄スコアを更新する。また、破棄スコアを更新する処理においては、メッセージデータを宛先の通信装置１に送信できた可能性が高いほど、優先的に破棄されるように破棄スコアを更新する。例えば、メッセージ応答処理にて、メッセージ応答パケットを送信したときに破棄スコアを４増加させる。このように、メッセージ要求が到達したということは、メッセージデータの宛先となる通信装置１とネットワーク的に接続状態にある可能性が高いことを意味しているため、当該メッセージ要求に対してメッセージ応答を行ったときは、当該メッセージデータを記憶しておく必要性がより低くなることから、より優先的に破棄されるように破棄スコアを更新する。
【００８５】
メッセージ破棄処理は、例えば、通信装置１におけるメッセージ情報１４２の記憶容量が予め定めた閾値以上となったとき、通信装置１の残記憶容量が予め定めた閾値以下となったとき、全記憶容量に占める使用済み記憶容量の割合が予め定めた閾値以上となったとき、予め定めた所定時刻になったとき、利用者が入力部１１を用いてメッセージの破棄命令を入力したとき、などのタイミングで実行される。メッセージ破棄処理では、メッセージ情報１４２における破棄スコアを参照して、破棄スコアが大きいメッセージであるほど、優先的に当該メッセージのレコードを破棄（データの削除）する処理を実行する。このように、メッセージ破棄手段１５６は、メッセージ（又はメッセージ応答）を送信する度に、保持する必要性の低いメッセージデータをスコアリングし、このような保持する必要性の低いメッセージデータを優先的に破棄する。これにより、不必要なメッセージを大量に記憶することによる、通信装置１の記憶容量のオーバーフローを抑制することができる。
【００８６】
メッセージ出力手段１５７は、他の通信装置１から自分宛のメッセージ（又は自分宛のメッセージ応答）を受信したとき、当該メッセージ（又は当該メッセージ応答）に記されたメッセージデータを出力部１２から出力するための出力処理を実行する。出力処理では、メッセージデータのデータ形式によって出力方法を変えてもよい。例えば、メッセージデータが、テキストデータであれば液晶ディスプレイ等の出力部１２に表示出力し、音声データであればスピーカ等の出力部１２に音声出力する。また、メッセージを受信した旨を表す出力だけを行い、入力部１１からの利用者による操作入力により、メッセージデータを出力してもよい。
【００８７】
このように、本発明の通信装置１は、断続的通信環境であったとしても、信頼度に基づいて蓄積転送型通信を行うことによって、情報の輻輳（通信トラフィックの増大、ノードの記憶領域の逼迫）を抑制して、エンドツーエンドのメッセージの送受信を行うことができる。特に、上記実施例に記載したように、通信装置１が、たとえ初期状態において自らの動的信頼度や、隣接通信装置の信頼度を把握していなかったとしても、隣接通信装置と通信していくにつれて、これらの信頼度の値を最新の値として更新していく。これにより、大規模災害時のように、通信可能な装置が変動する不安定な通信環境であったとしても、環境に適応しながら、エンドツーエンドのメッセージの送受信を行うことができる。そして、時間の経過とともに信頼度の大きい通信装置１を中心とした同心円状の信頼度の山を形成していく。信頼度の山を形成すると、本発明の通信装置１は、山の頂上に向かってメッセージを送信し、また、山の頂上に向かってメッセージ要求を送信するため、メッセージとメッセージ要求とが出会う可能性が高まる。したがって、より高い到達率により、エンドツーエンドのメッセージの送受信を行うことが可能となる。
【００８８】
また、本発明の通信装置１は、メッセージの受信側の通信装置１が、自らメッセージを取り出しに行く通信形態（プル型通信）としている。したがって、利用者は、自らが携帯する通信装置１を、任意のタイミングで電源ＯＮとしてメッセージを送信し、又はメッセージ要求を送信して自分宛のメッセージを任意のタイミングで受信することができる。これにより、通信装置１の電力消費を最小限とすることができることから、大規模災害等によって電源供給が途切れるような状態であっても、長期間、エンドツーエンドにより、メッセージの送受を行うことが可能となる。
【００８９】
ところで、本発明は、上記実施形態及び実施例に限定されるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施例で実施されてもよいものである。また、実施例に記載した効果は、これに限定されるものではない。
【００９０】
上記実施例では、メッセージ応答転送手段１５５は、メッセージ応答転送処理にて、他の通信装置１宛のメッセージ応答を予め応答待ち状態情報１４３に記憶した隣接通信装置に転送している。しかし、これに限らず、メッセージ応答を転送しない、いわば、メッセージ応答転送手段１５５を不要とする構成であってもよい。すなわち、受信した他の通信装置１宛のメッセージ応答を転送せずに、記憶部１４のメッセージ情報１４２に記憶しておく。そして、当該メッセージ応答の宛先となる通信装置１から再度、メッセージ要求を受信したとき、メッセージ応答手段１５３におけるメッセージ返信処理にて隣接通信装置にメッセージ応答を送信する。このように、メッセージ要求が届くたびに、１ホップずつ、宛先となる通信装置１にメッセージ応答（メッセージデータ）が近づくような構成であってもよい。これにより、宛先となる通信装置１は、複数のメッセージ要求を送信しなければならないため、通信トラフィックが増加するものの、メッセージデータが複数の通信装置１に、より分散保管されることから、変動が大きいような通信環境においては、より到達率を高くすることができる。
【００９１】
上記実施例では、メッセージ送信処理、メッセージ要求処理、メッセージ要求転送処理にて、「自装置の信頼度以上であって最も信頼度が大きい隣接上位装置」に対してのみメッセージ（又はメッセージ要求）を送信している。しかし、これに限らず、「最も信頼度が大きい隣接通信装置」を隣接上位装置として、当該隣接上位装置に対してメッセージ（又はメッセージ要求）を送信してもよい。すなわち、自装置の信頼度よりも下位の隣接通信装置しか存在しなかったとしても、それらの隣接通信装置の中で最も信頼度が大きい隣接通信装置に対して、メッセージ（又はメッセージ要求）を送信（転送）する。これにより、メッセージ（又はメッセージ要求）がより広範囲に拡散するため、通信トラフィックが増加する反面、到達率をより高くすることができる。
【００９２】
上記実施例では、固定的に設定される「静的信頼度」と、近接上位装置の静的信頼度（近接上位信頼度）及び当該近接上位装置までのホップ数（近接距離）からなる動的に変動しうる「動的信頼度」とを用いて、信頼度の大きさを表している。しかし、これに限らず、動的に変動しうる一つの値である「信頼度」を用いて、信頼度の大きさを表してもよい。すなわち、初期状態において設定された信頼度が、近接上位信頼度の大きさに応じて修正されるようにしてもよい。例えば、近接上位信頼度が大きいほど自らの信頼度を大きい値になるよう、自らの信頼度に対して係数を乗算した近接上位信頼度を加算する。また、近接距離が小さいほど自らの信頼度が大きい値になるよう、近接距離に反比例する値（距離信頼度）を求め、当該距離信頼度を自らの信頼度に加算する。
【００９３】
上記実施例では、メッセージ送信手段１５１（又はメッセージ要求手段１５２、メッセージ応答手段１５３）にて、信頼度情報１４１を参照して隣接上位装置に対してメッセージ（又はメッセージ要求）パケットを送信するに際し、当該メッセージ（又はメッセージ要求）パケットに隣接上位装置の信頼度である受信許可信頼度を記して送信している。これにより、受信許可信頼度よりも小さい通信装置１が当該パケットを受信できないようにすることによって、いわば間接的に隣接上位装置に対してメッセージ（又はメッセージ要求）を送信するようにしている。しかし、これに限らず、メッセージ（又はメッセージ要求）パケットに、隣接上位装置の装置ＩＤを記して送信することにより、当該隣接上位装置が直接的に当該パケットを受信できるようにしてもよい。
【００９４】
上記実施形態及び実施例では、近接上位装置を求めるにあたってホップ数を基準に求めており、いわば動的信頼度をホップ数を基準に規定している。すなわち、本発明における「ネットワーク距離」をホップ数として説明している。しかし、これに限らず、本発明における「ネットワーク距離」を「帯域幅」や「ネットワークの信頼性」とし、これらの値に基づいて動的信頼度を規定してもよい。例えば、自らの通信装置１の静的信頼度よりも上位の静的信頼度を有する複数の他の通信装置１までに至る経路の中で、最も帯域幅の大きい経路の通信装置１であって、最も高い静的信頼度を有する他の通信装置１を近接上位装置としてもよい。この場合、近接距離は、当該近接上位装置までに至る経路の帯域幅を考慮した値として規定される。
【符号の説明】
【００９５】
１・・・通信装置
１１・・・入力部
１２・・・出力部
１３・・・通信部
１４・・・記憶部
１５・・・制御部
１４１・・・信頼度情報
１４２・・・メッセージ情報
１４３・・・応答待ち状態情報
１５１・・・メッセージ送信手段
１５２・・・メッセージ要求手段
１５３・・・メッセージ応答手段
１５４・・・信頼度情報更新手段
１５５・・・メッセージ応答転送手段
１５６・・・メッセージ破棄手段
１５７・・・メッセージ出力手段
【図１】
2015192347.tif 000003
【図２】
2015192347.tif 000004
【図３】
2015192347.tif 000005
【図４】
2015192347.tif 000006
【図５】
2015192347.tif 000007
【図６】
2015192347.tif 000008
【図７】
2015192347.tif 000009
【図８】
2015192347.tif 000010
【図９】
2015192347.tif 000011
【図１０】
2015192347.tif 000012
【図１１】
2015192347.tif 000013
【図１２】
2015192347.tif 000014
【図１３】
2015192347.tif 000015
【図１４】
2015192347.tif 000016