(57)【要約】  アドホックネットワークを形成する各ノードは、他ノードから受信したデータに、優先度の高いデータであることを示す識別子が付与されているか否かを判定する。そして、各ノードは、識別子が付与されている場合に、自ノードが受信したデータを宛先に中継する装置であるか否かを判定する。その後、各ノードは、自ノードが宛先に中継する装置であると判定した場合に、受信したデータを宛先に対して送信し、自ノードが宛先に中継する装置でないと判定した場合に、各ノードへのデータ送信を抑止する。
2013094001.tif 000002
【特許請求の範囲】
【請求項１】
アドホックネットワークを構成するノードにおける通信制御方法であって、
前記アドホックネットワークを構成するノードから受信したデータに、優先度の高いデータであることを示す識別子が付与されているか否かを判定し、
前記識別子が付与されている場合に、前記ノードが前記受信したデータを宛先に中継する装置であるか否かを判定し、
前記宛先に中継する装置であると判定した場合に、前記受信したデータを前記宛先に対して送信し、前記宛先に中継する装置でないと判定した場合に、前記アドホックネットワークを形成する各ノードへのデータ送信を抑止する
処理を実行することを特徴とする送信制御方法。
【請求項２】
前記ノードと隣接するノードとの間のリンクの品質を示す品質情報を含んだ制御データを前記隣接するノードから受信し、受信した制御データに含まれる品質情報に基づいて、記憶部が記憶する経路情報を更新する処理をさらに前記ノードが実行し、
前記更新する処理は、前記制御データに、前記抑止する処理によって送信が抑止された制御データであることを示す抑止情報が付加されている場合には、当該制御データに含まれる品質情報を前記経路情報の更新処理には用いないことを特徴とする請求項１に記載の送信制御方法。
【請求項３】
前記抑止する処理が前記データ送信を抑止してから所定時間経過した場合、送信キューを形成するデータの先頭が前記制御データであれば、前記抑止情報を付加して宛先に送信し、送信キューを形成するデータの先頭が前記制御データ以外のデータであれば、破棄する処理をさらに前記ノードが実行することを特徴とする請求項１に記載の送信制御方法。
【請求項４】
前記抑止する処理が前記データ送信を抑止してから所定時間経過した場合、前記アドホックネットワークを形成する各ノードに対してランダムに割り当てられたランダム時間が経過した後に、前記データ送信を開始する処理をさらに前記ノードが実行することを特徴とする請求項１に記載の送信制御方法。
【請求項５】
前記データ送信を開始する処理は、前記データを送信するたびに、前記割り当てられたランダム時間を所定の割合で短くしていくことを特徴とする請求項４に記載の送信制御方法。
【請求項６】
前記アドホックネットワークを形成するノードに前記優先度の高いデータ以外のデータを送信した後に、前記優先度の高いデータを受信した場合には、前記データを送信してから正常に受信したことを示す応答を受信するまでに許容できる時間を所定時間延長する処理をさらに前記ノードが実行することを特徴とする請求項１に記載の送信制御方法。
【請求項７】
アドホックネットワークを構成するノードから受信したデータに、優先度の高いデータであることを示す識別子が付与されているか否かを判定する第１判定部と、
前記第１判定部によって前記識別子が付与されていると判定された場合に、前記ノードが前記受信したデータを宛先に中継する装置であるか否かを判定する第２判定部と、
前記第２判定部によって前記宛先に中継する装置であると判定された場合に、前記受信したデータを前記宛先に対して送信し、前記第２判定部によって前記宛先に中継する装置でないと判定した場合に、前記アドホックネットワークを構成する各ノードへのデータ送信を抑止する送信制御部と
を有することを特徴とするノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信制御方法およびノードに関する。
【背景技術】
【０００２】
従来、ネットワーク内でデータ通信を行うのに先立って、各ノードが自律的にデータ通信を行うための経路を構築するプロアクティブ型のルーティングプロトコルを用いたアドホックネットワークが知られている。【０００３】
アドホックネットワークを形成する各ノードは、経路情報やリンクの品質情報などのノード情報を含むメッセージを、隣接するノードとの間で定期的に送受信する。そして、各ノードは、各経路の通信品質を計算し、計算結果に基づいて最終宛先までの複数の経路の構築や最適な経路を確定する。このように、アドホックネットワークでは、１つの宛先に対して複数の経路を保持しているので、最も品質のよい経路が不通になった場合でも、別の経路に切り替えてデータ送信を実行することで、最終宛先までデータを届けることができる。【０００４】
アドホックネットワークでは、輻輳が発生した場合に、コリジョンの発生頻度が高くなり、再送頻度も高くなる。このため、送信元ノードから最終宛先までの経路上に存在するノード間のデータ送受信にかかる時間が増加し、期待している時間内に最終宛先にデータが到達しない現象が発生する。このような現象が発生した場合、通常のデータよりも優先度の高い緊急性のあるデータについても送受信できなくなる。【０００５】
近年では、データの送信元で対向側のデータ送信タイミングを指定することで、輻輳の発生を防止し、各ノードから送信されたデータの衝突を防止する手法が知られている。また、各ノードにデータ伝送の際のコネクションで占有できるデータ伝送帯域の上限を設定し、上限を超えるようなデータ伝送帯域を有するデータを伝送する際は、データ伝送帯域を占有できる優先コネクションを確立してデータ伝送を行なう。そして、優先コネクションが確立されている間は、他のコネクションによるデータ伝送を一時中断する一方で、優先度の高い緊急性のあるデータについては他のコネクションで伝送できるように制御する技術が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１１／０１３１６５号
【特許文献２】特開２００４−１８０１３１号公報
【特許文献３】特開２００９−１３０８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術を用いたとしても、輻輳中では、優先度の高い緊急性のあるデータが遅延したり、宛先に到達できないという問題がある。【０００８】
例えば、データ送信タイミングを指定する手法は、輻輳の発生を防止する技術であり、輻輳が発生した場合には、緊急性のあるデータに限らず通常のデータ送信も遅延したり、宛先に到達できない場合がある。また、優先コネクション確立中でも緊急データを送信する技術では、優先コネクションがデータ伝送帯域を占有するので、緊急データを送信できる帯域は狭くなる。この結果、緊急データの容量等によっては、遅延したり、宛先に到達できない場合がある。【０００９】
開示の技術は、上記に鑑みてなされたものであって、輻輳中であっても優先度の高い緊急性のあるデータを宛先に到達させることができる送信制御方法およびノードを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示する送信制御方法およびノードは、一つの態様において、アドホックネットワークを構成するノードから受信したデータに、優先度の高いデータであることを示す識別子が付与されているか否かを判定する処理を実行する。前記識別子が付与されている場合に、前記ノードが前記受信したデータを宛先に中継する装置であるか否かを判定する処理を実行する。前記宛先に中継する装置であると判定した場合に、前記受信したデータを前記宛先に対して送信し、前記宛先に中継する装置でないと判定した場合に、前記アドホックネットワークを形成する各ノードへのデータ送信を抑止する処理を実行する。
【発明の効果】
【００１１】
本願の開示する送信制御方法およびノードの一つの態様によれば、輻輳中であっても優先度の高い緊急性のあるデータを宛先に到達させることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係る無線通信システムの全体構成例を示す図である。
【図２】図２は、ＨＥＬＬＯメッセージの伝搬例を説明する図である。
【図３】図３は、実施例１に係るノードの構成を示す機能ブロック図である。
【図４】図４は、ルーティングテーブルが記憶する情報の例を示す図である。
【図５】図５は、ＨＥＬＬＯメッセージのフォーマット例を示す図である。
【図６】図６は、データフレームのフォーマット例を示す図である。
【図７】図７は、データ受信時の処理の流れを示すフローチャートである。
【図８】図８は、データ送信時の処理の流れを示すフローチャートである。
【図９】図９は、緊急データを受信したノードの送信処理が停止する流れを示す図である。
【図１０】図１０は、実施例２に係るＨＥＬＬＯメッセージの送受信を示すシーケンス図である。
【図１１】図１１は、実施例２に係るＨＥＬＬＯメッセージのフォーマット例を示す図である。
【図１２】図１２は、実施例３に係るデータ送信処理の抑止が解除された際の処理の流れを示すフローチャートである。
【図１３】図１３は、実施例３に係るデータ送信処理を示すシーケンス図である。
【図１４】図１４は、実施例４に係るＡＣＫ待ちタイマを設定し直す処理の流れを示すシーケンス図である。
【図１５】図１５は、ノードのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本発明にかかる送信制御方法およびノードの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１４】
［全体構成］
図１は、実施例１に係る無線通信システムの全体構成例を示す図である。図１に示すように、この無線通信システムは、ノードＡ、ノードＢ、ノードＣ、ノードＤ、ノードＥ、ノードＦ、ノードＧ、ノードＨ、ノードＹ、ノードＸ、管理サーバを有する。【００１５】
ノードＡ、ノードＢ、ノードＣ、ノードＤ、ノードＥ、ノードＦ、ノードＧ、ノードＨ、ノードＹは、各種メータやセンサなどに接続される無線通信装置であり、ノードＸを介して、センサ値を管理サーバに送信する。ノードＸは、無線ネットワークとＬ３ネットワークとを中継するゲートウェイ装置である。管理サーバは、各ノードが取得したセンサ値等を収集し、また、各ノードの通信状況を管理するサーバ装置である。【００１６】
図１に示した無線ネットワークは、ＯＬＳＲ（Optimized  Link  State  Routing）などのプロアクティブ型のルーティングプロトコルを用いたアドホックネットワークである。各ノードは、経路情報やリンクの品質情報などのノード情報を含むＨＥＬＬＯメッセージを、隣接するノードとの間で定期的に送受信する。そして、各ノードは、各経路の通信品質を計算し、計算結果に基づいて最終宛先までの複数の経路の構築や最適な経路を確定する。【００１７】
ここで、図２を用いて各ノードがＨＥＬＬＯメッセージを送受信する具体例を説明する。図２は、ＨＥＬＬＯメッセージの伝搬例を説明する図である。図２に示すように、まず、ノードＸが自装置の経路情報等を含めたＨＥＬＬＯメッセージを送信する。すると、ノードＸと直接通信可能な範囲に位置するノード、すなわち隣接ノードであるノードＧとノードＢとノードＨの各々が、ノードＸから送信されたＨＥＬＬＯメッセージを受信する。【００１８】
次に、ノードＢは、自装置の経路情報等を含めたＨＥＬＬＯメッセージを送信する。すると、ノードＢの隣接ノードであるノードＡとノードＥとノードＦとノードＧとノードＨとノードＸの各々が、ノードＢから送信されたＨＥＬＬＯメッセージを受信する。同様に、ノードＸからＨＥＬＬＯメッセージを受信したノードＧおよびノードＨも、それぞれの隣接ノードに、自装置の経路情報等を含めたＨＥＬＬＯメッセージを送信する。この結果、ノードＧとノードＧに隣接する各ノードとの間で経路情報を交換することができる。【００１９】
さらに、ノードＦからＨＥＬＬＯメッセージを受信したノードＡは、自装置の経路情報等を含めたＨＥＬＬＯメッセージを送信する。すると、ノードＡの隣接ノードであるノードＢとノードＣとノードＤとノードＥとノードＦとノードＹの各々が、ノードＡから送信されたＨＥＬＬＯメッセージを受信する。同様に、ノードＥおよびノードＦも、それぞれの隣接ノードに、自装置の経路情報等を含めたＨＥＬＬＯメッセージを送信する。【００２０】
さらに、ノードＡからＨＥＬＬＯメッセージを受信したノードＹは、自装置の経路情報等を含めたＨＥＬＬＯメッセージを送信する。すると、ノードＹの隣接ノードであるノードＡとノードＣとノードＤとの各々が、ノードＹから送信されたＨＥＬＬＯメッセージを受信する。同様に、ノードＣおよびノードＤも、それぞれの隣接ノードに、自装置の経路情報等を含めたＨＥＬＬＯメッセージを送信する。【００２１】
このようにして、各ノードは、隣接するノードとの間で経路情報を交換することができる。そして、各ノードは、受信した経路情報から、隣接ノードとの間のリンクの状態を示すリンク品質や経路重みを取得する。そして、各ノードは、リンク品質や経路重みの大きさ等にしたがって、隣接ノードの選択順序や優先順位を更新することで、経路情報を更新する。【００２２】
別の手法としては、各ノードは、ＨＥＬＬＯメッセージを受信した際の電波強度を測定し、測定した結果にしたがって経路情報を更新することもできる。また、各ノードは、ＨＥＬＬＯメッセージが作成された時間や自装置に到達した時間を、ＨＥＬＬＯメッセージのヘッダ等から取得する。そして、各ノードは、作成されてから到達するまでの時間が短い経路を優先するように、経路情報を更新することもできる。【００２３】
上述したように、各ノードは、ＨＥＬＬＯメッセージの交換によって経路情報を学習することで、最適な経路の確保と冗長経路を確保する。ところが、ノードＸは、各ノードからデータを受信して管理サーバに中継する装置である。このため、無線ネットワーク内において各ノードからノードＸへのデータ送信が集中することが多く、その場合にはノードＸへの経路またはノードＸにおいて輻輳が発生する。輻輳が発生した場合、センサに対する制御など優先度の高い緊急性のあるデータが管理サーバに到達できない事象が発生する場合がある。【００２４】
そのような場合であっても、各ノードは、アドホックネットワークを形成するノードから受信したデータに、優先度の高いデータであることを示す識別子が付与されているか否かを判定する。そして、各ノードは、識別子が付与されている場合に、自ノードが受信したデータを宛先に中継する装置であるか否かを判定する。その後、各ノードは、自ノードが宛先に中継する装置であると判定した場合に、受信したデータを宛先に対して送信し、自ノードが宛先に中継する装置でないと判定した場合に、各ノードへのデータ送信を抑止する。【００２５】
このように、中継経路上に位置するノードが、緊急データを宛先まで中継しつつ、緊急データの中継経路上に位置しないノードが、データ送信処理を抑止して緊急データの経路を確保する。この結果、無線ネットワーク内で輻輳が発生しているかいないかに関らず、緊急データが送信できる帯域を確保することができ、輻輳中であっても緊急データを宛先に到達させることができる。【００２６】
［ノード構成］
続いて、図１に示した各ノードの機能部ブロックについて説明する。なお、図１に示した各ノードは同様の構成を有するので、ここでは、ノード１０として説明する。【００２７】
図３は、実施例１に係るノードの構成を示す機能ブロック図である。図３に示すように、ノード１０は、ルーティングテーブル１１、ＨＥＬＬＯ受信部１２、データ受信部１３、テーブル更新部１４、ＨＥＬＬＯ生成部１５、ＨＥＬＬＯ送信部１６を有する。さらに、ノード１０は、識別子判定部１７、中継判定部１８、緊急データ生成部１９、緊急データ送信部２０、データ生成部２１、データ送信部２２、送信制御部２３を有する。なお、各処理部は、ＣＰＵ（Central  Processing  Unit）などのプロセッサが実行する処理部である。ルーティングテーブル１１は、メモリなどの記憶装置に設けられる。【００２８】
ルーティングテーブル１１は、経路情報を記憶する記憶装置である。図４は、ルーティングテーブルが記憶する情報の例を示す図である。図４に示すように、ルーティングテーブル１１は、「ＧＤ（Global  Destination）、ＬＤ（Local  Destination）、優先度」を対応付けて記憶する。ここで記憶する「ＧＤ」は、データの最終宛先を示す情報であり、例えばＩＰ（Internet  Protocol）アドレスやＭＡＣ（Media  Access  Control）アドレスを用いることができる。「ＬＤ」は、データを送信してきた送信元の隣接ノードを示す情報であり、例えばＩＰ（Internet  Protocol）アドレスやＭＡＣ（Media  Access  Control）アドレスを用いることができる。「優先度」は、データを送信する際に中継先として選択する優先順位を示す。【００２９】
図４の場合、最終宛先をノードＸとするデータについては、隣接ノードであるノードＢ、ノードＦ、ノードＥの順番で、中継先として指定されていることを示す。具体的には、ノード１０は、最終宛先をノードＸとするデータの中継先としてノードＢを指定し、ノードＢが故障や輻輳等の場合には、ノードＦを指定する。また、ノード１０は、ノードＢおよびノードＦが故障や輻輳等の場合には、ノードＥを指定する。【００３０】
なお、図４では、ルーティングテーブル１１がＧＤ、ＬＤ、優先度を対応付ける例を説明したが、これに限定されるものではない。例えば、ルーティングテーブル１１は、ＧＤまでのホップ数やＬＤとの間のリンクの品質を示す経路品質重み等を対応付けて記憶してもよい。【００３１】
ＨＥＬＬＯ受信部１２は、隣接ノードからＨＥＬＬＯメッセージを受信する処理部である。ノード１０が図１に示したノードＡである場合を例にして説明すると、ＨＥＬＬＯ受信部１２は、ノードＡの隣接ノードであるノードＢ、ノードＣ、ノードＤ、ノードＥ、ノードＦ、ノードＹの各々からＨＥＬＬＯメッセージを定期的に受信する。【００３２】
図５は、ＨＥＬＬＯメッセージのフォーマット例を示す図である。図５に示すように、ＨＥＬＬＯメッセージは、「アドホックヘッダ、時刻、ＨＥＬＬＯメッセージヘッダ、複数のＨＥＬＬＯヘッダ、署名、パディング」を有する。「アドホックヘッダ」は、アドホックフレームの識別情報を示す。「時刻」は、送信時の時刻を示す。「ＨＥＬＬＯメッセージヘッダ」は、隣接ノードの情報を示す。「ＨＥＬＬＯヘッダ」は、隣接ノードが保持する経路情報を示し、例えば６バイトの「グローバル宛先アドレス」と、１バイトの「ホップ数」と、２バイトの「経路品質重み」を含む。「グローバル宛先アドレス」は、最終宛先のノードのアドレス情報を示す。「ホップ数」は、最終宛先までのホップ数を示す。「経路品質重み」は、最終宛先までの経路の品質を示し、例えば任意に設定することもでき、電波強度等を用いることもできる。「署名」は、ＨＥＬＬＯメッセージに添付された署名情報を示す。「パディング」は、ＨＥＬＬＯメッセージのフレーム長を１２８ビットの倍数に整えるための情報である。【００３３】
データ受信部１３は、隣接ノードからデータフレームを受信する処理部である。ここで、データフレームについて説明する。図６は、データフレームのフォーマット例を示す図である。図６に示すように、データフレームは、「アドホックヘッダ、時刻、データヘッダ、データペイロード、署名、パディング」を有する。【００３４】
「アドホックヘッダ」は、アドホックフレームの識別情報を示す。「時刻」は、送信時の時刻を示す。「データヘッダ」は、データフレームの詳細情報を示し、６バイトの「グローバル宛先アドレス」と、６バイトの「グローバル差出アドレス」と、２バイトの「ＦＩＤ（フレームＩＤ）」とを有する。さらに、「データヘッダ」は、１バイトの「ＨＴＬ」と、１バイトの「データタイプ」と、１バイトの「伝送情報」と、１バイトの「ホップ数」とを有する。「グローバル宛先アドレス」は、最終宛先のノードのアドレス情報を示す。「グローバル差出アドレス」は、データフレームの生成元のノードのアドレス情報を示す。「ＦＩＤ」は、データフレームを識別する識別子である。「ＨＴＬ」は、データフレームの有効期限を示す。「データタイプ」は、緊急データか通常のデータであるかを示す緊急フラグを有し、緊急フラグに１が格納されている場合には緊急データであり、緊急フラグに０が格納されている場合には通常データであることを示す。「伝送情報」は、経路の帯域幅等の伝送情報を示す。「ホップ数」は、グローバル差出アドレスからのホップ数を示す。「データペイロード」は、送信対象のデータを示す。「署名」は、データフレームに添付された署名情報を示す。「パディング」は、データフレームのフレーム長を１２８ビットの倍数に整えるための情報である。【００３５】
テーブル更新部１４は、ＨＥＬＬＯ受信部１２によって受信されたＨＥＬＬＯメッセージに含まれる経路情報に基づいて、ルーティングテーブル１１を更新する処理部である。例えば、テーブル更新部１４は、ＨＥＬＬＯメッセージのアドホックヘッダからＬＤ、ＨＥＬＬＯヘッダからＧＤと経路重みとホップ数とを抽出し、これらに基づいてルーティングテーブルを更新する。【００３６】
一例を挙げると、テーブル更新部１４は、ＨＥＬＬＯメッセージから受信したＧＤとＬＤとを対応付けて、ホップ数と経路重みを保持する。そして、テーブル更新部１４は、自装置から宛先（ＧＤ）までの経路において、隣接ノード（ＬＤ）を経由した場合のホップ数と経路品質を把握する。その後、テーブル更新部１４は、ＧＤまでの経路のうち、ホップ数が少ないＬＤを３つ選択し、経路品質が高いものから優先順位を設定することで、ルーティングテーブルを更新する。【００３７】
なお、更新手法はあくまで一例であり、これに限定されるものではない。他の例としては、テーブル更新部１４は、隣接ノードから受信した各ＨＥＬＬＯメッセージについて、ＨＥＬＬＯメッセージから送信時刻を抽出し、この送信時刻とＨＥＬＬＯメッセージを受信したときの受信時刻とを比較する。そして、テーブル更新部１４は、送信時刻と受信時刻との差が大きいほど、輻輳や遅延が発生している可能性が高いと推定して優先度を低く設定し、送信時刻と受信時刻との差が小さいほど、送信状況が好適であると推定して優先度を高く設定してもよい。【００３８】
ＨＥＬＬＯ生成部１５は、定期的または管理者等からの指示操作によって、ＨＥＬＬＯメッセージを生成する処理部である。例えば、ＨＥＬＬＯ生成部１５は、隣接ノードごとに、ルーティングテーブル１１から経路情報を読み出す。そして、ＨＥＬＬＯ生成部１５は、経路情報を格納したＨＥＬＬＯメッセージを生成して、送信制御部２３に出力する。また、ＨＥＬＬＯ生成部１５は、ＨＥＬＬＯ受信部１２が受信したＨＥＬＬＯメッセージに対する応答メッセージ（ＡＣＫ：ACKnowledge）を生成して、送信制御部２３に出力する。【００３９】
ＨＥＬＬＯ送信部１６は、ＨＥＬＬＯ生成部１５が生成したＨＥＬＬＯメッセージやＡＣＫを宛先に送信する処理部である。例えば、ＨＥＬＬＯ送信部１６は、送信制御部２３からＨＥＬＬＯメッセージやＡＣＫ応答が入力された場合に、ルーティングテーブル１１に記憶される経路情報にしたがって、宛先に送信する。【００４０】
識別子判定部１７は、データ受信部１３によって受信されたデータフレームに、優先度の高いデータであることを示す識別子が付与されているか否かを判定する処理部である。例えば、識別子判定部１７は、データ受信部１３によって受信されたデータフレームのデータヘッダを参照し、データヘッダのデータタイプに格納されている緊急フラグの値が０か１かを判定する。そして、識別子判定部１７は、格納されている値が１である場合には、受信されたデータフレームを緊急データと判定して中継判定部１８に出力する。一方、識別子判定部１７は、格納されている値が０である場合には、受信されたデータフレームを通常データと判定して送信制御部２３に出力する。なお、識別子判定部１７は、データ受信部１３が受信したデータフレームに対するＡＣＫを生成して、送信制御部２３に出力する。【００４１】
中継判定部１８は、自ノードであるノード１０が緊急データを中継する装置であるか否かを判定する処理部である。例えば、中継判定部１８は、識別子判定部１７から入力された緊急データのアドホックヘッダから、グローバル宛先アドレス（ＧＤ）とローカル宛先アドレス（ＬＤ）とを抽出する。そして、中継判定部１８は、グローバル宛先アドレスが自ノードのアドレス情報と不一致で、かつ、ローカル宛先アドレスと自ノードのアドレス情報と一致する場合、自ノードが緊急データを中継する装置であると判定する。その後、中継判定部１８は、緊急データおよび判定結果を送信制御部２３に出力する。【００４２】
緊急データ生成部１９は、管理者の指示や所定の契機で緊急データを生成する処理部である。例えば、緊急データ生成部１９は、ノード１０に接続されるセンサに異常が発生したことを検出すると、異常を示す異常情報をデータペイロードに格納した緊急データのデータフレームを生成する。また、緊急データ生成部１９は、当該データフレームに対して、データヘッダのグローバル宛先アドレスにノードＸのアドレス情報、グローバル差出アドレスにノード１０のアドレス情報、緊急フラグを１に設定する。その後、緊急データ生成部１９は、ホップ数の０を格納したり、有効期限を格納したりした後、生成した緊急データを送信制御部２３に出力する。【００４３】
緊急データ送信部２０は、中継判定部１８または緊急データ生成部１９から、送信制御部２３を介して入力された緊急データやＡＣＫを宛先に送信する処理部である。例えば、緊急データ送信部２０は、中継判定部１８から入力された緊急データのデータフレームに対して、アドホックヘッダに含まれるローカル差出アドレスをノード１０のアドレス情報に書き換える。そして、緊急データ送信部２０は、データヘッダに含まれるグローバル宛先アドレスをキーにしてルーティングテーブル１１を参照し、優先度の高い隣接ノードのアドレス情報を特定する。続いて、緊急データ送信部２０は、特定した隣接ノードのアドレス情報をローカル宛先アドレスに格納する。その後、緊急データ送信部２０は、データヘッダのホップ数を１つ増やした後、緊急データを送信する。【００４４】
また、緊急データ送信部２０は、緊急データ生成部１９から緊急データのデータフレームについても同様に、データヘッダに含まれるグローバル宛先アドレスをキーにしてルーティングテーブル１１を参照し、優先度の高い隣接ノードのアドレス情報をローカル宛先アドレスに格納する。その後、緊急データ送信部２０は、データヘッダのホップ数を１つ増やした後、隣接ノードに送信する。【００４５】
データ生成部２１は、ノード１０に接続されるセンサ情報やセンサ測定値を格納したデータフレームを生成する処理部である。例えば、データ生成部２１は、センサ測定値をデータペイロードに格納した通常データのデータフレームを生成する。続いて、データ生成部２１は、データヘッダのグローバル宛先アドレスにノードＸのアドレス情報、グローバル差出アドレスにノード１０のアドレス情報、緊急フラグを０に設定する。その後、データ生成部２１は、ホップ数の０を格納したり、有効期限を格納したりした後、生成した通常データを送信制御部２３に出力する。【００４６】
なお、データを生成する契機としては、所定の間隔であってもよく、管理サーバから取得要求を受信した場合でもよく、センサがノード１０に値を送信したタイミングでもよく、任意に設定することができる。【００４７】
データ送信部２２は、識別子判定部１７またはデータ生成部２１から、送信制御部２３を介して入力された通常データやＡＣＫを宛先に送信する処理部である。なお、データ送信部２２が通常データを送信する際に、ヘッダ等を更新する例については、緊急データ送信部２０と同様なので、詳細な説明は省略する。【００４８】
送信制御部２３は、緊急データ、通常データ、ＡＣＫ応答などのデータ送信を制御する処理部である。例えば、送信制御部２３は、自ノードが中継しない緊急データを受信した場合に、各送信部からネットワークへのデータ出力を所定時間抑止することで、各ノードへのデータ送信を抑止する。また、送信制御部２３は、自ノードが中継する緊急データを受信した場合に、ＨＥＬＬＯ送信部１６およびデータ送信部２２からのデータ出力を抑止するとともに、緊急データ送信部２０から出力された中継対象の緊急データについては送信する。その後、送信制御部２３は、中継対象の緊急データを中継した後は、緊急データ送信部２０からのデータ出力を抑止する。また、送信制御部２３は、データ送信が抑止されている期間内では、各送信部からのデータ出力を抑止する。また、送信制御部２３は、データ送信を抑止してから所定時間経過した後、各送信部からのデータ出力を開始する。なお、送信制御部２３は、データ送信を抑止している間、各送信部から出力された送信対象のデータフレームを一時的に保持してもよい。【００４９】
［処理の流れ］
続いて、ノード１０が実行する処理の流れを説明する。ここでは、隣接ノードからデータを受信した場合の処理の流れ、隣接ノードにデータを送信する処理の流れ、ネットワーク内の緊急データの流れを説明する。【００５０】
（データ受信処理）
図７は、データ受信時の処理の流れを示すフローチャートである。図７に示すように、データ受信部１３がＨＥＬＬＯメッセージ以外のデータを受信すると（Ｓ１０１肯定）、識別子判定部１７は、受信されたデータの緊急フラグが０か１かを判定する（Ｓ１０２）。【００５１】
そして、識別子判定部１７によって緊急フラグが１であると判定された場合（Ｓ１０２肯定）、中継判定部１８は、受信された緊急データを中継するか否かを判定する（Ｓ１０３）。例えば、中継判定部１８は、受信データのアドホックヘッダに格納されるグローバル宛先アドレスが自ノードのアドレス情報と不一致で、かつ、ローカル宛先アドレスと自ノードのアドレス情報とが一致する場合、緊急データを中継すると判定する。【００５２】
続いて、緊急データ送信部２０は、受信された緊急データを中継すると判定された場合（Ｓ１０３肯定）、宛先ノード（ＧＤ）をキーにしてルーティングテーブル１１を検索し、優先度の最も高い隣接ノードを中継先として特定する（Ｓ１０４）。このとき、緊急データ送信部２０は、緊急データのデータフレームのアドホックヘッダ内において、ローカル差出アドレスをノード１０のアドレス情報に書き換え、特定した中継先のアドレス情報をローカル宛先アドレスに格納する。【００５３】
その後、緊急データ送信部２０は、緊急データを送信キューの最前列に格納し（Ｓ１０５）、送信制御部２３を介して、宛先に送信する（Ｓ１０６）。【００５４】
一方、受信された緊急データを中継しないと判定された場合（Ｓ１０３否定）、送信制御部２３は、現時点で送信処理が停止中であるか否かを判定する（Ｓ１０７）。そして、送信制御部２３は、送信処理が停止中である場合（Ｓ１０７肯定）、そのまま処理を終了する。【００５５】
また、送信制御部２３は、送信処理が停止中でない場合（Ｓ１０７否定）、各送信部からネットワークへのデータ出力を抑止して、ノード１０におけるデータ送信処理を抑止する（Ｓ１０８）。その後、送信制御部２３は、抑止時間をカウントする抑止タイマを起動する（Ｓ１０９）。なお、送信制御部２３は、抑止タイマが所定時間を経過すると、各送信部からネットワークへのデータ出力を解放し、ノード１０のデータ送信処理を開始する。【００５６】
一方、Ｓ１０２において、識別子判定部１７によって緊急フラグが０であると判定された場合（Ｓ１０２否定）、データ送信部２２や送信制御部２３は、通常の送信処理を実行する（Ｓ１１０）。具体的には、データ送信部２２や送信制御部２３は、図８に示した処理を実行する。【００５７】
（データ送信処理）
図８は、データ送信時の処理の流れを示すフローチャートである。図８に示すように、送信制御部２３は、送信対象のデータが発生した場合（Ｓ２０１肯定）、すなわち、いずれかの送信部からデータが入力された場合、送信対象のデータが緊急データであるか否かを判定する（Ｓ２０２）。【００５８】
そして、送信制御部２３は、送信対象のデータが緊急データであると判定した場合（Ｓ２０２肯定）、緊急データを送信キューの最前列に格納して、緊急データを宛先に向けて送信する（Ｓ２０３）。【００５９】
一方、送信制御部２３は、送信対象のデータが緊急データでないと判定した場合（Ｓ２０２否定）、ノード１０が送信処理抑止中であるか否かを判定する（Ｓ２０４）。そして、送信制御部２３は、ノード１０が送信処理抑止中であると判定した場合（Ｓ２０４肯定）、送信対象のデータを送信キューの最後尾に格納して（Ｓ２０５）、処理を終了する。なお、送信制御部２３は、送信処理の抑止が終了すると、送信キューの最前列のデータを宛先に向けて送信する送信処理を開始する。【００６０】
また、送信制御部２３は、ノード１０が送信処理抑止中でないと判定した場合（Ｓ２０４否定）、送信対象のデータを送信キューの最後尾に格納して（Ｓ２０６）、送信処理を実行する（Ｓ２０７）。【００６１】
（緊急データによる処理抑止シーケンス）
図９は、緊急データを受信したノードの送信処理が停止する流れを示す図である。なお、ここでは、図１に示した無線ネットワークにおいて、ノードＹが緊急データをノードＸに向けて送信する例を説明する。図９は、隣接ノード間でデータの送受信が実行されていて、輻輳している状態と仮定する。また、図９の表記を説明すると、例えばノードＹからノードＡへ通常データを送信する場合には「ＹＡｎ」を表記し、ノードＹからノードＡへ緊急データを送信する場合には「ＹＡｅ」を表記する。【００６２】
図９に示すように、時刻ｔ０では、ノードＹが、ノードＣに向けて通常データを送信し、ノードＢは、ノードＧに向けて通常データを送信する。【００６３】
時刻ｔ１では、ノードＡが、ノードＹに向けて通常データを送信し、ノードＸが、ノードＢに向けて通常データを送信する。【００６４】
時刻ｔ２では、ノードＹが、最終宛先をノードＸ、ローカル宛先アドレスをノードＡとする緊急データを送信する。この緊急データは、ノードＹの隣接ノードであるノードＡ、ノードＣ、ノードＤ各々で受信される。【００６５】
時刻ｔ３では、ノードＹは、時刻ｔ２の時点で緊急データを送信したので、時刻ｔ３以降は通常データやＨＥＬＬＯメッセージなどのデータ送信を抑止する。同様に、時刻ｔ２で緊急データを受信したノードＡ、ノードＣ、ノードＤ各々も、時刻ｔ３以降は通常データやＨＥＬＬＯメッセージなどのデータ送信を抑止する。ノードＹ、ノードＡ、ノードＣ、ノードＤ以外のノードは、通常通り、データ送信処理を実行できる。具体的には、時刻ｔ３の時点で、ノードＢは、ノードＦに向けて通常データを送信する。【００６６】
時刻ｔ４では、ノードＹ、ノードＡ、ノードＣ、ノードＤ以外のノードは、通常通り、データ送信処理を実行できる。具体的には、ノードＥは、ノードＡに向けて通常データを送信する。【００６７】
時刻ｔ５では、ノードＡが、ノードＹから受信した緊急データの中継装置であることから、ローカル宛先アドレスをノードＢに書き換えた緊急データを送信する。この緊急データは、ノードＡの隣接ノードであるノードＹ、ノードＣ、ノードＤ、ノードＢ、ノードＥ、ノードＦの各々で受信される。また、時刻ｔ５では、ノードＹ、ノードＡ、ノードＣ、ノードＤ以外のノードは、通常通り、データ送信処理を実行できる。具体的には、ノードＨは、ノードＸに向けて通常データを送信する。【００６８】
時刻ｔ６では、緊急データを受信したノードのうちノードＹ、ノードＡ、ノードＣ、ノードＤの各々は、継続してデータ送信を抑止する。また、緊急データを新たに受信したノードＢ、ノードＥ、ノードＦの各々は、緊急データを受信したことから、時刻ｔ６以降のデータ送信を抑止する。これら以外のノードは、通常通り、データ送信処理を実行できる。具体的には、時刻ｔ６の時点で、ノードＧは、ノードＢに向けて通常データを送信する。【００６９】
時刻ｔ７では、ノードＹ、ノードＡ、ノードＣ、ノードＤ、ノードＢ、ノードＥ、ノードＦ以外のノードは、通常通り、データ送信処理を実行できる。具体的には、ノードＸは、ノードＨに向けて通常データを送信する。【００７０】
時刻ｔ８では、ノードＢが、ノードＡから受信した緊急データの中継装置であることから、ローカル宛先アドレスをノードＸに書き換えた緊急データを送信する。この緊急データは、ノードＢの隣接ノードであるノードＡ、ノードＥ、ノードＦ、ノードＧ、ノードＨ、ノードＸの各々で受信される。【００７１】
時刻ｔ９では、全ノードで緊急ノードが受信されたことから、全ノードのデータ送信処理が抑止される。なお、ノードＢから緊急データを受信したノードＸは、緊急データの最終宛先に該当するので、緊急データの中継を実行しない。【００７２】
［効果］
このように、ネットワーク等が輻輳中であっても、緊急データを受信したノードが次々とデータ送信処理を抑止しながら、経路情報にしたがって緊急データを最優先で伝搬する。したがって、輻輳中か否かに関らず、緊急データが送信できるだけの帯域を確保することができるので、緊急データの到達遅延や未到達などを防止することができる。
【実施例２】
【００７３】
ところで、各ノードは、隣接ノードから受信したＨＥＬＬＯメッセージに含まれる経路品質重み等に基づいて、経路情報を更新する。このため、緊急データによって送信が抑止されたＨＥＬＬＯメッセージを受信したノードは、ＨＥＬＬＯメッセージが遅延したと認識して、経路情報を不当に更新することになる。そこで、実施例２では、緊急データによって送信が抑止されたＨＥＬＬＯメッセージを、経路情報の更新には適用しないようにする例について説明する。【００７４】
図１０は、実施例２に係るＨＥＬＬＯメッセージの送受信を示すシーケンス図である。図１０では、ノードＹとノードＡとノードＢとを用いて説明し、緊急データの伝搬については実施例１と同様であることから、詳細な説明は省略する。また、各ノードは、図３で説明した処理部を有するので、ここでは、各ノードについて図３の処理部および符号を用いることとする。【００７５】
図１０に示すように、ノードＡのＨＥＬＬＯ生成部１５は、ＨＥＬＬＯメッセージを生成し（Ｓ３０１）、ＨＥＬＬＯ送信部１６は、ＨＥＬＬＯメッセージを送信する（Ｓ３０２からＳ３０４）。【００７６】
ノードＹのＨＥＬＬＯ受信部１２は、ノードＡからＨＥＬＬＯメッセージを受信し（Ｓ３０５）、テーブル更新部１４は、受信したＨＥＬＬＯメッセージにしたがって、ルーティングテーブル１１を更新する（Ｓ３０６）。同様に、ノードＢのＨＥＬＬＯ受信部１２は、ノードＡからＨＥＬＬＯメッセージを受信し（Ｓ３０７）、テーブル更新部１４は、受信したＨＥＬＬＯメッセージにしたがって、ルーティングテーブル１１を更新する（Ｓ３０８）。【００７７】
その後、ノードＢのＨＥＬＬＯ生成部１５は、ＨＥＬＬＯメッセージを生成し（Ｓ３０９）、ＨＥＬＬＯ送信部１６は、ＨＥＬＬＯメッセージを送信する（Ｓ３１０とＳ３１１）。【００７８】
ノードＡのＨＥＬＬＯ受信部１２は、ノードＢからＨＥＬＬＯメッセージを受信し（Ｓ３１２）、テーブル更新部１４は、受信したＨＥＬＬＯメッセージにしたがって、ルーティングテーブル１１を更新する（Ｓ３１３）。【００７９】
その後、ノードＹの緊急データ送信部２０は、ノードＹで生成された緊急データまたは他ノードから受信した緊急データを、隣接ノードであるノードＡに送信する（Ｓ３１４とＳ３１５）。【００８０】
緊急データを受信したノードＡの送信制御部２３は、ＨＥＬＬＯメッセージを含む各データの送信を所定時間抑止する（Ｓ３１６）。この抑止時間中でも、ノードＡのＨＥＬＬＯ生成部１５は、定期的にＨＥＬＬＯメッセージを生成することから、生成時間に到達すると、ＨＥＬＬＯメッセージを生成する（Ｓ３１７）。ところが、ノードＡの送信制御部２３は、データ送信の抑止時間中であることから、ＨＥＬＬＯメッセージの送信を抑止する（Ｓ３１８）。【００８１】
その後、抑止開始から所定時間経過すると、ノードＡの送信制御部２３は、送信抑止を解除する（Ｓ３１９）。すると、ノードＡの送信制御部２３は、品質評価無効フラグに１を格納したＨＥＬＬＯメッセージを送信する（Ｓ３２０からＳ３２２）。【００８２】
ここで、ＨＥＬＬＯメッセージと品質評価無効フラグについて説明する。図１１は、実施例２に係るＨＥＬＬＯメッセージのフォーマット例を示す図である。図１１に示すように、ＨＥＬＬＯメッセージは、図５と同様、「アドホックヘッダ、時刻、ＨＥＬＬＯメッセージヘッダ、複数のＨＥＬＬＯヘッダ、署名、パディング」を有する。図５と異なる点は、「ＨＥＬＬＯメッセージ」が有する１バイトのサービスタイプ中に、１ビットの品質評価無効フラグを有している点である。この品質評価無効フラグが１である場合には、品質評価対象外であることを示し、品質評価無効フラグが０である場合には、品質評価対象であることを示す。なお、「ＨＥＬＬＯメッセージ」が有する１バイトのＨＥＬＬＯヘッダ個数は、ＨＥＬＬＯメッセージにおけるＨＥＬＬＯヘッダの搭載個数を示す。また、１６バイトのアクセスキーは、隣接ノードのセキュリティー鍵を示す。【００８３】
図１０に戻り、ノードＹのＨＥＬＬＯ受信部１２は、ノードＡからＨＥＬＬＯメッセージを受信する（Ｓ３２３）。そして、テーブル更新部１４は、受信したＨＥＬＬＯメッセージの品質評価無効フラグが１であることから、受信したＨＥＬＬＯメッセージに基づくルーティングテーブル１１の更新を抑止する（Ｓ３２４）。同様に、ノードＢのＨＥＬＬＯ受信部１２は、ノードＡからＨＥＬＬＯメッセージを受信する（Ｓ３２５）。そして、テーブル更新部１４は、受信したＨＥＬＬＯメッセージの品質評価無効フラグが１であることから、受信したＨＥＬＬＯメッセージに基づくルーティングテーブル１１の更新を抑止する（Ｓ３２６）。【００８４】
このように、実施例２に係るノードは、緊急データを送信するために、ＨＥＬＬＯメッセージの送信を抑止する。そして、ノードは、送信処理の抑止が解除されると、抑止していたＨＥＬＬＯメッセージの品質評価無効フラグに１を格納して、宛先に送信する。このため、ＨＥＬＬＯメッセージを受信したノードは、抑止されていたＨＥＬＬＯメッセージであることを確認することができる。このため、緊急データの送信によって遅延したＨＥＬＬＯメッセージに対して、経路の品質が劣化していると判断されることを防止できる。したがって、経路情報の不当な更新を防止できる。
【実施例３】
【００８５】
ところで、各ノードは、緊急データによる送信処理の抑止が解除された場合には、一斉にデータ送信を再開する可能性もあり、その場合、データ送信の再開が輻輳を誘発する可能性もある。そこで、実施例３では、データ送信が再開された場合に、各ノードがランダムな時間待機した後に、データ送信を実行することで、一斉にデータ送信を再開することを防ぎ、輻輳の誘発を防止する例について説明する。【００８６】
（フローチャート）
図１２は、実施例３に係るデータ送信処理の抑止が解除された際の処理の流れを示すフローチャートである。図１２に示すように、送信制御部２３は、送信抑止タイマがタイムアウトすると（Ｓ４０１肯定）、すなわち、送信抑止が終了すると、送信キューにデータが存在するか否かを判定する（Ｓ４０２）。そして、送信制御部２３は、送信キューにデータが存在しないと判定した場合（Ｓ４０２否定）、処理を終了する。【００８７】
一方、送信制御部２３は、送信キューにデータが存在すると判定した場合（Ｓ４０２肯定）、送信キューを形成する各データについて、ＨＥＬＬＯメッセージか否かを判定する（Ｓ４０３）。【００８８】
そして、送信制御部２３は、ＨＥＬＬＯメッセージであると判定したデータについては（Ｓ４０３肯定）、当該ＨＥＬＬＯメッセージの品質評価無効フラグを１にし、品質評価無効フラグを有効にして（Ｓ４０４）、Ｓ４０５を実行する。一方、送信制御部２３は、ＨＥＬＬＯメッセージでないと判定したデータについては（Ｓ４０３否定）、Ｓ４０４を実行することなく、Ｓ４０５を実行する。【００８９】
その後、送信制御部２３は、送信キューを形成するデータ各々について、Ｓ４０３からＳ４０４を実行したか否かを判定する（Ｓ４０５）。【００９０】
そして、送信制御部２３は、送信キューを形成するデータ各々について、Ｓ４０３からＳ４０４を実行した場合（Ｓ４０５肯定）、ランダム送信時間を設定する（Ｓ４０６）。例えば、送信制御部２３は、ノードのシリアル番号やＭＡＣアドレスの下位２バイトをランダム送信時間と決定してもよく、任意の関数等で計算したランダム値を用いてもよい。【００９１】
送信制御部２３は、ランダム送信時間が経過した後（Ｓ４０７肯定）、送信キューの先頭データを宛先に送信する（Ｓ４０８）。そして、送信制御部２３は、送信キューにデータがまだ存在する場合（Ｓ４０９肯定）、Ｓ４０６で設定したランダム時間を半分にした時間を新たなランダム時間に設定する（Ｓ４１０）。続いて、送信制御部２３は、新たなランダム送信時間が経過した後（Ｓ４０７肯定）、送信キューの先頭データを宛先に送信する（Ｓ４０８）。その後、送信制御部２３は、送信キューにデータがまだ存在する場合（Ｓ４０９肯定）、ランダム送信時間をさらに半分にして、Ｓ４０７以降を繰り返す。【００９２】
一方、送信制御部２３は、送信キューにデータが存在しなくなると（Ｓ４０９否定）、ランダム時間を用いない通常の送信処理に遷移する（Ｓ４１１）。【００９３】
（シーケンス図）
図１３は、実施例３に係るデータ送信処理を示すシーケンス図である。図１３では、図１に示した無線ネットワークの一部を例にして説明する。具体的には、ノードＡ、ノードＣ、ノードＤ、ノードＥが互いに隣接するノードである。ノードＥとノードＦは、ノードＡから２ホップの場所に位置するノード、例えばノードＣを経由してノードＡから送信されたデータを受信するノードである。【００９４】
このような位置関係から、ノードＡに対するノードＣとノードＤの送信抑止解除時間の相対時間を０とする。また、ノードＡに対するノードＥとノードＦの送信抑止解除時間の相対時間を１００とする。つまり、ノードＡとノードＣとノードＤは、同タイミングで送信抑止が解除され、ノードＥとノードＦは、ノードＡの送信抑止が解除されてから１００秒後に解除される。【００９５】
また、ノードＡの送信間隔をＳａ（秒）とし、ノードＣ、ノードＤ、ノードＥ、ノードＦ各々に設定されたランダム値を、Ｒｃ、Ｒｄ、Ｒｅ、Ｒｆとする。【００９６】
このような条件の下、ノードＡは、送信抑止が解除されると、Ｓａ（秒）間隔でデータを送信する。ノードＣは、送信抑止が解除されてからランダム時間Ｒｃ（秒）経過後に、送信キューの先頭データを送信する。次に、ノードＣは、Ｒｃ／２（秒）経過後に、送信キューの先頭データを送信する。その後、ノードＣは、データを送信するたびに、Ｒｃ／４、Ｒｃ／８とランダム時間を短くしていく。【００９７】
同様に、ノードＤは、送信抑止が解除されてからランダム時間Ｒｄ（秒）経過後に、送信キューの先頭データを送信する。次に、ノードＤは、Ｒｄ／２（秒）経過後に、送信キューの先頭データを送信する。その後、ノードＤは、データを送信するたびに、Ｒｄ／４、Ｒｄ／８とランダム時間を短くしていく。【００９８】
一方、ノードＥは、送信抑止が解除されてから１００（秒）経過し、さらにランダム時間Ｒｅ（秒）経過してから、送信キューの先頭データを送信する。次に、ノードＥは、Ｒｅ／２（秒）経過後に、送信キューの先頭データを送信する。その後、ノードＥは、データを送信するたびに、Ｒｅ／４、Ｒｅ／８とランダム時間を短くしていく。【００９９】
同様に、ノードＦは、送信抑止が解除されてから１００（秒）経過し、さらにランダム時間Ｒｆ（秒）経過してから、送信キューの先頭データを送信する。次に、ノードＦは、Ｒｆ／２（秒）経過後に、送信キューの先頭データを送信する。その後、ノードＦは、データを送信するたびに、Ｒｆ／４、Ｒｆ／８とランダム時間を短くしていく。【０１００】
（効果）
このように、実施例３に係るノードは、送信抑止が解除された場合でも、ランダムな時間を待ってデータの送信を開始する。このため、同一無線回線内に流れるデータが急激に増加することを防止できる。したがって、データ送信の再開に起因する輻輳の発生を防止することができる。
【実施例４】
【０１０１】
ところで、各ノードは、データ送信処理が抑止されている間でも、データを受信することができる。また、各ノードは、緊急データを受信するまでにタイムラグがあることから、データ送信処理の抑止が開始される時間にもタイムラグがある。このため、データ送信処理実行中のノードが、データ送信処理抑止中のノードにデータを送信する場合が発生する。【０１０２】
この場合、送信先のノードは、正常にデータを受信できているにも関らず、ＡＣＫを応答できない。このため、送信先ノードは、正常にデータが送信されていないと判断し、データの再送信を繰り返すことになる。このように、不要な再送が繰り返されることで、輻輳を招く可能性があり、また、送信先ノードで異常通知が発信されるなどの不具合の発生を招く可能性がある。【０１０３】
そこで、実施例４では、コリジョンが発生している状態で、緊急データを受信したときにＡＣＫ待ちタイマのタイマを設定し直すことで、再送処理に陥ることを回避する例について説明する。【０１０４】
図１４は、実施例４に係るＡＣＫ待ちタイマを設定し直す処理の流れを示すシーケンス図である。図１４に示すように、ノードＹは、ローカル宛先アドレスにノードＡのアドレス情報を設定した緊急データを送信する（Ｓ５０１からＳ５０３）。この緊急データは、ノードＹの隣接ノードであるノードＡとノードＣに受信される。【０１０５】
ノードＡは、緊急データを受信し（Ｓ５０４）、データ送信処理を抑止する（Ｓ５０５）。また、ノードＣは、緊急データを受信し（Ｓ５０６）、データ送信処理を抑止する（Ｓ５０７）。【０１０６】
一方、ノードＡから２ホップ以上離れているノードＥは、グローバル宛先アドレスにノードＣのアドレス情報を設定した、ノードＣに対する通常データを送信する（Ｓ５０８とＳ５０９）。その後、ノードＥは、ＡＣＫ受信タイマを起動する（Ｓ５１０）。すなわち、ノードＥは、所定時間内にノードＣからＡＣＫを受信できなかった場合には、再送処理を実行する。なお、ノードＣは、ノードＥからデータを正常に受信しているが、データ送信抑止期間のため、ＡＣＫを応答できない。【０１０７】
その後、ノードＡは、緊急データを中継する装置であることから、ローカル宛先アドレスにノードＥのアドレス情報を設定し、ローカル差出アドレスにノードＡのアドレス情報を設定した緊急データを送信する（Ｓ５１１とＳ５１２）。この緊急データは、ノードＡの隣接ノードであるノードＥに受信される。【０１０８】
ノードＥは、緊急データを受信すると（Ｓ５１３）、データ送信処理を抑止する（Ｓ５１４）。そして、ノードＥは、他のノードも緊急データの帯域確保のために送信処理を抑止していると判定して、緊急データ前までに送信したデータに対するＡＣＫ受信タイマを延長する（Ｓ５１５）。【０１０９】
その後、ノードＣは、送信抑止期間が終了すると、ノードＥから受信したデータに対するＡＣＫをノードＥに送信する（Ｓ５１６とＳ５１７）。ノードＥは、Ｓ５１０で設定したＡＣＫ受信タイマ経過後であるが、Ｓ５１５で延長したＡＣＫ受信タイマ期間中にノードＡからＡＣＫを受信したので、正常にデータが受信されたと判定して、処理を終了する（Ｓ５１８）。【０１１０】
このように、コリジョンが発生している状態で、緊急データを受信したときにＡＣＫ待ちタイマのタイマを設定し直すことで、再送処理に陥ることを回避することができる。また、不要な再送処理を抑止することができるので、ネットワーク内に不要なデータが流れることを防止し、輻輳の発生を抑えることもできる。
【実施例５】
【０１１１】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。【０１１２】
（抑止解除後のデータ処理）
例えば、各ノードは、データ送信処理の抑止が解除されてデータ送信を再開する際に、送信キューを形成するデータのうち、通常のデータについては送信することなく破棄し、ＨＥＬＬＯメッセージであれば送信するようにしてもよい。このようにすることで、各ノードは、ネットワーク上に流れるデータの量を削減することができ、輻輳の防止にも繋がる。【０１１３】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【０１１４】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、各受信部を１つの受信部に統合したり、各送信部を１つの送信部に統合したりすることができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【０１１５】
（ハードウェア構成）
次に、上記実施例に示したノードのハードウェア構成を説明する。図１５は、ノードのハードウェア構成例を示す図である。図１５に示すように、ノード１００は、無線インタフェース１０１と、不揮発性メモリ１０２と、ＲＡＭ（Random  Access  Memory）１０３と、ＣＰＵ（Central  Processing  Unit）１０４とを有する。なお、ここで示したハードウェアはあくまで例示でありこれに限定されるものではなく、他のハードウェアを有していてもよい。【０１１６】
無線インタフェース１０１は、他ノードとの間でデータを送受信するハードウェアであり、図３に示したＨＥＬＬＯ受信部１２、データ受信部１３、ＨＥＬＬＯ送信部１６、緊急データ送信部２０、データ送信部２２に対応する。不揮発性メモリ１０２は、各種プログラムや装置固有のＩＤ等を記憶する記憶装置である。ＲＡＭ１０３は、ＣＰＵ１０４によって不揮発性メモリ１０２から読み出されたプログラムが展開される記憶装置である。【０１１７】
ＣＰＵ１０４は、無線制御、プログラム、アドホックプロトコル制御などノード１００の全体的な処理を司るプロセッサである。このＣＰＵ１０４は、図３に示したテーブル更新部１４、ＨＥＬＬＯ生成部１５、識別子判定部１７、中継判定部１８、緊急データ生成部１９、データ生成部２１、送信制御部２３に対応する。また、ＣＰＵ１０４は、不揮発性メモリ１０２から送信制御プログラムを読み出してＲＡＭ１０３に展開して、送信制御プロセスを実行することで、図３に示した各処理部と同様の処理を実行する。
【符号の説明】
【０１１８】
１０  ノード
１１  ルーティングテーブル
１２  ＨＥＬＬＯ受信部
１３  データ受信部
１４  テーブル更新部
１５  ＨＥＬＬＯ生成部
１６  ＨＥＬＬＯ送信部
１７  識別子判定部
１８  中継判定部
１９  緊急データ生成部
２０  緊急データ送信部
２１  データ生成部
２２  データ送信部
２３  送信制御部
【図１】
2013094001.tif 000003
【図２】
2013094001.tif 000004
【図３】
2013094001.tif 000005
【図４】
2013094001.tif 000006
【図５】
2013094001.tif 000007
【図６】
2013094001.tif 000008
【図７】
2013094001.tif 000009
【図８】
2013094001.tif 000010
【図９】
2013094001.tif 000011
【図１０】
2013094001.tif 000012
【図１１】
2013094001.tif 000013
【図１２】
2013094001.tif 000014
【図１３】
2013094001.tif 000015
【図１４】
2013094001.tif 000016
【図１５】
2013094001.tif 000017
【国際調査報告】
2013094001.tif 000018
2013094001.tif 000019