複数のノード装置を含むネットワーク中のノード装置であって、隣接するノード装置である隣接ノード装置からパケットを受信する受信部と、ネットワーク中の前記複数のノード装置の中で、経路情報を記憶するノード装置のグループであるクラスタに含まれるノード装置の装置識別情報を記録したクラスタリストを生成するクラスタ生成部と、前記経路情報の通知に用いられるハローパケットに、前記クラスタを識別するクラスタ識別情報を格納した第1のハローパケットを生成するハローパケット生成部と、前記第1のハローパケットをブロードキャスト送信する送信部を備え、クラスタに所属していないフリーノード装置から、前記フリーノード装置を識別する装置識別情報と前記クラスタ識別情報が対応付けられた情報を含む第2のハローパケットを受信すると、前記クラスタ生成部は、前記クラスタリストに記録されたノード装置の数が閾値に達するまで、前記フリーノード装置の装置識別情報を前記クラスタリストに追加することを特徴とするノード装置。前記クラスタリストに記録されたノード装置の数が前記閾値に達すると、前記ハローパケット生成部は、前記クラスタとは異なる別のクラスタの生成を要求する生成要求を含めた第3のハローパケットを生成することにより、前記生成要求を認識したフリーノード装置に、前記別のクラスタに含まれるノード装置を特定させることを特徴とする請求項1に記載のノード装置。前記ハローパケット生成部が、前記クラスタリストに記録された情報を含む第4のハローパケットを生成し、前記送信部が前記第4のハローパケットをクラスタ内のノード装置に送信することにより、前記第4のハローパケットを受信したクラスタ内のノード装置に、前記クラスタリストに追加されたノード装置を通知することを特徴とする請求項1もしくは2に記載のノード装置。複数のノード装置を含むネットワーク中のノード装置であって、隣接するノード装置である隣接ノード装置からパケットを受信する受信部と、経路情報の通知に用いられるハローパケットに、前記経路情報を相互に記憶するノード装置のグループであるクラスタに参加しているノード装置を特定するクラスタ情報と、前記クラスタに含まれているノード装置の数が閾値に達していないことを表す情報を含むパケットである第1のハローパケットを受信し、さらに、前記クラスタ情報に前記ネットワーク中の前記ノード装置を識別する装置識別情報が含まれていない場合、前記クラスタに参加することを決定する参加処理部と、前記ネットワーク中の前記ノード装置がクラスタへの参加を要求することを前記隣接ノード装置に通知するために、前記クラスタを識別するクラスタ識別情報と前記装置識別情報を対応付けた情報を含む第2のハローパケットを生成するハローパケット生成部と、前記ハローパケット生成部で生成されたハローパケットをブロードキャスト送信する送信部を含むことを特徴とするノード装置。前記クラスタに含まれているノード装置の数が前記閾値に達していることを表す情報を含む第3のハローパケットが受信されると、前記参加処理部は、前記クラスタとは異なる別のクラスタに含まれるノード装置を特定するリストを生成し、前記ハローパケット生成部は、前記別のクラスタを識別するクラスタ識別情報を含む第4のハローパケットを生成することを特徴とする請求項4に記載のノード装置。前記参加処理部は、前記第2のハローパケットがブロードキャストされた後に、前記クラスタ情報を含む第3のハローパケットを受信すると、前記第3のハローパケット中のクラスタ情報に前記装置識別情報が含まれているかを確認し、前記第3のハローパケット中のクラスタ情報に前記装置識別情報が含まれている場合、前記参加処理部は、前記ネットワーク中の前記ノード装置が前記クラスタに含まれることを認識すると共に、前記第3のハローパケット中のクラスタ情報を、前記ネットワーク中のノード装置が所属しているクラスタと同一のクラスタに所属している各ノード装置の装置識別情報を記録するクラスタリストに記録することを特徴とする請求項4に記載のノード装置。前記クラスタに所属していないフリーノード装置であって、かつ、前記クラスタへの参加を要求している要求ノード装置の装置識別情報を記録するフリーノードリストと、受信した第4のハローパケットに、前記クラスタリストに記録されていないノード装置の装置識別情報と、前記クラスタ識別情報とを対応付けた参加要求情報が含まれていると、前記参加要求情報を前記フリーノードリストに加えるノードリスト生成部をさらに備え、前記ハローパケット生成部が、前記フリーノードリストを含む第5のハローパケットを生成し、前記送信部が前記第5のハローパケットを送信することにより、前記隣接ノードに前記要求ノード装置を通知することを特徴とする請求項4もしくは6に記載のノード装置。前記ノードリスト生成部は、前記クラスタリストに記録されているノード装置の数と前記フリーノードリストに記録されているノード装置の合計値が、前記第1のクラスタに含まれるノード装置の数の上限を表す閾値を超えないように、前記フリーノードリストに記録するノード装置の数を調整することを特徴とする請求項7に記載のノード装置。起点ノードは、前記起点ノードを含むクラスタに含まれるノード装置の識別情報を記録したクラスタリストを生成し、経路情報の通知に用いられるハローパケットに、前記クラスタを識別する第1の識別情報を含めた第1のハローパケットをブロードキャストし、クラスタに所属していないフリーノードは、前記第1のハローパケットを受信すると、前記第1の識別情報と前記フリーノードを識別する第2の識別情報を対応付けたリストを、前記フリーノードの経路情報を含む第2のハローパケットに含めてブロードキャストし、前記起点ノードは、前記第1のクラスタに含まれるノード装置の数が閾値に達するまで、前記リストを用いて認識した前記フリーノードの識別情報を前記クラスタリストに含め、前記第1のクラスタに参加している参加ノードは、前記第1のクラスタに含まれるノードに至る経路を記憶することを特徴とする通信方法。前記起点ノードは、前記第1のクラスタに含まれるノードの数が前記閾値に達すると、前記第1の識別情報と前記クラスタのノード数が前記閾値に達していることを通知する通知情報を含む第3のハローパケットをブロードキャストし、前記通知情報を含むハローパケットを受信したフリーノードは、前記クラスタとは異なる別のクラスタの起点として、前記別のクラスタに含まれるノード装置を特定することを特徴とする請求項9に記載の通信方法。前記参加ノードは、前記第1の識別情報を含む第4のハローパケットをブロードキャストし、前記第4のハローパケットを受信したフリーノードは、前記第4のハローパケットに、前記第1のクラスタのノード数が前記閾値に達していることを通知する通知情報が含まれていない場合、前記第1の識別情報、および、前記第4のハローパケットを受信したフリーノードを識別する第3の識別情報を対応付けた第2のリストを含む第5のハローパケットをブロードキャストし、前記第5のハローパケットを受信した前記参加ノードは、前記第2のリストを含むハローパケットをブロードキャストし、前記起点ノードは、前記第2のリストを含むハローパケットを受信すると、前記第1のクラスタに含まれるノードの数が閾値に達していない場合、前記第3の識別情報で識別されるフリーノードを前記第1のクラスタに含めることを特徴とする請求項9もしくは10に記載の通信方法。クラスタの生成の際には制御パケットが使用される。例えば、背景技術で述べた、記憶装置に記憶された経路情報に基づいて無線通信装置が属するクラスタを決定する無線通信装置は、クラスタに参加する場合とクラスタから離脱する場合に、制御パケットを送受信する。制御パケットがユニキャスト送信される場合や、ネットワーク中の全てのノード装置に向けてフラッディングされる場合は、制御パケットの送受信や中継処理により、ネットワーク中のノード装置の負荷が増大してしまうという問題がある。本発明では、アドホックネットワーク中のノード装置にかかる負荷を小さくすることを目的とする。ノード装置は、複数のノード装置を含むネットワーク中のノード装置であって、受信部、クラスタ生成部、ハローパケット生成部、送信部を備える。受信部は、隣接するノード装置である隣接ノード装置からパケットを受信する。クラスタ生成部は、ネットワーク中の前記複数のノード装置の中で、経路情報を記憶するノード装置のグループであるクラスタに含まれるノード装置の装置識別情報を記録したクラスタリストを生成する。ハローパケット生成部は、前記経路情報の通知に用いられるハローパケットに、前記クラスタを識別するクラスタ識別情報を格納した第1のハローパケットを生成する。送信部は、前記第1のハローパケットをブロードキャスト送信する。前記クラスタ生成部は、クラスタに所属していないフリーノード装置から、前記フリーノード装置を識別する装置識別情報と前記クラスタ識別情報が対応付けられた情報を含む第2のハローパケットを受信することがある。この場合、前記クラスタ生成部は、前記クラスタリストに記録されたノード装置の数が閾値に達するまで、前記フリーノード装置の装置識別情報を前記クラスタリストに追加する。アドホックネットワーク中のノード装置にかかる負荷が小さくなる。図2はクラスタが生成されたネットワークの例を示す。図2に示すアドホックネットワークには、ノードN1~N14の14台のノード装置が含まれており、隣接するノード装置は実線で結ばれている。以下の説明では、複数のノード装置が互いにパケットを送受信できる距離に位置することを隣接すると記載する。また、あるノード装置から送信されたパケットを受信できる範囲に位置するノード装置のことを、そのノード装置の隣接ノードと記載することがある。例えば、あるノード装置から送信されたハローパケットは、送信元のノード装置の隣接ノードで受信される。以下の説明で、ハローパケットは、ネットワークの経路情報を通知するために用いられるパケットであるものとする。ここで、経路情報には、隣接ノードを特定する情報と、隣接ノードがルーティングテーブルに保持している経路情報が含まれる。図2では、アドホックネットワークに含まれるノードのうち、ノードN4が起点ノードに指定されているものとする。起点ノードとは、クラスタの生成を開始するノード装置であり、起点ノード自身を含むクラスタを生成する。この例では、ノードN4は、ノードN4を含むクラスタC1を生成する。また、ノードN4がクラスタの生成を開始した時点では、ノードN1~N3、N5~N14は、いずれもクラスタに所属していない。以下の説明では、クラスタに所属していないノード装置のことをフリーノードと記載することがある。起点ノードは、生成しているクラスタの識別子とそのクラスタに参加しているノード装置の識別子を含むハローパケットを、ブロードキャスト送信する。フリーノードは、起点ノードから送信されたハローパケットにより生成中のクラスタの識別子を認識する。さらに、フリーノードは、クラスタに参加する場合、参加するクラスタの識別子とそのフリーノードの識別子を対応付けた情報を含むハローパケットを生成し、生成したハローパケットをブロードキャスト送信する。図2の例では、ノードN4に隣接するノードN1、N3、N5、N6は、起点ノードN4から送信されてきたハローパケットを受信することにより、生成が開始されたクラスタC1の識別子を認識する。ノードN1、N3、N5、N6はクラスタに所属していないので、クラスタC1の識別子を認識すると、クラスタC1に参加することを決定する。そこで、ノードN1、N3、N5、N6は、ハローパケットにより、それぞれのノードの識別子とクラスタC1の識別子を対応付けた情報をブロードキャスト送信する。起点ノードN4は、生成したクラスタC1の識別子に対応付けてノードの識別子が通知されると、クラスタC1への参加の要求を受信したと認識する。そこで、起点ノードN4は、受信したハローパケットにより、生成中のクラスタに参加するノードを認識し、認識したノードをクラスタに加える。クラスタに加えられたノード装置は、そのノード装置がクラスタに含まれていることを、起点ノードからのハローパケットで確認する。以下の説明では、クラスタに参加しているノードを参加ノードと記載することがある。参加ノードは、参加しているクラスタの識別子を含むハローパケットをブロードキャストする。フリーノードは、参加ノードで生成されたハローパケットから生成中のクラスタの識別子を認識すると、前述の手順によりクラスタに参加する。これらの処理は、クラスタに含まれるノード装置の数が閾値に達するまで繰り返される。クラスタに含まれるノード装置の数が閾値に達すると、起点ノードは、新たなクラスタの生成を要求する情報生成要求を含むハローパケットをブロードキャスト送信する。生成要求を受信した参加ノードは、受信した生成要求を含めたハローパケットを生成してブロードキャスト送信する。生成要求を含むハローパケットを受信したフリーノードは、新たな起点ノードとして動作して、クラスタの生成を開始する。図2の例では、閾値は7であり、ノードN1~N7がクラスタC1に参加した後で、生成要求を含むハローパケットがブロードキャスト送信される。生成要求を含むハローパケットを受信したノードN8は、新たなクラスタC2の生成を開始し、クラスタC1と同様の方法によりクラスタC2が生成される。クラスタが生成されると、各ノード装置は、同一のクラスタ内の他のノード装置に至る経路をルーティングテーブルに記録する。このように、実施形態にかかる方法では、クラスタの生成に用いられる情報は、ハローパケットにより送受信される。このため、クラスタ生成時にノード装置がパケットを送受信することにより発生する負荷は、クラスタの生成のために特別な制御パケットが用いられる場合に比べて小さい。さらに、クラスタが生成されると、各ノード装置は、アドホックネットワークに含まれる全てのノード装置までの経路を記憶しなくても良い。このため、各ノード装置のルーティングテーブルの大きさは、アドホックネットワークがクラスタに分割されていない場合に比べて小さくなる。このため、各ノード装置において、経路情報を記憶することにより生じる負荷の大きさも軽減される。また、クラスタの生成に用いられる情報は、ハローパケットにより送受信されるため、制御パケットを用いる場合に比べてクラスタを生成するために行われる情報の送受信による帯域の消費量が少なくて良い。従って、制御パケットを用いる場合に比べてデータの送受信に用いることができる帯域が大きくなる。<装置構成>図3は、ノード装置10の構成の例を示す。ノード装置10は、受信部11、送信部12、設定部21、ノード種別判定部22、参加処理部23、クラスタリスト更新部24、クラスタ生成部25、ノードリスト生成部26、ハローパケット生成部27を備える。さらに、ノード装置10は、ノード種別情報31、クラスタリスト32、フリーノードリスト33を記憶する。受信部11は、隣接するノード装置10から送信されたパケットを受信し、ハローパケットをノード種別判定部22に出力する。送信部12は、パケットを隣接するノード装置10に送信する。例えば、送信部12は、ハローパケット生成部27で生成されたハローパケットを隣接するノード装置10に送信する。図4は、ハローパケットのフォーマットの例を示す。図4aに示すように、ハローパケットは、ヘッダとペイロードを含む。ヘッダは、Typeフィールド、グローバル宛先GlobalDestination、GDフィールド、グローバル送信元GlobalSource、GSフィールド、ローカル送信元LocalSource、LSフィールド、ローカル宛先LocalDestination、LDフィールドを含む。以下の説明で、グローバル宛先は、パケットの最終的な宛先のノード装置10を示すものとする。一方、ローカル宛先は、パケットをグローバル宛先に送信するために行われる1ホップの転送の際に、宛先として指定されるノード装置10を示す。ローカル送信元は、パケットが1ホップ転送される場合の転送元のノード装置10を指す。グローバル送信元は、パケットを生成したノード装置10を示す。ハローパケットは、送信元のノード装置10の隣接ノード装置にブロードキャストされるので、GDとLDは、全ての隣接ノードを表すブロードキャストアドレスであり、GSとLSはハローパケットを生成したノード装置10のアドレスである。Typeフィールドは、ペイロードに含まれるデータの種類を示す情報を記録する。ハローパケットの場合、Typeフィールドの値はハローパケットを特定する値に設定される。受信部11は、Typeフィールドの値を用いてハローパケット識別し、ノード種別判定部22に出力する。ペイロードには、Helloヘッダの数を表す情報、Helloヘッダ、クラスタリストフィールド、フリーノードリストフィールドが含まれる。各々のHelloヘッダは経路情報を含む。経路情報は、ハローパケットを生成するノード装置10のルーティングテーブル図示せずに経路が記憶されているGDの識別子が含まれる。クラスタリストフィールドには、ハローパケットの送信元のノード装置10に保持されているクラスタリスト32の情報が記録される。以下の説明では、クラスタリストフィールドに記録されている情報をクラスタ情報と記載することがある。クラスタリストの例を図4bに示す。クラスタリストには、クラスタ識別子CID、clusteridentifierと、クラスタ識別子で識別されるクラスタに含まれているノード装置の識別子装置識別子、NID、nodeidentifierのリスト、endフラグが記録される。endフラグは、クラスタ識別子で識別されるクラスタに新たなノード装置10が参加することができるかを示す情報である。endフラグの情報がtrueである場合、クラスタに含まれているノード数が閾値に達しているため、クラスタに新たなノード装置10が参加することができない。後述するように、endフラグ=trueのクラスタリスト32が含まれているハローパケットは、新たなクラスタの生成を要求するための情報生成要求として用いられる。一方、endフラグの情報がfalseである場合、クラスタに含まれているノード数が閾値に達していないため、クラスタに新たなノード装置10が参加することができる。従って、クラスタリスト32は、クラスタに含まれるノードと、クラスタにノード装置10の追加が可能であるかが記録されている。なお、図4bに示すように、クラスタリスト32に含まれる装置識別子の数は任意である。また、クラスタリスト32は、endフラグを含まなくても良い。endフラグはクラスタのノード数が上限であるかを示す値である。従って、クラスタリスト32にendフラグが含まれない場合、ノード装置10は、例えば、クラスタリストに含まれているノードIDの数などを用いて、新たなノード装置10がクラスタに参加可能かを判断することができる。これ以降はクラスタリスト32にendフラグが含まれている場合を例として説明する。フリーノードリストフィールドには、ハローパケットの送信元のノード装置10に備えられたフリーノードリスト33中の情報が記録される。以下の説明では、フリーノードリストフィールドに記録されている情報をフリーノード情報と記載することがある。フリーノードリスト33の例を図4cに示す。フリーノードリスト33には、フリーノードの識別子と、そのフリーノードが参加しようとするクラスタのクラスタ識別子を対にした情報が含まれる。なお、フリーノードリスト33が含むフリーノードの識別子とクラスタの識別子の組合せの数は、任意である。設定部21は、ノード装置10を起点ノード、参加ノード、フリーノードのいずれかに設定し、ノード装置10の種別を特定する情報を、ノード種別情報31に記録する。ノード種別情報31は、ノード装置10の種別を特定できる任意の形式の情報である。ノード種別判定部22は、受信部11からハローパケットが入力されると、ノード種別情報31にアクセスすることにより、ノード装置10の種別を認識する。以下の説明では、ノード種別判定部22は、図5に示すようなテーブルを記憶するものとする。図5のテーブルでは、ノードの種別と、ハローパケット中のクラスタ情報およびフリーノード情報の出力先が関係付けられている。ノード種別判定部22は、図5のテーブルの欄に丸で示した出力先に、クラスタ情報やフリーノード情報を出力する。例えば、フリーノード中のノード種別判定部22は、受信したハローパケット中のクラスタ情報を参加処理部23に出力する。参加ノード中のノード種別判定部22は、クラスタ情報をクラスタリスト更新部24に出力し、フリーノード情報をノードリスト生成部26に出力する。起点ノード中のノード種別判定部22は、受信したハローパケット中のフリーノード情報をクラスタ生成部25に出力する。ノード装置10が起点ノードである場合、フリーノード情報を入力されたクラスタ生成部25は、フリーノード情報中のクラスタ識別子と起点ノードが生成したクラスタの識別子が一致するかを確認する。両者が一致する場合、クラスタ生成部25は、自ノードで生成したクラスタへの参加要求を受信したと認識する。そこで、クラスタ中に含まれているノード装置10の数が閾値より小さい場合、クラスタ生成部25は、フリーノード情報に含まれているノード装置10をクラスタに追加し、クラスタリスト32を更新する。ノード装置10が参加ノードである場合、ノードリスト生成部26がフリーノード情報を処理し、クラスタリスト更新部24がクラスタ情報を処理する。なお、以下の説明では、参加ノードが所属しているクラスタのことを所属クラスタと記載することがある。クラスタリスト更新部24は、ハローパケットで通知されたクラスタ情報が所属クラスタについての情報であるかを確認するために、クラスタ情報に含まれているクラスタ識別子と所属クラスタの識別子が一致するかを確認する。両者が一致する場合は所属クラスタの情報が通知されているので、クラスタリスト更新部24は、クラスタリスト32をクラスタ情報に合わせて更新する。さらに、クラスタリスト更新部24は、フリーノードリスト33からクラスタ情報に含まれているノードに関するエントリを削除する。一方、ノードリスト生成部26は、フリーノード情報が入力されると、フリーノード情報に含まれているノードの識別子をフリーノードリスト33に追加する。ノード装置10がフリーノードである場合、参加処理部23がクラスタ情報を処理する。参加処理部23は、クラスタへの参加の要求と参加の確認を行う。参加処理部23は、ハローパケットを受信すると、クラスタ情報に含まれているクラスタ識別子とendフラグの値を確認する。さらに、参加処理部23は、自ノードの装置識別子を含むエントリがフリーノードリスト33に保持されているかを確認する。自ノードが既にクラスタへの参加を要求している場合、フリーノードリスト33に自ノードの装置識別子を含むエントリが含まれている。一方、フリーノードリスト33に自ノードの装置識別子を含むエントリがない場合は、自ノードはクラスタへの参加を要求していない。そこで、参加処理部23は、参加が可能なクラスタendフラグ=falseに参加を要求するために、クラスタ情報中のクラスタ識別子と自ノードの識別子の組合せをフリーノードリスト33に記録する。一方、フリーノードリスト33に自ノードの装置識別子を含むエントリが含まれている場合、自ノードは既にクラスタへの参加を要求している。そこで、参加処理部23は、クラスタに参加できたかを確認するために、クラスタ情報に自ノードの識別子が含まれているかを確認する。クラスタ情報に自ノードの識別子が含まれている場合、参加処理部23は、自ノードはクラスタに参加していると判断してクラスタリストを更新し、フリーノードリスト33のエントリを削除する。また、クラスタ情報中のendフラグがtrueである場合、参加処理部23はフリーノードリストのエントリを削除する。フリーノードリストに自ノードの装置識別子が含まれていない場合に、同様にendフラグがtrueであるクラスタ情報を受信すると、自ノードを起点ノードに指定して、ノード種別情報31の情報を変更し、さらに、クラスタリスト32を生成する。ハローパケット生成部27は、ハローパケットを生成し、送信部12に出力する。ハローパケットのフォーマットは、図4の通りである。また、ハローパケット生成部27は、クラスタリスト32とフリーノードリスト33を用いてハローパケットを生成する。なお、参加ノードもしくは起点ノードに備えられたハローパケット生成部27は、ルーティングテーブルに記録されている情報も、ハローパケットに含めることができる。図6は、ノード装置10のハードウェア構成の例を示す図である。ノード装置10は、MicroProcessingUnitMPU100、バス101101a~101c、PHYsicallayerPHYチップ102、タイマIC104、DynamicRandomaccessMemoryDRAM106、フラッシュメモリ107、無線モジュール108を備える。バス101a~101cは、MPU100、PHYチップ102、タイマIC104、DRAM106、フラッシュメモリ107、無線モジュール108の間でデータの入出力が可能になるように接続する。MPU100は、フラッシュメモリ107に格納されたファームウェアなどのプログラムを読み込んで処理を行う。このとき、MPU100は、DRAM106をワーキングメモリとして使用できる。MPU100は、設定部21、ノード種別判定部22、参加処理部23、クラスタリスト更新部24、クラスタ生成部25、ノードリスト生成部26、および、ハローパケット生成部27として動作する。DRAM106は、ノード種別情報31、クラスタリスト32、フリーノードリスト33、ルーティングテーブルを記憶し、さらに、MPU100での処理に用いられる情報を記憶できる。なお、ノード種別情報31はフラッシュメモリ107に格納されていても良い。この場合、起動後に、フラッシュメモリ107に格納されているノード種別情報31がDRAM106に読み込まれる。PHYチップ102や無線モジュール108は、受信部11および送信部12として動作する。ここで、PHYチップ102はオプションであり、ノード装置10は、PHYチップ102を介して回線による通信を行うことができる。例えば、L3ネットワークとアドホックネットワークとの間のゲートウェイとして動作するノード装置10は、L3ネットワーク中のノード装置とPHYチップ102を用いて通信することができる。タイマIC104は、ハローパケットを送信する時刻を決定する際に用いられる。ハローパケット生成部27や送信部12は、タイマIC104から得られた時刻情報に基づいてハローパケットを送信するタイミングを決定することができる。なお、ファームウェアなどのプログラムは、コンピュータ読み取り可能な記憶媒体に格納されて提供され、ノード装置10にインストールされてもよい。または、プログラムは、ネットワークからPHYチップ102や無線モジュール108を介してダウンロードされることによりノード装置10にインストールされてもよい。また、実施形態に応じて、DRAM106やフラッシュメモリ107以外の他の種類の記憶装置が利用されることがある。また、ノード装置10は、コンピュータによって実現されても良い。<第1の実施形態>図7に、アドホックネットワークの例を示す。図7に示すネットワークには、ノードGW、ノードA~Dの5つのノードが含まれている。図7では、隣接ノード同士を実線で結んでいる。例えば、ノードGWの隣接ノードは、ノードAであり、ノードAの隣接ノードは、ノードGWとノードBである。同様に、ノードCの隣接ノードはノードBとノードDである。以下の説明では、アドホックネットワークが形成されたときに、ノードGWが起点ノードに設定され、ノードA~Dはフリーノードに設定されたものとする。図8は、クラスタの生成の際に行われる動作の例を説明するシーケンス図である。以下、図8を参照しながら、図7のネットワークでクラスタが生成される場合について、個々のノード装置10の動作を説明する。以下の説明では、クラスタ中のノード装置10の数の上限閾値が3である場合を例として説明するが、クラスタ中のノード装置10の数の上限は、1以上の任意の整数に変更されることがある。さらに、以下の説明では、クラスタの識別子は、そのクラスタを生成した起点ノードのIDであるものとする。例えば、ノードGWが起点ノードとなっているクラスタの識別子はGWである。また、以下の記載では、クラスタを特定する際に、クラスタという文字列の後にクラスタの識別子を続けた文字列を用いることがあるものとする。例えば、クラスタ識別子がGWであるクラスタをクラスタGWと記載することがある。なお、図8では図を見やすくするために、ハローパケットを受信したノードでクラスタリストCL32やフリーノードリストFNL33が更新されない場合、ハローパケットの送受信を表す矢印を省略している。1ノードGWの設定部21は、ノードGWを起点ノードに設定し、ノードGWが起点ノードであることを示す情報をノード種別情報31に格納する。さらに、設定部21は、クラスタGWとクラスタGWの情報を記録するクラスタリスト32を生成する。ここで、設定部21は、クラスタGWを識別する識別子GWとクラスタGWに含まれるノードをクラスタリスト32に記録し、endフラグをfalsefに設定する。2ノードGWのハローパケット生成部27は、ハローパケットを生成する。ハローパケット生成部27は、ヘッダ中のGSとLSをノードGWのアドレスにし、GDとLDを全ての隣接ノードを表すブロードキャストアドレスに設定する。さらに、ハローパケット生成部27は、クラスタリスト32に記録されている情報を、クラスタリストフィールドに格納する。このため、ノードGWは、ハローパケットにより、クラスタ識別子GWとendフラグ=falseという情報を隣接ノードに通知することができる。ノードGWは起点ノードである。また、フリーノードリスト33中にエントリが含まれていないため、ノードGWのハローパケット生成部27は、フリーノード情報をハローパケットに含めない。さらに、この時点ではルーティングテーブルが生成されていないので、ハローパケット生成部27は、ルーティングテーブルの経路情報をハローパケットに含めない。従って、ノードGWは、ハローパケットにより、ノードGWが隣接ノードであることを、ハローパケットを受信するノード装置10に、経路情報として通知する。ハローパケット生成部27は、生成したハローパケットを送信部12に出力する。送信部12は、ハローパケットをブロードキャスト送信する。3ノードAはノードGWの隣接ノードであるので、ノードGWから送信されたハローパケットを受信する。ノードAのノード種別判定部22は、受信部11を介してハローパケットを受信すると、ノード種別情報31を用いてノードAがフリーノードに設定されていることを認識する。そこで、ノード種別判定部22は、ハローパケットに含まれているクラスタ情報を参加処理部23に出力する。参加処理部23は、クラスタ情報中のendフラグの値がfalseであるので、クラスタGWに含まれているノード装置10の数が閾値未満であると認識する。そこで、参加処理部23は、ノードAをクラスタGWに参加させることを決定し、ノードAのIDとクラスタGWの識別子を対応付けてフリーノードリスト33に格納する。4ノードAのハローパケット生成部27は、ハローパケットを生成する。このとき、ハローパケット生成部27は、フリーノードリスト33に記録されている情報を、フリーノード情報として、フリーノードリストフィールドに格納する。このため、ノードAは、ノードAがクラスタGWに参加しようとしていることを、ハローパケットにより隣接ノードに通知することができる。この時点では、ノードAはいずれのクラスタにも所属しておらず、クラスタリスト32に情報が記録されていないため、ハローパケット生成部27は、クラスタ情報をハローパケットに含めない。また、ノードAではルーティングテーブルも生成されていないので、ハローパケットにはルーティングテーブルからの経路情報も含まれない。従って、ハローパケットにより、ノードAは、ノードAが隣接していることを、隣接ノードに経路情報として通知する。さらに、ハローパケット生成部27は、ヘッダ中のGSとLSを自ノードのアドレスに設定し、GDとLDを全ての隣接ノードを表すブロードキャストアドレスに設定する。ハローパケット生成部27は、生成したパケットを送信部12に出力する。ノードAの送信部12は、ハローパケットをブロードキャスト送信する。5ノードGWとノードBは、ノードAが送信したハローパケットを受信する。ノードGWのノード種別判定部22は、ノードGWが起点ノードであることを確認すると、受信したハローパケットのフリーノード情報をクラスタ生成部25に出力する。クラスタ生成部25は、フリーノード情報に含まれているクラスタ識別子が生成したクラスタの識別子と一致しているかを確認する。フリーノード情報に含まれているクラスタ識別子が生成したクラスタの識別子と一致している場合、クラスタ生成部25は、フリーノード情報に含まれている識別子で識別されるノード装置10を、生成したクラスタに加えることができるかを確認する。ここでは、クラスタ生成部25は、クラスタ識別子がGWであるかを確認する。手順4で述べたように、ノードAの識別子はクラスタGWの識別子に対応付けられているので、クラスタ生成部25は、ノードAをクラスタGWに加える。クラスタ生成部25は、ノードGWが保持しているクラスタリスト32にノードAの識別子Aを加える。クラスタ生成部25は、ノードAが加わった後でクラスタGWに含まれているノードの数を閾値と比較する。このときは、クラスタGWにはノードGWとAが含まれているので、クラスタGW中のノード装置10の数は閾値を越えていない。そこで、クラスタ生成部25は、endフラグの値をfalseのままにする。一方、ノードBは、フリーノードであるため、ノードBのノード種別判定部22は、ノードAから受信したハローパケットからクラスタ情報を抽出して参加処理部23に出力しようとする。しかし、手順4でノードAが送信したハローパケットにはクラスタ情報が含まれていない。そこで、ノードBはクラスタの生成に関する処理を終了する。6ノードGWのハローパケット生成部27は、ハローパケットを生成する。ヘッダの設定は手順2と同様である。ハローパケット生成部27は、クラスタリスト32に記録されている情報を、クラスタリストフィールドに格納する。今回生成されるハローパケットのクラスタ情報により、クラスタ識別子:GWクラスタGWに参加しているノード:GW、Aendフラグ=falseという情報が隣接ノードに通知される。生成されたハローパケットは、ブロードキャスト送信される。7ノードAがノードGWからハローパケットを受信すると、ノードAのノード種別判定部22は、ハローパケット中のクラスタ情報を参加処理部23に出力する。参加処理部23は、クラスタ情報に含まれているクラスタ識別子、クラスタに含まれるノード、および、endフラグの値を確認する。ここで、ノードAは、手順4で送信したハローパケットを用いてクラスタGWへの参加を要求しているので、参加処理部23は、クラスタに含まれるノードの識別子を確認することにより、クラスタGWにノードAが加えられたかを確認する。今回ノードAが受信したハローパケットのクラスタ情報には、クラスタGWに参加しているノードはノードGWとノードAであることが記録されている。そこで、参加処理部23は、ノードAがクラスタGWに参加したことを認識して、クラスタリスト32を更新する。更新後のクラスタリスト32に含まれている情報は、クラスタ識別子:GWクラスタGWに参加しているノード:GW、Aendフラグ=falseとなる。参加処理部23は、ノード種別情報31を更新することにより、ノードAの設定をフリーノードから参加ノードに変更する。さらに、参加処理部23は、フリーノードリスト33とクラスタ情報を比較し、クラスタ情報に含まれているノードをフリーノードリスト33から削除する。ここでは、手順3でノードAがフリーノードリスト33に記録されたが、その後に受信したクラスタ情報にノードAが含まれている。そこで、参加処理部23は、フリーノードリスト33からノードAのエントリを削除する。8ノードAのハローパケット生成部27は、ハローパケットを生成する。このとき、ハローパケット生成部27は、クラスタリスト32に記録されている情報を、クラスタ情報として、クラスタリストフィールドに格納する。このため、ノードAは、クラスタGWに参加していること、クラスタGWに含まれるノード装置10、および、クラスタGWにまだノード装置10が参加できることを、ハローパケットを用いて隣接ノード装置に通知することができる。なお、この時点では、ノードAはフリーノードリスト33にフリーノードの情報を保持していないので、ハローパケットのフリーノードリストフィールドにはフリーノード情報が含まれない。ハローパケットのヘッダの設定は手順4と同様である。生成されたハローパケットはブロードキャスト送信される。9ノードGWとノードBは、ノードAが送信したハローパケットを受信する。ノードBはフリーノードであるため、ノードBのノード種別判定部22は、受信したハローパケット中のクラスタ情報を参加処理部23に出力する。クラスタ情報に含まれているendフラグの値はfalseであるので、参加処理部23は、クラスタGWに含まれているノード装置10の数が閾値未満であることを認識する。そこで、参加処理部23は、ノードBをクラスタGWに参加させることを決定し、ノードBの識別子とクラスタGWの識別子を対応付けてフリーノードリスト33に格納する。一方、ノードGWでは、手順5で述べたように、ハローパケット中のフリーノード情報が確認される。手順8で生成されたハローパケットにはフリーノード情報が含まれていないので、ノードGWのクラスタ生成部25は特に処理を行わない。10ノードBのハローパケット生成部27は、ハローパケットを生成する。ここで生成されるハローパケットがブロードキャスト送信されることにより、ノードBがクラスタGWに参加しようとしていることが、ノードBの隣接ノードに通知される。11ノードAのノード種別判定部22は、ノードBから送信されたハローパケットを受信する。ノードAは手順7で参加ノードに設定されているので、ノードAのノード種別判定部22は、図5に示すように、フリーノード情報をノードリスト生成部26に出力する。ノードリスト生成部26は、フリーノード情報に含まれている情報を用いてノードAのフリーノードリスト33を更新する。従って、更新後のノードAのフリーノードリスト33には、ノードBのIDとクラスタGWの識別子の組合せが格納される。12ノードAのハローパケット生成部27は、ハローパケットを生成する。このとき、ハローパケット生成部27は、クラスタリスト32中の情報を、クラスタ情報として、クラスタリストフィールドに格納し、フリーノードリスト33中の情報をフリーノード情報としてフリーノードリストフィールドに格納する。従って、ノードAは、ノードBがクラスタGWに参加しようとしていることをハローパケットによってブロードキャストする。13ノードGWとノードBは、ノードAが送信したハローパケットを受信する。ノードGWのノード種別判定部22は、ハローパケットから抽出したフリーノード情報をクラスタ生成部25に出力する。クラスタ生成部25は、手順5でノードAをクラスタGWに加えたときと同様の処理により、ノードBをクラスタGWに追加する。クラスタ生成部25は、ノードBが加わった後でクラスタGWに含まれているノードの数を閾値と比較する。このときは、クラスタGWにはノードGW、A、Bが含まれているので、クラスタGW中のノード装置10の数は、閾値と一致する。そこで、クラスタ生成部25は、endフラグの値をtrueに変更する。この処理により、ノードGWのクラスタリスト32は、クラスタ識別子:GWクラスタGWに参加しているノード:GW、A、Bendフラグ=trueのように更新される。一方、ノードBはフリーノードであるため、ノードBのノード種別判定部22は、ノードAから受信したハローパケットからクラスタ情報を抽出すると、クラスタ情報を参加処理部23に出力する。クラスタ情報に含まれている情報は手順9でノードBが受信したハローパケットのクラスタ情報と同じであるため、ノードBは処理を終了する。14ノードGWは、手順6と同様にハローパケットを生成し、生成したハローパケットをブロードキャスト送信する。15ノードAがノードGWからハローパケットを受信すると、ノードAのノード種別判定部22は、ハローパケットに含まれているクラスタ情報をクラスタリスト更新部24に出力する。今回ノードAが受信したハローパケットのクラスタ情報には、クラスタGWに参加しているノードはノードGW、A、Bであることが記録されている。そこで、クラスタリスト更新部24は、クラスタ情報に合せてクラスタリスト32を更新する。更新後のクラスタリスト32に含まれている情報は、クラスタ識別子:GWクラスタGWに参加しているノード:GW、A、Bendフラグ=trueとなる。クラスタリスト更新部24は、フリーノードリスト33とクラスタ情報を比較し、クラスタ情報に含まれているノードをフリーノードリスト33から削除する。ここでは、手順11でノードBがフリーノードリスト33に記録されたが、その後に受信したクラスタ情報にノードBが含まれている。そこで、クラスタリスト更新部24は、フリーノードリスト33からノードBのエントリを削除する。16ノードAのハローパケット生成部27は、手順8と同様に、ハローパケットを生成し、ブロードキャスト送信する。17ノードBがノードAからハローパケットを受信すると、ノードBのノード種別判定部22は、ハローパケットに含まれているクラスタ情報を参加処理部23に出力する。以後、手順7でノードAの参加処理部23が行う動作と同様の動作を、ノードBの参加処理部23が行うことにより、クラスタリスト32とフリーノードリスト33が更新される。クラスタリスト32には、いずれのエントリも含まれなくなり、更新後のクラスタリスト32に含まれている情報は、クラスタ識別子:GWクラスタGWに参加しているノード:GW、A、Bendフラグ=trueとなる。さらに、ノードBの設定は、フリーノードから参加ノードに変更される。18ノードBのハローパケット生成部27は、手順8で述べた処理と同様の処理によりハローパケットを生成し、ブロードキャスト送信する。19ノードA、Cは、ノードBが送信したハローパケットを受信する。ノードAでは、ノードBから受信したハローパケットによってはクラスタリスト32とフリーノードリスト33のいずれも変更されない。ノードCはフリーノードであるため、ノードCのノード種別判定部22は、受信したハローパケットからクラスタ情報を抽出すると、クラスタ情報を参加処理部23に出力する。クラスタ情報に含まれているendフラグの値はtrueであるので、参加処理部23は、クラスタGWに含まれているノード装置10の数が閾値に達していることを認識する。そこで、参加処理部23は、ノードCをクラスタGWに参加させることができないと認識し、ノードCを起点ノードに設定する。また、参加処理部23はノード種別情報31の値を変更するとともに、ノードCを含むクラスタCを生成する。このときに生成されたクラスタリスト32に含まれる情報は、クラスタ識別子:CクラスタCに参加しているノード:Cendフラグ=falseとなる。20ノードCは、手順2でノードGWが行った処理と同様の処理によりハローパケットを生成し、ブロードキャストする。21ノードDは、手順3でノードAが行った処理と同様の処理によりフリーノードリスト33を更新する。更新後のフリーノードリスト33には、ノードDの識別子とクラスタCの識別子が対応付けられている。さらに、ノードDは、手順4と同様の処理によりハローパケットを生成し、ブロードキャストする。この処理により、ノードDはクラスタCに参加しようとしていることを、ハローパケットにより隣接ノードに通知することができる。22ノードCは、ノードDから送信されたハローパケットを受信すると、手順5で説明したノードGWの処理と同様の処理により、ノードDをクラスタCに追加する。さらに、ノードCは、手順6で説明したノードGWの処理と同様の処理により、ハローパケットをブロードキャスト送信する。23ノードDは、ノードCからハローパケットを受信すると、クラスタリスト32とフリーノードリスト33を更新し、参加ノードに設定を変更する。このときの動作は、手順7で説明したノードAの動作と同様である。以上説明した手順1~23により、図9に示すようにクラスタGWとクラスタCが生成される。クラスタが生成されると、各ノード装置は、所属クラスタに含まれる他のノード装置に至る経路をルーティングテーブルに記録する。ルーティングテーブルの生成には、ハローパケットのヘッダ、経路情報、クラスタ情報中のクラスタ識別子が用いられる。各ノード装置は、ハローパケット中のクラスタ情報に含まれているクラスタ識別子が所属クラスタの識別子である場合、経路情報に記録されているノードかヘッダ中のLSをルーティングテーブルのGDとし、ハローパケットのLSをルーティングテーブルのLDとする。図10は、クラスタ生成部25の動作の例を説明するフローチャートである。クラスタ生成部25は、クラスタリストCL32のendフラグの値がtrueであるかを確認することにより、新たなノード装置10をクラスタに追加できるかを確認するステップS1。endフラグの値がtrueではない場合、新たなノード装置10をクラスタに追加することができる。そこで、クラスタ生成部25は、入力されたフリーノード情報が、自ノードで生成したクラスタに参加しようとしているノードを特定できる情報であるかを確認する。このため、クラスタ生成部25は、フリーノード情報に含まれているクラスタ識別子と、クラスタリスト32に含まれているクラスタ識別子を比較するステップS1でNo、ステップS2。フリーノード情報と、クラスタリスト32で含まれているクラスタ識別子が一致した場合、クラスタ生成部25は、自ノードが生成しているクラスタに対して参加が要求されたと認識するステップS2でNo。そこで、クラスタ生成部25は、フリーノード情報に含まれているノード識別子で識別されるノードを、クラスタに追加するステップS3。一方、ステップS1、2のいずれかでYesと判定された場合は、クラスタ生成部25は、新たなノード装置10をクラスタに追加せずに処理を終了する。図11は、ノードリスト生成部26の動作の例を説明するフローチャートである。ステップS11、S12は、ステップS1、S2と同様の処理である。ステップS11によりノードリスト生成部26は、参加ノードの所属クラスタに、新たなノード装置10を追加できるかを確認する。フリーノード情報と、クラスタリスト32に含まれているクラスタ識別子が一致した場合、ノードリスト生成部26は、所属クラスタに対して参加が要求されたと認識する。そこで、ノードリスト生成部26は、フリーノード情報に含まれているノードの識別子が、クラスタリスト32に記録されているかを確認するステップS13。フリーノード情報に含まれているノードの識別子が、クラスタリスト32に記録されていない場合、フリーノード情報に含まれているノードの識別子をフリーノードリスト33に加えるステップS13でNo、ステップS14。一方、ステップS11~S13のいずれかでYesと判定された場合、ノードリスト生成部26は処理を終了する。図12は、クラスタリスト更新部24の動作の例を説明するフローチャートである。クラスタリスト更新部24は、クラスタ情報に含まれているクラスタ識別子と、クラスタリスト32に含まれているクラスタ識別子を比較するステップS21。クラスタ情報とクラスタリスト32でクラスタ識別子が一致した場合、クラスタリスト更新部24は、入力されたクラスタ情報が所属クラスタに関する情報であると認識するステップS21でNo。そこで、クラスタリスト更新部24は、クラスタ情報に合せてクラスタリスト32を更新するステップS22。さらに、クラスタリスト更新部24は、フリーノードリスト33に含まれているノードの識別子のうち、クラスタ情報に含まれている識別子のエントリをフリーノードリスト33から削除する。また、自ノードのクラスタ情報のendフラグがtrueであるときも、フリーノードリスト33に含まれているエントリを削除するステップS23。ここで、自ノードのクラスタ情報のendフラグがtrueである場合のフリーノードリスト33からのエントリの削除は、所属クラスタにノード装置10を追加することができないために行われる。一方、クラスタ情報とクラスタリスト32でクラスタ識別子が一致しない場合、クラスタリスト更新部24は、ステップS22とS23の処理を行わずに処理を終了するステップS21のYes。図13は、参加処理部23の動作の例を説明するフローチャートである。参加処理部23は、フリーノードリスト33に自ノードのエントリがあるかを確認するステップS31。フリーノードリスト33に自ノードのエントリがない場合、クラスタ情報に含まれているendフラグの値がtrueであるかを確認するステップS31でNo、ステップS32。endフラグの値がtrueでない場合、参加処理部23は、自ノードの識別子をクラスタ情報に含まれているクラスタ識別子に対応付けてフリーノードリスト33に記録するステップS32でNo、ステップS33。endフラグの値がtrueである場合、参加処理部23は、自ノードが起点ノードとして動作できるようにクラスタリスト32を生成するステップS32でYes、ステップS34。このとき、クラスタリスト32には、自ノードの識別子がクラスタ識別子として記録され、新たに生成されたクラスタには、自ノードが含まれる。さらに、参加処理部23は、自ノードの設定を起点ノードに変更するステップS35。一方、フリーノードリスト33に自ノードのエントリがある場合、参加処理部23は、クラスタ情報に自ノードの識別子が含まれているかを確認するステップS36。クラスタ情報に自ノードの識別子が含まれている場合、参加処理部23は、フリーノードリスト33から自ノードのエントリを削除し、クラスタ情報に含まれているノードの情報をクラスタリスト32に記録するステップS36でYes、ステップS37。さらに、参加処理部23は、自ノードの設定を参加ノードに変更するステップS38。一方、クラスタ情報に自ノードの識別子が含まれていない場合、参加処理部23は、クラスタ情報に含まれているendフラグの値がtrueであるかを確認するステップS36でNo、ステップS39。クラスタ情報に含まれているendフラグの値がtrueでない場合、参加処理部23は処理を終了するステップS39でNo。一方、クラスタ情報に含まれているendフラグの値がtrueである場合、参加処理部23は、参加を要求したクラスタのノード装置10の数が閾値に達したため、自ノードがクラスタに参加できなかったことを認識するステップS39でYes。そこで、参加処理部23は、フリーノードリスト33から自ノードのエントリを削除するステップS40。ステップS39、S40の処理が行われる場合については、後で詳しく説明する。以上説明したように、実施形態にかかる方法では、クラスタを生成する際に用いられる情報がハローパケットによって送受信される。従って、クラスタ生成のためにハローパケット以外の制御パケットが使用される場合に比べて、制御パケットの送受信のために使用されるネットワーク中の帯域が少なくなる。従って、実施形態にかかる方法を用いることにより、ユーザデータを含むパケットの送受信に使用できる帯域を増やすことができる。さらに、実施形態にかかる方法を用いると、アドホックネットワークに含まれる各ノード装置10が自律的に参加するクラスタを決定し、クラスタへの参加要求を行う。このため、例えば起点ノードが選択したノード装置10をクラスタに参加させることによりクラスタが生成される場合に比べ、クラスタの生成を行うために起点ノードが行う処理が軽減されている。従って、起点ノードとして用いられるノード装置10の処理能力が低くてもクラスタを生成できることになるので、処理能力の低いノード装置10で形成されたアドホックネットワークでもクラスタの生成を行うことができる。また、クラスタの生成に用いられる制御情報がハローパケットで伝播されるため、制御情報がフラッディングされることを防ぐことができる。従って、ノード装置10の処理リソースMPU100やDRAM106の使用量も抑えることができる。さらに、起点ノードは、生成しているクラスタのノード装置10の数が閾値以下になるように調整する。このため、クラスタの生成後にルーティングテーブルに記憶する経路の数は閾値が小さいほど小さくなる。従って、ノード装置10がネットワーク中の他のノード装置10に至る経路を記憶する負担も軽減される。<第2の実施形態>本実施形態では、フリーノード情報により参加を要求してきたノードがクラスタに参加できない場合の処理を説明する。図14は、アドホックネットワークの例を示す。図14に示すアドホックネットワークには、ノードGW、ノードA~Eの6つのノードが含まれている。図14では、図7と同様に隣接ノード同士を実線で結んでいる。図15は、クラスタの生成の際に行われる動作の例を説明するシーケンス図である。図15では、図14に示すアドホックネットワークのうちで、ノードGW、A、B、Eの間で送受信されるハローパケットに基づいて行われる動作を示す。以下の説明では、クラスタ中のノード装置10の数の上限閾値が3であるが、ノードGWとノードAが参加した状態のクラスタGWに、ノードBとノードEの2つのノード装置10が参加を要求した場合に行われる処理について説明する。なお、この例でも閾値が3である場合を例として説明するが、クラスタ中のノード装置10の数は、1以上の任意の整数とすることができる。図15の手順31~37は、図8を参照しながら説明した手順1~7と同様である。38ノードAのハローパケット生成部27は、ハローパケットを生成する。ハローパケットの生成方法、および、生成されたハローパケットに含まれる情報は、図8を参照しながら説明した手順8と同様である。生成されたハローパケットは、ノードAからブロードキャスト送信される。このため、ノードAの隣接ノードであるノードGW、B、Eは、ノードAから送信されたハローパケットを受信する。39ノードBはフリーノードであるため、ノードBのノード種別判定部22は、受信したハローパケットからクラスタ情報を抽出すると、クラスタ情報を参加処理部23に出力する。クラスタ情報中のendフラグの値はfalseであるので、参加処理部23は、クラスタGWに参加できる可能性があることを認識する。そこで、参加処理部23は、ノードBをクラスタGWに参加させるために、ノードBのIDとクラスタGWの識別子を対応付けてフリーノードリスト33に格納する。40ノードEもフリーノードであるため、ノードEでも、ノードAから受信したハローパケットに含まれていたクラスタ情報を、参加処理部23が処理する。クラスタ情報中のendフラグの値はfalseであるので、ノードEの参加処理部23も、ノードBの参加処理部23と同様に、ノードEがクラスタGWに参加できる可能性があることを認識する。そこで、ノードEの参加処理部23も、ノードEをクラスタGWに参加させるためにフリーノードリスト33を更新する。この更新処理により、ノードEの識別子とクラスタGWの識別子の組み合わせがフリーノードリスト33に格納される。41ノードBのハローパケット生成部27は、ハローパケットを生成する。ここで生成されるハローパケットには、ノードBのフリーノードリスト33の情報が含まれる。従って、ノードBは、ハローパケットをブロードキャスト送信することにより、ノードBがクラスタGWに参加しようとしていることを、ノードBの隣接ノードノードA、Cに通知する。42ノードEのハローパケット生成部27も、ハローパケットを生成する。ここで生成されるハローパケットには、ノードEのフリーノードリスト33の情報が含まれる。従って、ノードEは、ノードEがクラスタGWに参加しようとしていることを、ハローパケットを用いて隣接ノードノードAに通知する。43ノードAのノードリスト生成部26は、ノードBから受信したハローパケット中のフリーノード情報により、ノードBがクラスタGWに参加しようとしていることを認識する。さらに、ノードリスト生成部26は、ノードEから受信したハローパケット中のフリーノード情報により、ノードEもクラスタGWに参加しようとしていることを認識する。そこで、ノードリスト生成部26は、ノードBとEの両方について、それぞれクラスタGWの識別子と対応付けてフリーノードリスト33に記録する。44ノードAのハローパケット生成部27は、ハローパケットを生成してブロードキャスト送信する。ノードAが送信したハローパケットのフリーノード情報には、ノードBとノードEの両方がクラスタGWに参加しようとしていることが記録される。45ノードGWのノード種別判定部22は、ハローパケットから抽出したフリーノード情報をクラスタ生成部25に出力する。クラスタ生成部25は、フリーノード情報から、ノードBとノードEの両方がクラスタGWに参加しようとしていることを認識する。クラスタ生成部25は、閾値が3であることと、クラスタGWに既にノードGWとノードAが参加していることから、一方のノード装置10をクラスタGWに参加させることができるが、他方をクラスタGWに含めることができないことを認識する。そこで、クラスタ生成部25は、クラスタGWへの参加を要求してきたノードのうちの1つをクラスタGWに参加させるノードに選択する。クラスタに加えるノードを選択するときにクラスタ生成部25が用いる選択方法は、任意である。以下の説明では、クラスタ生成部25はノードBをクラスタGWに参加させるノードとして選択したものとする。クラスタ生成部25は選択したノードBをクラスタGWに追加する。この処理により、クラスタ生成部25は、クラスタリスト32の情報を以下のように変更する。クラスタ識別子:GWクラスタGWに参加しているノード:GW、A、Bendフラグ=true46ノードGWは、手順6と同様にハローパケットを生成し、生成したハローパケットをブロードキャスト送信する。47ノードAがノードGWからハローパケットを受信すると、ノードAのクラスタリスト更新部24は、ハローパケット中のクラスタ情報を用いてクラスタリスト32とフリーノードリスト33を更新する。その後、ノードAのハローパケット生成部27は、ハローパケットを生成してブロードキャスト送信する。ノードAが送信したハローパケットのクラスタ情報には、ノードGW、ノードA、および、ノードBがクラスタGWに参加していることが記録されている。さらに、endフラグはtrueに設定されている。48ノードBがノードAからハローパケットを受信すると、ノードBの参加処理部23は、ノードBがクラスタGWに参加したことを認識する。そこで、参加処理部23は、クラスタリスト32とフリーノードリスト33を更新し、さらに、ノードBの設定を参加ノードに変更する。49ノードEがノードAからハローパケットを受信すると、ノードEの参加処理部23は、ノードEがクラスタGWに参加していないことと、クラスタGWにノード装置10が追加されないことendフラグ=trueを認識する。そこで、参加処理部23は、手順42で送信したハローパケットにより参加を要求したクラスタには参加できないため、他のクラスタに参加できるように、フリーノードリスト33のエントリを削除する。この処理により、ノードEはクラスタGW以外の他のクラスタに参加しているノード装置10からハローパケットを受信できれば、他のクラスタに参加を要求できるようになる。50ノードAは、手順47と同様にハローパケットをブロードキャスト送信する。51ノードEはノードAからハローパケットを受信する。受信したハローパケットのクラスタ情報には、クラスタGWを識別する識別子と、クラスタGWにはノード装置10を追加できないことを示す情報endフラグ=trueが含まれている。ここで、ノードEは、手順49でフリーノードリスト33のエントリを削除した後に、クラスタGW以外のクラスタに所属するノード装置10からのハローパケットを受信できなかったものとする。すると、ノードEの参加処理部23は、ノードEを起点ノードに設定し、ノードEを含むクラスタを生成する。52一方、ノードB、C、Dでは、手順18~23で説明した処理が行われることにより、クラスタCが生成される。以上の手順により、参加を要求したクラスタに参加できない場合でも、ノード装置10は、他のクラスタに参加を要求することができる。また、参加を要求できるクラスタが無いと判断した場合、ノード装置10は、起点ノードとしてクラスタの生成を開始できる。さらに、本実施形態でも、これらの処理に用いられる情報は、いずれも、ハローパケットにより送受信される。従って、クラスタ生成のためにハローパケット以外の制御パケットが使用される場合に比べて、制御パケットの送受信のために使用されるネットワーク中の帯域が少なくなる。<第3の実施形態>本実施形態では、参加ノードが、参加を要求するノードとして通知するノード装置10の数を、なるべくクラスタに参加できるノード数の上限を超えないように制限する場合のクラスタの生成について説明する。本実施形態では、参加ノードがフリーノード情報を含むハローパケットを受信すると、参加ノードのノードリスト生成部26は、ハローパケットで通知されたノードの全てが所属クラスタに参加できるかを確認する。ハローパケットで通知されたノードの全てが所属クラスタに参加できない場合、ノードリスト生成部26は、所属クラスタに参加させるために起点ノードに通知するノードを選択し、選択したノードの識別子をフリーノードリスト33に記録する。図16は、クラスタの生成の際に行われる動作の例を説明するシーケンス図である。以下、図16を参照しながら詳しい手順を説明する。図16でも、図15と同様に、図14に示すアドホックネットワークのうちで、ノードGW、A、B、Eの間で送受信されるハローパケットに基づいて行われる動作を示す。以下の説明でも、図15と同様に、クラスタへの参加を要求したノード装置10の数が、クラスタに所属できるノード数の上限を越えた場合について説明する。図16の手順61~72は、図15を参照しながら説明した手順31~42と同様である。73ノードAのノードリスト生成部26は、ノードBから受信したハローパケット中のフリーノード情報により、ノードBがクラスタGWに参加しようとしていることを認識する。さらに、ノードリスト生成部26は、ノードEから受信したハローパケット中のフリーノード情報により、ノードEもクラスタGWに参加しようとしていることを認識する。ノードリスト生成部26は、クラスタリスト32を参照することにより、クラスタGWに参加しているノード装置10の数を確認する。ここでは、クラスタリスト32に含まれている情報は、クラスタ識別子:GWクラスタGWに参加しているノード:GW、Aendフラグ=falseであり、クラスタGWに含まれるノード数は2である。一方、クラスタGWに参加できるノード数の上限は3である。そこで、ノードリスト生成部26は、ノードBとノードEのいずれかしかクラスタGWに参加できないことを認識し、クラスタGWに参加しようとしているノードとして通知するノード装置10を選択する。ここでは、ノードリスト生成部26はノードBを選択したものとする。なお、クラスタに加えるノードを選択するときにクラスタ生成部25が用いる選択方法は任意である。ノードリスト生成部26は、フリーノードリスト33にノードBの識別子とクラスタGWの識別子を対応付けて記録する。74ノードAのハローパケット生成部27は、ハローパケットを生成してブロードキャスト送信する。ノードAが送信したハローパケットのフリーノード情報には、ノードBがクラスタGWに参加しようとしていることが記録される。75ノードGWのノード種別判定部22は、ハローパケットから抽出したフリーノード情報をクラスタ生成部25に出力する。クラスタ生成部25は、フリーノード情報から、ノードBがクラスタGWに参加しようとしていることを認識する。クラスタ生成部25は、閾値が3であることと、クラスタGWに既にノードGWとノードAが参加していることから、ノードBをクラスタGWに参加させる。この処理により、クラスタ生成部25は、クラスタリスト32の情報を以下のように変更する。クラスタ識別子:GWクラスタGWに参加しているノード:GW、A、Bendフラグ=true手順76~81の処理は、図15を参照しながら説明した手順46~51と同様である。さらに、ノードB、C、Dでは、手順18~23で説明した処理が行われることにより、クラスタCが生成されるものとする。本実施形態では、ノードリスト生成部26は、受信したフリーノード情報中の装置識別子からフリーノードリスト33に追加する装置識別子を選択し、選択した装置識別子をフリーノードリスト33に追加する。従って、本実施形態では、ノードリスト生成部26の動作のうち図11のステップS14は、受信したフリーノード情報中の装置識別子から選択した装置識別子をフリーノードリスト33に追加するという動作に変更される。ここで、ノードリスト生成部26が装置識別子を選択する方法は任意である。例えば、ノードリスト生成部26は、先に認識した装置識別子を優先的にフリーノードリスト33に追加することができる。また、ハローパケットに通信品質情報が含まれている場合、ノードリスト生成部26は、通信品質が良好なノード装置10の装置識別子を優先的にフリーノードリスト33に追加することもできる。なお、本実施形態でもノードリスト生成部26はステップS11~S13の動作を行い、ステップS11~S13は、図11を参照しながら説明したとおりである。本実施形態では、参加要求の数がクラスタに参加できるノード数の上限を超えているかを参加ノードが確認し、上限を超える参加通知を参加ノードが起点ノードに通知しない。このため、起点ノードの負担をさらに軽減することができる。なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。例えば、以上の説明では、クラスタ識別子が起点ノードの識別子と一致している場合を例として説明したが、クラスタ識別子は、個々のクラスタを一意に識別できる任意の形式の識別子とすることができる。