(57)【特許請求の範囲】
【請求項１】
ネットワーク中に含まれる第１の通信装置に、
隣接する第２の通信装置から、前記第２の通信装置を介してフレームを送信可能な通信先の情報と、前記第２の通信装置で前記通信先を識別する際に使用され、前記通信先に割り当てられたアドレスよりもデータ長が短い情報である一意情報を含む制御フレームを受信し、
前記通信先に前記第２の通信装置を介してデータを送信する際に、前記通信先宛のデータを含むデータフレームの宛先として前記一意情報を設定し、
前記データフレームを前記第２の通信装置に送信する
処理を実行させることを特徴とする通信プログラム。
【請求項２】
前記第１の通信装置に隣接する第３の通信装置に、前記通信先に割り当てられたアドレスよりもデータ長が短く、前記第１の通信装置が前記通信先を識別する際に使用する情報として決定した他の一意情報を、前記通信先に対応付けて通知し、
前記第３の通信装置に転送する第１のフレームの送信元が前記通信先である場合、前記第１のフレームの送信元として前記他の一意情報を設定した第２のフレームを生成し、
前記第２のフレームを前記第３の通信装置に転送する
処理を前記第１の通信装置に実行させることを特徴とする請求項１に記載のプログラム。
【請求項３】
前記第１のフレームを前記第２の通信装置から受信した場合、前記第１のフレームの送信元アドレスが前記一意情報であることから、前記第１のフレームの送信元が前記通信先であると特定し、
前記第１のフレームのヘッダ中の前記一意情報を、前記他の一意情報に変更することにより、前記第２のフレームを生成する
処理を前記第１の通信装置に実行させることを特徴とする請求項２に記載のプログラム。
【請求項４】
前記第１の通信装置から前記第３の通信装置に至る経路を用いた通信の対象となる対象装置の情報と、前記対象装置に割り当てられたアドレスよりもデータ長が短く、前記第１の通信装置が前記対象装置を識別するために使用する設定値を、前記第２の通信装置に通知し、
前記対象装置が前記通信先に送信した第３のフレームを受信すると、前記第３のフレームの送信元として前記設定値を設定すると共に、前記第３のフレームの宛先として前記一意情報を設定した第４のフレームを生成し、
前記第４のフレームを前記第２の通信装置に転送する
処理を前記第１の通信装置に実行させることを特徴とする請求項２または３に記載のプログラム。
【請求項５】
前記第３の通信装置から、前記対象装置に割り当てられたアドレスよりもデータ長が短く、前記第３の通信装置が前記対象装置を識別するために使用する他の設定値を取得し、
前記通信先が前記対象装置に送信した第５のフレームを受信すると、前記第５のフレームの送信元として前記他の一意情報を設定すると共に、前記第５のフレームの宛先として前記他の設定値を設定した第６のフレームを生成し、
前記第６のフレームを前記第３の通信装置に送信する
処理を前記第１の通信装置に実行させることを特徴とする請求項４に記載のプログラム。
【請求項６】
前記第１の通信装置に、
前記制御フレームを受信すると、前記第１の通信装置が通信可能な装置への経路情報として、前記通信先のアドレス、前記第２の通信装置のアドレス、前記一意情報、および、前記他の一意情報を対応付けて記憶し、
前記第１の通信装置を介して通信可能な装置を前記第１の通信装置に隣接する装置に通知するための他の制御フレームに、前記通信先のアドレスと前記他の一意情報を含め、
前記他の制御フレームを送信する
処理を実行させることを特徴とする請求項２〜５のいずれか１項に記載のプログラム。
【請求項７】
ネットワーク中に含まれる第１の通信装置として動作する通信装置であって、
隣接する第２の通信装置から、前記第２の通信装置を介してフレームを送信可能な通信先の情報と、前記第２の通信装置で前記通信先を識別する際に使用され、前記通信先に割り当てられたアドレスよりもデータ長が短い情報である一意情報を含む制御フレームを受信する受信部と、
前記通信先に前記第２の通信装置を介してデータを送信する際に、前記通信先宛のデータを含むデータフレームの宛先として前記一意情報を設定する制御部と、
前記データフレームを前記第２の通信装置に送信する送信部
を備えることを特徴とする通信装置。
【請求項８】
ネットワーク中に含まれる第１の通信装置に、
隣接する第２の通信装置から、前記第２の通信装置を介してフレームを送信可能な通信先の情報と、前記第２の通信装置で前記通信先を識別する際に使用され、前記通信先に割り当てられたアドレスよりもデータ長が短い情報である一意情報を含む制御フレームを受信し、
前記通信先に前記第２の通信装置を介してデータを送信する際に、前記通信先宛のデータを含むデータフレームの宛先として前記一意情報を設定し、
前記データフレームを前記第２の通信装置に送信する
処理を実行させることを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信装置を含むネットワークで行われる通信に関する。
【背景技術】
【０００２】
アドホックネットワークは、ネットワークを形成する通信装置が追加もしくは削除された場合でも、動的にネットワークが形成されるため、利便性が高い。アドホックネットワークは、センサネットワークや検針システムなどにも使用されることがある。この場合、アドホックネットワーク中の通信装置で得られた情報は、センサの情報や検針結果などを処理する装置を含む他のネットワークに、ゲートウェイとして動作する通信装置（ゲートウェイ装置）を介して送信されることが多い。アドホックネットワーク中の各通信装置がゲートウェイ装置を介して他のネットワークに情報を提供する場合、各通信装置は、アドホックネットワーク中のゲートウェイ装置にフレームを送信するための経路情報を、Ｈｅｌｌｏフレームを用いて取得する。ここで、Ｈｅｌｌｏフレームには、Ｈｅｌｌｏフレームの送信元の通信装置を介してフレームの転送が可能なゲートウェイ装置の情報が含まれている。
【０００３】
アドホックネットワークで送受信されるフレームには、フレームの最終宛先アドレス、フレームの送信元アドレス、フレームの転送先のアドレス、フレームの転送元のアドレスが含まれ、これらの情報は転送処理に使用される。例えば、各通信装置は、フレームの最終宛先にゲートウェイ装置が指定されたフレームを受信すると、ルーティングテーブルを使用して、最終宛先に指定されたゲートウェイ装置にフレームを転送できる装置の中からフレームの転送先を決定する。フレームの転送の際に、通信装置は、フレームの転送元のアドレスを、通信装置自身に割り当てられたアドレスに変更し、フレームの転送先のアドレスを設定する。すると、フレームは、フレーム中の転送先アドレスが割り当てられた装置に転送される。フレームの転送処理は、フレームが最終宛先に指定されたゲートウェイ装置に到達するまで繰り返される。
【０００４】
関連する技術として、複数のリンクを設定しているノードが、リンク先に存在する各ノードを一意に識別するノード識別子をキーとしたブルームフィルタを経路情報として使用する方法が提案されている（例えば、特許文献１など）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８―１１４４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
アドホックネットワークで送受信されるフレームのヘッダには、フレームの最終宛先、送信元、転送先、転送元のそれぞれのアドレスが含まれ、さらに、転送処理に使用される制御情報なども含まれる。さらに、アドホックネットワーク中で送受信されるフレームのデータサイズは他のネットワークに比べて小さいことが多い。このため、アドホックネットワークで送受信されるフレーム中でペイロードのデータが占める割合は小さくなりやすく、ペイロードのデータの送信効率が悪くなりやすい。データ圧縮により制御情報のデータサイズを小さくしても、制御情報自体のデータサイズが小さい上に、圧縮処理に関する制御情報をフレームに含めることになる。そのため、制御情報の圧縮によって１つのフレームで送信できるペイロードのデータ量を増やすことは困難である。
【０００７】
１つの側面では、本発明は、データ送受信の効率を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
１つの形態は、ネットワーク中に含まれる第１の通信装置で実行される。第１の通信装置は、隣接する第２の通信装置から制御フレームを受信する。制御フレームは、前記第２の通信装置を介してフレームを送信可能な通信先の情報と、前記第２の通信装置で前記通信先を識別する際に使用され、前記通信先に割り当てられたアドレスよりもデータ長が短い情報である一意情報を含む。第１の通信装置は、前記通信先に前記第２の通信装置を介してデータを送信する際に、前記通信先宛のデータを含むデータフレームの宛先として前記一意情報を設定し、前記データフレームを前記第２の通信装置に送信する。
【発明の効果】
【０００９】
データ送受信の効率を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態にかかる通信方法の例を説明するフローチャートである。
【図２】通信装置の構成の例を説明する図である。
【図３】通信装置のハードウェア構成の例を説明する図である。
【図４】フレームのフォーマットの例を説明する図である。
【図５】Ｈｅｌｌｏフレームの送受信の際に行われる処理の例を説明する図である。
【図６】Ｈｅｌｌｏフレームの受信処理の例を説明するフローチャートである。
【図７】Ｈｅｌｌｏフレームの送信処理の例を説明するフローチャートである。
【図８】ゲートウェイ装置宛てのフレームの転送処理の例を説明する図である。
【図９】ゲートウェイ装置から送信されたフレームの転送処理の例を説明する図である。
【図１０】データフレームの受信処理の例を説明するシーケンス図である。
【図１１】データフレームの送信処理の例を説明するシーケンス図である。
【図１２】ネットワークの例を示す図である。
【図１３】Ｈｅｌｌｏフレームの送受信の際に行われる処理の例を説明する図である。
【図１４】Ｈｅｌｌｏフレームの送受信の際に行われる処理の例を説明する図である。
【図１５】Ｈｅｌｌｏフレームの送受信の際に行われる処理の例を説明する図である。
【図１６】各通信装置が保持するルーティングテーブルの例を示す図である。
【図１７】ゲートウェイ装置宛てのフレームの転送処理の例を説明する図である。
【図１８】ゲートウェイ装置宛てのフレームの転送処理の例を説明する図である。
【図１９】ゲートウェイ装置宛てのフレームの転送処理の例を説明する図である。
【図２０】ゲートウェイ装置から送信されたフレームの転送処理の例を説明する図である。
【図２１】ゲートウェイ装置から送信されたフレームの転送処理の例を説明する図である。
【図２２】ゲートウェイ装置から送信されたフレームの転送処理の例を説明する図である。
【図２３】フレーム中のペイロードのサイズの例を説明する図である。
【図２４】第２の実施形態で行われるＨｅｌｌｏフレームの送信処理の例を説明するフローチャートである。
【図２５】各通信装置が保持するルーティングテーブルの例を示す図である。
【図２６】データフレームの転送処理の例を説明する図である。
【図２７】データフレームの転送処理の例を説明する図である。
【図２８】データフレームの転送処理の例を説明する図である。
【発明を実施するための形態】
【００１１】
図１は、実施形態にかかる通信方法の例を説明するフローチャートである。実施形態にかかる通信方法を用いて通信を行う通信装置１０は、隣接する通信装置１０との間でＨｅｌｌｏフレームを送受信する。通信装置１０は、有線で通信を行ってもよく、無線通信を行ってもよい。通信装置１０が無線アドホックネットワーク中の装置である場合、ある通信装置に「隣接する」通信装置は、ある通信装置から送信されたフレームを受信することができる範囲内に位置する通信装置のことを指すものとする。また、ある通信装置から送信されたフレームを受信できる範囲に位置する通信装置のことを、その通信装置の「隣接ノード」と記載することがある。
【００１２】
ステップＳ１において、通信装置１０は、Ｈｅｌｌｏフレームを用いて、隣接ノードとの間で、経路情報と、隣接ノードを介して通信可能な通信先に付されている一意情報を交換する。ここで、一意情報は、隣接ノードを介して通信可能な通信先を識別する際に隣接ノードが使用する情報であり、かつ、その通信先に割り当てられているアドレスよりもデータ長が短い情報である。通信装置１０は、その通信装置１０で動作しているアプリケーションなどでフレームの送信要求が行われるまで、ステップＳ１の処理を継続する（ステップＳ２でＮｏ）。
【００１３】
アプリケーションなどでフレームの送信要求が発生すると、通信装置１０は、ルーティングテーブルなどを用いて、フレームの転送先を特定する（ステップＳ２でＹｅｓ）。通信装置１０は、フレームの転送先がフレームの最終宛先に対して設定した一意情報を取得済みであるかを判定する（ステップＳ３）。転送先が最終宛先に対して設定した一意情報を取得している場合、通信装置１０は、フレームの最終宛先のアドレスを、転送先が最終宛先に設定した一意情報に置換する（ステップＳ３でＹｅｓ、ステップＳ４）。
【００１４】
さらに、通信装置１０は、フレームの生成元に対して自ノードが設定した一意情報を、転送先に通知済みであるかを判定する（ステップＳ５）。フレームの生成元に対して自ノードが設定した一意情報を、転送先に通知済みである場合、フレームの生成元のアドレスを自ノードが生成元に対して設定した一意情報に置換する（ステップＳ５でＹｅｓ、ステップＳ６）。その後、通信装置１０は、処理済みのフレームを転送先に向けて送信する（ステップＳ７）。
【００１５】
なお、ステップＳ３において、転送先が最終宛先に対して設定した一意情報を取得していない場合、通信装置１０は、ステップＳ４の処理を行わずにステップＳ５以降の処理を行う。また、ステップＳ５において、フレームの生成元に対して自ノードが設定した一意情報を転送先に通知していないと判定した場合、通信装置１０は、ステップＳ６の処理を行わずにステップＳ７の処理を行う。
【００１６】
なお、図１を参照しながら説明した処理は一例であり、通信装置１０で行われる処理は、実装に応じて変更されうる。例えば、ステップＳ３〜Ｓ４の処理よりも前に、ステップＳ５〜Ｓ６の処理が行われるように変形されても良い。後述するように、Ｈｅｌｌｏフレームにゲートウェイ装置として動作する通信装置１０の情報以外を含めない場合は、ゲートウェイ装置の情報についてだけ、一意情報に置き換えるための処理を行ってもよい。すなわち、後述するように、ゲートウェイ装置に向けて送信されるフレームの処理の場合は、ステップＳ５、Ｓ６が省略され得る。また、ゲートウェイ装置から送信されたフレームについては、ステップＳ３、Ｓ４の処理が省略されうる。
【００１７】
図１を参照しながら説明したように、通信装置１０は、転送先においてフレームの最終宛先や送信元をアドレスよりも短い一意情報により識別できる場合には、アドレスの代わりに一意情報を用いることにより、ヘッダのサイズを小さくすることができる。したがって、各フレームに含められるデータサイズが大きくなり、結果として、通信効率が向上する。また、１フレームあたりのペイロードを大きくすることでスループットが改善する。すなわち、アドホックネットワークにおける通信速度が向上する。
【００１８】
＜通信装置の構成とフレームのフォーマット例＞
以下の説明では、フレームの最終的な宛先を「グローバル宛先」（Global Destination、ＧＤ）と記載することがある。一方、フレームを最終的な宛先に送信するために行われる１ホップの転送の際に、転送先として指定される通信装置のことを、「ローカル宛先」（Local Destination、ＬＤ）と記載することがある。さらに、関連して、フレームの最終宛先に送信されるデータを生成した通信装置１０を「グローバル送信元」（Global Source、ＧＳ）と記載することがある。また、フレームが１ホップ転送される場合の転送元の通信装置１０のことを、「ローカル送信元」（Local Source、ＬＳ）と記載することもある。
【００１９】
図２は、通信装置１０の構成の例を説明する図である。通信装置１０は、受信部１１、ヘッダ解析部１２、転送処理部１３、アプリケーション処理部１４、フレーム生成部１５、送信部１６、制御部２０、記憶部３０を備える。制御部２０は、抽出部２１、ＧＤＩＤ管理部２２、テーブル管理部２３、経路情報生成部２４、タイマ２５を備える。記憶部３０は、リンクテーブル（Link Table、ＬＴ）３１、ルーティングテーブル（routing table、ＲＴ）３２、転送先テーブル３３を保持し、さらに、通信装置１０がゲートウェイ装置として動作するかを示す情報も記憶する。
【００２０】
受信部１１は、他の通信装置１０からフレームを受信し、受信したフレームをヘッダ解析部１２に出力する。ヘッダ解析部１２は、フレーム中のヘッダの情報を解析し、Ｈｅｌｌｏフレームを抽出部２１に出力する。また、ヘッダ解析部１２は、データフレームのグローバル送信元とローカル送信元の情報を用いて、転送先テーブル３３を生成する。ヘッダ解析部１２は、自ノードがグローバル宛先に指定されたデータフレームをアプリケーション処理部１４に出力し、自ノード以外がグローバル宛先に指定されたデータフレームを転送処理部１３に出力する。転送処理部１３は、入力されたフレームをグローバル宛先に向けて転送するための転送先（ローカル宛先）を、ルーティングテーブル３２や転送先テーブル３３を用いて決定する。転送処理部１３は、特定したローカル宛先の情報を、フレーム中のデータ、グローバル宛先、グローバル送信元などの情報とともに、フレーム生成部１５に出力する。アプリケーション処理部１４は、入力されたフレームのデータを処理する。また、他の装置に送信するデータを、宛先などの情報とともにフレーム生成部１５に出力する。フレーム生成部１５は、転送処理部１３、アプリケーション処理部１４、または、経路情報生成部２４のいずれかから、入力されたデータを含むフレームを生成する。フレーム生成部１５は、生成したフレームを送信部１６に出力する。送信部１６は、他の装置に向けてフレームを送信する。
【００２１】
抽出部２１は、Ｈｅｌｌｏフレームで通知された情報を抽出し、テーブル管理部２３に
出力する。ＧＤＩＤ管理部２２は、Ｈｅｌｌｏフレームで経路情報が通知された通信先に対して、通信装置１０自身が使用する一意情報（グローバル宛先ＩＤ、ＧＤＩＤ）として使用できる値を管理する。テーブル管理部２３は、抽出部２１から入力された情報を用いて、ルーティングテーブル３２を更新する。Ｈｅｌｌｏフレームによって新たな通信先に関する経路情報が通知されると、テーブル管理部２３は、ＧＤＩＤ管理部２２が保持する値から選択した値を、その通信先の識別に使用する一意情報として、ルーティングテーブル３２に記録する。タイマ２５は、Ｈｅｌｌｏフレームの送信周期を計測する。経路情報生成部２４は、Ｈｅｌｌｏフレームに含める情報をルーティングテーブル３２から抽出して、フレーム生成部１５に出力する。
【００２２】
リンクテーブル３１は、通信装置１０に隣接する通信装置１０ごとに、その通信装置１０のアドレスや、その装置と自装置の間のリンクの状況などを示す値を格納する。転送先テーブル３３は、受信したデータフレームのグローバル送信元をグローバル宛先と読み替えるとともに、ローカル送信元をローカル宛先に読み替えることによって得られる経路情報を記録する。すなわち、転送先テーブル３３は、自ノードにフレームを送信してきた通信装置１０に至る経路情報を記録する。
【００２３】
図３は、通信装置１０のハードウェア構成の例を示す図である。通信装置１０は、プロセッサ１００、バス１０１（１０１ａ〜１０１ｃ）、タイマＩＣ１０４、Dynamic Random access Memory（ＤＲＡＭ）１０６、フラッシュメモリ１０７、無線モジュール１０８を備える。通信装置１０は、オプションとして、ＰＨＹチップ１０２を含むことができる。バス１０１ａ〜１０１ｃは、プロセッサ１００、ＰＨＹチップ１０２、タイマＩＣ１０４、ＤＲＡＭ１０６、フラッシュメモリ１０７、および、無線モジュール１０８を、データの入出力が可能になるように接続する。
【００２４】
プロセッサ１００は、Micro-Processing Unit（ＭＰＵ）などの任意の処理回路である。プロセッサ１００は、フラッシュメモリ１０７に格納されたファームウェアなどのプログラムを読み込んで処理を行う。このとき、プロセッサ１００は、ＤＲＡＭ１０６をワーキングメモリとして使用できる。通信装置１０において、プロセッサ１００は、ヘッダ解析部１２、転送処理部１３、アプリケーション処理部１４、フレーム生成部１５、抽出部２１、ＧＤＩＤ管理部２２、テーブル管理部２３、経路情報生成部２４として動作する。通信装置１０において、ＤＲＡＭ１０６は、記憶部３０として動作する。通信装置１０において、無線モジュール１０８は、受信部１１および送信部１６として動作する。ＰＨＹチップ１０２は、有線通信に用いられる。アドホックネットワークと他のネットワーク中の装置の間の通信を中継するゲートウェイとして動作する通信装置１０では、ＰＨＹチップ１０２を介して回線による通信が行うことができる。タイマＩＣ１０４は、タイマ２５として動作する。
【００２５】
なお、ファームウェアなどのプログラムは、コンピュータ読み取り可能な記憶媒体に格納されて提供され、通信装置１０にインストールされてもよい。また、プログラムは、ネットワークからＰＨＹチップ１０２や無線モジュール１０８を介してダウンロードされることにより通信装置１０にインストールされてもよい。さらに、実施形態に応じて、ＤＲＡＭ１０６やフラッシュメモリ１０７以外の他の種類の記憶装置が利用されることがある。また、通信装置１０は、コンピュータによって実現されても良い。
【００２６】
図４は、フレームのフォーマットの例を説明する図である。フレームＦ１０１は、アドホックネットワーク中で送受信されるデータフレームのフォーマットの例であり、フレームＦ１０２は、Ｈｅｌｌｏフレームのフォーマットの例である。
【００２７】
データフレームは、フレームＦ１０１に示すように、物理ヘッダ、ＭＡＣ（Media Access Control）ヘッダ、アドホックヘッダ、ペイロード、署名、ＦＣＳ（Frame Check Sequence）を含み、適宜、パディングを含む。ＭＡＣヘッダ中に、ローカル宛先アドレス（ＬＤ）とローカル送信元アドレス（ＬＳ）が含まれる。アドホックヘッダ中には、グローバル宛先アドレス（ＧＤ）、グローバル送信元アドレス（ＧＳ）、方向フラグが含まれる。方向フラグは、そのデータフレームがゲートウェイ装置に向けて送信されているかを示す情報である。以下の説明では、ゲートウェイ装置に向けて送信されているフレームでは、方向フラグは１に設定されるものとする。一方、ゲートウェイ装置から他の通信装置１０に送信されているフレームでは、方向フラグは０に設定されるものとする。
【００２８】
Ｈｅｌｌｏフレームも、フレームＦ１０２に示すように、物理ヘッダ、ＭＡＣヘッダ、アドホックヘッダ、ペイロード、署名、ＦＣＳを含み、適宜、パディングを含む。物理ヘッダ、ＭＡＣヘッダ、アドホックヘッダは、データフレームと同様である。ただし、Ｈｅｌｌｏフレームでは、ローカル送信元のアドレスとグローバル送信元アドレスは、いずれも、Ｈｅｌｌｏフレームを生成した装置に割り当てられたアドレスに設定される。さらに、Ｈｅｌｌｏフレームのローカル宛先アドレスとグローバル宛先アドレスは、ブロードキャストアドレス（ＢＣ）に設定される。
【００２９】
Ｈｅｌｌｏフレームのペイロードには、ＨｅｌｌｏメッセージヘッダとＨｅｌｌｏヘッダが含まれる。Ｈｅｌｌｏメッセージヘッダには、Ｈｅｌｌｏフレーム中に含まれるＨｅｌｌｏヘッダの数などの情報が含まれる。個々のＨｅｌｌｏヘッダには、Ｈｅｌｌｏフレームの送信元の通信装置１０を介して通信できるグローバル宛先の情報が含まれる。図４の例では、Ｈｅｌｌｏヘッダには、Ｈｅｌｌｏフレームの送信元から通信できるグローバル宛先のアドレス、ＧＤＩＤ、ホップ数、経路品質重みが含まれる。ＧＤＩＤは、Ｈｅｌｌｏヘッダ中にアドレスが記録されているグローバル宛先に対して、Ｈｅｌｌｏフレームの送信元が設定したＧＤＩＤの値である。ホップ数は、Ｈｅｌｌｏフレームの送信元からＨｅｌｌｏヘッダ中のグローバル宛先までのホップ数である。経路品質重みは、Ｈｅｌｌｏフレームの送信元から、Ｈｅｌｌｏヘッダに情報が記録されているグローバル宛先までの経路の品質を示す情報である。
【００３０】
＜第１の実施形態＞
以下、第１の実施形態を、Ｈｅｌｌｏフレームの処理、データフレームの転送処理、複雑なネットワークへの適用例に分けて説明する。なお、第１の実施形態では、ゲートウェイ装置として動作する通信装置１０の情報は、Ｈｅｌｌｏフレームで伝搬されるが、ゲートウェイ装置して動作しない通信装置１０の情報はＨｅｌｌｏフレームによって他の装置に通知されない場合について述べる。第１の実施形態は、検針システムなど、ゲートウェイとして動作しない通信装置１０の数が、ゲートウェイとして動作する通信装置１０の数よりも多く、各通信装置１０のルーティングテーブル中の情報量を小さくすることが求められる場合に適用しやすい。
【００３１】
〔Ｈｅｌｌｏフレームの処理〕
図５は、Ｈｅｌｌｏフレームの送受信の際に行われる処理の例を説明する図である。以下の説明では、各通信装置１０を区別しやすくするために、ノードＡ、ゲートウェイＧＷ１など、各通信装置１０の識別子を用いて説明する。以下、動作を行っているノード装置１０を明確にするために、符号の最後に動作を行っているノード装置１０に割り当てられているアルファベットを記載することがある。例えば、ノードＡの中の受信部１１を受信部１１ａ、ＧＷ１中の転送先テーブル３３を転送先テーブル３３ｇｗ１などと表記することがある。さらに、図を見やすくするために、フレームに含まれている情報のうち、ＭＡＣヘッダ、アドホックヘッダ、Ｈｅｌｌｏヘッダなどの、フレームの一部の情報を図示し、他の情報を省略することもある。
【００３２】
以下、ＧＤＩＤの各々について、どの通信装置１０を識別するために、いずれの通信装置１０で使用されるかをＧＤＩＤの添え字で表わす。ＧＤＩＤの添え字は、ＧＤＩＤが表わす通信装置１０、ハイフン、ＧＤＩＤを設定した通信装置１０を連続的に表記した文字列を下付き文字で示している。例えば、ノードＡがゲートウェイＧＷ１を識別するためにゲートウェイＧＷ１に対して設定するＧＤＩＤを、ＧＤＩＤＧＷ１−Ａのように表記する。なお、ＧＤＩＤで識別される通信装置１０が、その通信装置１０自身に付したＧＤＩＤについては、ＧＤＩＤを設定した装置とＧＤＩＤで識別される装置が同じであるので、ＧＤＩＤを設定した装置の情報を添え字から省略することがある。例えば、「ＧＤＩＤＧＷ１」は、ゲートウェイＧＷ１がゲートウェイＧＷ１自身に対して設定したＧＤＩＤの値を表わす。なお、第１の実施形態では、各ゲートウェイ装置が、自装置を識別するＧＤＩＤを０に設定し、ゲートウェイ装置以外の装置はＧＤＩＤに０以外の値を設定する場合を例とする。
【００３３】
図５に示すネットワークには、ゲートウェイＧＷ１とゲートウェイＧＷ２の２つのゲートウェイ装置が含まれる。ノードＡは、ゲートウェイＧＷ１とゲートウェイＧＷ２のいずれにも隣接している。ノードＢはノードＡに隣接している。
【００３４】
まず、ゲートウェイＧＷ１がフレームＦ１に示すＨｅｌｌｏフレームを生成したとする。フレームＦ１に含まれているＭＡＣヘッダには、ローカル送信元がゲートウェイＧＷ１であることが記録されており、Ｈｅｌｌｏヘッダ１には、ゲートウェイＧＷ１の情報が含まれる。なお、ゲートウェイＧＷ１は、ゲートウェイＧＷ１自身を識別するときに使用する情報として、ＧＤＩＤＧＷ１＝０を、Ｈｅｌｌｏヘッダ１に含める。ゲートウェイＧＷ１は、フレームＦ１に示すＨｅｌｌｏフレームを送信する。なお、ＭＡＣヘッダ中のＬＤ＝ＢＣは、ローカル宛先アドレスがブロードキャストアドレスであることを示している。
【００３５】
ノードＡの受信部１１ａは、フレームＦ１を受信し、ヘッダ解析部１２ａに出力する。ヘッダ解析部１２ａは、フレームＦ１がＨｅｌｌｏフレームであるため、抽出部２１ａにフレームＦ１を出力する。抽出部２１ａは、フレームＦ１のＭＡＣヘッダに指定されているローカル生成元（ＬＳ）の情報を、Ｈｅｌｌｏフレームの送信元の情報として抽出し、さらに、Ｈｅｌｌｏヘッダ１の情報を抽出する。抽出部２１ａは、抽出した情報をテーブル管理部２３ａに出力する。テーブル管理部２３ａは、抽出部２１ａから入力された情報を用いて、ルーティングテーブル３２ａの情報を更新する。このとき、テーブル管理部２３ａは、Ｈｅｌｌｏフレームの送信元を、そのＨｅｌｌｏフレームで通知されたグローバル宛先に対するローカル転送先に読み替える。
【００３６】
ルーティングテーブル３２ａには、グローバル宛先ごとに、グローバル宛先のアドレスとそのグローバル宛先を識別するために自ノードが使用するＧＤＩＤ、グローバル宛先に対してフレームを転送する際に使用できるローカル転送先の情報が含まれる。ローカル転送先の情報には、ローカル転送先に割当てられたアドレスと、ローカル転送先となっている通信装置１０において、グローバル宛先の通信装置１０の識別に使用されるＧＤＩＤが含まれる。
【００３７】
テーブル管理部２３ａは、ＧＤＩＤ管理部２２ａが保持している情報を用いて、ノードＡがいずれの装置にも設定していないＧＤＩＤの値から、新たに通知されたグローバル宛先の識別に使用する値を選択する。以下の例では、テーブル管理部２３ａは、ＧＷ１に対して、ＧＤＩＤ＝２を選択したとする。ＧＤＩＤ管理部２２ａは、テーブル管理部２３ａが選択した値を、選択可能な値から削除する。一方、テーブル管理部２３ａは、Ｈｅｌｌｏヘッダ１より得られた情報などを用いて、以下の情報を、ルーティングテーブル３２ａに記録する。
グローバル宛先（ＧＤ）：ＧＷ１
ＧＤに対して自ノードが使用するＧＤＩＤ：ＧＤＩＤＧＷ１−Ａ＝２
ローカル宛先（ＬＤ）  ：ＧＷ１
ＬＤがＧＤに設定したＧＤＩＤ          ：ＧＤＩＤＧＷ１＝０
このため、テーブル管理部２３ａの処理により、ルーティングテーブル３２ａの「転送先１」に関する情報が生成される。
【００３８】
次に、ゲートウェイＧＷ２がフレームＦ２に示すＨｅｌｌｏフレームを生成したとする。フレームＦ２に含まれているＭＡＣヘッダには、ローカル送信元がゲートウェイＧＷ２であることが記録されており、Ｈｅｌｌｏヘッダ１には、ゲートウェイＧＷ２のアドレスと、ＧＤＩＤＧＷ２＝０が含まれている。ゲートウェイＧＷ２は、フレームＦ２に示すＨｅｌｌｏフレームを送信する。
【００３９】
ノードＡはフレームＦ２を受信する。抽出部２１ａは、受信部１１ａ、ヘッダ解析部１２ａを介して、フレームＦ２を取得する。抽出部２１ａは、フレームＦ２のＭＡＣヘッダを用いて、フレームＦ２がゲートウェイＧＷ２から送信されたＨｅｌｌｏフレームであることを特定する。さらに、抽出部２１ａは、Ｈｅｌｌｏヘッダ１の情報を抽出し、テーブル管理部２３ａに出力する。
【００４０】
テーブル管理部２３ａは、ＧＤＩＤ管理部２２ａに含まれている情報や、抽出部２１ａから入力された情報を用いて、ゲートウェイＧＷ２の識別の際にノードＡが使用するＧＤＩＤを決定する。テーブル管理部２３ａの処理などにより、ゲートウェイＧＷ２に対する情報は以下のとおりになったとする。
グローバル宛先（ＧＤ）：ＧＷ２
ＧＤに対して自ノードが使用するＧＤＩＤ：ＧＤＩＤＧＷ２−Ａ＝１
ローカル宛先（ＬＤ）  ：ＧＷ２
ＬＤがＧＤに設定したＧＤＩＤ          ：ＧＤＩＤＧＷ２＝０
テーブル管理部２３ａは、ゲートウェイＧＷ２に関する情報もルーティングテーブル３２ａに記録する。このため、ルーティングテーブル３２ａの「転送先２」に示す情報が記録される。
【００４１】
その後、ノードＡのタイマ２５ａにより、ノードＡがＨｅｌｌｏフレームを生成する時刻になったことが検出されたとする。経路情報生成部２４ａは、ルーティングテーブル３２ａに含まれているグローバル宛先の情報と、各グローバル宛先にノードＡが設定したＧＤＩＤを、Ｈｅｌｌｏフレームに含める情報として抽出する。経路情報生成部２４ａは、ノードＡがゲートウェイ装置として動作しているかを判定する。ノードＡは、ゲートウェイ装置として動作していないので、経路情報生成部２４は、ノードＡの情報をＨｅｌｌｏフレームで他の装置に通知しないことを決定する。
【００４２】
経路情報生成部２４ａは、Ｈｅｌｌｏフレームに含める情報をフレーム生成部１５に出力する。フレーム生成部１５は、経路情報生成部２４から入力された情報を用いて、図５のフレームＦ３に示すＨｅｌｌｏフレームを生成する。送信部１６は、フレームＦ３を送信する。
【００４３】
ノードＢは、フレームＦ３を受信する。抽出部２１ｂは、受信部１１ｂ、ヘッダ解析部１２ｂを介して、フレームＦ３を取得する。抽出部２１ｂは、フレームＦ３のＭＡＣヘッダを用いて、フレームＦ３がノードＡから送信されたＨｅｌｌｏフレームであることを特定する。テーブル管理部２３ｂは、Ｈｅｌｌｏヘッダ１とＨｅｌｌｏヘッダ２の情報を抽出部２１ｂから取得すると、ゲートウェイＧＷ１、ＧＷ２に対してノードＢで使用するＧＤＩＤを決定する。さらに、テーブル管理部２３ｂは、フレームＦ３で通知された情報を、ルーティングテーブル３２ｂに記録する。このため、ルーティングテーブル３２ｂには、以下の情報が記録される。
転送先１
グローバル宛先（ＧＤ）：ＧＷ１
ＧＤに対して自ノードが使用するＧＤＩＤ：ＧＤＩＤＧＷ１−Ｂ＝１
ローカル宛先（ＬＤ）  ：Ａ
ＬＤがＧＤに設定したＧＤＩＤ          ：ＧＤＩＤＧＷ１−Ａ＝２
転送先２
グローバル宛先（ＧＤ）：ＧＷ２
ＧＤに対して自ノードが使用するＧＤＩＤ：ＧＤＩＤＧＷ２−Ｂ＝２
ローカル宛先（ＬＤ）  ：Ａ
ＬＤがＧＤに設定したＧＤＩＤ          ：ＧＤＩＤＧＷ２−Ａ＝１
ルーティングテーブル３２ｂの例を図５に示す。
【００４４】
ゲートウェイＧＷ１とゲートウェイＧＷ２もノードＡに隣接しているので、ノードＡから送信されたフレームＦ３を処理し、ノードＢと同様に、ルーティングテーブル３２を更新する。ただし、ゲートウェイＧＷ１とＧＷ２のいずれも自ノードをグローバル宛先としたＨｅｌｌｏヘッダの情報は、ルーティングテーブル３２の更新に使用しない。以後も、アドホックネットワーク中の各通信装置１０は、予め決められた周期で、Ｈｅｌｌｏフレームの送信を行う。また、隣接する通信装置１０からＨｅｌｌｏフレームを受信すると、通信装置１０は、受信したＨｅｌｌｏフレームを用いて、適宜、ルーティングテーブル３２を更新する。
【００４５】
図６は、Ｈｅｌｌｏフレームの受信処理の例を説明するフローチャートである。なお、図６は処理の一例であり、処理の順序は実装に応じて変更され得る。例えば、ステップＳ１４〜Ｓ１６の順序は、任意に変更され得る。
【００４６】
通信装置１０は、Ｈｅｌｌｏフレームを受信すると、抽出部２１において、Ｈｅｌｌｏフレーム中の各Ｈｅｌｌｏヘッダのグローバル宛先（ＧＤ）の情報を抽出する（ステップＳ１１、Ｓ１２）。テーブル管理部２３は、抽出されたグローバル宛先に対する登録がルーティングテーブル３２中に既に存在するかを判定する（ステップＳ１３）。
【００４７】
抽出されたグローバル宛先に対する登録がルーティングテーブル３２中にない場合、テーブル管理部２３は、Ｈｅｌｌｏフレームの送信元（ＬＳ）を、グローバル宛先に宛てたフレームの転送先（ＬＤ）として記録する（ステップＳ１３でＮｏ、ステップＳ１４）。さらに、テーブル管理部２３は、Ｈｅｌｌｏフレームの送信元がグローバル宛先に対して割り当てたＧＤＩＤを、Ｈｅｌｌｏフレームの送信元に対応付けて記録する（ステップＳ１５）。さらに、テーブル管理部２３は、ＧＤＩＤ管理部２２が保持している情報を用いて、グローバル宛先を識別するために自ノードが使用するＧＤＩＤを、グローバル宛先に割り当てる（ステップＳ１６）。テーブル管理部２３は、グローバル宛先に対して割り当てたＧＤＩＤを、グローバル宛先に対応付けてルーティングテーブル３２に登録する（ステップＳ１７）。
【００４８】
一方、抽出されたグローバル宛先が既にルーティングテーブル３２中に登録されているとする（ステップＳ１３でＹｅｓ）。この場合、テーブル管理部２３は、グローバル宛先に対してＨｅｌｌｏフレームの送信元（ＬＳ）が、ローカル宛先（ＬＤ）として登録されているかを判定する（ステップＳ１８）。グローバル宛先に対してＨｅｌｌｏフレームの送信元が登録されていない場合、テーブル管理部２３は、Ｈｅｌｌｏフレームの送信元を、グローバル宛先に宛てたフレームの転送先（ＬＤ）として記録する（ステップＳ１８でＮｏ、ステップＳ１９）。その後、テーブル管理部２３は、Ｈｅｌｌｏフレームの送信元が、グローバル宛先に対して割り当てたＧＤＩＤを、Ｈｅｌｌｏフレームの送信元に対応付けてルーティングテーブル３２に記録する（ステップＳ２０）。
【００４９】
ステップＳ１８において、グローバル宛先に対してＨｅｌｌｏフレームの送信元（ＬＳ）が、ローカル宛先（ＬＤ）として登録されていると判定した場合、テーブル管理部２３は、ステップＳ２０の処理を行う（ステップＳ１８でＹｅｓ、ステップＳ２０）。
【００５０】
図７は、Ｈｅｌｌｏフレームの送信処理の例を説明するフローチャートである。図７に示すフローチャートでは、変数ｎと定数Ｎが使用される。定数Ｎは、Ｈｅｌｌｏフレームを生成する時点で、ルーティングテーブル３２に記録されているグローバル宛先の総数である。変数ｎは、Ｈｅｌｌｏフレームで通知する対象としてルーティングテーブル３２から情報を抽出したグローバル宛先の数のカウントに用いられる変数である。
【００５１】
経路情報生成部２４は、タイマ２５を用いて、Ｈｅｌｌｏフレームの送信時期であるかを判定し、Ｈｅｌｌｏフレームの送信時期になるまで待機する（ステップＳ３１でＮｏ）。Ｈｅｌｌｏフレームの送信時期になると、経路情報生成部２４は、変数ｎの値を１に設定する（ステップＳ３１でＹｅｓ、ステップＳ３２）。経路情報生成部２４は、変数ｎが定数Ｎを超えたかを判定する（ステップＳ３３）。変数ｎが定数Ｎ以下である場合、ｎ番目のエントリに含まれているグローバル宛先と、自ノードがグローバル宛先に割り当てたＧＤＩＤを、Ｈｅｌｌｏフレームで通知する情報に追加する（ステップＳ３３でＮｏ、ステップＳ３４）。経路情報生成部２４は、変数ｎを１つインクリメントして、ステップＳ３３の処理に戻る（ステップＳ３５）。
【００５２】
変数ｎが定数Ｎを越えた場合、経路情報生成部２４は、自ノードがゲートウェイ装置として動作しているかを判定する（ステップＳ３３でＹｅｓ、ステップＳ３６）。自ノードがゲートウェイ装置として動作している場合、経路情報生成部２４は、自ノードの情報に対応付けて、自ノードを識別するＧＤＩＤをＨｅｌｌｏフレームで通知する情報に追加する（ステップＳ３６でＹｅｓ、ステップＳ３７）。その後、フレーム生成部１５は、経路情報生成部２４がＨｅｌｌｏフレームで通知する情報として選択した情報を含むＨｅｌｌｏフレームを生成する（ステップＳ３８）。送信部１６は、Ｈｅｌｌｏフレームを送信する（ステップＳ３９）。一方、ステップＳ３６において、自ノードがゲートウェイ装置として動作していないと判定した場合、通信装置１０は、ステップＳ３８以降の処理を行う（ステップＳ３６でＮｏ）。
【００５３】
〔データフレームの転送処理〕
図８は、ゲートウェイ装置宛てのフレームの転送処理の例を説明する図である。図８を参照しながら、ノードＢがゲートウェイＧＷ１宛てにデータを送信する場合に行われる通信処理の例を説明する。
【００５４】
なお、以下の説明では、ゲートウェイとして動作していない通信装置１０は、これまで経路情報を有していなかったゲートウェイ装置への経路情報を取得すると、新たに経路情報を取得したゲートウェイ装置に向けてデータフレームを送信するものとする。さらに、ノードＡが保持するルーティングテーブル３２ａとノードＢが保持するルーティングテーブル３２ｂの情報は、図８に示す通りである。また、いずれかのゲートウェイ装置に向けて送信されたフレームでは、方向フラグ＝１（上り方向）に設定されるものとする。
【００５５】
ノードＢのアプリケーション処理部１４ｂは、ゲートウェイＧＷ１に送信するデータを生成したとする。アプリケーション処理部１４ｂは、生成したデータと、宛先がゲートウェイＧＷ１であることを示す情報を、フレーム生成部１５ｂに出力する。フレーム生成部１５ｂは、ルーティングテーブル３２ｂを参照することにより、ゲートウェイＧＷ１にフレームを送信する際には、ノードＡがローカル宛先（ＬＤ）となることを特定する。さらに、フレーム生成部１５ｂは、ノードＡがゲートウェイＧＷ１を識別する情報がＧＤＩＤＧＷ１−Ａ＝２であることも、ルーティングテーブル３２ｂより特定する。換言すると、フレーム生成部１５ｂは、ゲートウェイＧＷ１宛てのフレームの転送先であるノードＡには、グローバル宛先のアドレスの代わりに、ＧＤＩＤＧＷ１−Ａの値を通知すれば、グローバル宛先を通知できることを特定する。そこで、フレーム生成部１５ｂは、以下の情報を有するヘッダに、アプリケーション処理部１４ｂから入力されたデータをフレームのペイロードに含める。
ローカル宛先アドレス    ：ノードＡのアドレス
ローカル送信元アドレス  ：ノードＢのアドレス
グローバル宛先アドレス  ：２
グローバル送信元アドレス：ノードＢのアドレス
方向フラグ              ：１（上り方向）
【００５６】
フレーム生成部１５ｂが生成したデータフレームを、フレームＦ１１に示す。ここで、各通信装置１０のアドレスの記述には、８バイトが使用されるが、ＧＤＩＤは１バイトで表記される。このため、アドホックヘッダの長さは、グローバル宛先とグローバル送信元の両方を、アドレスで表記する場合よりも７バイト短くなる。そこで、フレーム生成部１５は、アドホックヘッダが短縮された分までの範囲で、ペイロード長を長くすることができる。フレーム生成部１５ｂは、生成したフレームＦ１１を送信部１６ｂに出力する。送信部１６ｂは、フレームＦ１１をノードＡに送信する。
【００５７】
ノードＡがフレームＦ１１を受信したとする。ヘッダ解析部１２ａは、フレームＦ１１が方向フラグ＝１に設定されたデータフレームであるため、フレームＦ１１のグローバル宛先アドレスフィールドで通知されたＧＤＩＤの値で識別されるグローバル宛先を特定する。フレームＦ１１のグローバル宛先アドレスフィールドには２が記録されている。一方、ルーティングテーブル３２ａに示すように、ノードＡが設定したＧＤＩＤ＝２はゲートウェイＧＷ１を指す。そこで、ヘッダ解析部１２ａは、フレームＦ１１のグローバル宛先のアドレスをゲートウェイＧＷ１のアドレスに置き換えた上で、フレームＦ１１のペイロードとフレームＦ１１のヘッダの情報を、転送処理部１３ａに出力する。
【００５８】
さらに、ヘッダ解析部１２ａは、フレームＦ１１をノードＢから受信したことと、フレームＦ１１のグローバル送信元がノードＢであることから、グローバル宛先がノードＢの場合、ローカル宛先をノードＢに設定できることを認識する。ヘッダ解析部１２ａは、フレームＦ１１のグローバル送信元とローカル送信元から得られた情報を、転送先テーブル３３ａ（図９）に記録する。
【００５９】
転送処理部１３ａは、ルーティングテーブル３２ａを参照することにより、ゲートウェイＧＷ１にデータを転送する際には、ゲートウェイＧＷ１がローカル宛先（ＬＤ）となることを特定する。転送処理部１３ｂは、データのグローバル宛先がゲートウェイＧＷ１、ローカル宛先がゲートウェイＧＷ１であることとともに、フレームＦ１１に含まれていたデータを、フレーム生成部１５ａに出力する。フレーム生成部１５ａは、ゲートウェイＧＷ１がゲートウェイＧＷ１自身を識別する情報がＧＤＩＤＧＷ１＝０であることから、以下の情報を有するヘッダを含むフレームを生成する。
ローカル宛先アドレス    ：ノードＧＷ１のアドレス
ローカル送信元アドレス  ：ノードＡのアドレス
グローバル宛先アドレス  ：０
グローバル送信元アドレス：ノードＢのアドレス
方向フラグ              ：１（上り方向）
フレーム生成部１５ａが生成したデータフレームを、フレームＦ１２に示す。なお、フレームＦ１２には、フレームＦ１１に含まれていたデータが含まれている。送信部１６ａは、フレームＦ１２をゲートウェイＧＷ１に送信する。
【００６０】
ゲートウェイＧＷ１はフレームＦ１２を受信する。ヘッダ解析部１２ｇｗ１は、フレームＦ１２のグローバル宛先アドレスフィールドを用いて通知されたＧＤＩＤの値が０であることから、フレームＦ１２がゲートウェイＧＷ１宛てであると判定する。ヘッダ解析部１２ｇｗ１は、フレームＦ１２をアプリケーション処理部１４ｇｗ１に出力する。ヘッダ解析部１２ｇｗ１は、フレームＦ１２のヘッダ情報を用いて、転送先テーブル３３ｇｗ１を更新する。
【００６１】
図９は、ゲートウェイ装置から送信されたフレームの転送処理の例を説明する図である。図９を参照しながら、ゲートウェイＧＷ１がノードＢ宛てにデータを送信する場合に行われる通信処理の例を説明する。
【００６２】
ゲートウェイＧＷ１のアプリケーション処理部１４ｇｗ１は、ノードＢ宛のデータを、データのグローバル宛先がノードＢであることを示す情報と共に、フレーム生成部１５ｇｗ１に出力する。フレーム生成部１５ｇｗ１は、転送先テーブル３３ｇｗ１を用いて、グローバル宛先がノードＢの場合、ローカル宛先をノードＡに設定することを特定する。ここで、ゲートウェイＧＷ１は、Ｈｅｌｌｏフレームを送信済みであるので、ゲートウェイＧＷ１がゲートウェイＧＷ１自身を識別するときに使用するＧＤＩＤを、隣接する通信装置１０に通知済みである。このため、フレーム生成部１５ｇｗ１は、グローバル送信元の値を、ＧＤＩＤＧＷ１＝０に置換することにより、アドホックヘッダのサイズを小さくすると共に、ペイロード長を長くする。フレーム生成部１５ｇｗ１での処理により生成されたフレームＦ２１の例を図９に示す。なお、フレームＦ２１はゲートウェイ装置から送信されるフレームであるため、フレームＦ２１の方向フラグは０である。送信部１６ｇｗ１は、フレームＦ２１をノードＡに送信する。
【００６３】
ノードＡがフレームＦ２１を受信したとする。ヘッダ解析部１２ａは、フレームＦ２１が方向フラグ＝０に設定されたデータフレームであるため、フレームＦ２１のグローバル送信元アドレスフィールドで通知されたＧＤＩＤの値を用いて、フレームＦ２１のグローバル送信元を特定する。すなわち、ヘッダ解析部１２ａは、フレームＦ２１のローカル送信元（ＧＷ１）において、ＧＤＩＤ＝０で特定される通信装置１０を特定する。このとき、ヘッダ解析部１２ａは、ルーティングテーブル３２ａ中で、フレームＦ２１のローカル送信元がローカル宛先として登録されているエントリのうち、ＧＤＩＤの値とフレームＦ２１中のグローバル送信元として通知された値が一致するものを検索する。図９に示すルーティングテーブル３２ａでは、ＬＤ＝ＧＷ１のエントリのうちで、ＧＤＩＤの値が０のエントリのグローバル宛先はゲートウェイＧＷ１である。そこで、ヘッダ解析部１２ａは、フレームＦ２１のグローバル送信元がゲートウェイＧＷ１であることを示す情報と共に、フレームＦ２１のデータとフレームＦ２１のグローバル宛先の情報を、転送処理部１３ａに出力する。
【００６４】
転送処理部１３ａは、転送先テーブル３３ａを用いて、グローバル宛先がノードＢの場合、ローカル宛先をノードＢとすることを特定する。転送処理部１３ａは、ヘッダ解析部１２ａから入力されたデータやグローバル宛先などの情報とローカル宛先をフレーム生成部１５ａに通知する。フレーム生成部１５ａは、ノードＡがゲートウェイＧＷ１の情報を含むＨｅｌｌｏフレームを送信済みであることから、ノードＡがＧＤＩＤＧＷ１−Ａ＝２でゲートウェイＧＷ１を識別することを、隣接する通信装置１０に通知済みであると判定する。そこで、フレーム生成部１５ａは、グローバル送信元の値を、ＧＤＩＤＧＷ１−Ａ＝２に置換することにより、アドホックヘッダのサイズを小さくして、フレームＦ２２（図９）を生成する。なお、フレームＦ２２もグローバル送信元がゲートウェイ装置であるため、フレームＦ２２の方向フラグは０である。送信部１６ａは、フレームＦ２２をノードＢに送信する。
【００６５】
ノードＢはフレームＦ２２を受信する。ヘッダ解析部１２ｂは、フレームＦ２２の方向フラグ＝０であるため、フレームＦ２２のグローバル送信元アドレスフィールドで通知されたＧＤＩＤの値を用いて、フレームＦ２２のグローバル送信元を特定する。すなわち、ヘッダ解析部１２ｂは、ルーティングテーブル３２ｂを用いて、フレームＦ２２のローカル送信元（ノードＡ）において、ＧＤＩＤ＝２で特定される通信装置１０がゲートウェイＧＷ１であることを特定する。さらに、ヘッダ解析部１２ｂは、フレームＦ２２のグローバル宛先アドレスにノードＢが指定されていることから、フレームＦ２２はノードＢ宛であると判定する。ヘッダ解析部１２ｂは、フレームＦ２２のデータとフレームＦ２２のグローバル送信元の情報を、アプリケーション処理部１４ｂに出力する。アプリケーション処理部１４ｂは、入力された情報を適宜処理する。
【００６６】
図１０は、データフレームの受信処理の例を説明するシーケンス図である。図１０および図１１では、グローバル宛先に対して自ノードが決定したＧＤＩＤを「内部ＧＤＩＤ」、グローバル宛先に対応付けられたローカル宛先が決定したＧＤＩＤを「ＬＤが設定したＧＤＩＤ」と記載している。なお、図１０は受信処理の一例であり、実装に応じて手順が変更されることがある。例えば、ステップＳ５４〜Ｓ５７の処理がステップＳ５８〜Ｓ６０の処理よりも前に行われても良い。
【００６７】
ヘッダ解析部１２は、受信フレームを取得すると、データフレームかを判定する（ステップＳ５１、Ｓ５２）。受信フレームがデータフレームではない場合、ヘッダ解析部１２は、フレームを制御部２０に出力する（ステップＳ５２でＮｏ、ステップＳ５３）。
【００６８】
受信フレームがデータフレームである場合、ヘッダ解析部１２は、ゲートウェイに向けて送信されている（上り方向）フレームであるかを判定する（ステップＳ５４）。まず、受信フレームが上り方向に転送されるデータフレームである場合について説明する（ステップＳ５４でＹｅｓ）。この場合、ヘッダ解析部１２は、ルーティングテーブル３２から、内部ＧＤＩＤと受信フレームによりグローバル宛先アドレスとして通知されたＧＤＩＤが等しいエントリを取得する（ステップＳ５５）。ヘッダ解析部１２は、取得したエントリを用いて、フレーム中のＧＤＩＤを、グローバル宛先のアドレスに変換する（ステップＳ５６）。さらに、ヘッダ解析部１２は、受信フレームのグローバル送信元とローカル送信元の組合せを、グローバル宛先とローカル宛先の組合せとして、転送先テーブル３３に登録する（ステップＳ５７）。なお、ステップＳ５７において、グローバル送信元はグローバル宛先に読み替えられ、ローカル送信元は、そのフレームのグローバル送信元がグローバル宛先になった場合のローカル宛先として読み替えられる。一方、受信フレームが下り方向に転送されるデータフレームである場合は、ステップＳ５５からＳ５７の処理は行われない（ステップＳ５４でＮｏ）。
【００６９】
次に、ヘッダ解析部１２は、受信フレームがゲートウェイから送信されている（下り方向）フレームであるかを判定する（ステップＳ５８）。受信フレームが下り方向に転送されるデータフレームである場合、ヘッダ解析部１２は、受信フレームのグローバル送信元として通知されたＧＤＩＤとローカル送信元の情報の組合せを取得する（ステップＳ５８でＹｅｓ）。さらに、ヘッダ解析部１２は、ルーティングテーブル３２のローカル宛先とローカル宛先が設定したＧＤＩＤの組合せが、受信フレームから取得した情報の組合せと一致するエントリを、ルーティングテーブル３２から取得する（ステップＳ５９）。すなわち、ステップＳ５９の処理により、ヘッダ解析部１２は、得られたエントリ中のグローバル宛先が、受信フレームのグローバル送信元に一致することを特定する。ヘッダ解析部１２は、受信フレームのグローバル送信元の情報を、ルーティングテーブル３２から取得したエントリ中のグローバル宛先のアドレスに変換する（ステップＳ６０）。なお受信フレームが上り方向に転送されるデータフレームである場合は、ステップＳ５９、Ｓ６０の処理は行われない（ステップＳ５８でＮｏ）。
【００７０】
さらにヘッダ解析部１２は、受信フレームが自ノード宛のフレームであるかを判定する（ステップＳ６１）。受信フレームが自ノード宛のフレームである場合、ヘッダ解析部１２は、フレーム中のデータを、ヘッダの情報などと共に、アプリケーション処理部１４に出力する（ステップＳ６１でＹｅｓ、ステップＳ６２）。一方、受信フレームが自ノード宛のフレームではない場合、ヘッダ解析部１２は、フレーム中のデータを、ヘッダの情報などと共に、転送処理部１３に出力する（ステップＳ６１でＮｏ、ステップＳ６３）。
【００７１】
図１１は、データフレームの送信処理の例を説明するシーケンス図である。なお、図１１は送信処理の一例であり、実装に応じて手順が変更されることがある。例えば、ステップＳ７２〜Ｓ７５の処理がステップＳ７６以降の処理よりも後に行われても良い。
【００７２】
フレーム生成部１５は、アプリケーション処理部１４か転送処理部１３からフレームの送信が要求されると、送信するフレームは上り方向に送信されるフレームであるかを判定する（ステップＳ７１、Ｓ７２）。上り方向に転送されるフレームを送信する場合、フレーム生成部１５は、ルーティングテーブル３２から、グローバル宛先とローカル宛先の組合せが、送信フレームと等しいエントリを取得する（ステップＳ７２でＹｅｓ、ステップＳ７３）。フレーム生成部１５は、グローバル宛先アドレスを、取得したエントリ中のローカル宛先が設定したＧＤＩＤに変換する（ステップＳ７４）。さらに、取得したエントリのローカル宛先の値をフレームに設定する（ステップＳ７５）。送信フレームが転送される方向が上り方向ではない場合、ステップＳ７３〜Ｓ７５の処理は行われない（ステップＳ７２でＮｏ）。
【００７３】
次に、下り方向にフレームを送信する場合、フレーム生成部１５は、ルーティングテーブル３２のグローバル宛先が送信フレームのグローバル送信元と等しいエントリを、ルーティングテーブル３２から取得する（ステップＳ７６でＹｅｓ、ステップＳ７７）。フレーム生成部１５は、送信フレームのグローバル送信元アドレスを、取得したエントリ中のグローバル宛先に対する内部ＧＤＩＤに変換する（ステップＳ７８）。フレーム生成部１５は、転送先テーブル３３を参照して、送信フレームのローカル転送先を決定し、送信フレームに設定する（ステップＳ７９）。なお、送信するフレームが転送される方向が上り方向である場合、ステップＳ７７以降の処理は行われない（ステップＳ７６でＮｏ）。
【００７４】
〔ネットワークへの適用例〕
図１２は、第１の実施形態にかかる通信方法が適用され得るネットワークの例を示す図である。図１２以降では、図５〜図９での説明に使用したネットワークよりも複雑で通信装置１０の数が多いネットワークでの実施例を説明する。図１２を参照しながら、あるグローバル宛先に対するローカル宛先が複数存在する場合の処理の例についても説明する。
【００７５】
図１２に示すネットワークには、ゲートウェイＧＷ１、ＧＷ２とノードＡ〜Ｄが含まれている。図１２に示すネットワークでは、ノードＡは、ゲートウェイＧＷ１、ゲートウェイＧＷ２、ノードＣに隣接しているものとする。ノードＢは、ゲートウェイＧＷ２とノードＣに隣接している。ノードＤはノードＣに隣接しているものとする。
【００７６】
（１）Ｈｅｌｌｏフレームを用いたアドホックネットワークの形成
図１３は、Ｈｅｌｌｏフレームの送受信の際に行われる処理の例を説明する図である。なお、ノードＡ〜Ｄのいずれも、図１３の時点では、過去にＨｅｌｌｏフレームを受信していない場合を例とする。ゲートウェイＧＷ１からＨｅｌｌｏフレームＨ１が送信され、ゲートウェイＧＷ２からＨｅｌｌｏフレームＨ２が送信されたとする。ノードＡは、ＨｅｌｌｏフレームＨ１とＨｅｌｌｏフレームＨ２の両方を受信すると、図５を参照しながら説明した手順と同様の処理により、ルーティングテーブル３２ａを更新する。このため、ノードＡには、図１３のルーティングテーブル３２ａに示す情報が記録される。
【００７７】
一方、ノードＢもＨｅｌｌｏフレームＨ２を受信する。ノードＢは、ＨｅｌｌｏフレームＨ２で通知されたグローバル宛先であるＧＷ２に対するローカル宛先として、ＨｅｌｌｏフレームＨ２のローカル送信元であるＧＷ２を記録する。さらに、ＧＷ２がグローバル宛先である場合のローカル宛先としてのＧＷ２に対応付けて、ＨｅｌｌｏフレームＨ２で通知されたローカルＧＤＩＤＧＷ２＝０という情報を、ルーティングテーブル３２ｂに記録する。このため、ノードＢのルーティングテーブル３２ｂは、図１３に示すとおりになる。
【００７８】
図１４は、Ｈｅｌｌｏフレームの送受信の際に行われる処理の例を説明する図である。図１４を参照しながら、ノードＡがＨｅｌｌｏフレームＨ３を送信したときに行われる処理の例を説明する。ＨｅｌｌｏフレームＨ３の送信の際にノードＡが行う処理は、図５のフレームＦ３の生成の際の処理として説明した処理や図７を参照しながら説明した処理と同様である。
【００７９】
ノードＣは、ＨｅｌｌｏフレームＨ３を受信すると、ＨｅｌｌｏフレームＨ３で通知されたグローバル宛先の各々について、ＨｅｌｌｏフレームＨ３のローカル送信元であるノードＡをローカル宛先として登録する。また、ノードＡから通知されたＧＤＩＤを、グローバル宛先ごとに、ＬＤ＝ノードＡの場合に対応付けてルーティングテーブル３２ｃに記録する。さらに、ノードＣは、通知された各グローバル宛先に対してＧＤＩＤを設定する。このため、ＨｅｌｌｏフレームＨ３をノードＣが受信したときのルーティングテーブル３２ｃには、以下の情報が記録される。
転送先１
グローバル宛先（ＧＤ）：ＧＷ１
ＧＤに対してノードＣが使用するＧＤＩＤ：ＧＤＩＤＧＷ１−Ｃ＝１
ローカル宛先（ＬＤ）  ：Ａ
ＬＤがＧＤに設定したＧＤＩＤ          ：ＧＤＩＤＧＷ１−Ａ＝１
転送先２
グローバル宛先（ＧＤ）：ＧＷ２
ＧＤに対してノードＣが使用するＧＤＩＤ：ＧＤＩＤＧＷ２−Ｃ＝２
ローカル宛先（ＬＤ）  ：Ａ
ＬＤがＧＤに設定したＧＤＩＤ          ：ＧＤＩＤＧＷ２−Ａ＝２
【００８０】
その後、ノードＢがＨｅｌｌｏフレームＨ４を送信したとする。図１４に示すように、ＨｅｌｌｏフレームＨ４には、ゲートウェイＧＷ２に関する経路情報が含まれている。ノードＣがＨｅｌｌｏフレームＨ４を受信すると、抽出部２１ｃは、ヘッダ解析部１２ｃなどを介してＨｅｌｌｏフレームＨ４を取得する。抽出部２１ｃは、ゲートウェイＧＷ２に関する情報を含むＨｅｌｌｏヘッダの情報と、ＨｅｌｌｏフレームＨ４のローカル送信元がノードＢであることを、テーブル管理部２３ｃに通知する。テーブル管理部２３ｃは、ゲートウェイＧＷ２に対するエントリがルーティングテーブル３２ｃに存在するので、ゲートウェイＧＷ２へのローカル宛先としてノードＢがルーティングテーブル３２ｃに登録されているかを判定する。ここでは、ノードＢは、ゲートウェイＧＷ２へのローカル宛先として登録されていない。このため、テーブル管理部２３ｃは、ノードＢをゲートウェイＧＷ２へのローカル宛先としてルーティングテーブル３２ｃに登録する。さらに、テーブル管理部２３ｃは、ノードＢがゲートウェイＧＷ２を識別する際に使用するＧＤＩＤ（ＧＤＩＤＧＷ２−Ｂ＝１）もルーティングテーブル３２ｃに登録する。ここで、ノードＣにとって、ノードＡを介してゲートウェイＧＷ２に至る経路の通信状況の方が、ノードＢを介してゲートウェイＧＷ２に至る経路の通信状況よりも良好であるとする。この場合、テーブル管理部２３ｃは、ゲートウェイＧＷ２への転送処理の際に最優先するローカル転送先（ＬＤ１）をノードＡ、２番目に優先的に使用するローカル転送先（ＬＤ２）をノードＢとしてルーティングテーブル３２ｃに記録する。このため、ＨｅｌｌｏフレームＨ４を処理した後にノードＣが保持しているルーティングテーブル３２ｃは、図１４に示すとおりになる。なお、ノードＣでのＨｅｌｌｏフレームＨ４の処理は、図６のステップＳ１８〜Ｓ２０の処理に相当する。
【００８１】
図１５は、Ｈｅｌｌｏフレームの送受信の際に行われる処理の例を説明する図である。ノードＣは、ルーティングテーブル３２ｃに記録されているグローバル宛先の情報を、ノードＣが各グローバル宛先を識別するために使用するＧＤＩＤと共に、ＨｅｌｌｏフレームＨ５を用いて、隣接ノードに通知する。
【００８２】
ノードＤがＨｅｌｌｏフレームＨ５を受信したとする。ノードＤは、ＨｅｌｌｏフレームＨ５で通知されたグローバル宛先であるＧＷ１とＧＷ２に対するローカル宛先として、ＨｅｌｌｏフレームＨ５のローカル送信元であるノードＣを記録する。さらに、ノードＣがＧＷ１とＧＷ２の各々を識別する際に使用するＧＤＩＤを記録すると共に、ノードＤがこれらのグローバル宛先の識別に使用するＧＤＩＤを決定する。このため、ノードＤのルーティングテーブル３２ｄは、図１５に示すとおりになる。
【００８３】
図１６は、各通信装置１０が保持するルーティングテーブル３２の例を示す図である。図１６は、ＨｅｌｌｏフレームＨ１〜Ｈ５の処理が終わった段階で、ノードＡ〜Ｄの各通信装置１０が保持しているルーティングテーブル３２の例を示している。なお、図１５には明記していないが、ノードＡとノードＢも、ノードＣから送信されたＨｅｌｌｏフレームＨ５を受信する。このため、ノードＡと、ノードＢのいずれも、ノードＣを介してゲートウェイＧＷ１、ＧＷ２に達する経路の情報を、ルーティングテーブル３２に保持している。ノードＡとノードＢでのＨｅｌｌｏフレームＨ５の処理は、ノードＣがＨｅｌｌｏフレームＨ４を処理する場合を例として説明した処理と同様である。
【００８４】
（２）上り方向に転送されるデータフレームの処理
以下、アドホックネットワーク中の各通信装置１０が保持するルーティングテーブル３２が図１６に示す状態で、ノードＤからゲートウェイＧＷ１宛てにフレームが送信される場合の転送処理の例を説明する。なお、図１７以下では、図を見やすくするために、各通信装置１０が保持するルーティングテーブル３２の一部を抜粋して示すことがある。以下では、各通信装置１０でのグローバル宛先やローカル宛先の指定に重点をおいて説明するが、各通信装置１０の制御部２０などで行われる処理の詳細は、図５〜図１０での説明と同様である。
【００８５】
図１７は、ゲートウェイ装置宛てのフレームの転送処理の例を説明する図である。まず、ノードＤが、ゲートウェイＧＷ１に送信するデータを生成したとする。次に、ノードＤは、ルーティングテーブル３２ｄを用いて、ゲートウェイＧＷ１にフレームを送信する際のローカル宛先がノードＣであることと、ノードＣにおいてゲートウェイＧＷ１の識別に、ＧＤＩＤＧＷ１−Ｃ＝１を用いることを特定する。そこで、ノードＤは、ゲートウェイＧＷ１宛てのフレームのローカル転送先（ＬＤ）をノードＣ、グローバル宛先のアドレスの代わりにＧＤ＝１という値を指定したフレームＦ３１を生成し、フレームＦ３１をノードＣに送信する。フレームＦ３１に指定されているローカル宛先の情報とグローバル宛先の情報を図１７に示す。
【００８６】
フレームＦ３１を受信したノードＣは、フレームＦ３１のグローバル宛先（ＧＤ）に１が指定されているため、ノードＣが付したＧＤＩＤの値が１である装置がフレームＦ３１のグローバル宛先であると判定する。図１７に示すように、ＧＤＩＤＧＷ１−Ｃ＝１であるため、ノードＣは、ゲートウェイＧＷ１がフレームＦ３１のグローバル宛先であると判定する。
【００８７】
図１８は、ゲートウェイ装置宛てのフレームの転送処理の例を説明する図である。図１８を参照しながら、ノードＣで行われる転送処理を説明する。フレームＦ３１のグローバル宛先がゲートウェイＧＷ１であるため、ノードＣは、転送フレームＦ３２を送信する際のローカル宛先をノードＡに決定する。さらに、ノードＡにおいてゲートウェイＧＷ１の識別にＧＤＩＤＧＷ１−Ａ＝１が用いられることから、ノードＣは、転送フレームＦ３２には、グローバル宛先のアドレスの代わりにＧＤ＝１という値を指定する。なお、転送フレームＦ３２中のデータは、フレームＦ３１中のデータである。フレームＦ３２に指定されているローカル宛先の情報とグローバル宛先の情報を図１８に示す。ノードＣは、フレームＦ３２をノードＡに送信する。
【００８８】
フレームＦ３２を受信したノードＡは、フレームＦ３２のグローバル宛先（ＧＤ）に１が指定されているため、ノードＡが付したＧＤＩＤの値が１である装置がフレームＦ３２のグローバル宛先であると判定する。図１８に示すように、ＧＤＩＤＧＷ１−Ａ＝１であるため、ノードＡは、ゲートウェイＧＷ１がフレームＦ３２のグローバル宛先であると判定する。
【００８９】
図１９は、ゲートウェイ装置宛てのフレームの転送処理の例を説明する図である。図１９を参照しながら、ノードＡで行われる転送処理を説明する。フレームＦ３２のグローバル宛先がゲートウェイＧＷ１であるため、ノードＡは、転送フレームＦ３３を送信する際のローカル宛先をゲートウェイＧＷ１に決定する。さらに、ゲートウェイＧＷ１においてゲートウェイＧＷ１の識別にＧＤＩＤＧＷ１＝０が用いられることから、ノードＡは、転送フレームＦ３３のグローバル宛先のアドレスとして、ＧＤ＝０という値を指定する。なお、転送フレームＦ３３中のデータは、フレームＦ３１に含まれていたデータである。フレームＦ３３に指定されているローカル宛先の情報とグローバル宛先の情報を図１９に示す。ノードＡは、フレームＦ３３をゲートウェイＧＷ１に送信する。
【００９０】
フレームＦ３３を受信したゲートウェイＧＷ１は、フレームＦ３３のグローバル宛先（ＧＤ）に０が指定されているため、ゲートウェイＧＷ１宛てのフレームを受信したと判定し、フレームＦ３３を処理する。
【００９１】
（３）下り方向に転送されるデータフレームの処理
次に、アドホックネットワーク中の各通信装置１０が保持するルーティングテーブル３２が図１６に示す状態で、ゲートウェイＧＷ２からノードＤ宛てにフレームが送信される場合の転送処理の例を説明する。なお、各通信装置１０での転送先テーブル３３の生成方法も、図８〜図１０を参照しながら説明したとおりである。
【００９２】
図２０は、ゲートウェイ装置から送信されたフレームの転送処理の例を説明する図である。まず、ゲートウェイＧＷ２が、ノードＤに送信するデータを生成したとする。次に、ゲートウェイＧＷ２は、転送先テーブル３３ｇｗ２を用いて、ノードＤにフレームを送信する際のローカル宛先がノードＢであることを特定する。ゲートウェイＧＷ２は、Ｈｅｌｌｏフレームを送信したことがあるので、ゲートウェイＧＷ２自身をゲートウェイＧＷ２が識別する際に使用するＧＤＩＤを隣接する通信装置１０に通知済みである。そこで、ノードＤ宛てのフレームのローカル転送先（ＬＤ）をノードＢ、グローバル送信元のアドレスの代わりにＧＳ＝０という値を指定したフレームＦ４１を生成し、フレームＦ４１をノードＢに送信する。フレームＦ４１に指定されているアドレスの情報を図２０に示す。
【００９３】
ノードＢは、フレームＦ４１のグローバル送信元（ＧＳ）に０が指定されているため、ゲートウェイＧＷ２から通知されたＧＤＩＤの値が０である装置がフレームＦ４１のグローバル送信元であると判定する。図２０に示すように、ＧＤＩＤＧＷ２＝０であるため、ノードＢは、ゲートウェイＧＷ２がフレームＦ４１のグローバル送信元であると判定する。
【００９４】
図２１は、ゲートウェイ装置から送信されたフレームの転送処理の例を説明する図である。図２１を参照しながら、ノードＢで行われる転送処理を説明する。フレームＦ４１のグローバル宛先がノードＤであるため、ノードＢは、転送先テーブル３３ｂを用いて、転送フレームＦ４２を送信する際のローカル宛先をノードＣに決定する。ノードＢはＨｅｌｌｏフレームを送信したことがあるので、ノードＢは、ゲートウェイＧＷ２を識別する際にＧＤＩＤＧＷ２−Ｂ＝１を使用することを、隣接する通信装置１０に通知済みである。そこで、ノードＤ宛てのフレームのローカル転送先（ＬＤ）をノードＣ、グローバル送信元のアドレスの代わりにＧＳ＝１という値を指定したフレームＦ４２を生成し、フレームＦ４２をノードＣに送信する。フレームＦ４２に指定されているアドレスの情報を図２１に示す。
【００９５】
ノードＣは、フレームＦ４２のグローバル送信元（ＧＳ）に１が指定されており、フレームＦ４２のローカル送信元がノードＢであるため、ノードＢから通知されたＧＤＩＤの値が１である装置がフレームＦ４２のグローバル送信元であると判定する。図２１に示すように、ＧＤＩＤＧＷ２−Ｂ＝１であるため、ノードＣは、ゲートウェイＧＷ２がフレームＦ４２のグローバル送信元であると判定する。
【００９６】
図２２は、ゲートウェイ装置から送信されたフレームの転送処理の例を説明する図である。図２２を参照しながら、ノードＣで行われる転送処理を説明する。フレームＦ４２のグローバル宛先がノードＤであるため、ノードＣは、転送先テーブル３３ｃを用いて、転送フレームＦ４３を送信する際のローカル宛先をノードＤに決定する。ノードＣは、ゲートウェイＧＷ２の情報を含むＨｅｌｌｏフレームを用いて、ノードＣがゲートウェイＧＷ２を識別する際にＧＤＩＤＧＷ２−Ｃ＝２を使用することを、隣接する通信装置１０に通知済みである。そこで、ノードＤ宛てのフレームのローカル転送先（ＬＤ）としてノードＤ、グローバル送信元のアドレスの代わりにＧＳ＝２という値を指定したフレームＦ４３を生成し、フレームＦ４３をノードＤに送信する。フレームＦ４３に指定されているアドレスの情報を図２２に示す。
【００９７】
ノードＤは、フレームＦ４３のグローバル送信元（ＧＳ）に２が指定されており、フレームＦ４３のローカル送信元がノードＣであるため、ノードＣから通知されたＧＤＩＤの値が２である装置がフレームＦ４３のグローバル送信元であると判定する。図２２に示すように、ＧＤＩＤＧＷ２−Ｃ＝２であるため、ノードＤは、ゲートウェイＧＷ２がフレームＦ４３のグローバル送信元であると判定する。また、ノードＤは、フレームＦ４３の最終宛先がノードＤ自身であるので、フレームＦ４３中のデータを適宜処理する。
【００９８】
図２３は、フレーム中のペイロードのサイズの例を説明する図である。フレームＦ１１１は、第１の実施形態が適用されていない場合のデータフレームのフォーマットの例である。フレームＦ１１１では、グローバル宛先とグローバル送信元のいずれにも、装置のアドレスが用いられている。このため、フレームＦ１１１では、グローバル宛先アドレスとグローバル送信元アドレスに各々８バイト使用することになる。制御情報が２０バイトで、ローカル宛先アドレスとローカル送信元アドレスにいずれも８バイトが用いられるので、フレームＦ１１１では、アドレス情報と制御情報で８×４＋２０＝５２バイトが使用される。アドホックネットワークで使用されるフレームの大きさが１２７バイトであると、ペイロード長は７５バイトになる。
【００９９】
フレームＦ１１２は、第１の実施形態を用いて上り方向に転送されるフレームのフォーマットの例を示している。フレームＦ１１２では、グローバル宛先アドレスがフレームのローカル転送先で処理可能なＧＤＩＤに設定されている。ここで、ＧＤＩＤの記述には、１バイトが使用されるとすると、グローバル宛先アドレスフィールドを１バイトにすることができる。従って、フレームＦ１１２では、フレーム中のアドレス情報と制御情報に、８×３＋１＋２０＝４５バイトが使用される。このため、フレームＦ１１２では、アドホックネットワークで使用されるフレームの大きさが１２７バイトであっても、ペイロードに８２バイトを使用することができる。なお、下り方向に送信されるフレームの場合は、グローバル宛先はＧＤＩＤに変換されないが、グローバル送信元がＧＤＩＤに変換される。このため、下り方向に送信されるフレームでも、フレームＦ１１２に示したのと同様に、８２バイトのペイロードを確保できる。従って、１フレームが１２７バイトである場合、第１の実施形態にかかる方法を用いることにより、１フレーム中のペイロードが７５バイトから７バイト長くできる。換言すると、１フレームが１２７バイトである場合、第１の実施形態にかかる方法を用いることにより、１フレーム中のペイロードを１０％程度長くすることができる。
【０１００】
以上説明したように、第１の実施形態によると、各通信装置１０は、ゲートウェイとして動作する通信装置１０に向かう方向の経路情報と共に、その通信装置１０がゲートウェイ装置の識別の際に使用する一意情報（ＧＤＩＤ）を隣接装置と交換する。このため、上り方向に転送されるフレームでは、グローバル宛先となるゲートウェイ装置を、転送先で認識されるＧＤＩＤに置き換えて通知することにより、フレーム中のヘッダに使用される領域の大きさを小さくすることができる。一方、下り方向に転送されるフレームでは、グローバル送信元となるゲートウェイの情報を、転送先の通信装置１０に通知済みのＧＤＩＤに置き換えて通知することにより、フレーム中のヘッダを小さくすることができる。従って、各フレームに含められるデータの量が増大し、結果として、スループットが改善する。すなわち、アドホックネットワークにおける通信速度が向上でき、通信効率が改善できる。
【０１０１】
なお、第１の実施形態が適用されるネットワークでは、ゲートウェイとして動作していない通信装置１０同士でデータのやり取りを行う場合、ゲートウェイとして動作する通信装置１０がデータの中継点となる。このため、ゲートウェイ装置以外の装置間の通信でも、第１の実施形態を適用することによって、１フレーム中のデータ量を増大できる。
【０１０２】
ところで、ゲートウェイ装置の識別子として、ＧＤＩＤを付す際に、ある1つのゲートウェイについては、ネットワーク全体で共通の値が設定されるように各ゲートウェイ装置に割り振られるＧＤＩＤをコーディネータで管理することも考えられる。しかしコーディネータを用いて、ネットワーク全体での共通の値をゲートウェイ装置に割当てる場合、ネットワークへの通信装置１０の参加や脱退の際に行われる処理が複雑になる上、通信装置１０のメモリを大量に消費する恐れがある。しかし、アドホックネットワークに適用される通信装置１０では、メモリ容量が大きくない場合が多い。また、不特定多数の通信装置１０が、アドホックネットワークに対する参加や脱退を行う可能性もある。
【０１０３】
一方、第１の実施形態で説明したように、個々の通信装置１０が自由に、その通信装置１０に通知されたゲートウェイの情報を保持し、隣接ノードに自ノードが使用するＧＤＩＤを通知する場合、通信装置１０にかかる負担は比較的小さい。さらに、通信装置１０がアドホックネットワークに対して参加や脱退を行ったとしても、ＧＤＩＤの処理に起因した処理により、通信装置１０に負担がかからない。
【０１０４】
＜第２の実施形態＞
第２の実施形態では、ゲートウェイ装置として動作する通信装置１０の情報と、ゲートウェイ装置して動作しない通信装置１０の情報のいずれも、Ｈｅｌｌｏフレームによって他の装置に通知される場合の転送処理について説明する。なお、Ｈｅｌｌｏフレームを受信したときに各通信装置１０が行う処理は、第１の実施形態と同様である。
【０１０５】
図２４は、第２の実施形態で行われるＨｅｌｌｏフレームの送信処理の例を説明するフローチャートである。経路情報生成部２４は、Ｈｅｌｌｏフレームの生成時刻になると、ステップＳ９１〜Ｓ９５の処理により、自ノードを介して通信可能な通信先の情報を、Ｈｅｌｌｏフレームで隣接ノードに通知する情報として選択する。なお、ステップＳ９１〜Ｓ９５の処理は、図７のステップＳ３１〜Ｓ３５で行われる処理と同様である。
【０１０６】
次に、経路情報生成部２４は、自ノードの情報に対応付けて、自ノードが自ノード自身の識別に使用するＧＤＩＤをＨｅｌｌｏフレームで通知する情報に追加する（ステップＳ９６）。フレーム生成部１５は、経路情報生成部２４によって、Ｈｅｌｌｏフレームで通知する情報として選択された情報を含むＨｅｌｌｏフレームを生成する（ステップＳ９７）。送信部１６は、Ｈｅｌｌｏフレームを送信する（ステップＳ９８）。
【０１０７】
図２４を用いて説明したＨｅｌｌｏフレームの送信処理では、ステップＳ９６の処理は、ゲートウェイ装置として動作していない通信装置１０でも行われる。従って、ゲートウェイ装置以外の装置に至る経路も、隣接ノード間で交換される。また、Ｈｅｌｌｏフレームの受信の際の処理は、第２の実施形態でも、図６を参照しながら説明したとおりであるので、各通信装置１０は、Ｈｅｌｌｏフレームで通知された通信先の各々について、ＧＤＩＤを割り当てる。また、Ｈｅｌｌｏフレームで交換された情報はルーティングテーブル６１に記録される。
【０１０８】
図２５は、各通信装置が保持するルーティングテーブルの例を示す図である。図２５では、図を見やすくするために、各通信装置１０が保持するルーティングテーブル６１の一部を抜粋して示している。しかし、第２の実施形態では、Ｈｅｌｌｏフレームの交換により、ネットワーク中の各通信装置１０がネットワーク中の全ての通信装置１０に至る経路情報を保持することができる。また、各通信装置１０は、ネットワーク中の全ての装置について、自ノードが使用するＧＤＩＤを設定し、隣接ノードに通知しているので、いずれのフレームの送信元や最終宛先もＧＤＩＤに置き換えて転送先に通知できる。
【０１０９】
以下、図２６〜図２８を参照しながら、ノードＥからノードＤ宛てにフレームが送信される場合の転送処理の例を説明する。なお、アドホックネットワーク中の各通信装置１０が保持するルーティングテーブル６１は、図２５に示す情報を含むものとする。また、ローカル宛先が複数ある場合、ＬＤに続く数字が小さいローカル宛先ほど、グローバル宛先までの転送経路が良好な転送先を指しているものとする。
【０１１０】
図２６は、データフレームの転送処理の例を説明する図である。まず、ノードＥが、ノードＤに送信するデータを生成したとする。次に、ノードＥは、ルーティングテーブル６１ｅを用いて、ノードＤにフレームを送信する際のローカル宛先として最も条件の良い転送先がノードＢであることと、ノードＢがＧＤＩＤＤ−Ｂ＝１を用いてノードＤを識別していることを特定する。さらに、ノードＥは、Ｈｅｌｌｏフレームを送信済みであるので、グローバル送信元がノードＥであることを、ノードＥがノードＥ自身に割り当てたＧＤＩＤＥ−Ｅ＝０を用いてノードＢに通知できると判定する。そこで、ノードＥは、グローバル宛先（ＧＤ）にＧＤＩＤＤ−Ｂ＝１、グローバル送信元（ＧＳ）にＧＤＩＤＥ−Ｅ＝０を用いて、ノードＤ宛てのデータを含むフレームＦ５１を生成する。フレームＦ５１に含まれているアドレスの情報を図２６に示す。
【０１１１】
フレームＦ５１を受信したノードＢは、フレームＦ５１のグローバル宛先（ＧＤ）に１が指定されているため、ノードＢが付したＧＤＩＤの値が１である装置がフレームＦ５１のグローバル宛先であると判定する。図２６に示すように、ＧＤＩＤＤ−Ｂ＝１であるため、ノードＢは、ノードＤがフレームＦ５１のグローバル宛先であると判定する。さらに、フレームＦ５１のグローバル送信元（ＧＳ）に０が指定されているため、ローカル送信元（ＬＳ）であるノードＥが付したＧＤＩＤの値が０である装置がフレームＦ５１のグローバル送信元であると判定する。ルーティングテーブル６１ｂには、ノードＥがグローバル宛先の場合の欄に、ＧＤＩＤＥ−Ｅ＝０であることが記録されている。このため、ノードＢは、フレームＦ５１のグローバル送信元はノードＥであると判定する。
【０１１２】
図２７は、データフレームの転送処理の例を説明する図である。図２７を参照しながら、ノードＢで行われる転送処理の例を説明する。ノードＢは、ルーティングテーブル６１ｂを用いて、ノードＤにフレームを送信する際のローカル宛先として最も条件の良い転送先がノードＣであることと、ノードＣがＧＤＩＤＤ−Ｃ＝２を用いてノードＤを識別していることを特定する。さらに、ノードＢは、Ｈｅｌｌｏフレームを送信済みであるので、グローバル送信元がノードＥであることを、ノードＢがノードＥに割り当てたＧＤＩＤＥ−Ｂ＝２を用いてノードＣに通知できると判定する。そこで、ノードＢは、グローバル宛先（ＧＤ）にＧＤＩＤＤ−Ｃ＝２、グローバル送信元（ＧＳ）にＧＤＩＤＥ−Ｂ＝２を用いて、ノードＤ宛てのデータを含むフレームＦ５２を生成する。フレームＦ５２に含まれているアドレスの情報を図２７に示す。
【０１１３】
フレームＦ５２を受信したノードＣは、フレームＦ５２のグローバル宛先（ＧＤ）に２が指定されているため、ノードＣが付したＧＤＩＤの値が２である装置がフレームＦ５２のグローバル宛先であると判定する。図２７に示すように、ＧＤＩＤＤ−Ｃ＝２であるため、ノードＣは、ノードＤがフレームＦ５２のグローバル宛先であると判定する。さらに、フレームＦ５２のグローバル送信元（ＧＳ）に２が指定されているため、ローカル送信元（ＬＳ）であるノードＢが付したＧＤＩＤの値が２である装置がフレームＦ５２のグローバル送信元であると判定する。ルーティングテーブル６１ｃには、ノードＥがグローバル宛先の場合の欄に、ＧＤＩＤＥ−Ｂ＝２であることが記録されている。このため、ノードＣは、フレームＦ５２のグローバル送信元はノードＥであると判定する。
【０１１４】
図２８は、データフレームの転送処理の例を説明する図である。図２８を参照しながら、ノードＣで行われる転送処理の例を説明する。ノードＣは、ルーティングテーブル６１ｃを用いて、ノードＤにフレームを送信する際のローカル宛先として最も条件の良い転送先がノードＤであることと、ノードＤがＧＤＩＤＤ−Ｄ＝０を用いてノードＤを識別していることを特定する。さらに、ノードＣは、Ｈｅｌｌｏフレームを送信済みであるので、グローバル送信元がノードＥであることを、ノードＣがノードＥに割り当てたＧＤＩＤＥ−Ｃ＝１を用いてノードＤに通知できると判定する。そこで、ノードＣは、グローバル宛先（ＧＤ）にＧＤＩＤＤ−Ｄ＝０、グローバル送信元（ＧＳ）にＧＤＩＤＥ−Ｃ＝１を用いて、ノードＤ宛てのデータを含むフレームＦ５３を生成する。フレームＦ５３に含まれているアドレスの情報を図２８に示す。
【０１１５】
フレームＦ５３を受信したノードＤは、フレームＦ５３のグローバル宛先（ＧＤ）に０が指定されているため、ノードＤが付したＧＤＩＤの値が０である自ノードがフレームＦ５３のグローバル宛先であると判定する。さらに、フレームＦ５３のグローバル送信元（ＧＳ）に１が指定されているため、ローカル送信元（ＬＳ）であるノードＣが付したＧＤＩＤの値が１である装置がフレームＦ５３のグローバル送信元であると判定する。ルーティングテーブル６１ｄには、ノードＥがグローバル宛先の場合の欄に、ＧＤＩＤＥ−Ｃ＝１であることが記録されている。このため、ノードＣは、フレームＦ５３のグローバル送信元はノードＥであると判定する。
【０１１６】
以上説明したように、第２の実施形態によると、各通信装置１０は、いずれの方向に送信されるフレームでも、グローバル宛先を転送先で認識されるＧＤＩＤに置き換えて通知できる。さらに、各通信装置１０は、いずれの方向に送信されるフレームでも、グローバル送信元を、転送先の通信装置１０に通知済みのＧＤＩＤに置き換えて通知することができる。従って、グローバル宛先とグローバル送信元のいずれも、ＧＤＩＤを用いて通知することにより、フレーム中のヘッダを小さくすることができる。従って、各フレームに含められるデータの量が増大し、結果として、スループットが改善する。すなわち、アドホックネットワークにおける通信速度が向上でき、通信効率が改善できる。
【０１１７】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１１８】
第２の実施形態で説明したように、ゲートウェイ装置以外の情報もＨｅｌｌｏフレームで送受信される場合、各通信装置１０は、転送先テーブル３３を生成しなくても良い。転送先テーブル３３を生成しない場合、通信装置１０は、転送先の情報を、フレームの転送方向に関わらず、ルーティングテーブル３２から検索する。また、この場合は、アドホックヘッダに方向フラグが含まれていなくても良い。
【０１１９】
以上の説明で示したフレームのフォーマットやテーブルは一例であり、これらに含まれる情報要素や各要素のデータ長は、実装に応じて変更され得る。例えば、ＧＤＩＤは１バイト以外の長さでもよい。
【０１２０】
上述の第１および第２の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
ネットワーク中に含まれる第１の通信装置に、
隣接する第２の通信装置から、前記第２の通信装置を介してフレームを送信可能な通信先の情報と、前記第２の通信装置で前記通信先を識別する際に使用され、前記通信先に割り当てられたアドレスよりもデータ長が短い情報である一意情報を含む制御フレームを受信し、
前記通信先に前記第２の通信装置を介してデータを送信する際に、前記通信先宛のデータを含むデータフレームの宛先として前記一意情報を設定し、
前記データフレームを前記第２の通信装置に送信する
処理を実行させることを特徴とする通信プログラム。
（付記２）
前記第１の通信装置に隣接する第３の通信装置に、前記通信先に割り当てられたアドレスよりもデータ長が短く、前記第１の通信装置が前記通信先を識別する際に使用する情報として決定した他の一意情報を、前記通信先に対応付けて通知し、
前記第３の通信装置に転送する第１のフレームの送信元が前記通信先である場合、前記第１のフレームの送信元として前記他の一意情報を設定した第２のフレームを生成し、
前記第２のフレームを前記第３の通信装置に転送する
処理を前記第１の通信装置に実行させることを特徴とする付記１に記載のプログラム。
（付記３）
前記第１のフレームを前記第２の通信装置から受信した場合、前記第１のフレームの送信元アドレスが前記一意情報であることから、前記第１のフレームの送信元が前記通信先であると特定し、
前記第１のフレームのヘッダ中の前記一意情報を、前記他の一意情報に変更することにより、前記第２のフレームを生成する
処理を前記第１の通信装置に実行させることを特徴とする付記２に記載のプログラム。
（付記４）
前記第１の通信装置から前記第３の通信装置に至る経路を用いた通信の対象となる対象装置の情報と、前記対象装置に割り当てられたアドレスよりもデータ長が短く、前記第１の通信装置が前記対象装置を識別するために使用する設定値を、前記第２の通信装置に通知し、
前記対象装置が前記通信先に送信した第３のフレームを受信すると、前記第３のフレームの送信元として前記設定値を設定すると共に、前記第３のフレームの宛先として前記一意情報を設定した第４のフレームを生成し、
前記第４のフレームを前記第２の通信装置に転送する
処理を前記第１の通信装置に実行させることを特徴とする付記２または３に記載のプログラム。
（付記５）
前記第３の通信装置から、前記対象装置に割り当てられたアドレスよりもデータ長が短く、前記第３の通信装置が前記対象装置を識別するために使用する他の設定値を取得し、
前記通信先が前記対象装置に送信した第５のフレームを受信すると、前記第５のフレームの送信元として前記他の一意情報を設定すると共に、前記第５のフレームの宛先として前記他の設定値を設定した第６のフレームを生成し、
前記第６のフレームを前記第３の通信装置に送信する
処理を前記第１の通信装置に実行させることを特徴とする付記４に記載のプログラム。
（付記６）
前記第１の通信装置に、
前記制御フレームを受信すると、前記第１の通信装置が通信可能な装置への経路情報として、前記通信先のアドレス、前記第２の通信装置のアドレス、前記一意情報、および、前記他の一意情報を対応付けて記憶し、
前記第１の通信装置を介して通信可能な装置を前記第１の通信装置に隣接する装置に通知するための他の制御フレームに、前記通信先のアドレスと前記他の一意情報を含め、
前記他の制御フレームを送信する
処理を実行させることを特徴とする付記２〜５のいずれか１項に記載のプログラム。
（付記７）
ネットワーク中に含まれる第１の通信装置として動作する通信装置であって、
隣接する第２の通信装置から、前記第２の通信装置を介してフレームを送信可能な通信先の情報と、前記第２の通信装置で前記通信先を識別する際に使用され、前記通信先に割り当てられたアドレスよりもデータ長が短い情報である一意情報を含む制御フレームを受信する受信部と、
前記通信先に前記第２の通信装置を介してデータを送信する際に、前記通信先宛のデータを含むデータフレームの宛先として前記一意情報を設定する制御部と、
前記データフレームを前記第２の通信装置に送信する送信部
を備えることを特徴とする通信装置。
（付記８）
前記制御部は、前記通信先に割り当てられたアドレスよりもデータ長が短く、前記第１の通信装置が前記通信先を識別する際に使用する情報として、他の一意情報を決定し、
前記送信部は、前記他の一意情報を前記通信先に対応付けたフレームを、前記第１の通信装置に隣接する第３の通信装置に送信し、
前記制御部は、前記第３の通信装置に転送する第１のフレームの送信元が前記通信先である場合、前記第１のフレームの送信元として前記他の一意情報を設定した第２のフレームを生成するための制御を行い、
前記送信部は、前記第２のフレームを前記第３の通信装置に転送する
ことを特徴とする付記７に記載の通信装置。
（付記９）
前記制御部は、
前記受信部が前記第１のフレームを前記第２の通信装置から受信した場合、前記第１のフレームの送信元アドレスが前記一意情報であることから、前記第１のフレームの送信元が前記通信先であると特定し、
前記第１のフレームのヘッダ中の前記一意情報を、前記他の一意情報に変更することにより、前記第２のフレームを生成させる
ことを特徴とする付記８に記載の通信装置。
（付記１０）
前記制御部は、前記第１の通信装置から前記第３の通信装置に至る経路を用いた通信の対象となる対象装置に対して、前記対象装置に割り当てられたアドレスよりもデータ長が短く、前記第１の通信装置が前記対象装置を識別するために使用する設定値を決定し、
前記送信部は、前記対象装置の情報と前記設定値を対応付けたフレームを、前記第２の通信装置に送信し、
前記対象装置が前記通信先に送信した第３のフレームを、前記受信部が受信すると、前記制御部は、前記第３のフレームの送信元として前記設定値を設定すると共に、前記第３のフレームの宛先として前記一意情報を設定した第４のフレームを生成するための制御を行い、
前記送信部は、前記第４のフレームを前記第２の通信装置に転送する
ことを特徴とする付記８または９に記載の通信装置。
（付記１１）
前記受信部は、前記第３の通信装置から、前記対象装置に割り当てられたアドレスよりもデータ長が短く、前記第３の通信装置が前記対象装置を識別するために使用する他の設定値を含むフレームを受信し、
前記制御部は、前記通信先が前記対象装置に送信した第５のフレームを前記受信部が受信すると、前記第５のフレームの送信元として前記他の一意情報を設定すると共に、前記第５のフレームの宛先として前記他の設定値を設定した第６のフレームを生成するための制御を行い、
前記送信部は、前記第６のフレームを前記第３の通信装置に送信する
ことを特徴とする付記１０に記載の通信装置。
（付記１２）
前記第１の通信装置が通信可能な装置への経路情報を記憶する記憶部をさらに備え、
前記制御部は、
前記受信部が前記制御フレームを受信すると、前記通信先のアドレス、前記第２の通信装置のアドレス、前記一意情報、および、前記他の一意情報を対応付けて、前記記憶部に記憶させ、
前記第１の通信装置を介して通信可能な装置を前記第１の通信装置に隣接する装置に通知するために使用する他の制御フレームに、前記通信先のアドレスに対応付けて前記他の一意情報を含め、
前記送信部は、前記他の制御フレームを送信する
処理を実行させることを特徴とする付記８〜１１のいずれか１項に記載の通信装置。
（付記１３）
ネットワーク中に含まれる第１の通信装置に、
隣接する第２の通信装置から、前記第２の通信装置を介してフレームを送信可能な通信先の情報と、前記第２の通信装置で前記通信先を識別する際に使用され、前記通信先に割り当てられたアドレスよりもデータ長が短い情報である一意情報を含む制御フレームを受信し、
前記通信先に前記第２の通信装置を介してデータを送信する際に、前記通信先宛のデータを含むデータフレームの宛先として前記一意情報を設定し、
前記データフレームを前記第２の通信装置に送信する
処理を実行させることを特徴とする通信方法。
（付記１４）
前記第１の通信装置に隣接する第３の通信装置に、前記通信先に割り当てられたアドレスよりもデータ長が短く、前記第１の通信装置が前記通信先を識別する際に使用する情報として決定した他の一意情報を、前記通信先に対応付けて通知し、
前記第３の通信装置に転送する第１のフレームの送信元が前記通信先である場合、前記第１のフレームの送信元として前記他の一意情報を設定した第２のフレームを生成し、
前記第２のフレームを前記第３の通信装置に転送する
処理を前記第１の通信装置に実行させることを特徴とする付記１３に記載の通信方法。
【符号の説明】
【０１２１】
１０  通信装置
１１  受信部
１２  ヘッダ解析部
１３  転送処理部
１４  アプリケーション処理部
１５  フレーム生成部
１６  送信部
２０  制御部
２１  抽出部
２２  ＧＤＩＤ管理部
２３  テーブル管理部
２４  経路情報生成部
２５  タイマ
３０  記憶部
３１  リンクテーブル
３２、６１  ルーティングテーブル
３３  転送先テーブル
１００  プロセッサ
１０１  バス
１０２  ＰＨＹチップ
１０４  タイマＩＣ
１０６  ＤＲＡＭ
１０７  フラッシュメモリ
１０８  無線モジュール
【図１】
0006428349.tif 000002
【図２】
0006428349.tif 000003
【図３】
0006428349.tif 000004
【図４】
0006428349.tif 000005
【図５】
0006428349.tif 000006
【図６】
0006428349.tif 000007
【図７】
0006428349.tif 000008
【図８】
0006428349.tif 000009
【図９】
0006428349.tif 000010
【図１０】
0006428349.tif 000011
【図１１】
0006428349.tif 000012
【図１２】
0006428349.tif 000013
【図１３】
0006428349.tif 000014
【図１４】
0006428349.tif 000015
【図１５】
0006428349.tif 000016
【図１６】
0006428349.tif 000017
【図１７】
0006428349.tif 000018
【図１８】
0006428349.tif 000019
【図１９】
0006428349.tif 000020
【図２０】
0006428349.tif 000021
【図２１】
0006428349.tif 000022
【図２２】
0006428349.tif 000023
【図２３】
0006428349.tif 000024
【図２４】
0006428349.tif 000025
【図２５】
0006428349.tif 000026
【図２６】
0006428349.tif 000027
【図２７】
0006428349.tif 000028
【図２８】
0006428349.tif 000029