(57)【要約】【課題】相手端末との通信状況を動的に把握したうえで、通信状況に応じたルーティングを行うことのできる端末間の通信経路制御方法、端末間の通信経路制御プログラム、及びその通信経路制御方法を実行する通信端末を得る。【解決手段】送信元端末と送信先端末の組毎に、その組における伝播状態評価値を格納した伝播状態テーブル４１６を端末内に設け、各端末は、自端末と送信先端末との間の伝播状態評価値を含む通信パケットを送信し、通信パケットを受信した端末は、当該パケットに含まれる伝播状態評価値を伝播状態テーブル４１６に格納し、各端末は、通信経路を制御する際には、伝播状態テーブル４１６を参照し、パケットが、より伝播状態評価値の良い端末を経由するような通信経路を選択することを特徴とする。【選択図】図１
2008079098.tif 000002
【特許請求の範囲】
【請求項１】
通信環境の状態を表すパラメータに基づいて求めた伝播状態評価値に基づいて、端末間の通信経路を制御する方法であって、
送信元端末と送信先端末の組毎に、その組における伝播状態評価値を格納した伝播状態テーブルを端末内に設け、
各端末は、自端末と送信先端末との間の伝播状態評価値を含む通信パケットを送信し、
通信パケットを受信した端末は、
当該パケットに含まれる伝播状態評価値を前記伝播状態テーブルに格納し、
各端末は、通信経路を制御する際には、
前記伝播状態テーブルを参照し、パケットが、より伝播状態評価値の良い端末を経由するような通信経路を選択することを特徴とする端末間の通信経路制御方法。
【請求項２】
各端末は、他端末宛のパケットを受信した際には、
当該パケットに含まれる、送信元端末とその送信先端末との間の伝播状態評価値を前記伝播状態テーブルに格納し、
通信経路を制御する際には、
前記伝播状態テーブルに格納されている、前記他端末宛のパケットに含まれていた伝播状態評価値を参照して、通信経路を制御することを特徴とする請求項１に記載の端末間の通信経路制御方法。
【請求項３】
各端末は、他端末宛のパケット（以後第１パケットと呼ぶ）を受信した際に、
下記ステップ１〜４を実行して、当該第１パケットを中継するか否かを判断することを特徴とする請求項２に記載の端末間の通信経路制御方法。
（ステップ１）
前記伝播状態テーブルに格納されている、前記第１パケットの送信元端末とその送信先端末とに関連するエントリを参照する。
（ステップ２）
そのエントリに含まれる伝播状態評価値を用いて、
前記送信元端末が、自端末を経由して送信先端末に前記第１パケットを送信する場合の伝播状態評価値を、所定の計算式で算出する。
（ステップ３）
前記第１パケットに含まれる、送信元端末とその送信先端末との間の伝播状態評価値と、前記計算式で算出した伝播状態評価値とを比較する。
（ステップ４）
前記計算式で算出した伝播状態評価値のほうが評価が高い場合には、
自端末を経由して、前記第１パケットをその送信先端末に送信する。
【請求項４】
端末内に、端末間の通信経路エントリを格納する通信経路テーブルを設け、
各端末は、他端末宛のパケットを受信した際には、
当該パケットに含まれる、送信元端末アドレスとその送信先端末アドレスとに基づいて、前記通信経路テーブルに、エントリを作成ないしは既エントリを更新し、
通信経路を制御する際には、
前記通信経路テーブルを参照して、通信経路を制御することを特徴とする請求項１ないし請求項３のいずれかに記載の端末間の通信経路制御方法。
【請求項５】
各端末は、ホップ数を含むパケットを送信し、
他端末宛のパケットを受信した際には、当該パケットに含まれるホップ数を参照し、
当該パケットの送信元端末との直接通信が可能であると判明した場合には、
前記通信経路テーブルに、その旨のエントリを作成することを特徴とする請求項４に記載の端末間の通信経路制御方法。
【請求項６】
各端末は、
前記伝播状態テーブルに格納されている、第１の他端末とその通信相手である第２の他端末との間の伝播状態評価値を参照するとともに、
自端末と前記第１の他端末との間の伝播状態評価値を参照し、
これら２つの伝播状態評価値を用いて、
自端末と前記第２の他端末との間の伝播状態評価値を、所定の計算式で算出し、
算出した値を前記伝播状態テーブルに格納することを特徴とする請求項２ないし請求項５のいずれかに記載の端末間の通信経路制御方法。
【請求項７】
請求項１ないし請求項６に記載の端末間の通信経路制御方法をコンピュータに実行させることを特徴とする端末間の通信経路制御プログラム。
【請求項８】
通信パケットの送信部及び受信部と、
端末間の伝播状態評価値を計算する伝播状態評価値計算部と、
送信元端末と送信先端末の組毎に、その組における伝播状態評価値を格納した伝播状態テーブルと、
前記受信部が受信したパケットに含まれる端末アドレスと、前記伝播状態評価値とに基づいて、端末間の通信経路を制御する通信経路制御部と、
端末間の通信経路エントリを格納する通信経路テーブルとを有し、
前記送信部は、自端末と送信先端末との間の伝播状態評価値を含む通信パケットを送信し、
前記伝播状態評価値計算部は、前記受信部がパケットを受信した際には、
当該パケットに含まれる伝播状態評価値を前記伝播状態テーブルに格納し、
前記通信経路制御部は、通信経路を制御する際には、
前記伝播状態テーブルを参照し、パケットが、より伝播状態評価値の良い端末を経由するような通信経路を選択することを特徴とする通信端末。
【請求項９】
前記受信部が、他端末宛のパケットを受信した際には、
前記伝播状態評価値計算部は、
当該パケットに含まれる、送信元端末とその送信先端末との間の伝播状態評価値を前記伝播状態テーブルに格納し、
前記通信経路制御部は、通信経路を制御する際には、
前記伝播状態テーブルに格納されている、前記他端末宛のパケットに含まれていた伝播状態評価値を参照して、通信経路を制御することを特徴とする請求項８に記載の通信端末。
【請求項１０】
前記受信部が、他端末宛のパケット（以後第１パケットと呼ぶ）を受信した際に、
下記ステップ１〜４を実行して、当該第１パケットを中継するか否かを判断することを特徴とする請求項９に記載の通信端末。
（ステップ１）
前記伝播状態評価値計算部は、
前記伝播状態テーブルに格納されている、前記第１パケットの送信元端末とその送信先端末とに関連するエントリを参照する。
（ステップ２）
前記伝播状態評価値計算部は、
そのエントリに含まれる伝播状態評価値を用いて、
前記送信元端末が、自端末を経由して送信先端末に前記第１パケットを送信する場合の伝播状態評価値を、所定の計算式で算出する。
（ステップ３）
前記通信経路制御部は、
前記第１パケットに含まれる、送信元端末とその送信先端末との間の伝播状態評価値と、前記計算式で算出した伝播状態評価値とを比較する。
（ステップ４）
前記通信経路制御部は、
前記計算式で算出した伝播状態評価値のほうが評価が高い場合には、
自端末を経由して、前記第１パケットをその送信先端末に送信するように、通信経路を制御する。
【請求項１１】
前記受信部が、他端末宛のパケットを受信した際には、
前記通信経路制御部は、
当該パケットに含まれる、送信元端末アドレスとその送信先端末アドレスとに基づいて、前記通信経路テーブルに、エントリを作成ないしは既エントリを更新し、
通信経路を制御する際には、
前記通信経路テーブルを参照して、通信経路を制御することを特徴とする請求項８ないし請求項１０のいずれかに記載の通信端末。
【請求項１２】
端末間のホップ数を格納するホップ数テーブルを設け、
前記送信部は、ホップ数を含むパケットを送信し、
前記受信部が、他端末宛のパケットを受信した際には、
前記伝播状態評価値計算部は、当該パケットに含まれるホップ数を前記ホップ数テーブルに格納し、
前記通信経路制御部は、前記ホップ数テーブルを参照し、
当該パケットの送信元端末との直接通信が可能であると判明した場合には、
前記通信経路テーブルに、その旨のエントリを作成することを特徴とする請求項１１に記載の通信端末。
【請求項１３】
前記伝播状態評価値計算部は、
前記伝播状態テーブルに格納されている、第１の他端末とその通信相手である第２の他端末との間の伝播状態評価値を参照するとともに、
自端末と前記第１の他端末との間の伝播状態評価値を参照し、
これら２つの伝播状態評価値を用いて、
自端末と前記第２の他端末との間の伝播状態評価値を、所定の計算式で算出し、
算出した値を前記伝播状態テーブルに格納することを特徴とする請求項９ないし請求項１２のいずれかに記載の通信端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末間の通信経路制御方法、端末間の通信経路制御プログラム、及びその通信経路制御方法を実行する通信端末に関するものであり、特に通信環境に応じて動的に経路制御をおこなう方法に関するものである。
【背景技術】
【０００２】
従来、アドホックネットワークにおける通信経路制御（ルーティング）プロトコルとして、インターネット技術標準化委員会（ＩＥＴＦ：Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）が提案するＡＯＤＶ（Ａｄ  ｈｏｃ  Ｏｎ−Ｄｅｍａｎｄ  Ｄｉｓｔａｎｃｅ  Ｖｅｃｔｏｒ）プロトコルや、ＤＳＲ（Ｄｙｎａｍｉｃ  Ｓｏｕｒｃｅ  Ｒｏｕｔｉｎｇ）プロトコルといったものがある。
また、『この経路制御方法では、経路制御部１により、リンクステートデータベース３ｂを参照して、ノード間の各経路に付与されたメトリックに基づいて最短経路を選択し、伝送路自体の品質に係るリンク測定値に基づいて各ノード間において要求される速度に対して上記最短経路で伝送可能か否かの判断を行い、当該判断結果に基づいて最適経路に係る経路テーブル３ｃを作成する。』というものが提案されている（特許文献１）。
さらには、『本発明に係る経路情報交換方法では、制御メッセージを伝達するための制御チャネルを利用して、ＩＰエッジルータ間に光パスを生成する前からルーチングピアを確立することで、データベース同期，リンクステート交換を行い、予め経路情報を交換可能とするものである。』というものも提案されている（特許文献２）。
【０００３】
【特許文献１】特開２００４−３６３８１６号公報（要約）
【特許文献２】特開２００４−８０２６８号公報（要約）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、無線通信における従来のルーティングプロトコルでは、通信環境の変化を考慮しないため、相手の端末との通信環境が劣悪な条件に変化しても通信を開始し、結果として無駄な電波を送信することがある。
また、通信環境が悪化した場合、代替経路を動的に変更するということができないため、あらかじめ決められた経路間で通信が困難になると、代替の経路があるにもかかわらず、通信の継続ができなかった。
そのため、相手端末との通信状況を動的に把握したうえで、通信状況に応じたルーティングを行うことのできる端末間の通信経路制御方法、端末間の通信経路制御プログラム、及びその通信経路制御方法を実行する通信端末が望まれていた。
【課題を解決するための手段】
【０００５】
本発明に係る端末間の通信経路制御方法は、
通信環境の状態を表すパラメータに基づいて求めた伝播状態評価値に基づいて、端末間の通信経路を制御する方法であって、
送信元端末と送信先端末の組毎に、その組における伝播状態評価値を格納した伝播状態テーブルを端末内に設け、
各端末は、自端末と送信先端末との間の伝播状態評価値を含む通信パケットを送信し、
通信パケットを受信した端末は、
当該パケットに含まれる伝播状態評価値を前記伝播状態テーブルに格納し、
各端末は、通信経路を制御する際には、
前記伝播状態テーブルを参照し、パケットが、より伝播状態評価値の良い端末を経由するような通信経路を選択することを特徴とするものである。
【発明の効果】
【０００６】
本発明に係る端末間の通信経路制御方法によれば、
相手端末との通信状況を動的に把握することができ、通信状況に応じたルーティングテーブルの作成が可能となる。また、通信が悪化した場合には、代替の経路に変更し通信を継続することが可能であるため、全体のスループットを上げることができる。
【発明を実施するための最良の形態】
【０００７】
実施の形態１．
図１は、本発明の実施の形態１に係る通信端末の構成図を示すものである。以下、図１の構成について説明する。なお、図１において、通信端末が一般的に有する汎用的な構成については、記載を省略している。
図１の通信端末は、データベース作成部１０１、通信プロトコル処理部１０２、及び図示しないアプリケーション部１０３を有する。
データベース作成部１０１は、後述の端末情報データベース１１９のエントリを作成・更新・削除する役割を果たす。
通信プロトコル処理部１０２は、端末情報データベース１１９に基づき、端末間のルーティング情報を保持・管理する役割を果たす。
アプリケーション部１０３は、複数のアプリケーション群から構成される。各アプリケーションは必要に応じて端末情報データベース１１９のデータを参照することができる。ここでのアプリケーションは、端末上で実行される任意のものとすることができる。
【０００８】
データベース作成部１０１は、パケット解析部１０４、電力解析部１０５、データベース管理部１０６、伝播状態値計算部１０７から構成される。
パケット解析部１０４は、受信した通信パケットのヘッダ部分を解析して各ヘッダ値を取り出し、データベース管理部１０６と伝播状態値計算部１０７に出力する。
電力解析部１０５は、自端末が受信した信号の受信電力を解析し、伝播状態値計算部１０７に出力する。
データベース管理部１０６は、パケット解析部１０４の出力、電力解析部１０５の出力、及び伝播状態値計算部１０７の出力に基づき、端末情報データベース１１９を保持・管理する。
伝播状態値計算部１０７は、パケット解析部１０４の出力と電力解析部１０５の出力に基づき、端末の伝播状態値を計算し、データベース管理部１０６に出力する。
【０００９】
パケット解析部１０４は、パケット分解モジュール１０８、送信元解析モジュール１０９、送信先解析モジュール１１０、中継元解析モジュール１１１、中継先解析モジュール１１２、伝播状態値解析モジュール１１３、ホップ数解析モジュール１１４、位置情報解析モジュール１１５、順序番号解析モジュール１１６、データ解析モジュール１１７を有する。
パケット分解モジュール１０８は、通信端末が受信した通信パケットを受け取り、ヘッダ部分を分解して、送信元解析モジュール１０９、送信先解析モジュール１１０、中継元解析モジュール１１１、中継先解析モジュール１１２、伝播状態値解析モジュール１１３、ホップ数解析モジュール１１４、位置情報解析モジュール１１５、順序番号解析モジュール１１６、及びデータ解析モジュール１１７に、対応するヘッダ部分及びデータ部分をそれぞれ出力する。
送信元解析モジュール１０９、送信先解析モジュール１１０、中継元解析モジュール１１１、中継先解析モジュール１１２、伝播状態値解析モジュール１１３、ホップ数解析モジュール１１４、位置情報解析モジュール１１５、順序番号解析モジュール１１６、及びデータ解析モジュール１１７は、それぞれパケット分解モジュール１０８の出力を受け取り、対応するヘッダ値及びデータ値を取り出す。取り出したヘッダ値とデータ値は、データベース管理部１０６に出力される。
また、伝播状態値解析モジュール１１３、ホップ数解析モジュール１１４、及び位置情報解析モジュール１１５は、取り出したヘッダ値を伝播状態値計算部１０７に出力する。
なお、位置情報解析モジュール１１５は、自端末が受け取ったＧＰＳ信号の解析と位置情報の取り出しも行う。また、受信したパケットから相手の端末の位置情報を取得できるため、相手の端末との距離が計算できる。計算した距離の値は伝播状態値計算部１０７に出力する。
【００１０】
電力解析部１０５は、受信電力解析モジュール１１８を有する。
受信電力解析モジュール１１８は、自端末が受信した信号の受信電力を解析し、データベース管理部１０６と伝播状態値計算部１０７に出力する。
【００１１】
データベース管理部１０６は、端末情報データベース１１９、タイマー１２０を有する。
端末情報データベース１１９は、パケット解析部１０４の出力、電力解析部１０５の出力、及び伝播状態値計算部１０７の出力に基づき求められた、後述の各テーブルのエントリを格納する。
タイマー１２０は、端末情報データベース１１９に格納されたデータの有効時間を管理する。
【００１２】
伝播状態値計算部１０７は、関数モジュール１２１を有する。
関数モジュール１２１は、パケット解析部１０４の出力と電力解析部１０５の出力に基づき、伝播状態値を計算してデータベース管理部１０６に出力する。
【００１３】
通信プロトコル処理部１０２は、ルーティングプロトコル処理部１２２を有する。
ルーティングプロトコル処理部１２２はルーティングテーブル１２３を備え、端末情報データベース１１９を適宜参照して、ルーティングテーブル１２３の端末エントリを作成・更新・削除する処理を行う。
ここでいう通信プロトコルとは、通信の手順を定義したプロトコルの総称のこととし、また、上記ルーティングプロトコル処理部１２２を備えていないプロトコルも通信プロトコルに含める。ルーティングプロトコル処理部１２２から端末情報データベース１１９に結ばれた破線は、端末情報データベース１１９に格納されたデータを参照できることを意味する。
【００１４】
データベース作成部１０１と通信プロトコル処理部１０２は、マイコンやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）のような演算手段上に実装したソフトウェア、もしくは回路デバイスのようなハードウェアによって実現することができる。
また、メモリやハードディスク等の記憶手段に上記各機能を実現するソフトウェアを格納し、ＣＰＵ等の演算装置がこれを読み出して実行することによっても、実現することができる。
【００１５】
なお、端末情報データベース１１９の具体的な構成は後述の図４で、ルーティングテーブル１２３の具体的な構成は後述の図１１で述べる。
【００１６】
本発明における「伝播状態評価値」は、伝播状態テーブル１１５に格納される伝播状態値がこれに該当する。
また、「通信経路テーブル」は、ルーティングテーブル１２３がこれに該当する。
また、「伝播状態評価値計算部」は、パケット解析部１０４と伝播状態値計算部１０７を総称的に指すものとする。
また、「通信経路制御部」は、ルーティングプロトコル処理部１２２がこれに該当する。
【００１７】
図２は、図１の通信端末が用いる通信パケットフォーマットを示すものである。
図２のパケットフォーマットは、送信元アドレス部２０１、送信先アドレス部２０２、中継元アドレス部２０３、中継先アドレス部２０４、伝播状態値部２０５、ホップ数部２０６、位置情報部２０７、順序番号部２０８、データ部２０９を有する。送信元アドレス部２０１〜順序番号部２０８はヘッダ部分である。
送信元アドレス部２０１には、通信パケットを最初に送信した端末のアドレスが格納される。例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いる場合は、送信元端末のＩＰアドレスが格納される。
送信先アドレス部２０２には、最終的に通信パケットを到着させたい端末のアドレスが格納される。例えば、ＩＰを用いる場合は、宛先端末のＩＰアドレスが格納される。
中継元アドレス部２０３には、当該通信パケットを作成した端末のアドレスが格納される。パケットの中継を伴う場合には、個々の中継端末のアドレスが中継の度にセットされる。例えば、イーサネット（登録商標）を用いる場合は、当該通信パケットを作成した端末のＭＡＣアドレスが格納される。
中継先アドレス部２０４には、当該通信パケットの次の宛先端末のアドレスが格納される。例えば、イーサネット（登録商標）を用いる場合は、当該通信パケットを次に受信する端末のＭＡＣアドレスが格納される。
伝播状態値部２０５には、送信元の端末と送信先の端末の通信状況を示す値が入る。具体的には、後述の図４に示す伝播状態テーブル４１６に格納された値を参照し、入力する。
ホップ数部２０６には、中継を繰り返した回数が格納され、中継を伴わない場合は「１」がセットされる。
位置情報部２０７には、当該通信パケットを作成した端末の位置情報が格納される。例えば、ＧＰＳから得た緯度・経度の座標値がセットされる。
順序番号部２０８には、パケットを一意に識別するために、送信元の端末がパケットを送信した順番に番号が格納される。通常、値は１からインクリメントされていく。例えばＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を用いる場合は、パケットの順序番号が入る。
データ部２０９には、送信元端末が送信するアプリケーションデータなどの、主に利用者向けデータが格納される。
【００１８】
図３は、通信端末の配置とパケットの具体例を示すものである。
図３において、端末１（３０１）、端末２（３０２）、端末３（３０３）および端末４（３０４）が存在している。ここでは、端末２（３０２）から端末４（３０４）にパケットを送信するものとする。
破線の円３０５は、端末２（３０２）の通信範囲を示し、端末２（３０２）から送信したパケットは、円３０５の内部にある端末の全てに届くものとする。
【００１９】
パケットの宛先である端末４（３０４）は円３０５の外部にあるため、端末２（３０２）と端末４（３０４）直接通信を行うことができない。
そこで、端末３（３０３）がパケットの中継を行うことで、端末２（３０２）は間接的に端末４（３０４）と通信を行う。
【００２０】
端末２（３０２）から送信されたパケット（３０６）の具体的な値について、図３の下図に示す。パケット３０６のフォーマットは、図２に準拠する。
パケット３０６の各要素の値は、送信元アドレス＝２、送信先アドレス＝４、中継元アドレス＝２、中継先アドレス＝３、伝播状態値＝３０、ホップ数＝１、位置情報＝（Ｘ２、Ｙ２）、順序番号＝２５０、データ＝データ、となっている。
送信元アドレス部には、送信元である端末２のアドレスが入る。
送信先アドレス部には、送信先である端末４のアドレスが入る。
中継元アドレス部には、パケット３０６を作成した端末２のアドレスが入る。
中継先アドレス部には、次に中継をする端末３のアドレスが入る。
伝播状態値部には、送信元の端末と送信先の端末の通信状態を示す値が入る。ここでは、端末２において、後述する図４の伝播状態テーブル４１６が既にできていることを前提とし、伝播状態テーブル４１６の値を参照して、送信元の端末と送信先の端末の伝播状態値を入れることとする。
【００２１】
図４は、端末情報データベース１１９の具体的な構成を説明するものである。
端末情報データベース１１９は、端末テーブル４１５、伝播状態テーブル４１６、ホップ数テーブル４１７、受信電力テーブル４１８、位置テーブル４１９、及びデータテーブル４２０から構成される。
【００２２】
端末テーブル４１５は、「端末アドレス」列と「通信可能端末アドレス」列を有する。
「端末アドレス」列には、端末のアドレスが格納される。
「通信可能端末アドレス」列には、「端末アドレス」列で表される端末が通信を行うことのできる端末のアドレスが格納される。
【００２３】
伝播状態テーブル４１６は、「端末アドレス」列、「相手端末アドレス」列、「伝播状態値」列を有する。
「端末アドレス」列には、端末のアドレスが格納される。
「相手端末アドレス」列には、「端末アドレス」列で表される端末の通信相手端末のアドレスが格納される。
「伝播状態値」列には、「端末アドレス」列で表される端末と「相手端末アドレス」列で表される端末との間の伝播状態値が格納される。
例えば、端末４と端末２の伝播状態値が９０であれば、「端末アドレス」列に「４」、「相手端末アドレス」列に「２」、「伝播状態値」列に「９０」が格納される。
伝播状態値は、値が大きいほど、その端末間の通信状態が良好であることを表す。
【００２４】
ホップ数テーブル４１７は、「端末アドレス」列と「ホップ数」列を有する。
「端末アドレス」列には、端末のアドレスが格納される。
「ホップ数」列には、「端末アドレス」列で表される端末が、自端末の何ホップ先に存在するかを示す値が格納される。
例えば、端末４が２ホップ先に存在する場合には、「端末アドレス」列に「４」、「ホップ数」列に「２」が格納される。
【００２５】
受信電力テーブル４１８は、「端末アドレス」列と「受信電力」列を有する。
「端末アドレス」列には、端末のアドレスが格納される。
「受信電力」列には、「端末アドレス」列で表される端末からパケットを受信した際の受信電力値が格納される。
例えば、端末４からの受信電力が「−４５」である場合、「端末アドレス」列に「４」、「受信電力」列に「−４５」が格納される。
【００２６】
位置テーブル４１９は、「端末アドレス」列と「位置情報」列を有する。
「端末アドレス」列には、端末のアドレスが格納される。
「位置情報」列には、「端末アドレス」列で表される端末の位置情報、例えばＧＰＳ信号より得られる当該端末の座標が格納される。
例えば、端末４の位置が（Ｘ、Ｙ）である場合、「端末アドレス」列に「４」、「位置情報」列に「（Ｘ、Ｙ）」が格納される。
【００２７】
データテーブル４１９は、「端末アドレス」列、「順序番号」列、「データ」列を有する。
「端末アドレス」列には、端末のアドレスが格納される。
「順序番号」列には、「端末アドレス」列で表される端末から受信したパケットの順序番号部のヘッダ値が格納される。
「データ」列には、「順序番号」列に対応するパケットのデータ部の値が格納される。
例えば、端末４から順序番号「２５０」のデータを受信した場合、「端末アドレス」列に「４」、「順序番号」列に「２５０」、「データ」列に受信したデータが格納される。
【００２８】
次に、後述の図５〜図１０を用いて、図３における端末１（３０１）がパケット３０６を受信した際に、端末情報データベース１１９の各テーブルのエントリを作成する手順を説明する。
【００２９】
図５は、端末テーブル４１５のエントリの作成手順を示すものである。
パケット解析部１０４は、パケットの宛先にかかわらず、受信したパケットを全て解析する。
受信したパケットは、パケット分解モジュール１０８により分解され、送信元解析モジュール１０９、送信先解析モジュール１１０、中継元解析モジュール１１１、及び中継先解析モジュール１１２が、それぞれに対応するヘッダ値を取り出し、端末情報データベース１１９にデータの格納を依頼する。
【００３０】
図３の下図に示すパケット３０６を解析すると、送信元が端末２で、送信先が端末４であることがわかる。これは、端末２が端末４と通信できることを意味する。
すなわち、端末２から送信されたパケットを受信した端末１は、端末２を中継役の端末として利用することで、端末４と通信を行えることがわかる。
したがって、送信元アドレスの「２」を「端末アドレス」列に、送信先アドレスの「４」を「通信可能端末アドレス」列に格納する。
【００３１】
同様に、パケット３０６を解析すると、中継元が端末２で、中継先が端末３であることがわかる。これは、端末２は端末３と通信を行えることを意味する。
すなわち、端末２から送信されたパケットを受信した端末１は、端末２を中継役として利用することで、端末３と通信が行えることがわかる。
したがって、中継元アドレスの「２」を「端末アドレス」列に、中継先アドレスの「３」を「通信可能端末アドレス」列に、新たなエントリとして格納する。
【００３２】
図６は、伝播状態テーブル４１６のエントリの作成手順を示すものである。
図５と同様に、受信したパケットは、パケット分解モジュール１０８により分解され、送信元解析モジュール１０９、送信先解析モジュール１１０、伝播状態値解析モジュール１１３が、それぞれに対応するヘッダ値を取り出し、伝播状態テーブル４１６にデータの格納を依頼する。
ここでは、「端末アドレス」列に端末２のアドレス「２」、「相手端末アドレス」列に端末４のアドレス「４」、「伝播状態値」列に「３０」を格納する。
【００３３】
図７は、ホップ数テーブル４１７、受信電力テーブル４１８、位置テーブル４１９のエントリの作成手順を示すものである。
図５と同様に、受信したパケットは、パケット分解モジュール１０８により分解され、送信元解析モジュール１０９、ホップ数解析モジュール１１４、及び位置情報解析モジュール１１５が、それぞれに対応するヘッダ値を取り出し、伝播状態テーブル４１６にデータの格納を依頼する。
また、電力解析部１０５では、受信した進号を受信電力解析モジュール１１８で解析し、端末情報データベース１１９にデータの格納を依頼する。
【００３４】
（ホップ数テーブル４１７）
図３の下図に示すパケット３０６を解析すると、送信元が端末２で、ホップ数が「１」であることがわかる。
したがって、送信元アドレスの「２」をホップ数テーブル４１７の「端末アドレス」列に、ホップ数の「１」を「ホップ数」列に格納することができる。
（受信電力テーブル４１８）
同様にパケット３０６を解析すると、送信元が端末２で、受信電力が「−４５」であることがわかる。
したがって、送信元アドレスの「２」を受信電力テーブル４１８の「端末アドレス」列に、受信電力の「−４５」を「受信電力」列に格納する。
（位置テーブル４１９）
同様にパケットを解析すると、送信元が端末２で、位置情報が「（Ｘ２、Ｙ２）」であることがわかる。
したがって、送信元アドレスの「２」を位置テーブル４１９の「端末アドレス」列に、位置情報の「（Ｘ２、Ｙ２）」を「位置情報」列に格納する。
【００３５】
図８は、データテーブル４２０のエントリの作成手順を示すものである。
図５と同様に、受信したパケットは、パケット分解モジュール１０８により分解され、送信元解析モジュール１０９、順序番号解析モジュール１１６、及びデータ解析モジュール１１７が、それぞれに対応するヘッダ値を取り出し、伝播状態テーブル４１６にデータの格納を依頼する。
【００３６】
図３の下図に示すパケット３０６を解析すると、送信元が端末２で、順序番号が「２５０」、データが「データ」であるパケットを受信したことがわかる。
したがって、送信元アドレスの「２」を「端末アドレス」列に、順序番号の「２５０」を「順序番号」列に、データの「データ」を「データ」列に格納する。
【００３７】
図９は、伝播状態値計算部１０７の動作を説明するものである。
伝播状態値計算部１０７では、パケット解析部１０４のホップ数解析モジュール１１４、位置情報解析モジュール１１５、及び受信電力解析モジュール１１８から入力を受け、伝播状態値を求める。
ここで、伝播状態値は以下の関数ｆにより求める。
伝播状態値＝ｆ（ホップ数、端末間距離、電力）
＝（Ａ／ホップ数）＋（Ｂ／端末間距離）＋（Ｃ×電力）
ただし、Ａ、Ｂ、Ｃは所定の定数
端末間距離は、パケット３０６に含まれている端末２（３０２）の位置情報（ｘ２、ｙ２）と、端末１（３０１）自身が受信したＧＰＳ信号より取得した端末１（３０１）の位置情報（ｘ１、ｙ１）とにより、以下の計算式で求められる。
端末間距離＝（（ｘ２−ｘ１）＾２＋（ｙ２−ｙ１）＾２）＾０．５
ここでは仮に、上記関数ｆにより求めた値を「４５」とする。
【００３８】
伝播状態値が求まると、端末状態データベース１１９の伝播状態テーブル４１６に格納される。
ここでは、端末２と自端末１の伝播状態であるため、「端末アドレス」列に「２」、「相手端末アドレス」列に「１」、「伝播状態値」列に「４５」が格納される。
【００３９】
図１０は、伝播状態値を間接的に求める手順を説明するものである。
伝播状態テーブル４１６を参照すると、端末２と端末４の間の伝播状態値「３０」と、端末２と端末１の間の伝播状態値「４５」がわかるため、端末１と端末４の伝播状態値を間接的に計算により求めることができる。
計算式は、例えば下記のようにする。
伝播状態値＝（端末２と端末４の伝播状態値）＊（端末２と端末１の伝播状態値）
／１００
＝３０＊４５／１００
＝１４
【００４０】
ここまでの説明で、パケットを解析して端末情報データベース１１９にデータを格納する手順を示した。
以下では、作成した端末情報データベース１１９を利用する方法について説明する。
【００４１】
図１１は、ルーティングテーブル１２３の作成方法を示すものである。ここでは、図５〜図１０で説明した手順で端末情報データベース１１９にデータが格納されているものとする。
（１）
ルーティングプロトコル処理部１２２が端末テーブル４１５を参照すると、１行目のエントリから、端末２は端末４と通信できることがわかる。
したがって、ルーティングテーブル１２３に宛先アドレスを「４」、中継アドレスを「２」とするエントリを追加することができる。
（２）
同様に、端末テーブル４１５を参照すると、２行目のエントリから端末２は端末３と通信できることがわかる。
したがって、ルーティングテーブル１２３に宛先アドレスを「３」、中継アドレスを「２」とするエントリを追加することができる。
（３）
また、ホップ数テーブル４１７を参照すると、１行目のレコードから、端末２のホップ数１であり、端末１と端末２が直接通信が可能であることがわかる。
したがって、ルーティングテーブル１２３に宛先アドレスを「２」、中継アドレスを「２」とするエントリを追加することができる。
【００４２】
図１２は、図３の状態の後に、端末１の端末情報データベース１１９がこれまで示した動作により作成され、さらに、端末１から端末４にパケット１２０２を送信したときの具体例を示すものである。
このとき、新たに端末５（３０５）が端末１（３０１）の通信可能範囲１２０１に入ったとすると、端末５は端末１（３０１）が端末４（３０４）に向けて送信したパケットを受信することができる。
図１０で説明した手順と同様の動作を繰り返すと、端末５は、端末５と端末１の伝播状態値だけでなく、端末１と端末４の伝播状態値から端末５と端末４の伝播状態値を、先に述べた計算式により求めることができる。
したがって、この動作が連続的に繰り返されることで、近況の通信の状態が伝播状態値により連鎖的に伝わることとなる。これにより、近況の通信の状態を端末間で共有し、効率的な通信経路制御が可能となる。
【００４３】
なお、端末情報データベース１１９は、ルーティングテーブル１２３の作成の支援を行うことを目的としており、端末情報データベース１１９の参照のみで所望のルーティングテーブルを全て作成することが困難なことがある。
この場合、既存の方法、例えば、ＡＯＤＶ（Ａｄ  ｈｏｃ  Ｏｎ−Ｄｅｍａｎｄ  Ｄｉｓｔａｎｃｅ  Ｖｅｃｔｏｒ）プロトコルにおけるフラッディング等を利用してアドレスの解決を行ってもよい。
【００４４】
図１において、パケット解析部の構成を例示したが、これに限られるものではなく、図２に示したパケットフォーマットにしたがって、適宜解析モジュールを設ければよい。
また、図１の構成や図２のパケットフォーマットは、ＯＳＩ階層の特定の層に限定されるものではなく、任意の層のプロトコルにおいて適用可能なものである。
【００４５】
図１０において、伝播状態値を間接的に求める際の計算式を示したが、計算式はこれに限られるものではなく、通信環境や端末の仕様等により、適切な計算式を用いるように構成することができる。
【００４６】
以上のように、本実施の形態１によれば、
送信元端末と送信先端末の組毎に、その組における伝播状態値を格納した伝播状態テーブル４１６を端末内に設け、
各端末は、自端末と送信先端末との間の伝播状態値を含む通信パケットを送信し、
通信パケットを受信した端末は、
当該パケットに含まれる伝播状態値を伝播状態テーブル４１６に格納し、
各端末は、通信経路を制御する際には、
伝播状態テーブル４１６を参照し、パケットが、より伝播状態値の良い端末を経由するような通信経路を選択するので、
近隣の端末に対して、伝播環境を考慮に入れた経路選択が可能となる。通信状況が良好な経路を選択してパケットの送信ができるため、パケットの損失をできる限り防ぎ、全体のスループットがあがる。
【００４７】
また、本実施の形態１によれば、
各端末は、他端末宛のパケットを受信した際には、
当該パケットに含まれる、送信元端末とその送信先端末との間の伝播状態値を伝播状態テーブル４１６に格納し、
通信経路を制御する際には、
伝播状態テーブル４１６に格納されている、前記他端末宛のパケットに含まれていた伝播状態値を参照して、通信経路を制御するので、
近隣端末の伝播状態を考慮した上で、適切な通信経路の選択が可能となり、通信スループットの向上に資する。
【００４８】
また、本実施の形態１によれば、図１１で説明したように、
端末内に、端末間の通信経路エントリを格納するルーティングテーブル１２３を設け、
各端末は、他端末宛のパケットを受信した際には、
当該パケットに含まれる、送信元端末アドレスとその送信先端末アドレスとに基づいて、ルーティングテーブル１２３に、エントリを作成ないしは既エントリを更新し、
通信経路を制御する際には、
ルーティングテーブル１２３を参照して、通信経路を制御するので、
他端末宛のパケットに含まれる情報に基づいて、適切な経路設定を行うことができる。特に、他端末宛のパケットを頻繁に受信するような環境では、最新の経路情報を常時得ることができ、通信スループットの向上に資する。
【００４９】
また、本実施の形態１によれば、図１１で説明したように、
各端末は、ホップ数を含むパケットを送信し、
他端末宛のパケットを受信した際には、当該パケットに含まれるホップ数を参照し、
当該パケットの送信元端末との直接通信が可能であると判明した場合には、
ルーティングテーブル１２３に、その旨のエントリを作成するので、
自端末と直接通信可能な端末に関しては、余分な通信経路エントリをルーティングテーブル１２３に設定することなく、効率的な経路選択が可能となる。
【００５０】
また、本実施の形態１によれば、図１０及び図１２で説明したように、
各端末は、
伝播状態テーブル４１６に格納されている、第１の他端末とその通信相手である第２の他端末との間の伝播状態値を参照するとともに、
自端末と前記第１の他端末との間の伝播状態値を参照し、
これら２つの伝播状態値を用いて、
自端末と前記第２の他端末との間の伝播状態値を、所定の計算式で算出し、
算出した値を伝播状態テーブル４１６に格納するので、
この動作が連続的に繰り返されることで、近況の通信の状態が伝播状態値により連鎖的に伝わることとなる。これにより、近況の通信の状態を端末間で共有し、効率的な通信経路制御が可能となる。
【００５１】
実施の形態２．
実施の形態１では、端末情報データベース１１９の作成と、これに基づくルーティングテーブル１２３の作成について、主に説明した。
実施の形態２では、端末情報データベース１１９を利用して、パケットの中継を行うか否かを動的に判断する方法について説明する。
【００５２】
図１３は、障害物が存在するため伝播状態が悪く、パケットの中継を必要とする場合について説明するものである。
図１３において、端末１（１３０１）、端末２（１３０２）および端末３（１３０３）が存在し、端末２（１３０２）から端末３（１３０３）に向けてパケットを送信しようとしているものとする。
しかし、端末２（１３０２）と端末３（１３０３）の間に障害物（１３０５）があり、端末２（１３０２）と端末３（１３０３）の通信が行いにくくなっている。
なお、無線通信であるため、端末２（１３０２）から送信されたパケットは同心円上に伝わっていく。すなわち、端末２（１３０２）から送信されたパケットは、端末１（１３０１）にも同時に届くとする。
【００５３】
次に、端末２（１３０２）から送信されたパケット（１３０４）の具体的な値について説明する。
図１３の「パケット１３０４」に示すように、パケット１３０４の各要素の値は、送信元アドレス＝２、送信先アドレス＝３、伝播状態値＝１０、データ＝データとなっている。他の部分は省略する。
送信元アドレスには、送信元である端末２のアドレスが入る。
送信先アドレスには、送信先である端末３のアドレスが入る。
伝播状態値には、送信元の端末と送信先の端末の通信状態を示す値が入る。ここでは、端末２が自分の所持する伝播状態テーブル４１６を参照し、端末２からみた端末３の伝播状態値を入れることとする。ここでは仮に伝播状態値は１０とする。
伝播状態値は、パケットを受信しないと更新されず、時間に応じて減少していくので、障害物１３０５があるために端末２と端末３の間の通信が困難になり、１０という低い値になっている。
【００５４】
また、図１３の右下に、端末１（１３０１）の端末情報データベース１１９の内容について示す。
端末情報データベース１１９は、実施の形態１で説明したように、伝播状態テーブル４１６を有する。その他のテーブルについては便宜上省略する。
伝播状態テーブル４１６には、端末２と端末１の伝播状態値が８０、さらに、端末３と端末１の伝播状態値が９０とする情報があらかじめ入っているとする。
【００５５】
このような前提のもと、端末１（１３０１）の動作について以下で説明する。
（１）
端末１のパケット解析部１０４は、端末２より端末３へのパケット（１３０４）を受信すると、パケット１３０４のヘッダ部分を解析する。
解析した結果、端末１は、端末２と端末３の伝播状態値が１０であることがわかる。
（２）
ここで、端末１の伝播状態値計算部１０７は、自端末が所持する伝播状態テーブル４１６を参照し、端末２と端末１の伝播状態値が８０、端末３と端末１の伝播状態値が９０であることがわかる。
（３）
このとき、伝播状態値計算部１０７は、端末２−端末１−端末３という経路でパケットを送信した場合の伝播状態値を計算する。計算式は限定しないが、例えば、計算式１３０７により、伝播状態値が７２と計算できる。
伝播状態値＝（端末２と端末１の伝播状態値）＊（端末３と端末１の伝播状態値）
／１００
＝９０×８０／１００
＝７２
（４）
ここで、ルーティングプロトコル処理部１２２は、計算した結果の７２と、パケットから取得した伝播状態値の１０を比較する。
比較した結果、パケットから取得した伝播状態値の方が小さいことがわかる。
（５）
端末１のルーティングプロトコル処理部１２２は、自端末が中継を行う必要があると判断し、端末１は端末３に向けてパケット１３０６を送信する。
これにより、端末２は、通信環境が悪くなった場合、近隣にいた端末１が中継をすることで端末３との通信を継続することができる。
【００５６】
図１４は、伝播状態が良く、パケットの中継を必要としない場合について説明するものである。
図１４において、図１３と同様に、端末１（１４０１）、端末２（１４０２）および端末３（１４０３）が存在し、端末２（１４０２）から端末３（１４０３）に向けてパケットを送信しようとしているものとする。
なお、図１３と同様に、無線通信であるため、端末２（１４０２）から送信されたパケットは同心円上に伝わっていく。すなわち、端末２（１４０２）から送信されたパケットは、端末３（１４０３）だけでなく、端末１（１４０１）にも同時に届くとする。
【００５７】
次に、端末２（１４０２）から送信されたパケット（１４０４）の具体的な値について説明する。
図１４の「パケット１４０４」に示すように、パケット１４０４の要素は、送信元アドレス＝２、送信先アドレス＝３、伝播状態値＝８０、データ＝データとする。
端末情報データベース１１９については、図１３と同様とする。
【００５８】
このような前提のもと、端末１（１４０１）の動作について説明する。
（１）
端末１のパケット解析部１０４は、端末２より端末３へのパケット（１４０４）を受信すると、パケット１４０４のヘッダ部分を解析する。
解析した結果、端末１は、端末２と端末３の伝播状態値が８０であることがわかる。
（２）
ここで、端末１の伝播状態値計算部１０７は、自端末が所持する伝播状態テーブル４１６を参照し、端末２と端末１の伝播状態値が８０、端末３と端末１の伝播状態値が９０であることがわかる。
（３）
このとき、伝播状態値計算部１０７は、端末２−端末１−端末３という経路でパケットを送信した場合の伝播状態値を計算する。計算式１３０７は、図１３と同様である。
（４）
ここで、ルーティングプロトコル処理部１２２は、計算した結果の７２と、パケットから取得した伝播状態値の８０を比較する。
比較した結果、パケットから取得した伝播状態値の方が大きいことがわかるので、端末１は中継を行う必要がないと判断する。
【００５９】
本実施の形態２では、パケットの中継を行うか否かを判断する過程で、各処理部が行う処理を説明したが、処理を受け持つ主体はこれに限られるものではなく、適宜処理を振り分けてもよい。
【００６０】
図１３において、伝播状態値が１０であるため、端末２から端末３へはパケット１３０４が届かないものと仮定して、端末１による中継を行った。
もし、端末２から端末３へパケット１３０４が届き、パケット１３０６と重複したとしても、順序番号部の値などを適宜参照して、余分なパケットは削除するなどの処理を行えば、特段の問題はない。
【００６１】
なお、上記実施の形態１〜２の具体的な適用対象としては、移動無線通信システムが考えられる。特に、アドホックネットワーク無線通信システムのように、無線通信手段を具備した移動端末間で無線通信を行う移動無線通信システムに利用可能である。
【００６２】
以上のように、本実施の形態２によれば、
各端末は、他端末宛のパケット（以後第１パケットと呼ぶ）を受信した際に、
下記ステップ１〜４を実行して、当該第１パケットを中継するか否かを判断する。
（ステップ１）
前記伝播状態テーブルに格納されている、前記第１パケットの送信元端末とその送信先端末とに関連するエントリを参照する。
（ステップ２）
そのエントリに含まれる伝播状態値を用いて、
前記送信元端末が、自端末を経由して送信先端末に前記第１パケットを送信する場合の伝播状態値を、所定の計算式で算出する。
（ステップ３）
前記第１パケットに含まれる、送信元端末とその送信先端末との間の伝播状態値と、前記計算式で算出した伝播状態値とを比較する。
（ステップ４）
前記計算式で算出した伝播状態値のほうが評価が高い場合には、
自端末を経由して、前記第１パケットをその送信先端末に送信する。
【００６３】
したがって、伝播状態が悪い端末間のパケットを受け取った端末が、当該パケットを中継するか否かを、伝播状態に応じて動的に判断することができる。
これにより、通信環境が悪い端末も、他端末が中継を行うことにより、通信を継続することができる。
【図面の簡単な説明】
【００６４】
【図１】実施の形態１に係る通信端末の構成図を示すものである。
【図２】図１の通信端末が用いる通信パケットフォーマットを示すものである。
【図３】通信端末の配置とパケットの具体例を示すものである。
【図４】端末情報データベース１１９の具体的な構成を説明するものである。
【図５】端末テーブル４１５のエントリの作成手順を示すものである。
【図６】伝播状態テーブル４１６のエントリの作成手順を示すものである。
【図７】ホップ数テーブル４１７、受信電力テーブル４１８、位置テーブル４１９のエントリの作成手順を示すものである。
【図８】データテーブル４２０のエントリの作成手順を示すものである。
【図９】伝播状態値計算部１０７の動作を説明するものである。
【図１０】伝播状態値を間接的に求める手順を説明するものである。
【図１１】ルーティングテーブル１２３の作成方法を示すものである。
【図１２】図３の状態の後に、端末１から端末４にパケット１２０２を送信したときの具体例を示すものである。
【図１３】障害物が存在するため伝播状態が悪く、パケットの中継を必要とする場合について説明するものである。
【図１４】伝播状態が良く、パケットの中継を必要としない場合について説明するものである。
【符号の説明】
【００６５】
１０１  データベース作成部、１０２  通信プロトコル処理部、１０３  アプリケーション部、１０４  パケット解析部、１０５  電力解析部、１０６  データベース管理部、１０７  伝播状態値計算部、１０８  パケット分解モジュール、１０９  送信元解析モジュール、１１０  送信先解析モジュール、１１１  中継元解析モジュール、１１２  中継先解析モジュール、１１３  伝播状態値解析モジュール、１１４  ホップ数解析モジュール、１１５  位置情報解析モジュール、１１６  順序番号解析モジュール、１１７  データ解析モジュール、１１８  受信電力解析モジュール、１１９  端末情報データベース、１２０  タイマー、１２１  関数モジュール、１２２  ルーティングプロトコル処理部、１２３  ルーティングテーブル、２０１  送信元アドレス部、２０２  送信先アドレス部、２０３  中継元アドレス部、２０４  中継先アドレス部、２０５  伝播状態値部、２０６  ホップ数部、２０７  位置情報部、２０８  順序番号部、２０９  データ部、３０１  端末１、３０２  端末２、３０３  端末３、３０４  端末４、３０５  円、３０６  パケット、４１５  端末テーブル、４１６  伝播状態テーブル、４１７  ホップ数テーブル、４１８  受信電力テーブル、４１９  位置テーブル、４２０  データテーブル、１２０２  パケット、１３０１  端末１、１３０２  端末２、１３０３  端末３、１３０４  パケット、１３０５  障害物、１３０６  パケット、１３０７  計算式、１４０１  端末１、１４０２  端末２、１４０３  端末３、１４０４  パケット。
【図１】
2008079098.tif 000003
【図２】
2008079098.tif 000004
【図３】
2008079098.tif 000005
【図４】
2008079098.tif 000006
【図５】
2008079098.tif 000007
【図６】
2008079098.tif 000008
【図７】
2008079098.tif 000009
【図８】
2008079098.tif 000010
【図９】
2008079098.tif 000011
【図１０】
2008079098.tif 000012
【図１１】
2008079098.tif 000013
【図１２】
2008079098.tif 000014
【図１３】
2008079098.tif 000015
【図１４】
2008079098.tif 000016