(57)【特許請求の範囲】
【請求項１】
複数の通信装置が互いに無線で通信するアドホックネットワークに用いる通信装置であって、
複数の宛先アドレスと、複数の次のアドレスと、を対応して表すテーブルを記憶するテーブル記憶部と、
先の通信装置から、セッション識別子、送信元アドレス、および宛先アドレスを含むセッション情報を受信するセッション情報受信部と、
前記セッション情報の受信に対応して、前記先の通信装置にＡＣＫパケットを送信するＡＣＫ送信部と、
前記先の通信装置から、前記ＡＣＫパケットの送信に対応して送信されるデータを受信するデータ受信部と、
前記テーブルに基づいて、前記データを送信する次の通信装置を決定する決定部と、
前記次の通信装置に、前記セッション情報を送信するセッション情報送信部と、
前記セッション情報の送信に対応して前記次の通信装置から送信されるＡＣＫパケットを受信するＡＣＫ受信部と、
前記ＡＣＫパケットの受信に対応して、前記次の通信装置に前記データを送信するデータ送信部と、
を具備する通信装置。
【請求項２】
前記テーブルを更新するテーブル更新部と、
前記セッション情報の送信後、所定時間、前記ＡＣＫパケットを受信しないときに、経路切断と判定する切断判定部と、
前記経路切断と判定された場合に、経路切断情報を前記先の通信装置に送信する経路切断情報送信部と、
前記次の通信装置から経路切断情報を受信する経路切断情報受信部と、
前記経路切断情報の受信に対応して、前記先の通信装置に前記経路切断情報を送信する第２の経路切断情報送信部と、
前記経路切断情報の受信に対応して、送信未了のデータの有無を判定する送信完了判定部と、
前記送信未了のデータがある場合に、前記更新されたテーブルに基づいて、前記データを送信する第２の次の通信装置を決定する第２の決定部と、
前記送信未了のデータがある場合に、前記第２の次の通信装置に、前記セッション情報を送信する第２のセッション情報送信部と、
前記送信未了のデータがある場合に、前記第２のセッション情報送信部によるセッション情報の送信に対応して前記第２の次の通信装置から送信されるＡＣＫパケットを受信する第２のＡＣＫ受信部と、
前記送信未了のデータがある場合に、前記第２のＡＣＫ受信部によるＡＣＫパケットの受信に対応して、前記第２の次の通信装置に前記送信未了のデータを送信する第２のデータ送信部と、
をさらに具備する請求項１記載の通信装置。
【請求項３】
前記データ受信部が、前記データに対応する複数の分割データを順次に受信、保存し、
前記データ送信部が、前記保存された複数の分割データを順次に送信する、
請求項２記載の通信装置。
【請求項４】
前記分割データの送信に対応して前記次の通信装置から送信されるデータＡＣＫパケットを受信するデータＡＣＫ受信部と、
前記データＡＣＫパケットの受信に対応して、前記保存された分割データを削除するデータ削除部と、をさらに具備し、
前記第２のデータ送信部が、前記保存され、未削除の分割データを送信未了のデータとして送信する
請求項３記載の通信装置。
【請求項５】
前記経路切断と判定された場合に、前記更新されたテーブルに基づいて、前記データを送信する第３の次の通信装置を決定する第３の決定部と、
前記第３の次の通信装置に、前記セッション情報を送信する第３のセッション情報送信部と、
前記第３のセッション情報送信部によるセッション情報の送信に対応して前記第３の次の通信装置から送信されるＡＣＫパケットを受信する第３のＡＣＫ受信部と、
前記第３のＡＣＫ受信部によるＡＣＫパケットの受信に対応して、前記第３の次の通信装置に前記データを送信する第３のデータ送信部と、
をさらに具備する請求項２乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記セッション情報中の宛先アドレスが、自装置のアドレスと一致する場合に、前記セッション情報送信部による前記セッション情報の送信および前記データ送信部による前記データの送信が行われない、
請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
アドホックネットワークで接続された、請求項１乃至６のいずれか１項に記載の、複数の通信装置を有する通信システム。
【請求項８】
アドホックネットワークで接続される第１、第２、および第３の通信装置間での通信方法であって、
前記第１の通信装置が、前記第２の通信装置に、セッション識別子、送信元アドレス、および宛先アドレスを含むセッション情報を送信する工程と、
前記第１の通信装置からの前記セッション情報の送信に対応して、前記第２の通信装置が、前記第１の通信装置に、ＡＣＫパケットを送信する工程と、
前記第２の通信装置からのＡＣＫパケットの送信に対応して、前記第１の通信装置が、前記第２の通信装置に、前記データを送信する工程と、
前記第２の通信装置がデータを受信する工程と、
前記第２の通信装置が、前記第３の通信装置に、前記セッション情報を送信する工程と、
前記第２の通信装置からのセッション情報の送信に対応して、前記第３の通信装置が、前記第２の通信装置に、ＡＣＫパケットを送信する工程と、
前記第３の通信装置からのＡＣＫパケットの送信に対応して、前記第２の通信装置が、前記第３の通信装置に、前記データを送信する工程と、
を具備する通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、アドホックネットワークでのマルチホップ通信に係る通信装置、通信システム、および通信方法に関する。
【背景技術】
【０００２】
アドホックネットワークは、互いに直接通信する無線端末で構成されたネットワークである。アドホックネットワークでは、基地局やアクセスポイントが不要であり、ネットワークを簡易に構築できる。
アドホックネットワークにおいて、複数の端末をバケツリレー方式で接続することで（マルチホップ通信）、無線の到達範囲を超えた通信が可能となる。
【０００３】
このマルチホップ通信において、送信側端末から受信側端末（宛先）まで多数の無線端末を経由して通信すると（ホップ数が増えると）、通信のスループットが低下したり、データが宛先まで届かなかったりする可能性がある。
【０００４】
マルチホップ通信において、通信の信頼性を向上する技術が公開されている。例えば、一部のノード（無線端末）がプロキシとして動作し、上位プロキシ（またはソースノード）にローカルＡＣＫを返すことで、中継ノードで輻輳を制御する技術が公開されている（非特許文献１参照）。また、マルチホップにおけるエンド・ツー・エンドＡＣＫを用いて輻輳を制御する技術が公開されている（非特許文献２参照）。
【０００５】
これらの技術では、エンド・ツー・エンドＡＣＫを用いて、送信側端末と受信側端末（宛先）間でセッション（エンド・ツー・エンド・セッション）を確立し、データを送信している。しかしながら、ホップ数が増えると、エンド・ツー・エンドでセッションを確立、維持して、データを送受信することは必ずしも容易ではない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】S. Kopparty, S.V. Krishnamurthy, M. Faloutsos, S.K. Tripathi, "Split TCP for mobile ad hoc networks", Proc. IEEE GLOBECOM, pp.138-142, 2002.
【非特許文献２】Y.-N. Lien and Yi-Fan Yu, "Hop-by-Hop TCP over MANET", Proc. IEEE APSCC, pp.1150-1155, 2008.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、アドホックネットワークでのマルチホップ通信において、通信の信頼性の向上を図った通信装置、通信システム、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態の通信装置は、複数の通信装置が互いに無線で通信するアドホックネットワークに用いる通信装置であって、複数の宛先アドレスと、複数の次のアドレスと、を対応して表すテーブルを記憶するテーブル記憶部と、先の通信装置から、セッション識別子、送信元アドレス、および宛先アドレスを含むセッション情報を受信するセッション情報受信部と、前記セッション情報の受信に対応して、前記先の通信装置にＡＣＫパケットを送信するＡＣＫ送信部と、前記先の通信装置から、前記ＡＣＫパケットの送信に対応して送信されるデータを受信するデータ受信部と、前記テーブルに基づいて、前記データを送信する次の通信装置を決定する決定部と、前記次の通信装置に、前記セッション情報を送信するセッション情報送信部と、前記セッション情報の送信に対応して前記次の通信装置から送信されるＡＣＫパケットを受信するＡＣＫ受信部と、前記ＡＣＫパケットの受信に対応して、前記次の通信装置に前記データを送信するデータ送信部と、を備える。
【発明の効果】
【０００９】
本発明によれば、アドホックネットワークでのマルチホップ通信において、通信の信頼性の向上を図った通信装置、通信システム、および通信方法を提供できる。
【図面の簡単な説明】
【００１０】
【図１】比較例に係る通信ネットワークでの通信を表す模式図である。
【図２】実施形態に係る通信ネットワークでの通信の概略を表す模式図である。
【図３】実施形態に係る通信ネットワークでの通信の詳細を表す模式図である。
【図４】実施形態に係る通信装置１０を表す模式図である。
【図５】ソースノード（ノード（０））の通信装置１０での動作手順を表すフロー図である。
【図６】ソースノードの通信装置１０でのデータ送信の手順を表すフロー図である。
【図７】中継ノード（ノード（１）〜（Ｎ−１））および宛先ノード（ノード（Ｎ））の通信装置１０での動作手順を表すフロー図である。
【図８】中継ノードおよび宛先ノードの通信装置１０でのデータ受信の手順を表すフロー図である。
【図９】中継ノードの通信装置１０でのデータ送信の手順を表すフロー図である。
【図１０】リンク切断時の通信装置１０の動作手順を表すフロー図である。
【発明を実施するための形態】
【００１１】
（比較例）
以下、判り易さのために先に比較例を説明する。
図１は、比較例に係る通信ネットワークでの通信を表す模式図である。
複数のノード（無線端末）が、ノード（０）〜ノード（Ｎ）として、無線通信可能に接続されている。
【００１２】
ソースノード（ノード（０））が宛先ノード（ノード（Ｎ））にデータを送信することを考える。この場合、次のように、３ウェイ・ハンドシェイクによって、ノード（０）とノード（Ｎ）間の接続が確立される。
【００１３】
・ノード（０）は、ノード（Ｎ）に向けてＳＹＮパケットを送信する。このＳＹＮパケットは、ノード（１）〜ノード（Ｎ−１）を経由して、ノード（Ｎ）に到達する。
・ＳＹＮパケットを受信したノード（Ｎ）は、ノード（０）の接続を許可するＳＹＮ  ＡＣＫパケットをノード（０）に向けて送信する。このＳＹＮ  ＡＣＫパケットは、ノード（Ｎ−１）〜ノード（１）を経由して、ノード（０）に到達する。
・ＳＹＮ  ＡＣＫパケット  パケットを受けとったノード（０）は、接続開始をあらわすＡＣＫパケットをノード（Ｎ）に向けて送信する。このＡＣＫパケットは、ノード（１）〜ノード（Ｎ−１）を経由して、ノード（Ｎ）に到達し、ノード（Ｎ）はノード（０）からのデータの送信に備える。
【００１４】
このように、ノード（０）とノード（Ｎ）間の接続（エンド・ツー・エンド・セッション）が確立され、その後、ノード（０）からノード（Ｎ）に向けて、データが送信される。
【００１５】
ここで、ホップ数（Ｎ）が大きい場合（長い経路での送信）、通信のスループットが低下したり、３ウェイハンドシェイク用メッセージ（ＳＹＮ、ＳＹＮ  ＡＣＫ、ＡＣＫ）がノード（０）、（Ｎ）間で送受信できなかったりする可能性がある。ホップ数が増えると、エンド・ツー・エンドのセッションを効率的に保持するのは困難となる。
【００１６】
（実施形態の概略）
以下、判り易さのために、実施形態の概略を先に説明する。
図２は、実施形態に係る通信ネットワークでの通信の概略を表す模式図である。複数のノード（無線端末）が、ノード（０）〜ノード（Ｎ）として、無線通信可能に接続されている。
【００１７】
本実施形態では、複数の１ホップ(1-hop)のセッションを用いて、データを送信する。すなわち、本実施形態では、比較例のように、ノード（１）、ノード（Ｎ）間でエンド・ツー・エンド（END-TO-END）のセッションを確立し、データを送受信するのではない。本実施形態では、ノード（０）、（１）間、ノード（１）、（２）間、…ノード（Ｎ−１）、（Ｎ）間それぞれでセッションを確立し、データを送受信する。その結果、ノード（０）とノード（Ｎ）間（エンド・ツー・エンド）でデータが送受信される。
【００１８】
このように、本実施形態では、エンド・ツー・エンドでセッションを保持せず、複数の１ホップのセッション、すなわちホップ・バイ・ホップ（hop by hop)のセッションによって、エンド・ツー・エンドのデータ転送を実現している。この結果、エンド・ツー・エンドでセッションを確立、維持する必要が無くなり、ホップ数が大きい場合でも通信の信頼性を保つことができる。
なお、後述のように、１ホップのセッションの確立のために、セッション情報、Ｓ−ＡＣＫパケット（セッション情報を受信したことを表すＡＣＫパケット）が送受信される。
【００１９】
（実施形態の詳細）
以下、本実施形態の詳細を説明する。
図３は、実施形態に係る通信ネットワークＷでの通信の詳細を表す模式図である。ソースノード（ノード（０））、中継ノード（ノード（１）〜（Ｎ−１））、宛先ノード（ノード（Ｎ））が無線通信可能に配置されている。
【００２０】
この通信ネットワークＷは、アドホックネットワークである。各ノードは、いわゆる無線端末であり、基地局やアクセスポイントとしての機能は不要である。ノード間での１ホップのセッションを用いて、ホップ・バイ・ホップで、ソースノードから宛先ノードにデータが送信される。
【００２１】
図４は、各ノードに用いられる通信装置１０を表す模式図である。後述のように、ソースノード、中継ノード、宛先ノードは、その動作内容が異なるが、通信装置１０がそのいずれとしても動作可能とするのが、効率的である。このため、通信装置１０は、ソースノード、中継ノード、宛先ノードのいずれとしても動作可能としている。
【００２２】
但し、ソースノードや宛先ノードが固定されているような場合は、ソースノードや宛先ノード専用の通信装置を用いても良い。
【００２３】
通信装置１０は、互いに無線通信可能な無線端末であり、入出力部１１、テーブル記憶部１２、テーブル更新部１３、次ノード決定部１４、無線送信部１５、無線受信部１６、セッション保存情報記憶部１７、データ保持部１８、データ削除部１９、切断判定部２１、送信完了判定部２２を有する。
【００２４】
通信装置１０は、ハードウェアのみ、ハードウェア（ＣＰＵ（Central Processing Unit）および他のハードウェア）とソフトウェア（プログラム）の組み合わせのいずれによっても構成できる。
【００２５】
入出力部１１は、データおよびこのデータを送信する宛先アドレス、および必要に応じて、このデータの送信元アドレス（自装置のアドレス）を入出力する入出力手段（入力部および出力部）である。
【００２６】
テーブル記憶部１２は、テーブルＴを記憶する記憶装置（例えば、メモリ）である。
テーブルＴは、例えば、ルーティン・テーブルであり、宛先アドレスとネクスト・ホップ（次ノード）のアドレス（次のアドレス）を対応して表す。
【００２７】
宛先アドレスは、宛先ノードのアドレスである。本実施形態では、宛先アドレスは、ノード（Ｎ）のアドレスのみで足りるが、宛先として、ネットワークＷ上の何れのノード（通信装置１０）でも指定される可能性がある。このため、一般にテーブルＴは、宛先アドレスとネクスト・ホップのアドレスの組み合わせを複数対応して表すことになる。
【００２８】
ネクスト・ホップ・アドレスは、次ノードのアドレス（中継アドレス、次のアドレス）であり、通信装置１０がノード（０）であればノード（１）のアドレスを表す。以下、同様に、次ノードのアドレスは、通信装置１０がノード（１）であればノード（２）のアドレス、…、通信装置１０がノード（ｍ）であればノード（ｍ＋１）のアドレス、…、通信装置１０がノード（Ｎ−１）であればノード（Ｎ）のアドレスを表す。
【００２９】
テーブル更新部１３は、テーブルＴを更新する手段である。テーブル更新部１３は、無線送信部１５、無線受信部１６を用いて、近隣の他の通信装置１０とテーブルＴの情報を交換することで、自己のテーブルＴを更新することができる。
【００３０】
次ノード決定部１４は、テーブルＴに基づいて、データを送信する次の通信装置１０（のアドレス、すなわち、次のアドレス）を決定する手段であり、決定部、第２、第３の決定部として機能する。
なお、テーブル更新部１３によってテーブルＴが更新された場合、次ノード決定部１４が決定する次の通信装置１０は異なってくる。
【００３１】
無線送信部１５は、セッション情報、ＡＣＫ（Ｓ−ＡＣＫ、Ｄ−ＡＣＫ）パケット、データ（データパケット）、経路切断情報を送信する手段である。無線送信部１５は、セッション情報送信部、第２、第３のセッション情報送信部、ＡＣＫ送信部、データ送信部、第２、第３のデータ送信部、経路切断情報送信部、第２の経路切断情報送信部として機能する。
【００３２】
表１は、セッション情報を表す。
【表１】
0005839136.tif 000002
【００３３】
セッションＩＤは、例えば、ノード（０）からノード（Ｎ）へのデータの送受信のためのセッションを識別する識別子（セッション識別子）である。このセッションＩＤは、ノード（０）からノード（１）、ノード（１）からノード（２）、…ノード（Ｎ−１）からノード（Ｎ）へのホップ・バイ・ホップでのデータの送受信の全てにおいて、共通に用いられる。
【００３４】
ノード（０）、（Ｎ）のアドレスは、送信元（ソースノード）、送信先（宛先ノード）のアドレスであり、例えば、ＩＰアドレスで表される。
【００３５】
Ｓ−ＡＣＫパケットおよびＤ−ＡＣＫパケット（データＡＣＫパケット）はそれぞれ、先のノードからセッション情報およびデータ（データパケット）を受信したことを表すＡＣＫパケットであり、セッションＩＤを含むことができる。Ｓ−ＡＣＫパケットおよびＤ−ＡＣＫパケットは、１ホップでのセッションの確立（データ送信の開始）およびデータ送信の完了に対応する。
【００３６】
Ｓ−ＡＣＫパケット、Ｄ−ＡＣＫパケットはいずれも、ＴＣＰのＡＣＫパケットを利用できる。これらのＡＣＫパケットに対応して送受信されるパケットが、セッション情報のパケット、データパケットと異なることから、ここでは判り易さのために、Ｓ−ＡＣＫパケット、Ｄ−ＡＣＫパケットと表記を異ならせている。
【００３７】
データは、テキスト、イメージ、音声、プログラム等、データであれば限定されることはない。
無線送信部１５は、データを、通例、複数のデータに分割し（分割データ）、複数のデータパケットとして順次に送信する。なお、この詳細は後述する。
無線送信部１５は、データ保持部１８に保存された複数の分割データを順次に送信する。
【００３８】
経路切断情報は、次のノードへの通信（セッション）が切断されていることを表す情報であり、セッションＩＤを含むことができる。後述のように、切断判定部２１が経路の切断の有無を判定する。
【００３９】
無線受信部１６は、セッション情報、ＡＣＫ（Ｓ−ＡＣＫ、Ｄ−ＡＣＫ）パケット、データ（データパケット）、経路切断情報（経路切断情報のパケット）を受信する手段である。無線受信部１６は、セッション情報受信部、ＡＣＫ受信部、第２、第３のＡＣＫ受信部、データＡＣＫ受信部、データ受信部、経路切断情報受信部として機能する。
無線受信部１６は、複数の分割データを順次に受信し、データ保持部１８に保存する。データ保持部１８に保存された複数の分割データは、無線送信部１５によって順次に送信される。
【００４０】
セッション保存情報記憶部１７は、表２のセッション保存情報を記憶する記憶装置（例えば、メモリ）である。
【表２】
0005839136.tif 000003
【００４１】
このセッション保存情報のセッションＩＤ、送信元（ノード（０））のアドレス、宛先（ノード（Ｎ））のアドレスはそれぞれ、セッション情報のセッションＩＤ、送信元アドレス、宛先アドレスと同一である。
ロケーションは、データを保持する場所（データ保持部１８）を識別する情報である。
タイムスタンプ(time stamp)は、データを受信する日時、時刻を表す情報である。
【００４２】
データ保持部１８は、無線受信部１６が受信したデータ（分割データ、データパケット）を保持する記憶装置（例えば、バッファーメモリ、ハードディスク）である。データ保持部１８は、無線送信部１５によって次のノードへ送信するための送信用のデータ（データパケット）を記憶する。既述のように、データの具体的な保存場所は、ロケーションによって特定される。
データ保持部１８として、ファイルシステム（メモリベースファイルシステムを含む）を用いることで、ノード間で情報を共有することができる。
【００４３】
データ削除部１９は、データ送信の完了時に、データ保持部１８内に保存されたデータを削除する。すなわち、無線受信部１６がデータパケットの送信に対応する次のノードからのＤ−ＡＣＫパケット（データＡＣＫパケット）を受信したときに、データ削除部１９がデータ保持部１８内の分割データを順次に削除する。
【００４４】
切断判定部２１は、無線送信部１５からのセッション情報の送信後、所定時間、ＡＣＫパケット（Ｓ−ＡＣＫパケット）を受信しないときに、経路切断と判定する。このとき、無線送信部１５から先のノードに経路切断情報が送信される。この経路切断情報は、さらに上流のノードに順次送信され、ソースノード（ノード（０））まで到達する。
送信完了判定部２２は、送信未了のデータ（残余データ）の有無を判定する。残余データの有無は、データ保持部１８中のデータの有無によって判断できる。
【００４５】
（通信装置１０の動作）
以下、通信装置１０の動作を説明する。
図５は、ソースノード（ノード（０））の通信装置１０の動作手順を表すフロー図である。図６は、この動作手順中、データ送信の手順を表すフロー図である。
図７は、中継ノード（ノード（１）〜（Ｎ−１））および宛先ノード（ノード（Ｎ））の通信装置１０の動作手順を表すフロー図である。図８、図９は、この動作手順中、データ受信およびデータ送信の手順を表すフロー図である。
図１０は、リンク切断時の通信装置１０の動作手順を表すフロー図である。
【００４６】
ノードによって通信装置１０の動作内容は異なることから、Ａ．ソースノード、Ｂ．中継ノード、Ｃ．宛先ノードに区分して、通信装置１０の動作を説明する。
【００４７】
Ａ．ソースノード（ノード（０））での通信装置１０の動作（図５、図６参照）
（１）データの入力（ステップＳ１１）
ノード（０）の通信装置１０にデータが入力される。入出力部１１に自装置（ノード（０）の通信装置１０自体）の送信元アドレス（ノード（０）のアドレス）、宛先アドレス（ノード（Ｎ）のアドレス）、およびデータが入力される。
【００４８】
（２）次のノード（１）の決定（ステップＳ１２）
次ノード決定部１４が、次のノードとして、ノード（１）をテーブルＴから決定する。すなわち、テーブルＴ上から、宛先ノード（Ｎ）に対応するネクスト・ホップとして、ノード（１）のアドレスが選択される。
【００４９】
（３）ノード（０）からノード（１）へのセッション情報の送信（ステップＳ１３）
ノード（０）の無線送信部１５からノード（１）に、セッション情報［セッションＩＤ、送信元（ノード（０））のアドレス、宛先（ノード（Ｎ））のアドレス］が送信される。
【００５０】
（４）ノード（０）からノード（１）へのデータの送信（ステップＳ１４、Ｓ１５）
ノード（０）からのノード（１）へのセッション情報の送信に対応して、ノード（１）の無線送信部１５からノード（０）にＳ−ＡＣＫパケットが送信される（セッションの確立）。ノード（１）からＳ−ＡＣＫパケットを受信したノード（０）は、ノード（１）にデータを送信する（ステップＳ１５）。
【００５１】
ノード（０）の無線受信部１６がノード（１）からのＳ−ＡＣＫパケットを所定時間内に受信しない場合、タイムアウトと判定され（ステップＳ１４）、次ノードの選択、セッション情報の送信が再度行われる（ステップＳ１２、Ｓ１３）。
【００５２】
以上のように、ノード（０）、（１）間でのセッションの確立、データの送信が行われる。
【００５３】
以下、ステップＳ１５でのデータの送信の詳細を説明する。ノード（０）は、次のように、データ量に応じて、データを複数のデータに分割して順次に送信する。
【００５４】
ｉ）データの分割およびデータ保持部１８への保存（ステップＳ１５１）
無線送信部１５において、パケットのウィンドウサイズに対応するように、データが分割され、データ保持部１８に保存される。
【００５５】
ｉｉ）分割データの送信（ステップＳ１５２）
分割されたデータ（分割データ）がデータパケットとして、ノード（０）の無線送信部１５からノード（１）に送信される。この送信の時点では、データ保持部１８中の分割データは保持されている。
【００５６】
ｉｉｉ）データ保持部１８からの分割データの削除（ステップＳ１５３、Ｓ１５４）
ノード（０）の無線送信部１５からノード（１）へのデータパケットの送信に対応して、ノード（１）の無線送信部１５からノード（０）にＤ−ＡＣＫパケットが送信される。ノード（１）からＤ−ＡＣＫパケットを受信したノード（０）のデータ削除部１９は、データ保持部１８中の分割データを削除する。
【００５７】
以上のように、全データの送信が完了するまで、データの分割およびデータ保持部１８への保存、分割データ（データパケット）の送信、データ保持部１８からの削除が繰り返される（ステップＳ１５５）。
【００５８】
ノード（０）の無線受信部１６がノード（１）からのＤ−ＡＣＫパケットを所定時間内に受信しない場合、タイムアウトと判定され（ステップＳ１５３）、分割データ（データパケット）が再度送信される（ステップＳ１５２）。このタイムアウトが繰り返される場合、データの送信中止等のエラー処理が行われる。
【００５９】
以上から判るように、ノード（０）は送信が完了するまで（Ｄ−ＡＣＫパケットを受信するまで）、データ保持部１８にデータを保持している。後述のノード（１）〜（Ｎ−１）でのデータの送受信（図７〜図９）においても、この事情は同様である。すなわち、宛先ノード（Ｎ）へのデータの送信が完了するまで、ノード（０）〜（Ｎ−１）のデータ保持部１８に送信未完了のデータが分散して保持される。
【００６０】
このとき、ノード（０）〜（Ｎ−１）に分散して保持される送信未完了のデータが重複することは基本的に無い。例えば、ノード（ｍ）からノード（ｍ＋１）に送信され、ノード（Ｎ）で未受信のデータパケットの分割データは、ノード（０）〜（ｍ）の何れにも保持されず、ノード（ｍ＋１）〜（Ｎ−１）のいずれか１つに保持される。
【００６１】
送信未完了のデータが、ノード（０）〜（Ｎ−１）において、どのように分散して保持されるかは、ノード（０）〜（Ｎ）間での通信状態に依存する。特定のノードのみが送信未完了のデータを保持することもあるが、通例、複数の連続（隣接する）または不連続（離隔する）のノードが送信未完了のデータを分散して保持する。
【００６２】
以上のように、ノード（Ｎ）への送信が未完了のデータは、ノード（０）〜（Ｎ−１）に分散して保存される。後述のように、ノード（ｍ）でのリンク切断判定時には、ノード（０）〜（ｍ）に分散して保存されたデータが、ノード（Ｎ）に向けて再度送信される。
【００６３】
Ｂ．中継ノード（ノード（１）〜（Ｎ−１））での通信装置１０の動作（図７〜図９参照）
既述のように、本実施形態では、ノード（０）、（１）、…、ノード（Ｎ−１）、（Ｎ）と１ホップでセッションの確立、データの送受信が行われる。ここでは、ノード（１）以降でのデータの中継を一般化して、ノード（ｍ−１）からノード（ｍ）へ、ノード（ｍ）からノード（ｍ＋１）へのホップ・バイ・ホップでのデータの送受信として表す。
【００６４】
（１）先のノードへのＳ−ＡＣＫパケットの送信（ステップＳ２１〜Ｓ２３）
ノード（ｍ）の無線受信部１６が先のノード（ｍ−１）からのセッション情報を受信する（ステップＳ２１）。例えば、ノード（１）は、ノード（０）からセッション情報を受信する。
ノード（ｍ−１）からのセッション情報を受信したノード（ｍ）は、ノード（ｍ−１）にＳ−ＡＣＫパケットを送信する（ステップＳ２２）。Ｓ−ＡＣＫパケットは、セッションＩＤを含む。
【００６５】
また、ノード（ｍ）のセッション保存情報記憶部１７に、セッション保存情報［セッションＩＤ、送信元（ノード（０））のアドレス、宛先（ノード（Ｎ））のアドレス、ロケーション、タイムスタンプ］が保存される（ステップＳ２３）。
ここでは、ノード（ｍ−１）からのデータパケットの受信前なので、タイムスタンプをブランクとして良い。
【００６６】
（２）先のノードからのデータの受信（ステップＳ２４）
ノード（ｍ）からのＳ−ＡＣＫパケットを受信したノード（ｍ−１）からデータが送信され、ノード（ｍ）の無線受信部１６によって受信される（ステップＳ２４）。ノード（ｍ）の無線受信部１６は、データをロケーションで示されるデータ保持部１８に保持し、タイムスタンプを更新する。
【００６７】
以下、ステップＳ２４でのデータの受信の詳細を説明する。既述のように、ノード（０）からのデータが複数のパケットに分割されて送信される可能性がある。この場合、先のノードからのデータの受信、データ保持部１８へのデータの保持が繰り返される。
【００６８】
ｉ）分割データの受信・保存（ステップＳ２４１、Ｓ２４２）
ノード（ｍ）の無線受信部１６は、ノード（ｍ−１）からのデータパケット（分割データ）を受信し、データ保持部１８に保存し、タイムスタンプを更新する。
【００６９】
ｉｉ）Ｄ−ＡＣＫパケットの送信（ステップＳ２４３）
データパケットを受信したノード（ｍ）は、ノード（ｍ−１）にＤ−ＡＣＫパケットを送信する。
【００７０】
以上のように、ノード（ｍ−１）からノード（ｍ）の全データの送信が完了するまで、このデータパケットの受信、Ｄ−ＡＣＫパケットの送信が繰り返される（ステップＳ２４４）。
【００７１】
但し、ノード（ｍ）の通信装置１０は、全データを受信したか否か自体を判断する必要は無い。データパケットを受信したときに、その都度、分割データの保存、Ｄ−ＡＣＫパケットの送信を実行すれば良い。
【００７２】
ここでは、判り易さのために、データの受信と送信（ステップＳ２４、Ｓ３４）は時間的に区別されている。実際には、多数のデータパケットが送受信されることから、ステップＳ２４、Ｓ３４でのデータパケットの受信と送信は、通例、並列して行われる。
【００７３】
（３）宛先でないことの確認（ステップＳ２５）
ノード（ｍ）は、自己が最終的な宛先（ノード（Ｎ））では無いことを確認する。この確認は、ノード（ｍ）自身のアドレスと、セッション情報中の宛先アドレスが一致するか否かによる。ノード（ｍ）自身のアドレスと、セッション情報中の宛先アドレスが一致すれば、ノード（ｍ）は最終的な宛先（ノード（Ｎ））であり、ノード（０）からノード（Ｎ）へのデータの送信が完了したことになる。
【００７４】
（４）次のノード（ｍ＋１）へのセッション情報の送信（ステップＳ３１、Ｓ３２）
ノード（ｍ）が最終的な宛先ではない場合、次ノード決定部１４によって、次のノード（ｍ＋１）が決定され（ステップＳ３１）、ノード（ｍ）の無線送信部１５からセッション情報が送信される（ステップＳ３２）。このセッション情報は、ノード（０）から送信されるセッション情報と同一である。
【００７５】
（５）次のノード（ｍ＋１）へのデータの送信（ステップＳ３４）
ノード（ｍ）からノード（ｍ＋１）へのセッション情報の送信に対応して、ノード（ｍ＋１）の無線送信部１５からノード（ｍ）にＳ−ＡＣＫパケットが送信される（セッションの確立）。ノード（ｍ＋１）からＳ−ＡＣＫパケットを受信したノード（ｍ）は、ノード（ｍ＋１）にデータを送信する。
【００７６】
なお、経路切断（タイムアウト）時のときの中継ノード（ノード（１）〜（Ｎ−１））の動作は後述する。
【００７７】
以下、ステップＳ３４でのデータの送信の詳細を説明する。既述のように、一般に、ノード（０）からのデータが複数のデータパケットに分割されて送信される。この場合、ノード（ｍ）から次のノード（ｍ＋１）にデータパケットが繰り返し送信される。
【００７８】
ｉ）タイムスタンプの更新チェック（ステップＳ３４１）
セッション保存情報中のタイムスタンプが周期的（定期的）にチェックされる。すなわち、新たなデータパケットの受信の有無がチェックされる。既述のように、データパケットの受信によりタイムスタンプが更新される（ステップＳ２４２）。
【００７９】
ｉｉ）分割データの送信（ステップＳ３４２）
ノード（ｍ）のデータ保持部１８に保存されている分割データ（データパケット）が、ノード（ｍ）の無線送信部１５からノード（ｍ＋１）に送信される。この結果、無線受信部１６によって、順次に受信された分割データ（データパケット）が無線送信部１５によって順次に送信される。
ここでは、セッション保存情報中のタイムスタンプを用いて、新たなデータパケットの受信の有無をチェックしているが、他の手法を採用することも可能である。例えば、無線受信部１６が新たなデータパケットの受信を無線送信部１５に直接通知しても良い。
【００８０】
この送信の時点では、データ保持部１８中の分割データは保持されている。既述のように、データパケットを受信したときに、そのデータ（データパケット）はデータ保持部１８に保存される（ステップＳ２４１）。
【００８１】
ｉｉｉ）データ保持部１８からの分割データの削除（ステップＳ３４３、Ｓ３４４）
ノード（ｍ）からノード（ｍ＋１）へのデータパケットの送信に対応して、ノード（ｍ＋１）からノード（ｍ）にＤ−ＡＣＫパケットが送信される。ノード（ｍ＋１）からＤ−ＡＣＫパケットを受信したノード（ｍ）のデータ削除部１９は、データ保持部１８中の送信済みの分割データを削除する。
【００８２】
ノード（ｍ）がノード（ｍ＋１）からのＤ−ＡＣＫパケットを所定時間内に受信しない場合、タイムアウトと判定され（ステップＳ３４３）、分割データ（データパケット）が再度送信される（ステップＳ３４２）。このタイムアウトが繰り返される場合、データの送信中止等のエラー処理が行われる。
【００８３】
以上のように、ノード（ｍ）からノード（ｍ＋１）への全データの送信が完了するまで、分割データ（未送信のデータ）の送信、データ保持部１８からの削除が繰り返される（ステップＳ３４５）。既述のように、宛先ノード（Ｎ）へのデータの送信が完了するまで、ノード（０）〜（Ｎ−１）のデータ保持部１８に送信未完了のデータが分散して保持される。
【００８４】
但し、ノード（ｍ）の通信装置１０は、全データを送信したか否か自体を判断する必要は無い。タイムスタンプが更新されたときに、その都度、分割データの送信、データ保持部１８からの削除を実行すれば良い。
【００８５】
Ｃ．宛先ノード（Ｎ）での通信装置１０の動作（図７参照）
宛先ノード（Ｎ）での動作は、基本的には、中継ノードでの動作とほぼ同様である。すなわち、宛先ノード（Ｎ）では、中継ノードと同様、（１）先のノードへのＳ−ＡＣＫパケットの送信、（２）先のノードからのデータの受信、（３）宛先でないことの確認が行われる。
【００８６】
宛先ノード（Ｎ）は、最終的な宛先なので、（４）次のノード（ｍ＋１）へのセッション情報の送信、（５）次のノード（ｍ＋１）へのデータの送信は行われない。
【００８７】
以上のように、ノード（０）からノード（Ｎ）にホップ・バイ・ホップでデータを送信できる。ここでは、各ホップでのセッションの確立、データの送受信が滞りなく行われたとしている。
しかし、ノード（０）からノード（Ｎ）への経路のどこかで、通信状態（トポロジ）の変化等によって、経路が切断される可能性がある。
【００８８】
以下、経路切断時における中継ノード（１）〜（Ｎ−１）およびソースノード（０）の通信装置１０の動作を説明する。ここでは、中継ノードノード（ｍ）において、経路の切断が検出されたとしている。
【００８９】
Ｄ．経路切断時での通信装置１０の動作（図７、図１０参照）
（１）タイムアウトの検出（ステップＳ３３）
中継ノード（ｍ）の切断判定部２１は、中継ノード（ｍ＋１）へのセッション情報の送信後、所定時間が経過してもＳ−ＡＣＫパケットを受信しない場合（コネクション・タイムアウト）、中継ノード（ｍ＋１）とのリンクが切断されたと判定する。
【００９０】
コネクション・タイムアウトの判定に、ＴＣＰコネクション・タイムアウト（TCP connection timeout）を用いることができる。なお、この点は、ステップＳ１４、Ｓ４７、Ｓ１５３、Ｓ２４４、Ｓ３４３でのタイムアウトでも同様である。
【００９１】
（２）先のノード（ｍ−１）へのリンク切断情報の送信（ステップＳ３５）
ノード（ｍ）の無線送信部１５から先のノード（ｍ−１）にリンク切断情報が送信される。なお、既述のように、リンク切断情報は、セッションＩＤを含むことができる。
リンク切断情報を受信したノード（ｍ−１）は、リンク切断情報をノード（ｍ−２）に送信する（ステップＳ４１〜Ｓ４３）。リンク切断情報の受信の有無は周期的（定期的）にチェックされ（ステップＳ４１）、ノード（ｍ−１）からノード（ｍ−２）に送信される。
【００９２】
このようにして、リンク切断情報は、ノード（ｍ−１）、（ｍ−２）、…と上位のノードに順次送信され、ノード（０）に到達する。
【００９３】
（３）次のノード（ｍ＋１＊）の再決定（ステップＳ３１）
中継ノード（ｍ）の次ノード決定部１４は、宛先ノード（Ｎ）に向かうルートを再選択し、次のノード（ｍ＋１＊）のアドレスを再度決定する。ここでは、ルート変更前後での次のノードをノード（ｍ＋１）、ノード（ｍ＋１＊）として表している。
【００９４】
（４）次のノード（ｍ＋１＊）へのセッション情報の送信（ステップＳ３２）
ノード（ｍ）の無線送信部１５からノード（ｍ＋１＊）にセッション情報が送信される。
【００９５】
（５）次のノード（ｍ＋１＊）へのデータの送信（ステップＳ３４）
ノード（ｍ）のノード（ｍ＋１＊）へのセッション情報の送信に対応して、ノード（ｍ＋１＊）の無線送信部１５からノード（ｍ）にＳ−ＡＣＫパケットが送信される（セッションの確立）。ノード（ｍ＋１＊）からＳ−ＡＣＫパケットを受信したノード（ｍ）は、ノード（ｍ＋１＊）にデータを送信する。
【００９６】
このときノード（ｍ）の無線送信部１５から送信されるデータは、一般に、ノード（０）から送信されるべきデータの一部である。この時点では、ノード（０）からノード（１）への送信が完了していない可能性がある。また、ノード（０）からノード（１）への送信が完了していても、全データがノード（ｍ）に到達しているとは限らない。
【００９７】
すなわち、ノード（ｍ）でリンク切断と判定した時点では、データはノード（０）〜（ｍ）のデータ保持部１８に分散配置しているのが通例である。このため、次のように、ノード（０）〜（ｍ−１）からもデータが送信される。
【００９８】
（６）ノード（０）〜（ｍ−１）からのデータの再送（ステップＳ４４〜Ｓ４８）
リンク切断情報を受け取ったノード（０）〜（ｍ−１）は、残余のデータ（未送信のデータ）があれば、宛先ノード（Ｎ）に再送する。
以下、ノード（０）を例として、データの再送の詳細を説明する。具体的には、次のように、データが再送信される。
【００９９】
ｉ）残余データの有無の判断（ステップＳ４４）
送信完了判定部２２によって、残余データの有無が判断される。残余データが無ければデータの再送は行われない。残余データの有無は、データ保持部１８中のデータの有無によって判断できる。
【０１００】
ｉｉ）次のノード（１＊）の再決定（ステップＳ４５）
ノード（０）の次ノード決定部１４は、宛先ノード（Ｎ）に向かうルートを再選択し、次のノード（１＊）のアドレスを再度決定する。ここでは、ルート変更前後での次のノードをノード（１）、ノード（１＊）として表している。
【０１０１】
ｉｉｉ）次のノード（１＊）へのセッション情報の送信（ステップＳ４６）
ノード（０）の無線送信部１５からノード（１＊）にセッション情報が送信される。このセッション情報は、先にノード（１）に送信されたセッション情報と同一である。
【０１０２】
ｉｖ）次のノード（１＊）へのデータの送信（ステップＳ４７、Ｓ４８）
ノード（０）からノード（１＊）へのセッション情報の送信に対応して、ノード（１＊）の無線送信部１５からノード（０）にＳ−ＡＣＫパケットが送信される（セッションの確立）。ノード（１＊）からＳ−ＡＣＫパケットを受信したノード（０）の無線送信部１５は、ノード（１＊）に残余のデータを送信する。
【０１０３】
以下、ノード（１＊）からノード（２＊）、ノード（２＊）からノード（３＊）、…ノード（Ｎ−１＊）からノード（Ｎ）の間で、順に、セッション情報、Ｓ−ＡＣＫパケット、データが順に送受信される。この結果、欠落したデータがノード（Ｎ）に送信される。
【０１０４】
ここでは、ノード（０）を例に説明したが、ノード（１）〜（ｍ−１）においても、同様に、残余のデータがノード（Ｎ）に再送される。
【０１０５】
以上のようにして、ノード（ｍ）でタイムアウトと判定されたときに、リンク切断情報がノード（ｍ−１）〜（０）に送信される。その結果、ノード（０）〜（ｍ）に分散して存在する送信未完了のデータがノード（Ｎ）に再送される。既述のように、ノード（０）〜（ｍ）のデータ保持部１８には、送信未完了のデータが重複すること無く分散配置していることから、ノード（Ｎ）にデータが効率的に再送信される。
【０１０６】
以上、通信装置１０での通信の詳細を説明した。
表３に示すように、通信装置１０での通信はＩＰ層、トランスポート層、制御層、アプリケーション層で構築できる。通信装置１０の基本的な通信の内容は、制御層に実装可能であり、トランスポート層は変更不要とできる。このようにすることで、セッションを構築するためのコントロールメッセージ（セッション情報、Ｓ−ＡＣＫ）、さらには、データ、Ｄ−ＡＣＫ、経路切断情報をＴＣＰのプロトコルによって送信可能となり、通信の信頼性を確保できる。エンド・ツー・エンドでのデータ送信をホップ・バイ・ホップＴＣＰで構築でき、無線チャンネルリソースを効率的に利用できる。
【０１０７】
【表３】
0005839136.tif 000004
【０１０８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０９】
１０…通信装置、１１…入力部、１２…テーブル記憶部、１３…テーブル更新部、１４…次ノード決定部、１５…無線送信部、１６…無線受信部、１７…セッション保存情報記憶部、１８…データ保持部、１９…データ削除部、２１…切断判定部、２２…送信完了判定部
【要約】
【課題】アドホックネットワークでのマルチホップ通信において、通信の信頼性の向上を図った通信装置、通信システム、および通信方法を提供する。
【解決手段】実施形態の通信装置は、先の通信装置からセッション情報を受信するセッション情報受信部と、前記セッション情報の受信に対応して、前記先の通信装置にＡＣＫパケットを送信するＡＣＫ送信部と、前記先の通信装置から、前記ＡＣＫパケットの送信に対応して送信されるデータを受信するデータ受信部と、前記データを送信する次の通信装置を決定する決定部と、前記次の通信装置に、前記セッション情報を送信するセッション情報送信部と、前記セッション情報の送信に対応して前記次の通信装置から送信されるＡＣＫパケットを受信するＡＣＫ受信部と、前記ＡＣＫパケットの受信に対応して、前記次の通信装置に前記データを送信するデータ送信部と、を備える。
【選択図】図４【図１】
0005839136.tif 000005
【図２】
0005839136.tif 000006
【図３】
0005839136.tif 000007
【図４】
0005839136.tif 000008
【図５】
0005839136.tif 000009
【図６】
0005839136.tif 000010
【図７】
0005839136.tif 000011
【図８】
0005839136.tif 000012
【図９】
0005839136.tif 000013
【図１０】
0005839136.tif 000014