サーバとの間が複数の中継装置によって中継可能なように構成されているネットワーク中のノード装置であって、隣接ノード装置からフレームを受信する受信部と、前記複数の中継装置の中のそれぞれの中継装置を起点としたときの前記隣接ノード装置までのホップ数が、前記隣接ノード装置からの同期要求と共に通知されると、前記ホップ数をインクリメントしたウェイト番号を前記中継装置ごとに生成するウェイト番号生成部と、生成された前記ウェイト番号を前記中継装置を識別する識別子と対応付けてそれぞれ記憶する記憶部と、前記記憶部に記憶されているウェイト番号が相対的に小さい中継装置を選択する選択部と、選択された中継装置を中継先に指定し、前記サーバを宛先に指定したデータフレームを送信する送信部を備えることを特徴とするノード装置。前記受信部で受信された受信フレームから、前記受信フレームの宛先である宛先ノード装置に割り振られた宛先ウェイト番号と、前記宛先ウェイト番号の起点とされた中継装置を識別する宛先識別子を取得し、前記宛先識別子に対応付けて前記記憶部に記憶されているウェイト番号を前記宛先ウェイト番号と比較した結果により、前記受信フレームのルーティングを行うルーティング部をさらに備え、前記宛先ウェイト番号のほうが大きい場合、前記ルーティング部は、前記宛先識別子で識別される中継装置を起点としたウェイト番号が前記記憶部に記憶されているウェイト番号よりも大きな隣接ノード装置に、前記受信フレームを送信できるかを判定し、前記受信フレームが送信できないと判定した場合、前記ルーティング部は、ループを検出したと判断することを特徴とする請求項1に記載のノード装置。前記宛先ウェイト番号のほうが小さい場合、前記ルーティング部は、前記宛先識別子で識別される中継装置を起点としたウェイト番号が前記記憶部に記憶されているウェイト番号よりも小さな隣接ノード装置に、前記受信フレームを送信できるかを判定し、前記受信フレームが送信できないと判定した場合、前記ルーティング部は、ループを検出したと判断することを特徴とする請求項2に記載のノード装置。前記隣接ノード装置の通信状態を監視すると共に、通信障害を検出する障害検出部を備え、前記障害検出部により通信障害が検出されると、前記ウェイト番号生成部は、前記記憶部に記憶されている前記通信障害が検出された隣接ノードから受信した同期要求を用いて生成された生成ウェイト番号を初期値に変更し、前記選択部は、対応付けられている生成ウェイト番号が前記初期値ではない中継装置の中で、前記対応付けられている生成ウェイト番号が相対的に小さい中継装置を選択することを特徴とする請求項1~3のいずれか1項に記載のノード装置。複数のネットワークポートを備え、前記記憶部には、前記複数のネットワークポートを介して接続されている複数の隣接ノード装置について、前記複数の隣接ノードの各々で生成されたウェイト番号である隣接ウェイト番号を、前記隣接ウェイト番号の生成に用いられたホップ数をカウントする際の起点とされた中継装置を識別する識別子、および、前記隣接ウェイト番号を含むフレームを受信したネットワークポートの番号に対応付けて記録されており、前記障害検出部により通信障害が検出されたときに、前記通信障害を起こしていない隣接ノード装置についての中継装置を起点とした隣接ウェイト番号が前記中継装置を起点とした生成ウェイト番号よりも大きいポートから、前記中継装置を起点とするウェイト番号の初期化を要求するフレームを生成する初期化要求部をさらに備え、前記送信部が前記初期化を要求するフレームを送信することを特徴とする請求項4に記載のノード装置。前記複数の中継装置のうちの第1の中継装置と前記サーバの間で通信障害が発生したことが通知されると、前記初期化要求部は、前記隣接ノード装置に、前記第1の中継装置に対応付けられたウェイト番号の初期化を要求するフレームを生成し、前記ウェイト番号生成部は、前記第1の中継装置に対応付けられているウェイト番号を初期化することを特徴とする請求項5に記載のノード装置。データの宛先であるサーバとの間が複数の中継装置によって中継可能なように構成されているネットワークに所属する第1のノード装置に隣接する第2のノード装置による通信方法であって、前記第1のノード装置から、同期の要求とともに、前記複数の中継装置の中の第1の中継装置から前記第1のノード装置までのホップ数である第1のウェイト番号が通知されると、前記第1のウェイト番号をインクリメントして第2のウェイト番号を生成し、前記第2のウェイト番号を前記第1の中継装置を識別する第1の識別子に対応付けて記憶し、前記第2のノード装置に隣接する第3のノード装置から、同期の要求とともに、前記複数の中継装置の中の第2の中継装置から前記第3のノード装置までのホップ数である第3のウェイト番号が通知されると、前記第3のウェイト番号をインクリメントして第4のウェイト番号を生成し、前記第4のウェイト番号を前記第2の中継装置を識別する第2の識別子に対応付けて記憶し、前記第2のウェイト番号が前記第4のウェイト番号より小さい場合、前記第2のノード装置は、前記第1の中継装置を中継先に指定して、データフレームを前記サーバに送信することを特徴とする通信方法。前記第1のノード装置は、前記第1の中継装置から前記第1のノード装置に隣接する第4のノード装置までのホップ数である第5のウェイト番号を、前記第4のノード装置から取得し、前記第1のノード装置は、前記第2のノード装置から前記データフレームを受信すると、前記第1のウェイト番号と前記第5のウェイト番号を比較し、前記第5のウェイト番号が前記第1のウェイト番号より小さい場合、前記第1のノード装置は、前記データフレームを前記第4のノード装置に転送することを特徴とする請求項7に記載の通信方法。前記第1のノード装置は、前記第1の中継装置を起点としたホップ数が前記第1のウェイト番号よりも小さいノード装置に、前記第2のノード装置から受信したデータフレームを送信できない場合、前記データフレームを前記第2のノード装置に送信し、前記第2のノード装置は、前記サーバを宛先としたフレームに対応付けた前記第1のノード装置に接続したポートの状態を、ループ状態に設定することを特徴とする請求項8に記載の通信方法。前記第1の中継装置と前記サーバの間で通信障害が発生すると、前記第1の中継装置は、前記第1の中継装置を起点とするホップ数を用いて算出されたウェイト番号の初期化を要求する初期化フレームをブロードキャスト送信し、前記第2のノード装置は、前記初期化フレームを受信すると、前記第2のウェイト番号を初期値に設定すると共に、前記サーバに宛てたフレームの中継先に前記第1の中継装置を指定しないことを特徴とする請求項7~9のいずれか1項に記載の通信方法。前記第2のノード装置は、前記第3のノード装置に同期を求める際に、前記第2のウェイト番号を前記第1の中継装置に対応付けて前記第3のノード装置に通知し、前記第3のノード装置は、前記第2のウェイト番号をインクリメントして得られた第6のウェイト番号を前記第1の中継装置と対応付けて記憶し、前記第2のノード装置で障害が発生すると、前記第3のノード装置は、前記第2のウェイト番号と前記第6のウェイト番号を比較し、前記第3のノード装置は、前記第6のウェイト番号が前記第2のウェイト番号よりも大きいことを認識すると、前記第6のウェイト番号を初期値に設定すると共に、前記第1の中継装置を前記サーバ宛てのフレームを送信する際の中継先に指定しないことを特徴とする請求項7~10のいずれか1項に記載の通信方法。前記第2のノード装置は、前記第1のノード装置に通信障害が発生すると、前記第1のノード装置に前記通信障害が発生したことを、前記第1の中継装置に通知し、前記第1の中継装置は、前記第1のノード装置で通信障害が発生したことを前記第2の中継装置に通知し、前記第1の中継装置は、前記第1の中継装置を起点とするホップ数を用いて算出されたウェイト番号の再計算を要求するフレームをブロードキャストし、前記第2の中継装置は、前記第2の中継装置を起点とするホップ数を用いて算出されたウェイト番号の再計算を要求するフレームをブロードキャストし、前記第2のノード装置は、新たに計算されたウェイト番号を用いて、前記サーバとの間の通信の中継先を決定することを特徴とする請求項7~11のいずれか1項に記載の通信方法。背景技術で述べた方法によりゲートウェイが選択されると、ノード装置から最もホップ数が小さいゲートウェイが選択されないことがあり、選択されたゲートウェイまでのホップ数が大きいために、経路が冗長になることが多かった。さらに、背景技術で述べた経路の選択方法では、選択されたゲートウェイまでの経路についてもホップ数が最小の経路が選択されずに冗長な経路が選択されてしまうことがある。本発明は、ネットワーク中の個々のノード装置が最短の経路を用いて通信を行うことができるようにすることを目的とする。サーバとの間が複数の中継装置によって中継可能なように構成されているネットワーク中のノード装置は、受信部、ウェイト番号生成部、記憶部、選択部、および、送信部を備える。受信部は、隣接ノード装置からフレームを受信する。ウェイト番号生成部は、前記複数の中継装置の中のそれぞれの中継装置を起点としたときの前記隣接ノード装置までのホップ数が、前記隣接ノード装置からの同期要求と共に通知されると、前記ホップ数をインクリメントしたウェイト番号を前記中継装置ごとに生成する。記憶部は、生成された前記ウェイト番号を前記中継装置を識別する識別子と対応付けてそれぞれ記憶する。選択部は、前記記憶部に記憶されているウェイト番号が相対的に小さい中継装置を選択する。送信部は、選択された中継装置を中継先に指定し、前記サーバを宛先に指定したデータフレームを送信する。ネットワーク中の個々のノード装置は、最短の経路を用いて通信する。図1は、実施形態に係るネットワークの例を示す。図1に示すネットワークには、ノードN1~N8の8台のノード装置と、ゲートウェイGW1およびGW2の2台のゲートウェイ装置を含むアドホックネットワーク、ハブ5、サーバ1が含まれる。サーバ1は、ハブ5とゲートウェイ装置を介してノード装置との間でフレームを送受信する。以下の説明では、アドホックネットワークに含まれる個々のノード装置は、隣接するノード装置もしくはゲートウェイまでの経路は記憶しているが、ネットワークに含まれているその他の装置への経路は記憶していないものとする。ノード装置は、隣接するノード装置との間でゲートウェイ装置からのホップ数を含むフレームを送受信することにより、GW1からノード装置までのホップ数と、GW2からノード装置までのホップ数を求める。例えば、ノードN4は、ゲートウェイGW2に隣接しているので、ゲートウェイGW2からのホップ数が1であることをノードN3とN8に通知する。すると、ノードN3とN8は、ノードN4に隣接しているので、ゲートウェイGW2からのホップ数が2であることを認識し、各々に隣接するノードに通知する。以下の説明では、いずれかのゲートウェイ装置からノード装置までのホップ数の最小値のことをウェイト番号と記載することがある。例えば、ノードN4は、ゲートウェイGW2に隣接しているので、ゲートウェイGW2を起点としたノードN4のウェイト番号は1である。さらに、ノードN8はノードN4に隣接しているので、ゲートウェイGW2を起点としたノードN8のウェイト番号は2となる。一方、ゲートウェイGW1からノードN8までの最短経路の1つは、GW1からN1、N2、N3、N7を経てN8に到達する経路である。このため、ゲートウェイGW1を起点としたノードN8のウェイト番号は5となる。ノード装置は、サーバ1にフレームを送信する際に、ウェイト番号が最小のゲートウェイ装置を、サーバ1への中継先に指定する。例えば、ノードN8がサーバ1にフレームを送信するときは、ゲートウェイGW2を起点としたノードN8のウェイト番号=2と、ゲートウェイGW1を起点としたノードN8のウェイト番号=5を比較する。ここでは、ゲートウェイGW2を起点としたウェイト番号のほうが、ゲートウェイGW1を起点としたウェイト番号よりも小さい。そこで、ノードN8は、ゲートウェイGW2を中継先に指定する。このため、例えば、ノードN8から送信されたフレームが図1の破線の矢印Aで示すような、冗長な経路によりサーバ1に送信されることを防ぐことができる。このように、アドホックネットワークに含まれる各ノードは、最小のホップ数で到達できるゲートウェイ装置を経由してサーバ1にアクセスするため、サーバ1までの経路を短くすることができる。さらに、サーバ1宛てのフレームを転送する際に、個々のノードは、中継先のゲートウェイ装置を起点としたウェイト番号が小さいノードを、転送先に選択する。例えば、ノードN8からゲートウェイGW2を中継先に指定して送信されたフレームは、ノードN4に送信されるとゲートウェイGW2に送信される。しかし、ノードN7に送信されると、ゲートウェイGW2を起点としたノードN7のウェイト番号=3は、ゲートウェイGW2を起点としたノードN8のウェイト番号=2よりも大きいため、フレームはゲートウェイGW2に送信されずにノードN8に送り返される。従って、ノードN8からサーバ1に向けて送信されるフレームは、図1の実線の矢印Bに示すように、最短経路を介してサーバ1に送信される。<装置構成>以下の例では、ノード装置はセンサーを備え、他のノード装置からサーバ1に向けて送信されるフレームを中継する装置センサー中継ノード10であるものとする。一方、ゲートウェイ装置は、センサーを備えておらず、ノード装置から受信したフレームの中継を行う装置基幹中継ノードであるものとする。図2は、センサー中継ノード10の構成の例を示す。センサー中継ノード10は、有線アドホックネットワークポート1111a~11c、汎用ポート12、アドホックルーティング制御デバイス20、CentralProcessingUnitCPU40を備える。ノード装置はさらに、digitalinputdigitaloutputDI/DO端子13、ElectricallyErasableandProgrammableReadOnlyMemoryEEPROM14、センサー接続ポート1515a~15cも備える。有線アドホックネットワークポート11は、他のセンサー中継ノード10または基幹中継ノード50図6参照との間で送受信されるアドホックフレームをカプセル化したイーサネットフレームのデータを終端し、送受信フレームの符号化または復号を行う。センサー中継ノード10が備える有線アドホックネットワークポート11の数は任意であるが、以下の説明では、ポートP1、P2、P3の3ポートを備える場合を例として説明する。有線アドホックネットワークポート11は、送信フレームを一時保持するバッファメモリを備えることができる。以下の記載では、有線アドホックネットワークポート11をポートまたは受信ポートなど記載することもあるものとする。汎用ポート12は、例えばLANローカルエリアネットワークを終端する。アドホックルーティング制御デバイス20は、例えば、FPGAFieldProgrammableGateArrayやSRAMStaticRandomAccessMemoryにより実現される。アドホックルーティング制御デバイス20は、受信フレーム制御部21、送信フレーム制御部22、汎用ポート制御部23、CPUインタフェース24、フレーム処理部26、ルーティング制御部30を備える。さらに、アドホックルーティング制御デバイス20は、FIDFrameIDテーブル27、PSPortStatusテーブル28、ノード管理テーブル29も備える。また、CPUインタフェース24はレジスタ25を有する。受信フレーム制御部21は、有線アドホックネットワークポート11a~11cからフレームデータを受信する。受信フレーム制御部21は、宛先が他のセンサー中継ノード10であるフレームをルーティング制御部30に出力する。フレームの宛先が自ノードである場合、受信フレーム制御部21は、フレームをCPUインタフェース24に出力する。CPUインタフェース24は、受信フレーム制御部21から入力されたフレームを、CPU40に出力する。なお、CPU40への出力に際して、CPUインタフェース24は、適宜、レジスタ25を使用する。ルーティング制御部30は、ウェイト番号を用いたルーティング処理を行う。ルーティング制御部30の構成の例を図3に示す。ルーティング制御部30は、ウェイト番号制御部3131a~31c、障害検出部36、初期化要求部37、ルーティング部38を備える。ウェイト番号制御部31aは、ウェイト番号生成部32、記憶部34、選択部35を備え、記憶部34にウェイト番号テーブル33を有する。ウェイト番号制御部31a~31cは、互いに異なる基幹中継ノード50を起点とするウェイト番号を処理するものとする。例えば、ウェイト番号制御部31aは基幹中継ノード50aを起点としたウェイト番号を処理し、ウェイト番号制御部31bは基幹中継ノード50bを起点とするウェイト番号を処理する。図3では、単に図を見やすくするために、ウェイト番号制御部31b、31cについては詳細を示していないが、ウェイト番号制御部31bと31cのいずれもウェイト番号制御部31aと同様の構成を有する。ウェイト番号生成部32は、隣接するセンサー中継ノード10から受信したフレームに含まれているウェイト番号をインクリメントすることにより、ウェイト番号生成部32が備えられているセンサー中継ノード10に割り当てられるウェイト番号を決定する。図4aは、ウェイト番号テーブル33の例を示す。なお、図4aに示す例は、初期化された状態のウェイト番号テーブル33であり、データは記録されていない。ウェイト番号テーブル33は、ウェイト番号生成部32が決定したウェイト番号と、ポートP1~P3の各々を介して接続されたセンサー中継ノード10のウェイト番号を記憶する。このとき、ウェイト番号生成部32は、ウェイト番号を決定する際の基準位置として用いられた基幹中継ノード50を識別する識別子送信元基幹中継番号と対応付けてウェイト番号を記憶する。さらに、ウェイト番号テーブル33には、ウェイト番号の決定に用いたフレームを受信したポートのポート番号も記録される。以下、ウェイト番号の決定に用いたフレームを受信したポートのことをマスターポートと記載することがある。図3ではウェイト番号テーブル33を1つ図示しているが、ウェイト番号テーブル33は、ネットワークに含まれている基幹中継ノード50の数と同数備えられている。個々のウェイト番号テーブル33は1つの基幹中継ノード50を起点としたときのウェイト番号に関する情報を格納するものとする。選択部35は、サーバ1宛てのフレームを送信する際に中継先として指定する基幹中継ノード50を、ウェイト番号テーブル33を用いて決定する。また、選択部35は、選択した結果をノード管理テーブル29に記録する。ノード管理テーブル29の例を図5に示す。図5の例では、ノード管理テーブル29には、選択部35で選択された基幹中継ノード50を識別する識別子が記録されているが、実装に応じて他の任意の情報もノード管理テーブル29に含められることがある。ウェイト番号テーブル33の生成方法や使用方法、選択部35の動作などについては、後で詳しく説明する。障害検出部36は、隣接するセンサー中継ノード10の状況を監視し、隣接するセンサー中継ノード10との通信に障害が発生すると、障害の発生を検出する。障害検出部36は障害が発生したことを初期化要求部37に通知する。初期化要求部37は、障害が発生したことによって変動するウェイト番号を特定し、特定したウェイト番号を初期化する。さらに、初期化要求部37は、隣接するセンサー中継ノード10に対して、適宜、ウェイト番号の初期化を要求する。障害検出部36と初期化要求部37の動作については後で詳しく説明する。ルーティング部38は、受信フレーム制御部21からルーティング制御部30に入力されたフレームの転送先のポートを特定する。ルーティング部38は、PSテーブル28、FIDテーブル27、および、ウェイト番号テーブル33を参照して転送先のポートを決定する。ここで、PSテーブル28は、フレームを転送可能なポートを宛先ごとに記憶しているテーブルである。PSテーブル28は、フレームの宛先アドレスに対応付けて、その宛先にフレームを転送することができるポートの番号が対応付けられている任意の形式とすることができる。ルーティング部38は、転送するフレームを、転送先のポート番号を通知する情報と共に、送信フレーム制御部22に出力する。FIDテーブル27は、ループの検出に用いられる。FIDテーブル27は、受信したことがあるフレームの送信元アドレスとFIDフィールドの値の組み合わせに対応付けて、有線アドホックネットワークポート11の使用状況を記録している。有線アドホックネットワークポート11の使用状況は、有線アドホックネットワークポート11からのリンクが無いリンク断、ループループ状態、未使用、宛先へフレームの送信に使用している送信中ポートなど、各ループの接続情報を示す。なお、有線アドホックネットワークポート11の使用状況は、フレームの送信元アドレスとFIDフィールドの値の組み合わせに応じて決定される。例えば、ノードN1から送信されたFID=1のフレームの宛先がノードN4であったとする。ノードN2のポートP1からノードN4へフレームを送信できる場合、送信元がノードN1でFID=1のフレームに対応付けられた使用状況は、ノードN2のポートP1では送信中ポートになる。一方、ノードN1から送信されたFID=2のフレームの宛先がノードN5であるとする。さらに、ノードN2のポートP1からノードN5へフレームを送信しても、ループが発生しているために送信したフレームをノードN2が他のノード装置から再度、受信してしまうとする。この場合、送信元がノードN1でFID=2のフレームに対応付けられた使用状況は、ノードN2のポートP1ではループ状態になる。また、送信元がノードN1でFID=1のフレームを転送したことが無いポートでは、送信元がノードN1でFID=1のフレームに対応付けられた使用状況は未使用となる。さらに、FIDテーブル27は、エントリごとに1つのLoopフラグを含む。ここで、Loopフラグは、エントリに記録されている送信元アドレスとFIDの組合せで特定されるフレームの宛先に至る経路上に、自ノードが存在するかを示す。Loopフラグ=1の場合、エントリに記録されている送信元アドレスとFIDの組合せで特定されるフレームの宛先のノードに至る経路に自ノードが存在しないことを示す。すなわち、Loopフラグ=1は、自ノードがフレームの宛先に向けてそのフレームを転送できないことを示す。一方、Loopフラグ=0の場合、エントリに記録されている送信元アドレスとFIDの組合せで特定されるフレームの宛先のノードに至る経路に自ノードが存在することを示す。すなわち、Loopフラグ=0は、自ノードがフレームの宛先に向けてそのフレームを転送できることを示す。ルーティング部38は、フレームを転送する前に、送信元アドレスとFIDフィールドの値の組み合わせが、FIDテーブル27のいずれかのエントリと一致するかを確認する。FIDテーブル27中のエントリと一致すると、ルーティング部38は既に受信したフレームを受信したと判断して転送を行わない。このとき、ルーティング部38は、フレームの送信元アドレスとFIDフィールドの値の組み合わせに対応付けて、フレームの宛先に転送できないことを記録する。例えば、ルーティング部38は、Loopフラグをエントリごとに設け、ループを検出した場合、対応するエントリのLoopフラグを1に設定する。すると、Loopフラグが1に設定されたエントリに記録されている送信元アドレスとFIDの組合せを含むフレームについては、ルーティング部38は転送を行わずに、受信したポートからフレームを返送する。一方、FIDテーブル27には一致するエントリが無い場合、ルーティング部38は、フレームの宛先をキーとしてPSテーブル28を検索する。フレームの宛先がPSテーブル28に記録されている場合は、PSテーブル28に指定されているポートから出力させることによりフレームを転送する。また、ルーティング部38は、転送するフレームの宛先のノードに割り振られているウェイト番号と、自ノードに割り振られているウェイト番号を用いて、転送先を決定することもできる。フレームの宛先に割り振られているウェイト番号が、自ノードのウェイト番号よりも大きい場合、ルーティング部38は、自ノードよりも大きなウェイト番号が割り振られているノードに接続されているポートから、転送対象のフレームを転送する。一方、自ノードよりも大きなウェイト番号が割り振られているノードに接続されているポートが無い場合、ルーティング部38は、ループを検出したと判断する。そこで、ルーティング部38は、フレームを受信したポートから返送することにより、送信元のノード装置に向けて返送する。ループが検出されると、転送の対象とされたフレームの送信元アドレスとFIDフィールドの値に基づいて、FIDテーブル27中のポートの使用状態がループ状態に変更される。次に、フレームの宛先に割り振られているウェイト番号が、自ノードのウェイト番号よりも小さい場合のルーティング部38の動作について述べる。この場合、ルーティング部38は、自ノードよりも小さなウェイト番号が割り振られているノード装置に接続されているポートから、転送対象のフレームを転送する。自ノードよりも小さなウェイト番号が割り振られているノード装置に接続されているポートが無い場合、ルーティング部38は、ループを検出したと判断する。ループを検出した場合、ルーティング部38は、処理対象のフレームを送信元のノード装置に向けて返送する。また、FIDテーブル27のポートに関する情報も更新される。受信フレームの宛先に割り振られているウェイト番号が、自ノードのウェイト番号と一致する場合、ノード装置は、フレームの宛先が自ノードであるかを確認する。フレームの宛先が自ノードである場合、受信フレームは、適宜、CPU40などで処理される。一方、宛先が自ノードでなく、さらに、受信フレームの宛先に割り振られているウェイト番号が、自ノードのウェイト番号と一致する場合、ルーティング部38は、ループを検出したと判断する。ループを検出した場合に行われる処理は前述のとおりである。フレーム処理部26は、CPUインタフェース24がCPU40から取得した情報を含むフレームを生成し、ルーティング制御部30や送信フレーム制御部22に出力する。送信フレーム制御部22は、ルーティング制御部30や送信フレーム制御部22から入力されたフレームを、送信先に応じて、有線アドホックネットワークポート11に出力する。CPU40は、センサー中継ノード10に備えられているセンサー図示せずから取得した情報を処理する。CPU40は、FPGAインタフェース41、DI/DOインタフェース42、センサーインタフェース43を備える。FPGAインタフェース41は、CPUインタフェース24との間で、センサー情報やセンサー制御情報等を送受信する。センサーインタフェース43は、センサー接続ポート15を介して、センサーとの間で情報を送受信する。ここで、センサーは、温度センサー、風速センサー、照度センサー、人感センサー、電力検針メーター、加速度センサー、ひずみセンサー、監視カメラなどを含む任意のセンサーであっても良く、実装に応じて選択される。センサーインタフェース43は、EEPROM14とも接続されている。EEPROM14は、各種センサー情報やセンサー制御情報を、適宜、記憶する。DI/DOインタフェース42にはDI/DO端子13が接続される。DI/DO端子13は、データ入力端子およびデータ出力端子として動作する。センサーにより検出された情報や測定されたデータは、センサーインタフェース43からFPGAインタフェース41を介して、CPUインタフェース24に出力される。CPUインタフェース24は、入力されたデータ等をフレーム処理部26に出力する。なお、CPU40は、FPGAインタフェース41を介して受信したセンサー制御情報に基づいて、センサー制御情報により指定されたセンサー装置を制御する。<第1の実施形態>以下、第1の実施形態を、ウェイト番号の決定方法、中継先の基幹中継ノード50の決定方法、および、中継先が決定された後のフレームの送受信に分けて説明する。ウェイト番号と中継先の基幹中継ノードの決定方法図6は、ネットワークの例とウェイト番号の決定の例を示す。図6に示すネットワークでは、アドホックネットワークは、基幹中継ノード50a~50cの3台の基幹中継ノード50を介してサーバ1と接続されている。以下の説明では、ID=Xのセンサー中継ノード10ここでXは任意の整数のことを、表記を短くするためにノードNXと記載することがある。例えば、ID=1のセンサー中継ノード10のことをノードN1と表記する。また、図6のアドホックネットワークには、ノードN1~N21のセンサー中継ノード10が含まれている。なお、図6はネットワークの例であり、センサー中継ノード10や基幹中継ノード50の数は、実装に応じて変更されうる。図7に、図6のネットワークで送受信されるフレームのフォーマットの例を示す。図7では、同期要求フレーム、同期要求応答フレーム、ヘルスフレーム、状態通知フレーム、データフレームのフォーマットの例を示している。個々のフレームに含まれる情報とフレームに基づいて行われる処理などについては後で詳しく説明するが、いずれの種類のフレームも、ウェイト番号に関する情報を格納するフィールドを含み、さらに、MACMediaAccessControlヘッダ、アドホックヘッダ、データフィールド、FrameCheckSequenceFCSを含む。MACヘッダは、DSTIDDeSTinationIDフィールド、SRCIDSourceIDフィールド、およびTYPEフィールドを含む。DSTIDフィールドには、フレームの宛先に割り振られている6バイトのMACアドレスが設定される。SRCIDフィールドには、送信元の装置に割り振られている6バイトのMACアドレスが設定される。TYPEフィールドには、2バイトの上位プロトコル識別番号が設定され、例えば、0x8847の値が設定される。なお、0xは、それに続く数値が16進数であることを示す。アドホックヘッダは、KINDフィールド、FIDフィールド、TTLフィールド、およびLengthフィールドを有する。KINDフィールドには、アドホックフレームの種別を表す2バイトのデータが設定される。FIDフィールドには、例えばシーケンシャル番号である2バイトのフレーム識別IDが設定される。TTLTimeToLiveフィールドには、フレームがアドホックネットワークの中に存在することができる上限時間を示す2バイトのデータが設定される。Lengthフィールドには、フレーム中のデータの長さを示す2バイトの値が設定される。FCSは、フレーム中の誤り検出および訂正をするための冗長符号である。以下、図6に示すネットワークを例として、ウェイト番号の決定方法の例と、サーバ1宛てのフレームを送信する際に中継先とする基幹中継ノード50を選択する方法の例を説明する。以下の説明では、基幹中継ノード50a~50cの各々には、基幹中継番号が割り当てられており、個々の基幹中継ノード50は割り当てられた基幹中継番号を記憶しているものとする。ここでは、基幹中継ノード50aの基幹中継番号は0、基幹中継ノード50bの基幹中継番号は1、基幹中継ノード50cの基幹中継番号は2であるものとする。また、図6に含まれている各センサー中継ノード10に書き込まれたウェイト番号は、以下で説明する手順で得られたウェイト番号である。0:の後の数字は、基幹中継ノード50aを基点としたウェイト番号を表す。1:の後の数字は、基幹中継ノード50b、2:の後の数字は、基幹中継ノード50cを基点としたウェイト番号を表すものとする。1基幹中継ノード50aは、図7aに示すような同期要求フレームを生成する。同期要求フレームには、送信元基幹中継番号と送信元ウェイト番号が含まれる。基幹中継ノード50aは、送信元基幹中継番号を0、送信元ウェイト番号を0x00に設定する。送信元基幹中継番号=0かつ送信元ウェイト番号=0は、基幹中継ノード50aを基点としたホップ数が0であることを意味し、基幹中継ノード50aのことを表す。同期要求フレームはブロードキャスト送信されるため、DSTIDフィールドには、ブロードキャストアドレスが設定される。基幹中継ノード50は、同期要求フレームのSRCIDフィールドに、基幹中継ノード50aのアドレスを記録する。KINDは同期要求フレームであることを示す値に設定される。ここでは、KIND=1であるものとする。2基幹中継ノード50aが同期要求フレームをブロードキャスト送信すると、ノードN1が同期要求フレームを受信する。ここで、ノードN1は、ポートP1を介して同期要求フレームを受信したものとする。ノードN1の受信フレーム制御部21は、ポートP1を介して受信したフレームのKINDフィールドを確認する。KINDフィールドの値がKIND=1であると、受信フレーム制御部21は、同期要求フレームを受信したと判断して、受信フレームをウェイト番号制御部31aに出力する。このとき、送信フレーム制御部22は、受信ポート番号もウェイト番号制御部31aに出力するものとする。ウェイト番号生成部32は、ウェイト番号制御部31aに入力された同期要求フレームの送信元ウェイト番号を1つインクリメントして、ノードN1のウェイト番号を求める。さらに、ウェイト番号生成部32は、同期要求フレームの送信元基幹中継番号が0であることを確認すると、生成したウェイト番号=10x01の起点は、基幹中継ノード50aであると認識する。ウェイト番号生成部32は、生成したウェイト番号が、既にウェイト番号テーブル33に記録されているウェイト番号よりも小さい場合、生成したウェイト番号を用いてウェイト番号テーブル33を更新する。例えば、ノードN1において、送信元基幹中継番号=0のウェイト番号テーブル33が図4aのとおりであるとする。この場合、ウェイト番号生成部32は、ウェイト番号の欄に記録されている値である0xFFと、生成したウェイト番号0x01を比較する。ここでは、生成したウェイト番号のほうが小さいので、ウェイト番号生成部32は、送信元基幹中継番号=0のウェイト番号テーブル33中のウェイト番号を、0x01に更新する。このとき、ウェイト番号生成部32は、ウェイト番号の決定に用いたフレームを受信したポートをマスターポートとして認識する。例えば、ノードN1の例では、ポートP1から受信した同期要求フレームに基づいてウェイト番号が決定されるので、マスターポートはポートP1となる。なお、ウェイト番号=1は、基幹中継ノード50aからノードN1のセンサー中継ノード10までの最短ホップ数が1であることを示す。さらに、ウェイト番号生成部32は、同期要求フレームの受信ポートがポートP1であることから、ポートP1を介して接続されているノードのウェイト番号が0であることを認識する。すなわち、ウェイト番号生成部32は、ポートP1を介して基幹中継ノード50と接続されていることを認識する。ウェイト番号生成部32は、得られた情報を送信元基幹中継番号=0のウェイト番号テーブル33に記録する。従って、送信元基幹中継番号=0のウェイト番号テーブル33は、図4bに示すように変更される。なお、ウェイト番号テーブル33中のタイマーは、接続先のウェイト番号が有効であるかを確認するために用いられるものとする。ウェイト番号生成部32は、各ポートに接続されている接続先のウェイト番号が確認されるたびに、タイマーの値をt1にセットし、時間の経過と共にタイマーの値を小さくしていくものとする。タイマー値が0になると、接続先のウェイト番号の情報は無効とされる。3次に、ノードN1のウェイト番号生成部32は、隣接するセンサー中継ノード10に送信するための同期要求フレームを生成する。生成される同期要求フレームでは、SRTIDフィールドにノードN1のアドレスが設定され、送信元ウェイト番号は1に設定される。また、送信元基幹中継番号は0とされる。ウェイト番号生成部32は、生成した送信元基幹中継番号=0の同期要求フレームを、ノードN1の全てのポートから送信するように送信フレーム制御部22に要求する。4ノードN1のポートP1~P3から、手順3で生成された同期要求フレームが送信されると、ノードN2とノードN8が同期要求フレームを受信する。ノードN2とノードN8は、それぞれ、手順2で説明した処理を行い、送信元基幹中継番号=0のウェイト番号テーブル33を更新する。ここでは、ノードN2とノードN8のいずれも、基幹中継ノード50aからの最短ホップ数は2であるため、ウェイト番号は2に設定される。ここで、ノードN2とノードN8のそれぞれが、ポートP1を介して同期要求フレームを受信したとする。この場合、ノードN2とノードN8のいずれでも、送信元基幹中継番号=0のウェイト番号テーブル33は、図4cに示すように更新される。5基幹中継ノード50aは、手順4でポートP1を介してノードN1から送信された同期要求フレームを受信するが、基幹中継ノード50aは同期要求フレームを用いた処理は行わない。6ノードN2とノードN8は、ウェイト番号テーブル33の更新が終わると、隣接するセンサー中継ノード10に同期要求フレームを送信する。ここで行われる動作は、手順3で述べた動作と同様である。従って、ノードN2は、ノードN1、N3、N9に、基幹中継ノード50aを基点としたノードN2のウェイト番号が2であることを通知して、同期を要求する。また、ノードN8は、ノードN1、N9、N15に、基幹中継ノード50aを基点としたノードN8のウェイト番号が2であることを通知するとともに、同期を要求する。7一方、ノードN1は、ノードN2からポートP2を介して同期要求フレームを受信する。ノードN1のウェイト番号生成部32は、同期要求フレームの送信元ウェイト番号を1つインクリメントして、得られた値を、ウェイト番号テーブル33に記録されている値と比較する。このとき、ウェイト番号生成部32は、処理対象の同期要求フレームの送信元基幹中継番号=0と同じ送信元基幹中継番号に対応付けられているウェイト番号テーブル33に記録されているウェイト番号を比較対象とする。ここでは、ノードN1に対して算出されたウェイト番号は3となる。図4bに示すように、送信元基幹中継番号=0のウェイト番号として、1が登録されているので、ウェイト番号生成部32は、ウェイト番号テーブル33の中のウェイト番号を更新しない。また、ウェイト番号生成部32は、ノードN2から受信した同期要求フレームに基づいて、基幹中継ノード50aを基点としたノードN2のウェイト番号が2であることを認識している。ノードN2からの同期要求フレームは、ポートP2から受信されているため、ノードN1において、ポートP2の情報は、図8に示すように更新される。ノードN1は、ポートP3を介してノードN8から受信した同期要求フレームについても、ノードN2から受信した同期要求フレームと同様に処理する。ノードN8から受信した同期要求フレームの処理によっては、基幹中継ノード50aを基点としたノードN1のウェイト番号は変更されないが、ノードN1は、基幹中継ノード50aを基点としたノードN8のウェイト番号が2であることを認識する。そこで、ウェイト番号生成部32は、送信元基幹中継番号=0のウェイト番号テーブル33のポートP3の情報を、図8に示すように更新する。8隣接するセンサー中継ノード10の間で、送信元基幹中継番号=0の同期要求フレームが送受信されることにより、アドホックネットワークに含まれる全てのセンサー中継ノード10で基幹中継ノード50aを基点としたウェイト番号が求められる。なお、個々のセンサー中継ノード10で行われる処理は、手順2~7と同様である。基幹中継ノード50aを基点としたウェイト番号を、図6に0:に続く数字として示す。図6に示されるように、各センサー中継ノード10の0:に続くウェイト番号は、基幹中継ノード50aからの最短ホップ数となる。9次に、基幹中継ノード50bも同期要求フレームを生成してブロードキャスト送信する。基幹中継ノード50bで生成された同期要求フレームには、送信元基幹中継番号=1、送信元ウェイト番号=0x00が設定されている。送信元基幹中継番号=1かつ送信元ウェイト番号=0は、基幹中継ノード50bを基点としたホップ数が0であることを表す。10ノードN4は、基幹中継ノード50bから送信元基幹中継番号=1の同期要求フレームを受信すると、送信元基幹中継番号=1のウェイト番号テーブル33を更新する。更新の手順は、手順2で説明した手順と同様である。さらに、ノードN4は、手順3で説明した手順と同様の手順により、ノードN4に隣接するセンサー中継ノード10ノードN3およびN5に、同期要求フレームを送信する。隣接するセンサー中継ノード10の間で、送信元基幹中継番号=1の同期要求フレームが送受信されることにより、各々のセンサー中継ノード10において、図6に1:に対応付けて示すようなウェイト番号が求められる。各センサー中継ノード10の1:の後に記載されたウェイト番号は、基幹中継ノード50bからの最短ホップ数となる。11基幹中継ノード50cも同期要求フレームを生成してブロードキャスト送信する。基幹中継ノード50cで生成された同期要求フレームには、送信元基幹中継番号=2、送信元ウェイト番号=0x00が設定されている。送信元基幹中継番号=2かつ送信元ウェイト番号=0は、基幹中継ノード50cを基点としたホップ数が0であることを表す。12ノードN7は、基幹中継ノード50cから送信元基幹中継番号=2の同期要求フレームを受信すると、送信元基幹中継番号=2のウェイト番号テーブル33を更新する。更新の手順は、手順2で説明した手順と同様である。さらに、ノードN7は、手順3で説明した手順と同様の手順により、ノードN7に隣接するセンサー中継ノード10ノードN6、N14に、同期要求フレームを送信する。隣接するセンサー中継ノード10の間で、送信元基幹中継番号=2の同期要求フレームが送受信されることにより、各々のセンサー中継ノード10において、図6に2:に対応付けて示すようなウェイト番号が求められる。各センサー中継ノード10の2:の後に記載されたウェイト番号は、基幹中継ノード50cからの最短ホップ数となる。13手順1~12が終わったときにノードN1が保持するウェイト番号テーブル33を図9に示す。図9aは、基幹中継ノード50aを基点としたときのウェイト番号テーブル33である。また、図9bは基幹中継ノード50b、図9cは基幹中継ノード50cを基点としたときのウェイト番号テーブル33である。14基幹中継ノード50a~50cの各々についてウェイト番号が決定されると、選択部35は、基幹中継ノード50ごとにウェイト番号を比較し、ウェイト番号が最小の基幹中継ノード50を決定する。決定された基幹中継ノード50は、そのセンサー中継ノード10からサーバ1に送信するフレームの中継先として用いられる。選択部35は、決定した基幹中継ノード50をノード管理テーブル29図5に記録する。例えば、ノードN1では、ウェイト番号は、基幹中継ノード50aを起点としたウェイト番号:1基幹中継ノード50bを起点としたウェイト番号:4基幹中継ノード50cを起点としたウェイト番号:7となっている。そこで、ノードN1の選択部35は、基幹中継ノード50aを中継先とすることを決定し、ノード管理テーブル29に記録する。他のセンサー中継ノード10においても同様に基幹中継ノード50が選択される。図10に各センサー中継ノード10で決定された中継先の例を示す。ここで、太線で囲まれているウェイト番号がセンサー中継ノード10ごとのウェイト番号の最小値であり、太線で囲まれているウェイト番号の起点となった基幹中継ノード50がサーバ1への中継先として用いられる。図10の例では、ノードN1、N2、N8、N9、N15、N16は、基幹中継ノード50aを中継先とする。また、ノードN3、N4、N5、N10、N11、N12、N17、N18、N19は、基幹中継ノード50bを中継先とする。ノードN6、N7、N13、N14、N20、N21は、基幹中継ノード50cを中継先とする。なお、以下では、基幹中継ノード50を中継先に指定したセンサー中継ノード10は、基幹中継ノード50にとって管理対象のセンサー中継ノード10であると記載することがある。15センサー中継ノード10は、中継先とする基幹中継ノード50に対して、同期要求応答フレームを送信する。同期要求応答フレームは、宛先の基幹中継ノード50に対して、送信元のセンサー中継ノード10によりサーバ1への中継先に指定されることを通知するために用いられる。同期要求応答フレームのフォーマットの例を図7bに示す。同期要求応答フレームの宛先は、中継先に指定される基幹中継ノード50のアドレス、送信先ウェイト番号は0に設定される。また、送信元ウェイト番号も記録される。また、同期要求応答フレームでは、KINDフィールドの値はKIND2であるものとする。さらに、同期要求応答フレームには、サーバ1への中継先に指定される基幹中継ノード50に割り振られた送信元基幹中継番号も記録される。選択部35は、同期要求応答フレームを生成し、生成した同期要求応答フレームを宛先とする基幹中継ノード50に向けて送信する。例えば、ノードN1が基幹中継ノード50aあてに同期要求応答フレームを送信したとする。16基幹中継ノード50aは、ノードN1から同期要求応答フレームを受信すると、同期要求応答フレームの送信元アドレスと、送信元のセンサー中継ノード10のウェイト番号を対応付けて記憶する。基幹中継ノード50aは、例えば、図11aに示すようなテーブルに、ノードN1のアドレスとノードN1のウェイト番号を対応付けて記憶することができる。なお、図11aでは、テーブルを見やすくするために管理対象のノードのアドレスは、N1などのように、センサー中継ノード10に割り振られた番号を用いて表している。17ノードN1以外のセンサー中継ノード10も、同様に同期要求応答フレームを中継先の基幹中継ノード50に向けて送信する。ここで、基幹中継ノード50に隣接していないセンサー中継ノード10から送信された同期要求応答フレームは、アドホックネットワーク中の他のセンサー中継ノード10を経由して基幹中継ノード50に送信される。このとき、送信元のセンサー中継ノード10は、送信先の基幹中継ノード50を起点としたウェイト番号が小さいセンサー中継ノード10に向けて同期要求応答フレームを送信するものとする。選択部35は、同期要求応答フレームを出力するポートを決定する際に、適宜、ウェイト番号テーブル33を参照することができる。図12は、図6のようにウェイト番号が割り振られた場合にノードN2が備える送信元基幹中継番号=0のウェイト番号テーブル33の例を示す。ノードN2が基幹中継ノード50aに同期要求応答フレームを送信する場合、図12に示すウェイト番号テーブル33を確認する。選択部35は、ポートP1~P3の接続先のウェイト番号を比較して、ポートP1に接続されているセンサー中継ノード10のウェイト番号がノードN2のウェイト番号よりも小さいことを認識する。そこで、ノードN2の選択部35は、同期要求応答フレームをポートP1から出力することを送信フレーム制御部22に要求する。ノードN2は、同期要求応答フレームをポートP1から基幹中継ノード50aに向けて送信する。18ノードN1は、ノードN2から同期要求応答フレームを受信する。すると、ノードN1のルーティング部38は、同期要求応答フレームの送信元基幹中継番号と、ノードN1が中継先としている基幹中継ノード50の基幹中継番号が一致するかを確認する。ここでは、両者が一致するので、ノードN1は、受信した同期要求応答フレームを転送することを決定する。ルーティング部38は、ウェイト番号を確認し、受信したフレームを出力するポートを決定する。この場合、ルーティング部38は、図9aに示すウェイト番号テーブル33を参照して、ポートP1から受信フレームを出力する。また、ルーティング部38は、出力したフレームの宛先と出力先のポートを対応付けてPSテーブル28に記録する。従って、ノードN1では、基幹中継ノード50aへの出力ポートがPSテーブル28に記録される。19基幹中継ノード50aは、ノードN1のポートP1に接続されているため、手順18の処理により、ノードN2が送信元である同期要求応答フレームを受信する。基幹中継ノード50aは、手順16と同様にノードN2の情報を記憶する。20ノードN1、N2以外のセンサー中継ノード10からも、同期要求応答フレームが送信される。ここで、同期要求応答フレームの送信元のセンサー中継ノード10で行われる動作は、手順17と同様である。また、同期要求応答フレームを中継するセンサー中継ノード10の動作は、手順18と同様である。同期要求応答フレームにより、基幹中継ノード50a~50cは、各々がサーバ1との通信を中継する対象のノードを認識する。例えば、図10のように中継先が選択された場合、基幹中継ノード50aは、図11bに示すテーブルを記憶する。個々の基幹中継ノード50は、管理対象のセンサー中継ノード10をサーバ1に報告する。サーバ1は、センサー中継ノード10にフレームを送信する際には、基幹中継ノード50から通知された情報に基づいて、フレームを送信する基幹中継ノード50を決定する。なお、以上で述べた方法は、ウェイト番号や中継先の基幹中継ノード50を決定する方法の例であり、実装に応じて変更されることがある。例えば、前述の説明では、基幹中継ノード50aを起点としたウェイト番号の決定が終わった後に基幹中継ノード50bを起点としたウェイト番号が決定され、その後、基幹中継ノード50cを起点としたウェイト番号が決定されていた。しかし、基幹中継ノード50aを起点としたウェイト番号の決定が終わる前に、基幹中継ノード50bや50cを起点としたウェイト番号の決定が開始されても良い。また、ウェイト番号の決定の際に起点とする基幹中継ノード50は、任意の方法で選択される。図13A~図13Fは、フレームを受信したときのセンサー中継ノード10の動作の例を説明するフローチャートである。図13Aは、中継先の基幹中継ノード50を決定する際にセンサー中継ノード10で行われる手順を説明している。センサー中継ノード10は、フレームを受信すると、フレーム中の送信元基幹中継番号とKINDフィールドの値を確認し、受信したフレームが同期要求フレームかを判断するステップS1~S3。受信フレームが同期要求フレームではない場合については、図13B~図13Fを参照しながら後で説明する。同期要求フレームを受信すると、ウェイト番号生成部32は、同期要求フレームの送信元基幹中継番号に対応する基幹中継ノード50を起点としたときのウェイト番号テーブル33について、フレームを受信したポートの情報を更新する。すなわち、同期要求フレームを受信したポートの接続先のウェイト番号を、同期要求フレーム中の送信元ウェイト番号にするステップS4。また、ステップS4で更新した接続先のウェイト番号に対応付けられているタイマーをリスタートするステップS5。さらに、ウェイト番号生成部32は、既に受信したフレームと同一のフレームを受信したかを、FIDテーブル27を参照して確認するステップS6。すなわち、受信したフレームのSRCIDフィールドの値とFIDフィールドの値の組み合わせが、FIDテーブル27に登録されているかを判断する。SRCIDフィールドの値とFIDフィールドの値の組み合わせが、FIDテーブル27に登録されている場合、ウェイト番号生成部32は、既に受信したフレームを受信したと判断するステップS6でYes。この場合、ウェイト番号生成部32は、受信フレームを削除するステップS7。SRCIDフィールドの値とFIDフィールドの値の組み合わせが、FIDテーブル27に登録されていない場合、ウェイト番号生成部32は、フレームを受信したノード自ノードのウェイト番号についての処理を行うステップS6でNo。なお、ステップS8~S13の処理では、受信フレームの送信元基幹中継番号に対応する基幹中継ノード50を起点としたウェイト番号についての処理が行われる。ウェイト番号生成部32は、受信したフレーム中の送信元ウェイト番号が初期値0xFFであるかを確認するステップS8。受信したフレーム中の送信元ウェイト番号が初期値である場合、ウェイト番号生成部32は、フレームを受信したノードのウェイト番号を初期値に更新するステップS8でYes、ステップS9。一方、受信したフレーム中の送信元ウェイト番号が初期値でない場合、ウェイト番号生成部32は、フレームを受信したノードのウェイト番号は、受信フレームのウェイト番号を1つインクリメントした値よりも大きいかを確認するステップS10。フレームを受信したノードのウェイト番号が受信フレームのウェイト番号を1つインクリメントした値よりも大きい場合、受信フレームにより最短ホップ数が更新されることを意味するステップS10でYes。そこで、ウェイト番号生成部32は、自ノードのウェイト番号を受信フレームのウェイト番号を1つインクリメントした値に更新し、さらに、マスターポートをフレームの受信ポートに更新するステップS11、S12。一方、フレームを受信したノードのウェイト番号が受信フレームのウェイト番号を1つインクリメントした値以下の場合、受信フレームを用いても最短ホップ数が更新されないステップS10でNo。そこで、ステップS10でNoと判断されると、自ノードのウェイト番号は更新されない。その後、ウェイト番号生成部32は、同期要求フレームのウェイト番号を自ノードのウェイト番号に差し替え、SRCIDを自ノードのアドレスに変更した上で、全ポートから送信するステップS13。また、ウェイト番号を用いてサーバ1への中継先の基幹中継ノード50を決定すると、決定した基幹中継ノード50に同期要求応答フレームを送信するステップS14。図14は、中継先の基幹中継ノード50を選択する際の選択部35の動作の例を説明するフローチャートである。選択部35は、ネットワーク中の全ての基幹中継ノード50を起点としたウェイト番号が決定されると、選択部35は、最小のウェイト番号を示す変数mに0xFFを設定するステップS81。また、選択部35は、中継先に選択される基幹中継ノード50に割り振られた基幹中継番号を特定するための変数nを0に設定するステップS82。次に、選択部35は、基幹中継番号=nの基幹中継ノード50を起点としたときのウェイト番号がmより小さいかを判定するステップS83。基幹中継番号=nの基幹中継ノード50を起点としたときのウェイト番号がmより小さい場合、選択部35は、基幹中継番号=nの基幹中継ノード50を起点としたときのウェイト番号をmの値に設定するステップS84。次に、選択部35は、nの値を1つインクリメントするステップS85。一方、基幹中継番号=nの基幹中継ノード50を起点としたときのウェイト番号がm以上である場合ステップS83でNo、ステップS84とS85の処理は行われない。その後、選択部35は、nの値を基幹中継ノード50の総数から1を引いた数と比較し、両者が一致するまでステップS83~S86の処理を繰り返す。両者が一致すると、選択部35は、nに設定されている値と同じ基幹中継番号が割り振られている基幹中継ノード50を中継先に選択する。中継先が決定された後のフレームの送受信中継先が決定されると、センサー中継ノード10は、隣接するセンサー中継ノード10に向けて定期的にヘルスフレームを送信する。ヘルスフレームは、送信元のセンサー中継ノード10が正常に動作していることを、隣接ノードに通知するために使用される。また、ウェイト番号に変動があった場合、ヘルスフレームにより変更後のウェイト番号が通知される。ヘルスフレームの例を図7cに示す。ヘルスフレームでは、DSTIDフィールドに、送信元のセンサー中継ノード10に隣接する全てのセンサー中継ノード10を表すアドレスが設定される。また、送信元基幹中継番号と送信元基幹中継番号に対応する基幹中継ノード50を起点とするウェイト番号も、ヘルスフレームにより通知される。図7cでは送信元基幹中継番号とウェイト番号が1組含まれているので、センサー中継ノード10は複数のヘルスフレームを用いることにより、各基幹中継ノード50からのウェイト番号を取得できる。ここで、ヘルスフレーム中の送信元基幹中継番号は、送信元のセンサー中継ノード10により任意の基準で選択された基幹中継ノード50とすることができる。例えば、センサー中継ノード10は、中継先に決定した基幹中継ノード50を示す送信元基幹中継番号と、中継先の基幹中継ノード50を起点としたウェイト番号をヘルスフレームにより通知することができる。また、ヘルスフレームの場合、KINDフィールドの値はKIND3であるものとする。図13Aと図13Bを参照しながら、ヘルスフレームを受信した場合のセンサー中継ノード10の動作の例を説明する。受信フレームが同期要求フレームではない場合、図13AのステップS3でNoと判定され、図13BのステップS21において、受信フレームがヘルスフレームであるか判定されるステップS21。ここでは、受信フレームがヘルスフレームであったとするステップS21でYes。すると、ウェイト番号生成部32により、ステップS22、S23の処理が行われる。この処理は図13Aを参照しながら説明したステップS4、S5と同様の処理である。ウェイト番号生成部32は、受信したヘルスフレーム中の送信元ウェイト番号が初期値0xFFであるかを確認するステップS24。ここでは、送信元ウェイト番号が初期値ではない場合ステップS24でNoについて説明し、送信元ウェイト番号が初期値である場合については後述する。送信元ウェイト番号が初期値ではない場合、ウェイト番号生成部32は、フレームを受信したノード自ノードのウェイト番号についての処理を行う。なお、ステップS25~S29では、受信フレームの送信元基幹中継番号に対応する基幹中継ノード50を起点としたウェイト番号についての処理が行われる。ウェイト番号生成部32は、自ノードのウェイト番号は、受信フレームのウェイト番号を1つインクリメントした値よりも大きいかを確認するステップS25。フレームを受信したノードのウェイト番号は、受信フレームのウェイト番号を1つインクリメントした値以下の場合、ステップS1に戻るステップS25でNo。フレームを受信したノードのウェイト番号が受信フレームのウェイト番号を1つインクリメントした値よりも大きい場合は、自ノードが中継先を決定した後に、より短い経路が発見されたことを示す。このため、ヘルスフレームによりウェイト番号が変更されるステップS26、S27。ステップS26、S27は、図13Aを参照しながら説明したステップS11、S12と同様である。その後、ウェイト番号生成部32は、ヘルスフレームを生成して全ポートから出力するステップS28。また、自ノードのウェイト番号が更新されると、ウェイト番号生成部32は、ウェイト番号を用いてサーバ1への中継先の基幹中継ノード50を決定する。中継先の基幹中継ノード50が変更されると、ウェイト番号生成部32は、基幹中継ノード50に状態通知フレームを送信するステップS29。次に、センサー中継ノード10とサーバ1の間で行われるデータフレームの送受信について説明する。データフレームの例を図7dに示す。データフレームでは、DSTIDフィールドに、宛先のサーバ1もしくはセンサー中継ノード10を表すアドレスが設定される。また、送信元基幹中継番号と送信元基幹中継番号に対応する基幹中継ノード50を起点としたときの送信先のウェイト番号も、データフレームに含まれる。センサー中継ノード10からサーバ1にデータフレームが送信される場合、送信先ウェイト番号には中継先とする基幹中継ノード50のウェイト番号、すなわち、0が設定される。一方、サーバ1から特定のセンサー中継ノード10にデータフレームが送信される場合、送信先ウェイト番号は、基幹中継ノード50によって設定される。基幹中継ノード50は、サーバ1から受信したデータフレームの宛先をキーとして、図11に示したようなウェイト番号のテーブルを検索し、管理対象のセンサー中継ノード10のウェイト番号を取得する。基幹中継ノード50は、取得したウェイト番号をデータフレームに記録し、処理後のデータフレームをセンサー中継ノード10に転送する。データフレームがサーバ1に向けて送信される場合、送信元のセンサー中継ノード10は、自ノードのウェイト番号よりも小さいウェイト番号が割り当てられているノードに接続されたポートから、データフレームを送信する。また、データフレームを中継するセンサー中継ノード10も、自ノードのウェイト番号よりも小さいウェイト番号が割り当てられているノードに接続されたポートから、データフレームを送信する。一方、データフレームがサーバ1から特定のセンサー中継ノード10に向けて送信される場合、基幹中継ノード50は、隣接するセンサー中継ノード10に、データフレームを送信する。さらに、データフレームを中継するセンサー中継ノード10は、自ノードのウェイト番号よりも大きいウェイト番号が割り当てられているノードに接続されたポートから、データフレームを送信する。さらに、データフレームがサーバ1に向けて送信される場合と、特定のセンサー中継ノード10に向けて送信される場合のいずれも、データフレームを中継するノードのウェイト番号生成部32は、FIDテーブル27を用いてループの発生をチェックしている。図13A、図13B、図13C、図13E、および、図13Fを参照しながら、データフレームが転送される場合の処理の例を説明する。データフレームを受信したセンサー中継ノード10においても、図13AのステップS1~S3の処理が行われる。受信されたフレームがデータフレームである場合、ステップS3において、Noと判定され、図13BのステップS21の判断が行われる。受信フレームがヘルスフレームではない場合、ステップS21でもNoと判定され、図13CのステップS31において、受信フレームが削除通知であるかの判断が行われる。削除通知は、制御フレームの一種であり、削除通知については後述する。データフレームが受信された場合、ステップS31でNoと判定されるので、ステップS38において、データフレームの宛先が自ノードであるかが判定される。データフレームの宛先が自ノードである場合、データフレーム中のデータはCPUインタフェース24を介してCPU40に出力され、処理が行われるステップS38でYes。一方、データフレームの宛先が自ノードではない場合ステップS38でNo、図13Eと図13Fに示すルーティング処理が行われる。ルーティング部38は、データフレームに送信元基幹中継番号が記録されているかを確認するステップS51。データフレームに送信元基幹中継番号が含まれていない場合、ルーティング部38は、データフレームを受信ポートに返送するステップS52。次に、ルーティング部38は、データフレームから、SRCIDとFIDを取得し、取得したSRCIDとFIDをキーとして、FIDテーブル27を検索するステップS53。FIDテーブル27にヒットするエントリが無い場合、ルーティング部38は、データフレームの宛先アドレスをキーとしてPSテーブル28を検索するステップS53でNo、ステップS54。PSテーブル28中にヒットするエントリが有る場合、ルーティング部38は、得られたエントリにデータフレームを送信可能なポートとして記録されているポートからデータフレームを送信することを決定するステップS54でYes。そこで、ルーティング部38は、FIDテーブル27に、データフレームのSRCIDとFIDを含むエントリを生成するステップS67。また、ルーティング部38は、生成したエントリに、データフレームを送信するポートの番号を送信中ポートとして記録する。その後、ルーティング部38は、送信ポートを送信フレーム制御部22に通知し、データフレームを送信フレーム制御部22から送信させるステップS68。PSテーブル28中にヒットするエントリが無い場合、ルーティング部38は、データフレームを受信したポート以外にリンク断とはなっていない有線アドホックネットワークポート11があるかを、送信フレーム制御部22に問い合わせるステップS54でNo。リンク断でないポートがない場合、ルーティング部38は、データフレームのルーティングができないと判断し、データフレームを受信ポートから出力するステップS55でNo、ステップS56。リンク断でないポートがある場合、ルーティング部38は、受信フレームに設定されている送信先ウェイト番号が初期値0xFFであるか判定するステップS55でYes、ステップS60。データフレームの送信先ウェイト番号が初期値である場合、ルーティング部38は、ウェイト番号を用いたルーティング処理は実行しないステップS60でYes。ルーティング部38は、送信フレーム制御部22から通知されたポートが複数ある場合には、若番若しくは老番等と条件を統一させるのポートを選択するステップS65。次に、ルーティング部38は、受信フレームの宛先アドレスに対応するエントリをPSテーブル28に生成し、ステップS65で選択したポートを送信中ポートに設定するステップS66。一方、ステップS53で、FIDテーブル27にヒットするエントリが見つかった場合、ルーティング部38は、以前に一度受信して他のセンサー中継ノード10に送信したフレームが、再び戻ってきたと判断するステップS53でYes。この場合、ルーティング部38は、FIDテーブル27で送信中ポートとされているポートの状態をループポートに変更するステップS57。ここで、あるポートがループポートに設定されることは、そのポートからは宛先アドレスにフレームを送信できないことを意味するものとする。続いて、ルーティング部38は、データフレームの宛先アドレスをキーとしてPSテーブル28を検索し、得られたエントリにおいて送信中ポートに設定されているポートに対してループ状態を設定するステップS58。次に、ルーティング部38は、PSテーブル28上の該当するエントリを検索することにより、未使用状態に設定されているポートがあるかを判定するステップS59。未使用ポートがない場合ステップS59でNoルーティング部38は、FIDテーブル27から、受信フレームの送信元アドレスに対応付けられたエントリを抽出し、そのエントリのRxPort受信ポートを取得するステップS72。そして、ルーティング部38は、抽出された最初の受信ポートに、受信フレームを戻して送信するステップS73。一方、未使用ポートがある場合ステップS59でYes、ルーティング部38は、その未使用ポートを選択して送信処理を行うために、ステップS60の処理を行う。受信フレームのウェイト番号が初期値である場合ステップS60でYes、ステップS65~S68の処理が行われる。受信フレームのウェイト番号が初期値ではない場合ステップS60でNo、ルーティング部38は、受信フレーム内の送信先ウェイト番号が、自ノードのウェイト番号よりも大きいか否かを判定するステップS61。受信フレーム内の送信先ウェイト番号が、自ノードのウェイト番号よりも大きい場合、ルーティング部38は、自ノードよりもサーバ1から遠いセンサー中継ノード10に向けてフレームを中継することを認識する。そこで、ルーティング部38は、自ノードのウェイト番号よりも大きなウェイト番号が割り当てられているノードに接続されているポートからフレームの送信が可能であるかを確認するステップS62。自ノードのウェイト番号よりも大きなウェイト番号が割り当てられているノードに接続されているポートからフレームを送信できる場合ステップS62でYes、ステップS65~S68の処理が行われる。一方、自ノードよりも大きなウェイト番号が割り当てられているノードにフレームを送信できない場合ステップS62でNo、ルーティング部38は、FIDテーブル27のLoopフラグがONとなっているかを判定するステップS69。LoopフラグがONである場合、データフレームの宛先となっているセンサー中継ノード10は、自ノードの接続先には存在しないことが既に記録されているステップS69でYes。そこで、ルーティング部38は、データフレームを受信したポートに返送するステップS70。一方、LoopフラグがOFFである場合、データフレームの宛先となっているセンサー中継ノード10は、自ノードの接続先には存在しないことがFIDテーブル27には記録されていないステップS69でNo。そこで、ルーティング部38は、FIDテーブル27のLoopフラグをONにするステップS71。その後、ルーティング部38は、FIDテーブル27を受信フレームの送信元アドレスSRCIDをキーとしてエントリを検索し、ヒットしたエントリのRxPort受信ポートを特定するステップS72。ルーティング部38は、抽出された最初の受信ポートに、受信フレームを戻して送信するステップS73。次に、ステップS61の判定がNOの場合には、ルーティング部38は、受信フレーム内の送信先ウェイト番号が自ノードのウェイト番号よりも小さいかを判定するステップS63。受信フレーム内の送信先ウェイト番号が、自ノードのウェイト番号よりも小さい場合、ルーティング部38は、自ノードよりもサーバ1に近いセンサー中継ノード10に向けてフレームを中継することを認識するステップS63でYes。受信フレーム内の送信先ウェイト番号が自ノードのウェイト番号よりも小さい場合、そこで、ルーティング部38は、自ノードのウェイト番号よりも小さなウェイト番号が割り当てられているノードに接続されているポートからフレームの送信が可能であるかを確認するステップS64。自ノードのウェイト番号よりも小さなウェイト番号が割り当てられているノードに接続されているポートからフレームを送信できる場合ステップS64でYes、ステップS65~S68の処理が行われる。一方、自ノードのウェイト番号よりも小さなウェイト番号が割り当てられているノードに接続されているポートからフレームを送信できない場合ステップS64でNo、ステップS69~S73を参照しながら説明した処理が行われる。また、ステップS63で、受信フレーム内の送信先ウェイト番号が自ノードのウェイト番号よりも小さくないと判定された場合、ステップS69~S73を参照しながら説明した処理が行われる。以上説明した中継先の選択方法とルーティング方法を用いることにより、センサー中継ノード10は、最短ホップ数によりフレームをサーバ1との間で送受信できる。すなわち、前述のとおり、ウェイト番号を用いて中継先の基幹中継ノード50が決定され、個々のセンサー中継ノード10から最短のホップ数で到達できる基幹中継ノード50が中継先に選択される。さらに、中継先に選択された基幹中継ノード50までの経路も、最短ホップ数の経路とされる。このときの経路の選択は、受信フレーム内の送信先ウェイト番号、自ノードのウェイト番号、および、ポート毎の接続先ノードのウェイト番号に基づいて行われる。さらに、本実施形態にかかる方法では、センサー中継ノード10が最短ホップ数で到達できる基幹中継ノード50を中継先とするので、特定の基幹中継ノード50への処理の集中を防ぐことができる。<第2の実施形態>第2の実施形態では、基幹中継ノード50とサーバ1の間で障害が発生した場合の復旧方法について説明する。図15は、図10に示すように中継先が決定されていたときに、基幹中継ノード50bとサーバ1の間の回線で障害が発生した場合の例を示す。以下、図15に示すように障害が発生した場合に行われる処理を例として説明する。なお、第2の実施形態においても、中継先が決定された後のフレームのルーティングは、第1の実施形態と同様に行われる。21基幹中継ノード50bとサーバ1の間の回線に障害が発生すると、基幹中継ノード50は、障害の発生を検出する。基幹中継ノード50bは、例えば、サーバ1との間で定期的に信号を送受信しており、一定時間を越えて信号がサーバ1から受信できなかったときに、サーバ1と基幹中継ノード50bの間に障害が発生したと判定することができる。22基幹中継ノード50bは、隣接するセンサー中継ノード10がノードN4であることを特定する。この処理は、例えば、前述の手順19で同期要求応答フレームにより、センサー中継ノード10bまでのウェイト番号が1であることを通知したセンサー中継ノード10を基幹中継ノード50bが特定することにより行われる。基幹中継ノード50bは、ノードN4に対して、基幹中継ノード50bを起点としたウェイト番号の初期値0xFFへの変更を要求する。このとき、基幹中継ノード50bは、基幹中継ノード50bの基幹中継番号=1を合せてノードN4に通知するものとする。23基幹中継ノード50bとサーバ1の間での障害が通知される前は、ノードN4のウェイト番号は、基幹中継ノード50aを起点としたウェイト番号:4基幹中継ノード50bを起点としたウェイト番号:1基幹中継ノード50cを起点としたウェイト番号:4である。ノードN4が基幹中継ノード50bからウェイト番号の変更の要求を受信すると、ノードN4のウェイト番号生成部32は、要求に応じてウェイト番号を初期化する。この処理により、ノードN4のウェイト番号は、基幹中継ノード50aを起点としたウェイト番号:4基幹中継ノード50bを起点としたウェイト番号:0xFF基幹中継ノード50cを起点としたウェイト番号:4となる。24ノードN4の選択部35は、ウェイト番号を比較して、中継先の基幹中継ノード50を決定する。中継先の基幹中継ノード50を決定する方法は、図14を参照しながら説明した方法と同様である。この処理により、選択部35は、基幹中継ノード50aを中継先に選択する。25ノードN4の選択部35は、基幹中継ノード50aに向けて状態通知フレームを送信する。状態通知フレームの例を図7eに示す。状態通知フレームではKINDフィールドの値がKIND5に設定されるものとする。また、状態通知フレームの宛先は、新たに中継先とされる基幹中継ノード50であり、送信先ウェイト番号は0に設定される。送信元ウェイト番号は、状態通知を送信するセンサー中継ノード10のウェイト番号である。この例では、送信元ウェイト番号は4、宛先アドレスは、基幹中継ノード50aのアドレスに設定される。さらに、状態通知フレームには、送信元基幹中継番号が含まれている。選択部35は、送信元基幹中継番号の値を0に設定する。選択部35は、新たに中継先とした基幹中継ノード50aに対応付けられたウェイト番号テーブル33を確認することにより、ノードN4よりも基幹中継ノード50aに近いセンサー中継ノード10がノードN3であることを特定する。そこで、選択部35は、ノードN3に接続されているポートを介して送信することを送信フレーム制御部22に要求し、中継先を基幹中継ノード50aに変更したことを通知しようとする。26ノードN3のルーティング部38は、受信したフレームのKINDフィールドがKIND5であることを認識すると、状態通知フレームを受信したと認識する。状態通知フレームの場合は、中継先の変更を通知するフレームであるため、自ノードの中継先とは異なる基幹中継ノード50が宛先とされている可能性がある。そこで、ルーティング部38は、ノードN3のFIDテーブル27やPSテーブル28を参照せずに、状態通知フレーム中の送信元基幹中継番号を取得し、得られた送信元基幹中継番号に対応付けられたウェイト番号テーブル33に基づいて転送先を決定する。ここでは、送信元基幹中継番号=0の状態通知フレームを受信しているので、ルーティング部38は、基幹中継ノード50aのウェイト番号テーブル33を確認することにより、ノードN3よりも小さいウェイト番号が割り当てられているポートを認識する。ルーティング部38は、認識したポートから状態通知フレームを出力することにより、状態通知フレームをノードN2に転送する。ノードN2でも同様にルーティング部38が転送処理を行い、ノードN1に状態通知フレームを転送する。ノードN1は、状態通知フレームを基幹中継ノード50aに転送する。基幹中継ノード50aは、受信した状態通知フレームに基づき、管理対象のノードにノードN4を加える。さらに、ノードN4が新たに基幹中継ノード50aの管理対象となったことをサーバ1に通知することにより、以後はノードN4宛てのフレームを基幹中継ノード50aが中継することをサーバ1に認識させる。27ノードN4の初期化要求部37は、ヘルスフレーム図7cを隣接するノードN3とN5に送信することにより、ウェイト番号の変更を通知する。ここで、初期化要求部37は、ヘルスフレームの送信元基幹中継番号を1、送信元ウェイト番号を0xFFに設定する。28ノードN4からのヘルスフレームを受信する前は、ノードN3のウェイト番号は、基幹中継ノード50aを起点としたウェイト番号:3基幹中継ノード50bを起点としたウェイト番号:2基幹中継ノード50cを起点としたウェイト番号:5となっている。ノードN3は、受信したヘルスフレームを解析することにより、基幹中継ノード50bを起点としたときのノードN4のウェイト番号が0xFFに変更されたことを認識する。さらに、ノードN3のウェイト番号生成部32は、基幹中継ノード50bを起点としたときのウェイト番号を0xFF初期値に変更する。すなわち、ウェイト番号を、基幹中継ノード50aを起点としたウェイト番号:3基幹中継ノード50bを起点としたウェイト番号:0xFF基幹中継ノード50cを起点としたウェイト番号:5に変更する。29ノードN3の選択部35は、変更後のウェイト番号を用いて、中継先の基幹中継ノード50を決定する。中継先の基幹中継ノード50を決定する方法や、中継先の変更を通知する方法は、手順24~26と同様である。さらに、ノードN3は、隣接するノードN2とN10にヘルスフレームを送信し、基幹中継ノード50bを起点とするウェイト番号が変更されたことを通知する。30ノードN5でも、同様に基幹中継ノード50bを起点とするウェイト番号の変更と状態通知フレームの送信が行われる。これらの処理は、手順24~27で説明した動作と同様である。また、その他のノードにおいてもウェイト番号の変更が行われ、ウェイト番号の変更に伴い中継先の基幹中継ノード50が変更される場合、手順24~27と同様に処理される。一方、ノードN2などのように、ウェイト番号が変更されても中継先の基幹中継ノード50が変更されない場合、状態通知フレームは生成されない。しかし、中継先の基幹中継ノード50が変更されない場合でも、ウェイト番号を変更したことは、隣接するノードにヘルスフレームにより通知される。図16は、手順21~30の処理が行われた後の、各センサー中継ノード10の中継先を示す。図16に示すように、ノードN3、N4、N10、N11、N17、N18は、中継先を基幹中継ノード50bから基幹中継ノード50aに変更する。また、ノードN5、N12、N19は、中継先を基幹中継ノード50bから基幹中継ノード50cに変更する。第2の実施形態において、ヘルスフレームを受信したセンサー中継ノード10の動作の例を、図13A、図13B、図13Dを参照しながら説明する。フレームを受信すると、センサー中継ノード10では図13AのステップS1~S3の処理が行われ、ステップS3においてNoと判定される。なお、ステップS1~3の処理は、既に説明したとおりである。すると、図13BのステップS21の処理に進み、ヘルスフレームを受信したかの判定が行われる。ここでは、ヘルスフレームが受信されているので、ステップS22において、ヘルスフレームを受信したポートの接続先のウェイト番号が、ヘルスフレーム中の送信元ウェイト番号に基づいて変更される。さらに、ステップS23、S24の処理が行われる。ステップS23、24の処理は、既に説明したとおりである。ステップS24において、受信したヘルスフレームの送信元ウェイト番号が初期値であると判定されると、図13Dの処理が行われる。まず、ウェイト番号生成部32は、中継先に指定している基幹中継ノード50を起点とした自ノードのウェイト番号を初期化するステップS41。さらに、ウェイト番号生成部32は、中継先に指定している基幹中継ノード50に関連付けられたウェイト番号テーブル33において、マスターポートの値を初期化するステップS42。その後、センサー中継ノード10は、全てのポートからヘルスフレームを送信するステップS43。さらに、センサー中継ノード10は、変更後のウェイト番号に基づいて中継先とする基幹中継ノード50を決定し、基幹中継ノード50を変更した場合、新たに中継先とした基幹中継ノード50に状態通知フレームを送信するステップS44。このように、基幹中継ノード50とサーバ1の間の回線に障害が発生すると、基幹中継ノード50からの通知を契機として、個々のセンサー中継ノード10においてウェイト番号が変更される。さらに、個々のセンサー中継ノード10は、変更後のウェイト番号に基づいて中継先の基幹中継ノード50を決定し、中継先を変更した場合は新たに中継先とした基幹中継ノード50に中継先に指定したことを通知する。このため、障害が発生しても、自律的に障害から復旧し、いずれのセンサー中継ノード10も最短ホップ数で到達できる基幹中継ノード50を中継先として、最短ホップ数でのルーティングを行うことができる。<第3の実施形態>第3の実施形態では、基幹中継ノード50に障害が発生した場合の動作について説明する。以下、図10に示すように中継先が選択されているときに、基幹中継ノード50bに障害が発生した場合の処理を例として説明する。なお、第3の実施形態においても、中継先が決定された後のフレームのルーティングは、第1の実施形態と同様に行われる。41基幹中継ノード50bで故障が発生すると、基幹中継ノード50bに隣接しているノードN4は、基幹中継ノード50bとの間でヘルスフレームを送受信できなくなる。ヘルスフレームが一定時間以上、基幹中継ノード50bから受信できない場合、ノードN4の障害検出部36は、基幹中継ノード50bが故障したと判断する。42障害検出部36は、基幹中継ノード50bが故障したことをウェイト番号生成部32と初期化要求部37に通知する。ウェイト番号生成部32は、基幹中継ノード50bを起点としたウェイト番号を初期化する。また、初期化要求部37は、隣接するセンサー中継ノード10に対して、基幹中継ノード50bを起点としたウェイト番号の初期化を要求する。以降の処理は、第2の実施形態の手順24以降の処理と同様である。図17に、基幹中継ノード50の故障を発見したときに中継先の基幹中継ノード50を変更した場合の例を示す。このように、基幹中継ノード50に隣接したセンサー中継ノード10が、ヘルスフレームを用いて基幹中継ノード50の動作を監視することにより、基幹中継ノード50の故障を発見したときにも、自律的に経路や中継先の変更が行われる。<第4の実施形態>次に、センサー中継ノード10に障害が発生した場合の処理について説明する。以下、図10に示すように中継先が選択されているときに、ノードN5のセンサー中継ノード10に障害が発生した場合の処理を例として説明する。51ノードN5で故障が発生すると、ノードN5に隣接しているノードN4、N12、N6は、ノードN5との間でヘルスフレームを送受信できなくなる。ヘルスフレームが一定時間以上、ノードN5から受信できない場合、ノードN4、N12、N6の障害検出部36は、隣接するセンサー中継ノード10が故障したと判断する。52隣接するセンサー中継ノード10が故障したと判断した場合、障害検出部36はヘルスフレームが受信できないポートを特定する。例えば、図18aに示すように、ノードN4のポートP3にノードN5が接続されているとすると、ノードN4の障害検出部36は、ウェイト番号テーブル33からポートP3に接続されているノードのウェイト番号を取得し、ノードN4のウェイト番号と比較する。さらに、障害検出部36は、比較結果のうち、故障したノードよりも大きなウェイト番号が設定されている場合、ウェイト番号を初期化する。すなわち、故障したノードを介して自ノードが通信する可能性がある基幹中継ノード50を起点とするウェイト番号を初期化する。例えば、基幹中継ノード50aを起点としたウェイト番号は、ノードN4では4であるが、ポートP1に接続されているノードでは5である。基幹中継ノード50bを起点としたウェイト番号は、ノードN4では1であるが、ポートP1に接続されているノードでは2である。さらに、基幹中継ノード50cを起点としたウェイト番号は、ノードN4では4であるが、ポートP1に接続されているノードでは3である。この場合、ノードN4は、基幹中継ノード50a、50bについてはノードN5を介さずに通信できるが、基幹中継ノード50cに最短ホップ数でアクセスするためには、ノードN5を経由することを示す。しかし、経由するノードとなるノードN5が故障しているので、基幹中継ノード50cは中継先として指定することが無いように、障害検出部36は、基幹中継ノード50cを起点としたウェイト番号を初期化する。ノードN4において基幹中継ノード50cを起点とするウェイト番号テーブル33は、図18bに示すように更新される。53ノードN12では、基幹中継ノード50a~50cのいずれの基幹中継ノード50を起点としたウェイト番号もノードN5よりも大きい。このため、ノードN12では、基幹中継ノード50a~50cのいずれの基幹中継ノード50を起点としたウェイト番号も初期化される。ノードN12において基幹中継ノード50cを起点とするウェイト番号テーブル33は、図18cに示すように更新される。54ノードN4の初期化要求部37は、故障したノードを介したフレームの送信を依頼されることを防ぐために、初期化要求を行う。初期化要求部37は、障害検出部36で初期化したウェイト番号の基点と同じ基幹中継ノード50が起点とされたウェイト番号が、自ノードに設定されていたウェイト番号よりも大きい場合、そのウェイト番号の初期化要求を行う。例えば、ノードN4は、基幹中継ノード50cを起点としたウェイト番号を初期化したので、初期化要求部37は、基幹中継ノード50cに対応するウェイト番号テーブル33を確認する。初期化要求部37は、基幹中継ノード50cに対応するウェイト番号テーブル33において、初期化の前のノードN4のウェイト番号よりも大きなウェイト番号が設定されているポートから、基幹中継ノード50cを起点とするウェイト番号の初期化を要求する。図19aの例では、ノードN4の初期化要求部37は、ノードN3に基幹中継ノード50cを起点としたウェイト番号の初期化を要求する。ノードN3のウェイト番号生成部32は、基幹中継ノード50cを起点としたウェイト番号の初期化を要求されると、要求に応じてウェイト番号を初期化する。ノードN3において基幹中継ノード50cを起点とするウェイト番号テーブル33は、図19bに示すように更新される。また、基幹中継ノード50cを起点としたウェイト番号の初期化の要求を受けたことと、基幹中継ノード50cを起点としたノードN3の初期化前のウェイト番号を、初期化要求部37に通知しておく。55ノードN12も、ノードN4と同様に初期化の要求を行う。このため、ノードN12では、基幹中継ノード50a~50cを起点としたウェイト番号の初期化をノードN19に求める。図19dに、ノードN19において基幹中継ノード50cを起点とするウェイト番号テーブル33の変更例を示す。なお、ノードN19でもノードN3と同様の処理が行われる。56一方、ノードN12は、ノードN11に対して、基幹中継ノード50b、50cを起点としたウェイト番号の初期化を求める。図19cに、ノードN11において基幹中継ノード50cを起点とするウェイト番号テーブル33の変更例を示す。なお、ノードN11でもノードN3と同様の処理が行われる。57ノードN3の初期化要求部37は、基幹中継ノード50cに対応付けられたウェイト番号テーブル33について、各ポートの出力先のノードのウェイト番号を、自ノードについて初期化の前に決定されていたウェイト番号と比較する。初期化要求部37は、比較の結果、自ノードの初期化の前のウェイト番号よりも大きなウェイト番号のノードに接続されているポートから、初期化の要求を出力する。ここでは、ノードN3は、ノードN2、N10に対して基幹中継ノード50cを起点としたウェイト番号の初期化を要求する。図20aは、ノードN10に対しての初期化の要求が行われた場合の様子を示す。また、図20bに、ノードN10において基幹中継ノード50cを起点とするウェイト番号テーブル33の変更例を示す。58ノードN11の初期化要求部37は、ノードN3と同様の処理を行った結果、ノードN18に対して、基幹中継ノード50a~50cを起点としたウェイト番号の初期化を要求する。ノードN19の初期化要求部37も、ノードN18に対して、基幹中継ノード50a、50bを起点としたウェイト番号の初期化を要求する。また、図20cに、ノードN18において基幹中継ノード50cを起点とするウェイト番号テーブル33の変更例を示す。59ノードN17も、ノードN10、N18から初期化の要求を受けると、図21aに示すようにウェイト番号テーブル33を変更する。また、図21bに、ノードN17において基幹中継ノード50cを起点とするウェイト番号テーブル33の変更例を示す。60その他のセンサー中継ノード10においても同様にウェイト番号の変更が行われる。その結果、図22に示すようにウェイト番号が変更される。図22において、矢印の左側の値はノードN5の障害が発生する前に各センサー中継ノード10に割り当てられていたウェイト番号であり、矢印の右側の値はノードN5に障害が発生したことにより決定されたウェイト番号である。61次に、ヘルスフレームを受信したセンサー中継ノード10は、ヘルスフレームに含まれている送信元ウェイト番号が初期値ではない場合、受信したウェイト番号に基づいて、自ノードのウェイト番号を変更する。ヘルスフレームに含まれている送信元ウェイト番号に基づいてウェイト番号を変更する方法は、図13BのステップS25~S29を参照しながら説明した方法と同様である。例えば、ノードN11から基幹中継ノード50aを起点としたウェイト番号が5であると、ノードN12のウェイト番号生成部32は、基幹中継ノード50aを起点としたノードN12のウェイト番号を6に決定する。図23に、ウェイト番号の変更の例を示す。62手順61で変更されたウェイト番号に従って、選択部35は、中継先の基幹中継ノード50を決定する。中継先の基幹中継ノード50の選択方法は、図14を参照しながら説明した方法と同様である。さらに、中継先を変更した場合に新たな中継先として指定したことを基幹中継ノード50に通知する方法は、第2の実施形態と同様である。この例では、手順61の処理により、ノードN19は中継先を、基幹中継ノード50bから50cに変更する。図24Aと図24Bは、隣接するセンサー中継ノード10が故障した場合のセンサー中継ノード10の動作の例を説明するフローチャートである。なお、図24Aと図24Bに示す処理は一例であり、例えば、ステップS92とS93の組合せ、ステップS94とS95の組合せ、および、ステップS96とS97の組合せの順序は任意に変更できる。障害検出部36は、ウェイト番号テーブル33のタイマーがタイムアウトするまでの間にフレームの送受信が無かった場合、タイムアウトしたポートに接続されているノードが故障したと判断する。そこで、障害検出部36は、処理対象とされた基幹中継ノード50の数を計数するための変数kを0に設定するステップS91。障害検出部36は、タイムアウトしたタイマーはポートP1に対応付けられていたかを確認するステップS92。ポートP1に対応付けられたタイマーがタイムアウトした場合、障害検出部36は、基幹中継番号=kのウェイト番号テーブル33において、ポートP1に接続されているノードのウェイト番号を初期化するステップS92でYes、ステップS93。一方、ポートP1に対応付けられたタイマーがタイムアウトしていない場合、ポートP1に接続されているノードのウェイト番号は更新されない。次に、障害検出部36は、タイムアウトしたタイマーはポートP2に対応付けられていたかを確認するステップS94。ポートP2に対応するタイマーがタイムアウトした場合、障害検出部36は、基幹中継番号=kのウェイト番号テーブル33において、ポートP2に接続されているノードのウェイト番号を初期化するステップS94でYes、ステップS95。さらに、障害検出部36は、タイムアウトしたタイマーはポートP3に対応付けられていたかを確認するステップS96。ポートP3に対応付けられたタイマーがタイムアウトした場合、障害検出部36は、基幹中継番号=kのウェイト番号テーブル33において、ポートP3に接続されているノードのウェイト番号を初期化するステップS96でYes、ステップS97。次に、障害検出部36は、マスターポートに設定されていたポートでウェイト番号が初期化されているかを確認するステップS98。マスターポートでウェイト番号が初期化されていることは、最短ホップ数が変更されることを意味する。そこで、マスターポートのウェイト番号が初期化されている場合、基幹中継番号=kの基幹中継ノード50を起点とした自ノードのウェイト番号を初期化し、マスターポートの設定も初期化するステップS99、S100。その後、kの値を1つインクリメントして、基幹中継ノード50の総数から1つ引いた値とkの値を比較するステップS101、S102。基幹中継ノード50の総数から1つ引いた値とkの値が一致するまでステップS91~S102の処理が繰り返される。基幹中継ノード50の総数から1つ引いた値とkの値が一致すると、センサー中継ノード10は、ウェイト番号を含むヘルスフレームを、隣接するセンサー中継ノード10に送信するステップS103。ヘルスフレームを送受信することにより、ウェイト番号の初期化やウェイト番号の再決定が終わると、センサー中継ノード10は、得られたウェイト番号を用いて中継先の基幹中継ノード50を再決定するステップS104。さらに、センサー中継ノード10は、変更後の基幹中継ノード50に向けて状態通知フレームを送信するステップS105。基幹中継ノード50は、状態通知フレームを受信することにより、センサー中継ノード10において行われた基幹中継ノード50の変更を認識する。このように、本実施形態によると、センサー中継ノード10に故障が発生した場合でも、正常に動作しているいずれのセンサー中継ノード10も最短ホップ数で到達できる基幹中継ノード50を中継先とし、最短ホップ数でのルーティングを行うことができる。<第5の実施形態>次に、センサー中継ノード10に障害が発生した場合に、基幹中継ノード50からの要求によってウェイト番号を設定する方法について説明する。図25は、基幹中継ノード50が記憶するテーブルの例を示す図である。本実施形態では、基幹中継ノード50同士が制御情報を送受信することにより、全ての基幹中継ノード50が共通のテーブルを記憶する。このため、基幹中継ノード50は、管理対象ではないセンサー中継ノード10についても、そのセンサー中継ノード10を管理する基幹中継ノード50を認識している。例えば、図25では、基幹中継ノード50a基幹中継番号=0は、ノードN4が基幹中継ノード50b基幹中継番号=1に管理されていることを認識している。また、あるセンサー中継ノード10で故障が発生した場合、故障が発生したことを通知する情報を受信した基幹中継ノード50は、他の基幹中継ノード50に故障の発生を、故障したセンサー中継ノード10のIDと共に通知する。センサー中継ノード10での通知を認識すると、各基幹中継ノード50は、ウェイト番号の再決定を要求する。各センサー中継ノード10は、再決定されたウェイト番号に応じて中継先の基幹中継ノード50を決定する。以下、具体例を挙げて、本実施形態で行われる動作を説明する。ここでも、図10に示すように中継先が選択されているときに、ノードN5のセンサー中継ノード10に障害が発生した場合の処理を例とする。71ノードN5の障害が発生したことが検出は、第4の実施形態の手順51と同様に行われる。従って、ノードN4、N12、N6がノードN5での障害の発生を検出する。72障害の発生を検出したセンサー中継ノード10は、そのセンサー中継ノード10が中継先としている基幹中継ノード50に対して、障害の発生を通知するフレーム送信する。障害の発生を通知するフレームは、障害が発生したセンサー中継ノード10をアドホックネットワークから削除することを要求するメッセージである。そこで、以下の記載では、障害の発生を通知するフレームのことを削除通知と記載する。削除通知を受信したセンサー中継ノード10は、基幹中継ノード50に向けて削除通知を転送する。ここでは、ノードN4とN12は、基幹中継ノード50bに対して、ノードN5に障害が発生したことを通知する。一方、ノードN6は、基幹中継ノード50cに対して、ノードN5に障害が発生したことを通知する。73障害の発生が通知された基幹中継ノード50bは、基幹中継ノード50aと50cに対して、ノードN5に障害が発生したことを通知する。また、基幹中継ノード50cも、ノードN6から削除通知を受信すると、基幹中継ノード50aと50bに対して、ノードN5に障害が発生したことを通知する。このため、ネットワーク中の基幹中継ノード50a~50cの各々は、ノードN5での障害の発生を認識する。74ノードN5で障害が発生したことが通知されると、基幹中継ノード50は、同期要求フレームを用いて、各センサー中継ノード10にウェイト番号の再設定を要求する。ウェイト番号の決定方法は、第1の実施形態で説明した方法と同様である。ただし、ここでは、ノードN5に障害が発生しているので、ノードN5からは同期要求フレームが出力されない。図26に、基幹中継ノード50cから出力された同期要求フレームに基づいてウェイト番号が再決定された場合の例を示す。75基幹中継ノード50a、50bも同様に、センサー中継ノード10に同期要求フレームを出力することにより、ウェイト番号の再決定を要求する。図27に、基幹中継ノード50a~50cの各々を起点としたときのウェイト番号が再決定された場合の例を示す。76ウェイト番号が決定されると、選択部35は、中継先とする基幹中継ノード50を決定する。中継先の基幹中継ノード50の選択方法は、図14を参照しながら説明した方法と同様である。さらに、中継先を変更した場合に新たな中継先として指定したことを基幹中継ノード50に通知する方法は、第2の実施形態と同様である。図27の例でも、ノードN5の障害に基づいて経路が変更されるため、ノードN19は中継先を、基幹中継ノード50bから50cに変更する。図28は、第5の実施形態でのセンサー中継ノード10の動作の例を説明するフローチャートである。センサー中継ノード10は、隣接するセンサー中継ノード10で障害が発生したことを検出したかを判定するステップS111。隣接するセンサー中継ノード10での障害の発生を検出していない場合、隣接するセンサー中継ノード10からタイムアウトの前にヘルスフレームを受信できたかを判定するステップS111でNo、ステップS112。タイムアウトの前にヘルスフレームを受信できた場合、センサー中継ノード10は、ステップS111の処理に戻るステップS112でYes。タイムアウト前にヘルスフレームを受信できなかった場合、センサー中継ノード10は、基幹中継ノード50に削除通知を送信するステップS112でYes、ステップS113。ここで、削除通知には、ヘルスフレームを受信できなかったセンサー中継ノード10を識別する識別子が含まれているものとする。また、ステップS111で隣接するセンサー中継ノード10での障害の発生を検出した場合も、センサー中継ノード10は、基幹中継ノード50に削除通知を送信するステップS111でYes、ステップS113。その後、センサー中継ノード10は、基幹中継ノード50から同期要求フレームを受信するまで待機するステップS114。同期要求フレームを受信すると、センサー中継ノード10は、ウェイト番号を再決定するステップS115。ウェイト番号の再決定は、第1の実施形態でウェイト番号を決定した場合と同様に行われる。その後、センサー中継ノード10は、再決定したウェイト番号に基づいて、中継先の基幹中継ノード50を決定し、状態通知フレームを送信するステップS116。図29は、第5の実施形態での基幹中継ノード50の動作の例を説明するフローチャートである。基幹中継ノード50は、センサー中継ノード10から削除通知を受信したかを判定するステップS121。削除通知を受信していない場合、基幹中継ノード50は、他の基幹中継ノード50から、削除同期化通知を受信したかを確認するステップS122。ここで、削除同期化通知は、センサー中継ノード10の故障を認識した基幹中継ノード50が、他の基幹中継ノード50にセンサー中継ノード10の障害を通知するために用いる制御フレームである。削除同期化通知には、障害が発生したセンサー中継ノード10の識別子が含まれている。削除同期化通知を受信していない場合、基幹中継ノード50は、基幹中継ノード50と接続されているセンサー中継ノード10との間でヘルスフレームの応答がタイムアウトしていないかを確認するステップS123。ヘルスフレームの応答がタイムアウトしていない場合、基幹中継ノード50は、ステップS121に戻るステップS123でNo。一方、ステップS121~S123のいずれかでYesと判定された場合、基幹中継ノード50は、他の基幹中継ノード50に削除同期化通知を送信するステップS124。その後、基幹中継ノード50は、センサー中継ノード10に同期要求フレームを送信し、ウェイト番号の再決定を要求するステップS125。基幹中継ノード50は、センサー中継ノード10から同期応答フレームを受信する。さらに、基幹中継ノード50は、受信した同期応答フレームを、他の基幹中継ノード50にも転送する。各基幹中継ノード50は、アドホックネットワークに含まれる全てのセンサー中継ノード10からの同期応答フレームを受信するまで、同期応答フレームの受信と転送を繰り返すステップS126。全てのセンサー中継ノード10からの同期応答フレームを受信すると、基幹中継ノード50はステップS121以降の処理を繰り返すステップS126でYes。<その他>なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。図30は、中継先の基幹中継ノード50を選択する際の選択部35の動作の例を説明するフローチャートである。選択部35は、ネットワーク中の全ての基幹中継ノード50を起点としたウェイト番号が決定されると、選択部35は、最小のウェイト番号を示す変数mに0xFFを設定するステップS131。また、選択部35は、中継先に選択される基幹中継ノード50に割り振られた基幹中継番号を特定するための変数nを、基幹中継ノード50の総数に設定するステップS132。次に、選択部35は、基幹中継番号=nの基幹中継ノード50を起点としたときのウェイト番号がmより小さいかを判定するステップS133。基幹中継番号=nの基幹中継ノード50を起点としたときのウェイト番号がmより小さい場合、選択部35は、基幹中継番号=nの基幹中継ノード50を起点としたときのウェイト番号をmの値に設定するステップS134。次に、選択部35は、nの値を1つデクリメントするステップS135。一方、基幹中継番号=nの基幹中継ノード50を起点としたときのウェイト番号がm以上である場合ステップS133でNo、ステップS134とS135の処理は行われない。選択部35は、nの値が1になるまでステップS83~S86の処理を繰り返す。nの値が1になると、選択部35は、nに設定されている値と同じ基幹中継番号が割り振られている基幹中継ノード50を中継先に選択する。さらに、ヘルスフレームのフォーマットを図7fに示すように変形することもできる。図7fに示すヘルスフレームでは、ネットワーク中の複数の基幹中継ノード50各々を起点としたときのウェイト番号を一度に1つのフレームで送信できる。なお、この場合、フレーム中のウェイト番号の順序と基幹中継ノード50が一意に対応付けられるように予めフォーマットが決定されているものとする。また、センサー中継ノード10が自律的にウェイト番号を変更する場合でも、センサー中継ノード10が基幹中継ノード50に削除要求を送信するように変形される場合もある。図31は、センサー中継ノード10の動作の例を示すフローチャートである。ステップS141~S143は、図28を参照しながら説明したステップS111~113と同様である。次に、センサー中継ノード10は、障害が検出されたポートをマスターポートとしてウェイト番号が設定されているかを確認するステップS144。障害が検出されたポートがマスターポートであった場合、センサー中継ノード10は、マスターポートを未使用に更新し、さらに、自ノードのウェイト番号を初期値に更新するステップS145、S146。センサー中継ノード10は、全てのポートからヘルスフレームを送信するステップS147。さらに、センサー中継ノード10の各ポートに接続されている接続先のウェイト番号を比較して、ウェイト番号が小さいポートを特定するステップS148。センサー中継ノード10は、特定したポートの接続先のウェイト番号を1つインクリメントした値を自ノードのウェイト番号とするステップS149。また、センサー中継ノード10は、マスターポートを、ステップS148で特定したポートに設定するステップS150。センサー中継ノード10は、自ノードのウェイト番号を変更するなどの状態変化の後でヘルスフレームを送信していなければ、隣接するセンサー中継ノード10にヘルスフレームを送信するステップS151、S152。また、センサー中継ノード10は、基幹中継ノード50に状態通知フレームを送信するステップS153。その後、センサー中継ノード10は、全てのポートからヘルスフレームを受信できたかを確認し、受信が終了していれば、ステップS141に戻るステップS154でYes。一方、ヘルスフレームの受信が終了していない場合、センサー中継ノード10は、ヘルスフレームの受信を待ってステップS144以降の処理を繰り返すステップS155。