(57)【特許請求の範囲】
【請求項１】
アドホックネットワークを構成するノードにおける送信制御方法であって、
前記アドホックネットワークを構成するノードの中で、自ノードの通信範囲に含まれる他ノードの数を計数し、
前記他ノードごとに、当該他ノードと前記自ノードとの間における通信品質を示す評価値を取得し、
計数したノード数と前記評価値とに基づいて、フレームを再送する回数を決定し、
宛先ノードに対してフレームを送信し、送信したフレームに対する応答を受信するまで、前記フレームの再送を前記決定した回数繰り返し、
前記フレームの再送を前記決定した回数繰り返した結果として前記応答を受信できなかった場合に、前記宛先ノードまでの経路を他の経路に切り替える
処理を含むことを特徴とする送信制御方法。
【請求項２】
前記計数する処理は、前記各他ノードに対して制御メッセージを送信し、制御メッセージに対する応答の数を計数することを特徴とする請求項１に記載の送信制御方法。
【請求項３】
前記計数する処理は、前記各他ノードから前記各他ノードの位置情報を含む制御メッセージを受信し、受信した前記各他ノードの位置情報と前記自ノードの位置情報とから、前記自ノードと前記各他ノードとの距離を算出し、前記各他ノードのうち、算出した距離が所定値以下のノードの数を計数することを特徴とする請求項１に記載の送信制御方法。
【請求項４】
前記計数する処理は、前記自ノードに隣接する他ノードに関する情報を記憶するリンク管理記憶部から、前記隣接する他ノードの数を計数することを特徴とする請求項１に記載の送信制御方法。
【請求項５】
前記リンク管理記憶部は、前記隣接する他ノードごとに、前記評価値を記憶し、
前記計数する処理は、前記リンク管理記憶部が記憶する隣接する他ノードのうち、前記評価値が閾値を超えるノードの数を計数することを特徴とする請求項４に記載の送信制御方法。
【請求項６】
アドホックネットワークを構成するノードの中で、自ノードの通信範囲に含まれる他ノードの数を計数する計数部と、
前記他ノードごとに、当該他ノードと前記自ノードとの間における通信品質を示す評価値を取得する取得部と、
前記計数部によって計数されたノード数と前記評価値とに基づいて、フレームを再送する回数を決定する決定部と、
宛先ノードに対してフレームを送信し、送信したフレームに対する応答を受信するまで、前記フレームの再送を前記決定部によって決定された回数繰り返して実行する再送実行部と、
前記再送実行部が再送を繰り返して前記応答を受信できなかった場合に、前記宛先ノードまでの経路を他の経路に切り替える経路切替部と
を有することを特徴とするノード。
【請求項７】
アドホックネットワークを構成するノードが有するコンピュータに、
前記アドホックネットワークを構成するノードの中で、自ノードの通信範囲に含まれる他ノードの数を計数し、
前記他ノードごとに、当該他ノードと前記自ノードとの間における通信品質を示す評価値を取得し、
計数したノード数と前記評価値とに基づいて、フレームを再送する回数を決定し、
宛先ノードに対してフレームを送信し、送信したフレームに対する応答を受信するまで、前記フレームの再送を前記決定した回数繰り返し、
前記フレームの再送を前記決定した回数繰り返した結果として前記応答を受信できなかった場合に、前記宛先ノードまでの経路を他の経路に切り替える
処理を実行させるための送信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信制御方法、ノードおよび送信制御プログラムに関する。
【背景技術】
【０００２】
近年、無線通信装置にセンサを搭載させ、マルチホップ・アドホック通信でセンサの計測データをＧＷ（GateWay）などの管理装置で収集する無線センサネットワークが注目されている。無線センサネットワークを形成する無線通信装置は、ＩＰ（Internet  Protocol）アドレスやＧＷなどのネットワーク設定が不要であり、ネットワークに配置後、自律分散的に最終宛先装置までの経路を確定する。【０００３】
例えば、各無線通信装置は、１ホップで通信可能な隣接装置と制御メッセージを交換してお互いの存在を把握する。また、各無線通信装置は、自装置が保持する経路情報を制御メッセージに含めて送信することで、隣接装置との間で経路情報を交換する。このように、無線センサネットワーク内で制御メッセージを交換することで、各無線通信装置は、最終宛先装置までの経路を確定する。【０００４】
無線センサネットワークに用いられるフレーム送信方式としては、無線ＬＡＮ（Local  Area  Network）規格ＩＥＥＥ８０２．１１ｂ等で採用されているＣＳＭＡ（Carrier  Sense  Multiple  Access）／ＣＡ（Collision  Avoidance）方式がある。ＣＳＭＡ／ＣＡ方式では、電波の衝突を避けるために受信電力強度（ＲＳＳＩ：Received  Signal  Strength  Indication）を監視する。そして、一定以下のＲＳＳＩであれば他の装置が送信していない状況と判断し、さらに一定時間待機後にフレームを送信する。フレームを送信した無線通信装置は、送信先からＡＣＫを受信するまで、再送を指定回数繰り返す。また、無線通信装置は、再送を指定回数繰り返してもＡＣＫを受信できない場合には、送信経路を別の経路に切り替えてフレーム送信を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２６７５３２号公報
【特許文献２】特開２０１０−２３３１８７号公報
【特許文献３】国際公開第２０１１／０１３１６５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、再送回数を増やすことでフレームの到達可能性を高くすることができる。一方で、再送回数を増やすことにより無線帯域の占有率が高くなってしまう。すなわち、再送回数を増やしてフレームの到達可能性を高くすることと、無線帯域を確保することとはトレードオフの関係にあり、両立させることができないという問題がある。【０００７】
例えば、従来技術では、フレームの未達が発生して主経路から冗長経路に切り替える場合でも、冗長経路の方が主経路よりも電波状態の悪い不安定な経路であることもあり、再送を上限まで繰り返すことが多い。一方で、主経路と冗長経路とで電波状態も変わらない場合もあり、この場合には経路を切り替えた方がフレームの到達可能性を高めることができる。【０００８】
ところで、通信装置の通信機能を階層構造に分割したモデルとしてＯＳＩ基本参照モデルが知られている。ＯＳＩ基本参照モデルでは、パラメータ操作や関数呼び出しなど各層の処理が他の層へ影響しない、いわゆる依存関係を疎にすることが理想の通信システムとされている。【０００９】
従来技術の場合、宛先までの経路を選択したり切り替えたりする経路制御が第３層で実行される処理であり、フレームの送信や再送を行う再送制御が第２層で実行される処理である。したがって、再送制御と経路制御とは無関係であり、関連付けて制御することができない。このため、再送回数を増やしてフレームの到達可能性を高くすることが行われるが、その一方で、再送処理が多発することによる無線帯域の占有が発生する。【００１０】
開示の技術は、上記に鑑みてなされたものであって、無線帯域の確保と経路安定とを両立させることができる送信制御方法、ノードおよび送信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する送信制御方法、ノードおよび送信制御プログラムは、一つの態様において、アドホックネットワークを構成するノードの中で、自ノードの通信範囲に含まれる他ノードの数を計数する。計数したノード数に基づいて、フレームを再送する回数を決定し、宛先ノードに対してフレームを送信し、送信したフレームに対する応答を受信するまで、前記フレームの再送を前記決定した回数繰り返す。前記フレームの再送を前記決定した回数繰り返した結果として前記応答を受信できなかった場合に、前記宛先ノードまでの経路を他の経路に切り替える処理を含むことを特徴とする。
【発明の効果】
【００１２】
本願の開示する送信制御方法、ノードおよび送信制御プログラムの一つの態様によれば、無線帯域の確保と経路安定とを両立させることができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係るアドホックネットワークを示す図である。
【図２】図２は、アドホックネットワークの一部を抽出した図である。
【図３】図３は、実施例１に係るノードの機能ブロック図である。
【図４】図４は、ルーティングテーブルに記憶される経路情報の例を示す図である。
【図５】図５は、リンク管理テーブルに記憶されるリンク情報の例を示す図である。
【図６】図６は、データフレームの例を示す図である。
【図７】図７は、ＨＥＬＬＯフレームの例を示す図である。
【図８】図８は、ＨＥＬＬＯフレームの送信処理の流れを示すシーケンス図である。
【図９】図９は、再送回数決定処理の流れを示すフローチャートである。
【図１０】図１０は、データフレーム送信処理の流れを示すフローチャートである。
【図１１】図１１は、ネットワークが密である場合の送信制御例を示す図である。
【図１２】図１２は、ネットワークが疎である場合の送信制御例を示す図である。
【図１３】図１３は、送信制御プログラムを実行するコンピュータのハードウェア例を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかる送信制御方法、ノードおよび送信制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１５】
［全体構成］
図１は、実施例１に係るアドホックネットワークを示す図である。図１に示すように、アドホックネットワークは、ＧＷと複数のノードとを有し、送信元ノードから宛先ノードまで１台以上のノードを経由するマルチホップネットワークである。また、図１に示したアドホックネットワークは、各ノードが自動で経路情報を確定するネットワークである。ノードは、無線通信装置の一例であり、内部または外部にセンサを有し、センシングした値（以下、センサ値と表記する）をＧＷ装置に送信する。ＧＷは、各ノードからセンサ値を収集する管理装置が接続される無線通信装置の一例である。なお、センサ値の例としては、温度、湿度、加速度などがある。【００１６】
ノード各々は、経路探索プロトコルに従って経路情報を交換する。このとき、ノード各々は、ＨＥＬＬＯフレームと呼ばれる制御フレームを用いる。ノード各々は、例えば、宛先ノードであるＧＷに対して冗長な経路情報を保持する。【００１７】
一例を挙げると、ノードｘは、主経路として、ノードＢを経由してＧＷにフレームを送信する経路を保持する。また、ノードｘは、代替経路として、ノードＫ、ノードＪ、ノードＩ、ノードＦ、ノードＣ、ノードＡを順に経由する経路を保持する。つまり、ノードｘは、ＧＷに対してフレームを送信する場合には、主経路を用いてフレームを送信する。そして、主経路で障害などが発生して主経路が通信できなくなった場合に、ノードｘは、経路を代替経路に切り替えて、代替経路でフレームを送信する。【００１８】
［ネットワークの抜粋］
ここで、説明上、アドホックネットワークを簡略化した図２を用いて以降の実施例を説明する。図２は、アドホックネットワークの一部を抽出した図である。図２に示すように、実施例１では、ノードａ、ノードｄ、ノードｅ、ノードｆ、ノードｘ、ノードｖから構成されるアドホックネットワークを例にして説明する。【００１９】
図２に示した各ノードは、定期的に、自身が保持する経路情報を含めたＨＥＬＬＯフレームを送信する。具体的には、ノードａから送信されたＨＥＬＬＯフレームは、ノードａと直接通信することができるノードｄとノードｅに受信される。同様に、ノードｄから送信されたＨＥＬＬＯフレームは、ノードｄと直接通信することができる各隣接ノードに受信される。ノードｅからＨＥＬＬＯフレームは、ノードｅと直接通信することができる各隣接ノードに受信される。ノードｆから送信されたＨＥＬＬＯフレームは、ノードｆと直接通信することができる各隣接ノードに受信される。ノードｘから送信されたＨＥＬＬＯフレームは、ノードｘと直接通信することができる各隣接ノードに受信される。ノードｖから送信されたＨＥＬＬＯフレームは、ノードｖと直接通信することができる各隣接ノードに受信される。【００２０】
このように、各ノードは、隣接するノードとＨＥＬＬＯフレームを交換することで、互いの存在確認、生死確認、経路情報の交換を実施することができる。また、各ノードは、ＨＥＬＬＯフレームを受信したときの電波強度や各ノードが指定する優先度等に基づいて、各経路情報の評価値を記憶する。そして、各ノードは、同じ宛先とする経路情報が複数ある場合には、評価値の高い経路情報を優先して使用する。【００２１】
このような各ノードは、アドホックネットワークを形成するノードの中で、自ノードの通信範囲に含まれる他ノードの数を計数し、計数したノード数に基づいて、フレームを再送する回数を決定する。そして、各ノードは、宛先ノードに対してフレームを送信し、送信したフレームに対する応答を受信するまで、フレームの再送を決定した回数繰り返す。その後、各ノードは、フレームの再送を決定した回数繰り返した結果として応答を受信できなかった場合に、宛先ノードまでの経路を他の経路に切り替える。【００２２】
例えば、各ノードは、ノードが密集している場合には、再送回数を減らして経路を切り替える。一方、各ノードは、ノードが密集していない場合には、再送回数を増やして経路切替を抑制する。【００２３】
このように、ノードが密集しているか密集していないかによって再送回数を制御することで、ＯＳＩ基本参照モデルの第２層と第３層との処理を関連付けて制御することができる。したがって、各ノードは、再送回数が増えることによる帯域の占有を防止しつつ、再送回数が減少することによるフレーム到達可能性の低下を抑制することができる。この結果、各ノードは、帯域確保と経路安定を両立させることができる。【００２４】
［ノードの構成］
次に、ノードの機能ブロック図を説明する。図２に示した各ノードは、同様の構成を有するので、ここではノード１０として説明する。図３は、実施例１に係るノードの機能ブロック図である。【００２５】
図３に示すように、ノード１０は、ルーティングテーブル１０ａとリンク管理テーブル１０ｂとを有する。また、ノード１０は、受信部１１、送信部１２、フレーム分岐処理部１３、テーブル管理部１４、ＨＥＬＬＯフレーム処理部１５、データフレーム処理部１６、上位処理部１７、再送回数制御部１８を有する。なお、ルーティングテーブル１０ａとリンク管理テーブル１０ｂは、例えば半導体素子やハードディスクなどの記憶装置に設けられる。また、受信部１１、送信部１２、再送回数制御部１８は、無線モジュールなどが実行する。また、フレーム分岐処理部１３、テーブル管理部１４、ＨＥＬＬＯフレーム処理部１５、データフレーム処理部１６、上位処理部１７は、ＭＰＵ（Micro−Processing  Unit）などのプロセッサが実行する。【００２６】
ルーティングテーブル１０ａは、図４に示すように、経路情報を記憶する。図４は、ルーティングテーブルに記憶される経路情報の例を示す図である。なお、図４では、ノードｘのルーティングテーブルを説明する。【００２７】
図４に示すように、ルーティングテーブル１０ａは、「宛先、隣接、経路重み、評価値、順位、送信フラグ」を対応付けて記憶する。ここで記憶される「宛先」は、フレームの宛先となるノードを示す情報であり、「隣接」は、フレームを中継するノードのうち、自ノードと相互に接続するノードを示す情報である。「経路重み」は、宛先ノードと隣接ノードとの間の経路の品質を示す情報であり、「評価値」は、自ノードから宛先ノードまでの経路の品質を示す情報である。「順位」は、経路情報の優先順位を示す情報であり、「送信フラグ」は、ＨＥＬＬＯフレーム等を用いて経路情報を隣接ノードに送信したか否かを示す情報である。【００２８】
図４の場合、ルーティングテーブル１０ａは、宛先ノード「ｄ」、隣接ノード「ｄ」、評価値「５０」の経路情報を記憶する。すなわち、ルーティングテーブル１０ａは、ノード「ｄ」を宛先としてパケットを送信する場合には、隣接ノード「ｄ」にパケットを送信する経路があり、経路の品質が評価値「５０」であることを記憶する。また、ルーティングテーブル１０ａは、宛先ノード「ｅ」、隣接ノード「ｆ」、評価値「５５」の経路情報を記憶する。すなわち、ルーティングテーブル１０ａは、ノード「ｅ」を宛先としてパケットを送信する場合には、隣接ノード「ｆ」にパケットを送信する経路があり、経路の品質が評価値「５５」であることを記憶する。【００２９】
図３に戻り、リンク管理テーブル１０ｂは、リンク情報を記憶する。リンク情報とは、自ノードと隣接ノードとの間のリンクについて、品質を評価した値を示すものである。図５は、リンク管理テーブルに記憶されるリンク情報の例を示す図である。【００３０】
図５に示すように、リンク管理テーブル１０ｂは、「隣接、往路評価値、復路評価値、リンク重み」を対応付けて記憶する。ここで記憶される「隣接」は、隣接ノードを示す情報であり、「往路評価値」は、往路の品質を示す情報であり、「復路評価値」は、復路の品質を示す情報であり、「リンク重み」は、隣接ノードと自ノードとの間のリンクの品質を示す情報である。【００３１】
具体的に例を挙げて説明すると、リンク管理テーブル１０ｂは、隣接ノード「ｄ」、往路評価値「３０」、復路評価値「２０」、リンク重み「５０」のリンク情報を記憶する。すなわち、リンク管理テーブル１０ｂは、隣接ノード「ｄ」にとっての往路の品質が往路評価値「３０」であり、隣接ノード「ｄ」にとっての復路の品質が復路評価値「２０」であることを記憶する。また、リンク管理テーブル１０ｂは、隣接ノード「ｄ」との間のリンクは、リンク重み「５０」であることを記憶する。【００３２】
ここで、往路評価値、復路評価値、リンク重みの概念について説明する。実施例１におけるノード１０各々は、隣接ノードとの間でＨＥＬＬＯフレームを送受信するごとに、隣接ノードとの間のリンクの品質を評価し、最新の情報をリンク管理テーブル１０ｂに格納する。【００３３】
例えば、ノードｘは、ノードｄとＨＥＬＬＯフレームを交換し、ノードｄからＨＥＬＬＯフレームを受信したときの電波強度「３０（ｄＢｍ）」をノードｄにとっての往路評価値としてリンク管理テーブル１０ｂに格納する。つまり、ノードｘは、ノードｄとのリンクの電波強度を往路評価値としてリンク管理テーブル１０ｂに格納する。同様に、ノードｘは、ノードｄがノードｘから送信されたＨＥＬＬＯフレームを受信した時の電波強度「２０（ｄＢｍ）」をノードｄから受信し、この電波強度「２０（ｄＢｍ）」をノードｄにとっての復路評価値としてリンク管理テーブル１０ｂに格納する。また、ノードｘは、ノードｂに対する往路評価値と復路評価値とを加算した値をリンク重みとして、リンク管理テーブル１０ｂに格納する。【００３４】
次に、ルーティングテーブル１０ａの情報について説明する。ルーティングテーブル１０ａが記憶する経路重みとは、宛先ノードと隣接ノードとの間の経路の品質を示す情報である。例えば、ノードｘからノードｅを経由してノードａに到達する経路の場合、ノードｘからノードｅまでの重みに、ノードｅからノードａまでの重みを加算した値となる。また、ルーティングテーブル１０ａが記憶する評価値とは、経路重みとリンク管理テーブル１０ｂのリンク重みとを加算した値となる。なお、経路重みやリンク重みについても、電波強度等を用いることができる。また、別の情報として、例えば管理者等によって定められた安定度などを用いることもできる。【００３５】
なお、ルーティングテーブル１０ａやリンク管理テーブル１０ｂが記憶する情報はあくまで例示であり、図示したものに限定されず、管理者等によって任意に設定変更することができる。例えば、経路重みを用いずにリンク重みだけを用いてもよく、往路評価値か復路評価値のいずれか一方を用いてもよく、往路評価値と復路評価値との平均をリンク重みとしてよい。また、往路評価値や復路評価値として電波強度を用いる例を説明したが、これに限定されるものではない。例えば、ＨＥＬＬＯフレームを所定数送受信した場合のＨＥＬＬＯフレームの受信率を用いることもできる。また、電波強度を所定の評価関数等に代入して算出した値を用いることもできる。【００３６】
図３に戻り、受信部１１は、ＨＥＬＬＯフレームやデータフレームを受信する処理部である。例えば、受信部１１は、アドホックネットワーク内の隣接ノードからＨＥＬＬＯフレームを受信した場合に、受信したＨＥＬＬＯフレームをフレーム分岐処理部１３に出力する。また、受信部１１は、アドホックネットワーク内の隣接ノードからデータフレームを受信した場合に、受信したデータフレームをフレーム分岐処理部１３に出力する。また、受信部１１は、送信したフレームに対する応答を隣接ノードから受信した場合に、フレーム分岐処理部１３と再送回数制御部１８に出力する。【００３７】
送信部１２は、ＨＥＬＬＯフレーム処理部１５やデータフレーム処理部１６等の指示にしたがって、ＨＥＬＬＯフレームやデータフレームを宛先に向けて送信する処理部である。例えば、送信部１２は、ＨＥＬＬＯフレーム処理部１５からＨＥＬＬＯフレームが入力された場合に、当該ＨＥＬＬＯフレームをブロードキャストで送信する。同様に、送信部１２は、データフレーム処理部１６からデータフレームが入力された場合に、当該データフレームを宛先ノードに向けてブロードキャストで送信する。なお、送信部１２は、リンク管理テーブル１０ｂを用いて算出された密度に応じた再送回数として、例えば５回などを保持する。【００３８】
また、送信部１２は、他のノードから受信したフレームが転送対象である場合に、宛先に向けて、受信したフレームを転送する。例えば、送信部１２は、受信フレームの最終的な宛先を示すグローバル宛先アドレスが自ノードではない場合に、当該受信フレームをブロードキャストで転送する。このとき、送信部１２は、受信フレームの転送を依頼するノードを示すローカル宛先アドレスが自ノードである場合に、受信フレームを転送してもよい。この場合、送信部１２は、宛先までの経路上に位置する隣接ノードのアドレス情報でローカル宛先アドレスを書き換えて転送する。【００３９】
ここで、図６と図７を用いて、データフレームとＨＥＬＬＯフレームの例を説明する。図６は、データフレームの例を示す図であり、図７は、ＨＥＬＬＯフレームの例を示す図である。データフレームは、データフレーム処理部１６によって生成され、ＨＥＬＬＯフレームは、ＨＥＬＬＯフレーム処理部１５によって生成される。【００４０】
図６に示すように、データフレームは、アドホックヘッダと時刻とデータヘッダとデータペイロードとを有する。アドホックヘッダは、アドホックネットワークで送受信されるフレームを識別する情報であり、時刻は、送信時の時刻を示す。データヘッダは、グローバル宛先アドレス、グローバル差出アドレス、ＦＩＤ、ＨＴＬ、その他等を有し、これらによってデータフレームの詳細を示す。グローバル宛先アドレスは、データフレームの最終宛先となるノードを示す６バイトの情報であり、グローバル差出アドレスは、データフレームの生成元のノードを示す６バイトの情報である。ＦＩＤは、フレームを識別する識別子を示す２バイトの情報であり、ＨＴＬは、データフレームの有効期限を示す１バイトの情報である。その他は、管理者等が任意の情報を格納できる３バイトの情報である。また、データペイロードは、送信対象のデータが格納される。【００４１】
続いて、図７に示すように、ＨＥＬＬＯフレームは、アドホックヘッダと時刻とＨＥＬＬＯフレームヘッダとＨＥＬＬＯヘッダとを有する。アドホックヘッダは、アドホックネットワークで送受信されるフレームを識別する情報であり、時刻は、送信時の時刻を示す。ＨＥＬＬＯフレームヘッダは、送信元ノードと隣接する隣接ノードの情報を示す。  ＨＥＬＬＯヘッダは、グローバル宛先アドレスとホップ数と重みとを有し、これらによって、経路情報を示す。グローバル宛先アドレスは、データフレームの最終宛先となるノードを示す６バイトの情報である。ホップ数は、最終宛先までのホップ数を示す１バイトの情報である。重みは、最終宛先までの経路品質を示す２バイトの情報である。【００４２】
図３に戻り、フレーム分岐処理部１３は、受信部１１によって受信されたフレームを該当する処理部に振り分ける処理部である。例えば、フレーム分岐処理部１３は、受信部１１によってフレームが受信された場合に、当該フレームにデータヘッダがある場合には、受信フレームをデータフレーム処理部１６に出力する。また、フレーム分岐処理部１３は、受信部１１によってフレームが受信された場合に、当該フレームにＨＥＬＬＯフレームヘッダがある場合には、受信フレームをテーブル管理部１４等に出力する。【００４３】
テーブル管理部１４は、他のノードからＨＥＬＬＯフレームを受信した場合に、リンク管理テーブル１０ｂに記憶される情報やルーティングテーブル１０ａに記憶される情報を更新する処理部である。例えば、評価値として電波強度を用いた例で説明すると、テーブル管理部１４は、ＨＥＬＬＯフレームが受信された場合、送信元の隣接ノードの情報とＨＥＬＬＯフレームを受信した時の電波強度とを取得する。そして、テーブル管理部１４は、取得した隣接ノードに対応付けてリンク管理テーブル１０ｂに格納される往路評価値をＨＥＬＬＯフレームから取得した電波強度で更新し、リンク重みについても更新する。また、テーブル管理部１４は、リンク管理テーブル１０ｂのリンク重みが更新された場合には、ルーティングテーブル１０ａの評価値等も更新する。なお、評価値として電波強度以外を用いる場合には、テーブル管理部１４は、受信したＨＥＬＬＯフレームに含まれる評価値で、リンク管理テーブル１０ｂに記憶される情報を更新してもよい。【００４４】
図３に戻り、ＨＥＬＬＯフレーム処理部１５は、定期的にＨＥＬＬＯフレームを生成して送信する処理部である。例えば、ＨＥＬＬＯフレーム処理部１５は、所定間隔のクロックイベントごとに、ルーティングテーブル１０ａに記憶される各経路情報を各ＨＥＬＬＯヘッダにそれぞれ格納したＨＥＬＬＯフレームを生成してブロードキャストで送信する。一例を挙げると、ＨＥＬＬＯフレーム処理部１５は、リンク管理テーブル１０ｂに記憶される隣接ノードごとに、当該隣接ノードをグローバル宛先アドレスに格納し、各経路情報を各ＨＥＬＬＯヘッダにそれぞれ格納したＨＥＬＬＯフレームを生成する。そして、ＨＥＬＬＯフレーム処理部１５は、生成したＨＥＬＬＯフレームをブロードキャストで送信する。このとき、ＨＥＬＬＯフレーム処理部１５は、ＨＥＬＬＯフレーム内の時刻に送信時刻を格納して送信する。【００４５】
また、ＨＥＬＬＯフレーム処理部１５は、隣接ノードからＨＥＬＬＯフレームを定期的に受信する。そして、ＨＥＬＬＯフレーム処理部１５は、受信したＨＥＬＬＯメッセージの送信元のノードの情報がリンク管理テーブル１０ｂに格納されていない場合、リンク管理テーブル１０ｂやルーティングテーブル１０ａを更新する。すなわち、ＨＥＬＬＯフレーム処理部１５は、新たな隣接ノードが検出された場合に当該ノードに対応するレコードをリンク管理テーブル１０ｂやルーティングテーブル１０ａに生成する。また、ＨＥＬＬＯフレーム処理部１５は、受信したＨＥＬＬＯメッセージのグローバル宛先アドレスがルーティングテーブル１０ａに格納されていない場合、ルーティングテーブル１０ａに新たなレコードを生成する。なお、新たなレコードを生成する処理等は、テーブル管理部１４が実行してもよい。【００４６】
データフレーム処理部１６は、上位処理部１７からの指示によってデータフレームを生成して宛先に送信したり、他ノードから受信したデータフレームを上位処理部１７に出力したりする処理部である。例えば、データフレーム処理部１６は、上位処理部１７から宛先と送信対象データの入力を受け付ける。そして、データフレーム処理部１６は、入力された宛先のアドレス情報等をグローバル宛先アドレスに格納し、自ノードのアドレス情報等をグローバル差出アドレスに格納する。さらに、データフレーム処理部１６は、ＦＩＤやＨＴＬには上位処理部１７や管理者によって指定された値を格納し、入力されたデータをデータペイロードに格納したデータフレームを生成する。その後、データフレーム処理部１６は、入力された宛先をキーとしてルーティングテーブル１０ａを参照して、宛先に対応付けられた隣接ノードを特定する。そして、データフレーム処理部１６は、特定された隣接ノードのうち順位の高い隣接ノードに、生成したデータフレームを送信する。このとき、データフレーム処理部１６は、データフレーム内の時刻に送信時刻を格納して送信する。【００４７】
また、データフレーム処理部１６は、他ノードからデータフレームを受信した場合、データフレーム内の時刻とＨＴＬとを参照する。そして、データフレーム処理部１６は、有効期限を超過している場合には、エラーを上位処理部１７に出力する。また、データフレーム処理部１６は、有効期限を超過していない場合は、受信したデータフレームを上位処理部１７に出力する。【００４８】
上位処理部１７は、アプリケーション等を実行する処理部である。例えば、上位処理部１７は、送信対象のデータと送信先とをデータフレーム処理部１６に入力して、データの送信を指示する。また、上位処理部１７は、データフレーム処理部１６から入力された受信データフレームをアプリケーションに出力する。【００４９】
再送回数制御部１８は、マルチホップネットワークを形成するノードのうち、自ノードと通信可能なノードの数を計数し、計数したノード数に基づいて、フレームを再送する回数を決定する処理部である。一例を挙げると、再送回数制御部１８は、定期的にリンク管理テーブル１０ｂを参照する。続いて、再送回数制御部１８は、リンク管理テーブル１０ｂの先頭レコードから順に、「隣接」に対応するリンク重みを抽出して閾値以上か否かを判定する。そして、再送回数制御部１８は、リンク重みが閾値以上である「隣接」の数を計数する。続いて、再送回数制御部１８は、計数した「隣接」の数が閾値以上である場合には、ノードが密集していると判定し、再送回数の初期値から所定数減らした値を送信部１２に通知する。一方、再送回数制御部１８は、計数した「隣接」の数が閾値未満である場合には、ノードが疎であると判定し、再送回数の初期値から所定数増やした値を送信部１２に通知する。【００５０】
再送回数の決定例については後述するが一例を挙げると、再送回数制御部１８は、「隣接」の数が閾値よりどのくらい離れているかによって、再送回数を決定することもできる。例えば、再送回数制御部１８は、「（計数した数／閾値）×初期」を再送回数とすることもできる。また、ビットエラー（ＢＥＲ）と受信信号強度（評価値）とを関連付けることもできるが、これについては後述する。【００５１】
また、再送回数制御部１８は、受信部１１と送信部１２とを監視し、送信したフレームに対する応答を受信するまで、再送を繰り返す指示を送信部１２に出力する。そして、再送回数制御部１８は、再送を繰り返して応答を受信できなかった場合に、宛先ノードまでの経路を他の経路に切り替える指示を送信部１２に出力する。【００５２】
例えば、再送回数制御部１８は、送信部１２を監視し、隣接ノードにデータフレームが送信されたことを検出すると、送信部１２等から再送回数を取得する。そして、再送回数制御部１８は、受信部１１を監視し、送信したデータフレームに対するＡＣＫが所定時間内に受信できたか否かを判定する。なお、送信済みのデータフレームとＡＣＫとの結びつけは、既存の様々な技術を用いることができるが、例えばヘッダ内に含まれるＦＩＤなどの識別子の一致で判定することができる。【００５３】
そして、再送回数制御部１８は、所定時間内にＡＣＫを受信できない場合には、データフレームの再送を送信部１２に指示する。再送回数制御部１８は、このような再送処理によってＡＣＫが受信できるまで、リンク管理テーブル１０ｂに記憶される再送回数分繰り返す。そして、再送回数制御部１８は、決定された再送回数分の再送処理を実行してもＡＣＫを受信できない場合には、送信部１２に経路を切替えて送信する指示をする。送信部１２は、経路切り替え指示を受信すると、ルーティングテーブル１０ａを参照して次に順位の高い経路を選択して、データフレームの再送を実行する。その後、再送回数制御部１８は、上記処理と同様の処理を繰り返す。【００５４】
［処理の流れ］
次に、図８から図１０を用いて、実施例１に係るノードが実行する処理の流れを説明する。ここでは、ＨＥＬＬＯフレームの送信処理、再送回数決定処理、データフレーム送信処理について説明する。【００５５】
（ＨＥＬＬＯフレームの送信処理）
図８は、ＨＥＬＬＯフレームの送信処理の流れを示すシーケンス図である。図８に示すように、ノード１０の受信部１１は、ノード１０と通信可能な範囲に位置する隣接ノードからＨＥＬＬＯフレームを受信する（Ｓ１０１）。【００５６】
ノード１０のテーブル管理部１４は、受信されたＨＥＬＬＯフレームのＨＥＬＬＯヘッダに含まれるグローバル宛先アドレスごとに、リンク重みや経路情報等を抽出する（Ｓ１０２とＳ１０３）。続いて、テーブル管理部１４は、グローバル宛先アドレスごとに、評価値等を再計算し（Ｓ１０４）、ＨＥＬＬＯフレームから抽出した情報や生成した評価値等を用いて、リンク管理テーブル１０ｂやルーティングテーブル１０ａを更新する（Ｓ１０５）。【００５７】
さらに続いて、ノード１０の受信部１１は、ノード１０と通信可能な範囲に位置する他の隣接ノードからＨＥＬＬＯフレームを受信する（Ｓ１０６）。すると、テーブル管理部１４は、Ｓ１０２からＳ１０５までと同様の処理を実行し、Ｓ１０６で受信したＨＥＬＬＯフレームに基づいて、リンク管理テーブル１０ｂやルーティングテーブル１０ａを更新する（Ｓ１０７からＳ１１０）。【００５８】
一方で、ノード１０は、所定の周期を計測するクロック１９を有する。ＨＥＬＬＯフレーム処理部１５は、クロック１９から契機が通知されると（Ｓ１１１）、ルーティングテーブル１０ａに記憶されている経路情報を用いてＨＥＬＬＯフレームを生成する（Ｓ１１２）。そして、ＨＥＬＬＯフレーム処理部１５は、リンク管理テーブル１０ｂ等に記憶される隣接ノードに対して、生成したＨＥＬＬＯフレームを送信する指示を送信部１２に指示する（Ｓ１１３とＳ１１４）。送信部１２は、指示された隣接ノードに向けて、指示されたＨＥＬＬＯフレームをブロードキャストで送信する（Ｓ１１５）。【００５９】
（再送回数決定処理）
図９は、再送回数決定処理の流れを示すフローチャートである。図９に示すように、ノード１０の再送回数制御部１８は、電源投入時またはリセット時にプロセッサやメモリの内容を初期化し、さらに、隣接ノードの疎密を判断する閾値や再送回数に初期値を設定する（Ｓ２０１）。例えば、再送回数制御部１８は、ハードウェアの設定ファイルまたはファームウェアの初期値から、設定する初期値を算出してもよく、予め定められた初期値を設定してもよい。【００６０】
続いて、再送回数制御部１８は、リンク管理テーブル１０ｂを参照し（Ｓ２０２）、変数ｋに０を代入して（Ｓ２０３）、リンク管理テーブル１０ｂの最初のエントリに注目する（Ｓ２０４）。【００６１】
その後、再送回数制御部１８は、注目したエントリのリンク重みが閾値以上か否かを判定する（Ｓ２０５）。そして、再送回数制御部１８は、リンク重みが閾値以上である場合（Ｓ２０５肯定）、変数ｋをインクリメントし（Ｓ２０６）、リンク管理テーブル１０ｂの次のエントリに注目する（Ｓ２０７）。一方、再送回数制御部１８は、リンク重みが閾値未満である場合（Ｓ２０５否定）、変数ｋを更新することなく、Ｓ２０７を実行する。【００６２】
そして、再送回数制御部１８は、次のエントリが存在する場合には（Ｓ２０８肯定）、Ｓ２０５以降の処理を繰り返す。一方、再送回数制御部１８は、次のエントリが存在しない場合には（Ｓ２０８否定）、現時点までで計数した変数ｋの値が閾値より大きいか否かを判定する（Ｓ２０９）。【００６３】
続いて、再送回数制御部１８は、変数ｋの値が閾値よりも大きいと判定した場合（Ｓ２０９肯定）、すなわちノード数が密集していると判定した場合、初期値から所定数減少させた値を再送回数として送信部１２等に通知する（Ｓ２１０）。【００６４】
一方、再送回数制御部１８は、変数ｋの値が閾値よりも小さいと判定した場合（Ｓ２０９否定）、すなわちノード数が疎であると判定した場合、初期値から所定数増加させた値を再送回数として送信部１２等に通知する（Ｓ２１１）。【００６５】
（データフレーム送信処理）
図１０は、データフレーム送信処理の流れを示すフローチャートである。ここでは、一例として、ＣＳＭＡ／ＣＡ方式を用いた送信処理を説明する。【００６６】
図１０に示すように、ノード１０の送信部１２は、データフレーム処理部１６からデータフレームの送信指示を受信すると、周囲のフレーム送信状態をＲＳＳＩ（受信信号強度：Received  Signal  Strength  Indication）で監視する（Ｓ３０１とＳ３０２否定）。なお、監視方法は、ＣＳＭＡ／ＣＡ方式で用いられる手法と同様なので、詳細な説明は省略する。【００６７】
そして、ノード１０の送信部１２は、ＲＳＳＩが一定値以下となった場合には（Ｓ３０２肯定）、一定時間待機した後に（Ｓ３０３）、データフレーム処理部１６から指示された宛先に向けて、指示されたデータフレームを送信する（Ｓ３０４）。【００６８】
その後、ノード１０の受信部１１は、送信部１２から送信されたデータフレームに対するＡＣＫ待ちの状態となり（Ｓ３０５）、ＡＣＫを受信した場合に（Ｓ３０６肯定）、正常終了する。【００６９】
一方、ノード１０の受信部１１は、送信部１２から送信されたデータフレームに対するＡＣＫを受信できない場合（Ｓ３０６否定）、一定期間過ぎたか否かを判定する（Ｓ３０７）。そして、ノード１０の受信部１１は、一定期間過ぎていない場合には（Ｓ３０７否定）、Ｓ３０５に戻って、ＡＣＫの受信待ちに遷移する。【００７０】
一方、ノード１０の再送回数制御部１８は、一定期間経過しても受信部１１がＡＣＫを受信できない場合（Ｓ３０７肯定）、送信部１２等に設定される再送回数を超えた再送処理が実行されたか否かを判定する（Ｓ３０８）。なお、再送回数制御部１８は、メモリ等の記憶領域に再送回数を計数しておく。【００７１】
そして、再送回数制御部１８は、再送処理が再送回数を超えていない場合（Ｓ３０８否定）、つまり現時点で再送された回数が図９で決定された再送回数以下である場合、送信部１２に再送を実行する指示を出力する（Ｓ３０９）。この再送指示を受けた送信部１２は、Ｓ３０１に戻って以降の処理を実行する。【００７２】
一方、再送回数制御部１８は、再送処理が再送回数を超えている場合（Ｓ３０８肯定）、つまり現時点で再送された回数が図９で決定された再送回数を越える場合、送信部１２に経路を切替える指示を出力する（Ｓ３１０）。この経路切り替えを指示された送信部１２は、ルーティングテーブル１０ａを参照して新たな経路を選択した後、Ｓ３０１に戻って以降の処理を実行する。【００７３】
［具体例］
次に、実施例１で説明した再送回数処理について具体的な例を用いて説明する。なお、ここで示す数値等はあくまで例示であり、これに限定されるものではない。また、図５に示したリンク重みはＲＳＳＩを表し、３０及び２０は各々−３０ｄＢｍ、−２０ｄＢｍを指すものとする。また、ネットワーク構成は図２に示した構成とし、ここでは、ノードｘが復路評価値にしたがって再送回数を決定する例について説明する。【００７４】
例えば、ＣＳＭＡ／ＣＡ方式の特徴として単位時間当たりの送信フレーム数が増えると、パケット衝突が増し、スループットが急激に低下することが知られている。無線方式がＩＥＥＥ８０２．１１ｂで通信速度が１Ｍｂｐｓで、例えば帯域１Ｍｂｐｓの１／４、すなわち２５０Ｋｂｐｓに相当するフレームを送信する場合、スループットが低下すると仮定する。このとき、１フレームの最大長を１５００ｂｙｔｅとすれば、スループットが低下するときのフレーム数は２５０Ｋｂｐｓ／８ｂｉｔ／１５００ｂｙｔｅ≒２１となる。従って、疎密を判断する隣接ノード数の閾値ｎを２１台とする。この閾値ｎ＝２１を隣接ノード数の閾値として疎密の判断に用いる。また、最低受信信号強度を−９０ｄＢｍとし、リンク管理テーブル１０ｂにリンク重み９０（−９０ｄＢｍ）以上のノードは疎密を判断する際に台数をカウントしないこととする。【００７５】
このような状態において、ノードｘの再送回数制御部１８は、リンク管理テーブル１０ｂを参照し、隣接ノードの台数をカウントする。まず、再送回数制御部１８は、最初のエントリに注目する。図５において、ノードｘのリンク管理テーブル１０ｂの最初のエントリはノードｄである。したがって、ノードｘの再送回数制御部１８は、ノードｄに注目し、ノードｘのＨＥＬＬＯフレームがノードｄに受信されたときの復路評価値を確認する。このとき、再送回数制御部１８は、復路評価値が２０（−２０ｄＢｍ）であることから、最低受信強度である−９０ｄＢｍ以上であるので、隣接ノードとしてカウント（ｋ＝１）する。次に、再送回数制御部１８は、次のエントリであるノードｆに注目し、復路評価値が１０（−１０ｄＢｍ）であるので、カウント（ｋ＝２）する。尚、再送回数制御部１８は、次のエントリが存在しないので、隣接ノードの数をｋ＝２とする。【００７６】
再送回数制御部１８は、隣接ノード数（ｋ＝２）が閾値の２１を下回るため、ネットワークは疎と判断する。疎であるため、再送回数を増加することが好ましい。例えば、再送回数の初期値が一般的な無線ＬＡＮ（Local  Area  Network）の一般的な初期値が４回であるとすると、５回以上の値を設定する。一方、隣接ノードの値が２１以上であれば、ネットワークは密である。このときは、４回以下の値を設定する。【００７７】
なお、連続したビット列のエラー比率（ＢＥＲ）は、受信信号強度で確率的に変化することから、復路評価値とＢＥＲとを対応付けて再送回数を増減させてもよい。例えば、受信信号強度が１０ｄＢｍ変化すると、ＢＥＲは１０倍または１／１０倍などの一桁程度変化する。従って、−６０ｄＢｍの受信信号強度の場合に再送回数が４回であれば、−７０ｄＢｍの場合はＢＥＲが１０倍となることから、−６０ｄＢｍと等しい期待値で送信を成功させるための再送回数は１０倍の４０回となる。しかし、実際には上限が１０回であることが多いことから、１０回と設定する。【００７８】
同様に、−５０ｄＢｍの場合は、−６０ｄＢｍの時のＢＥＲと比較して１／１０となるため、再送回数は１から２回としてもよい。なお、上記はノード間でＨＥＬＬＯフレームによる評価値の交換で受信信号強度を交換する方式について述べたが、受信部からドライバ経由で送信元ノードに対する自ノードの受信信号強度を検出しても同様の結果が得られることは言うまでもない。【００７９】
［効果］
上述したように、各ノードは、マルチホップネットワーク内のノード数が疎か密かによってフレーム送信が失敗した時の再送回数を決定し、再送処理に失敗した後に経路を切替えることで、切替えタイミングを制御し、帯域確保と経路安定を両立させることができる。この具体例を図１１と図１２とを用いて説明する。【００８０】
図１１は、ネットワークが密である場合の送信制御例を示す図である。図１２は、ネットワークが疎である場合の送信制御例を示す図である。図１１に示すように、隣接ノードが密である場合、再送回数が増えることによる無線帯域の占有が隣接ノードへ与える影響がより大きい。しかし、経路変更による総ホップ数などの影響は少なく、再送回数を増やすことなく経路変更してもフレームの到達可能性に与える影響は小さい。一方、図１２に示すように、隣接ノードが疎である場合、再送回数増による影響は小さいが、経路変更によって総ホップ数が大きく変化し、フレーム到達可能性に影響を与える。【００８１】
以上より、隣接ノードが密の場合には、再送により無線帯域占有の影響が大きいが経路変更による影響が小さいことから、主経路が不通の場合は経路変更を速やかに実施する。一方、隣接ノードが疎の場合には、再送により無線帯域の占有の影響が小さいが経路変更の影響が大きい。つまり、ノード数が疎なので代替経路の各リンクが不安定な可能性もあり、また、無線リソースには余裕がある。したがって、再送回数を増やし、信頼性の高い経路である主経路を維持する。このように、ネットワークのノード数の密集状況によって、早く経路を切替えるか再送回数を増やすかを制御することで、今まで第２層と第３層とで分かれていた処理を関連付けて制御することができる。このため、トレードオフの関係である、再送回数を増やしてフレームの到達可能性を高くすることと、無線帯域を確保することとを、両立させることができる。
【実施例２】
【００８２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。【００８３】
（ノード数の判定例）
上記実施例に係るノード１０は、リンク管理テーブル１０ｂを参照して、隣接するノードの数を計数する例について説明したが、これに限定されるものではない。例えば、ノード１０は、ＨＥＬＬＯフレームをブロードキャストで送信し、応答があった数を隣接するノードの数とすることもできる。【００８４】
また、上記実施例に係るノード１０は、リンク管理テーブル１０ｂに記憶されるノードのうち復路評価値が所定以上のノードを計数する例について説明したが、これに限定されるものではない。例えば、ノード１０は、リンク管理テーブル１０ｂに記憶されるノードそのものをノードの数としてもよく、リンク重みまたは往路評価値が所定以上のノードの数を計数してもよい。【００８５】
また、位置情報を用いることもできる。例えば、各ノードは、ＨＥＬＬＯフレームに自ノードの位置情報を含めて他のノードに送信する。そして、各ノードは、受信した位置情報と自ノードの位置情報とを用いて、各ノードと自ノードとの距離を算出する。その後、各ノードは、自ノードから所定距離内に位置するノードの数を計数し、この値を隣接するノードの数とすることもできる。なお、位置情報は、各ノードにＧＰＳを備えさせることで計測できる。また、位置情報としては、例えば経度と緯度の情報や、座標等を用いることができる。【００８６】
（各テーブル）
実施例で説明したリンク管理テーブル１０ｂやルーティングテーブル１０ａに記憶される情報は、図示したものに限定されない。例えば、実施例では、経路重み、リンク重み、評価値などをＨＥＬＬＯフレームに基づいて、自動で最新の情報に更新する例を説明したが、管理者等が設定登録したものであってもよい。つまり、各情報は、変動値であっても固定値であってもよい。【００８７】
また、実施例で説明した各テーブルの更新手法についても、説明した手法に限定されるものではなく、既存の様々な技術を用いて更新してもよく、管理者等が定期的に手動で更新してもよい。【００８８】
また、経路重み、リンク重み、評価値にＲＳＳＩを用いる例を説明したが、これら以外にも様々な指標を用いることができ、例えば、ＨＥＬＬＯフレームの受信率や評価関数等を用いることもできる。また、経路重み、リンク重み、評価値それぞれを別々の指標を用いることもできる。【００８９】
（データ形式）
また、実施例で説明したＨＥＬＬＯフレームやデータフレームはあくまで一例であり、フレーム形式を限定するものではない。また、上記実施例では、伝送単位としてフレームを用いて説明したが、伝送単位を限定するものではなく、例えばパケットなど伝送対象のデータであればよい。【００９０】
（経路切替）
例えば、ノード１０は、決定した回数分再送を繰り返してもＡＣＫを受信できない場合に経路を切替える例を説明したが、切替えた後も、決定した回数分再送を繰り返す。そして、ノード１０は、決定した回数分再送を繰り返してもＡＣＫを受信できない場合には、さらに経路を切替える。ここで、ノード１０は、切替える経路が他にない場合には、送信エラーを管理端末等に通知してもよく、一番初めの経路に戻って再送を繰り返してもよい。【００９１】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【００９２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、受信部１１と送信部１２とを統合することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００９３】
（ハードウェア）
図１３は、送信制御プログラムを実行するコンピュータのハードウェア例を示す図である。図１３に示すように、コンピュータ１００は、ＭＰＵ（マイクロプロセッサユニット）２０１、ＰＨＹチップ２０２、タイマＩＣ２０３を有する。さらに、コンピュータ１００は、センサ２０４、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）２０５、フラッシュメモリ２０６、無線モジュール２０７を有する。【００９４】
ＭＰＵ２０１とＰＨＹチップ２０２とは、とＭＩＩ（Media  Independent  Interface）またはＭＤＩＯ（Management  Data  Input/Output）インタフェース２０８で接続される。ＭＩＩとＭＤＩＯは、物理層とＭＡＣ層（Media  Access  Control  sub  layer）との間のインタフェースである。ＭＰＵ２０１とタイマＩＣ２０３およびＭＰＵ２０１とセンサ２０４とは、Ｉ２Ｃ（Inter-Integrated  Circuit）またはＰＩＯ（Parallel  Input/Output）バス２０９を介して接続される。また、ＭＰＵ２０１とＤＲＡＭ２０５、フラッシュメモリ２０６、無線モジュール２０７各々は、ＰＣＩ（Peripheral  Component  Interconnect）バス２１０で接続される。なお、ここで例示したバスやインタフェースは、あくまで例示であり、規格や種類を限定するものではない。【００９５】
ＭＰＵ２０１は、フラッシュメモリ２０６に格納されるプログラムをＤＲＡＭ２０５上にロードして実行することで、様々な処理を実行することができる。例えば、ＭＰＵ２０１は、フラッシュメモリ２０６に格納される送信制御プログラムをＤＲＡＭ２０５上にロードして実行することで、図３で説明した各処理部と同様の機能を実行することができる。つまり、ＭＰＵ２０１は、送信制御プログラムを実行して送信制御プロセスを動作させて、フレーム分岐処理部１３とテーブル管理部１４とＨＥＬＬＯフレーム処理部１５とデータフレーム処理部１６と上位処理部１７と再送回数制御部１８と同様の機能を実行する。なお、送信制御プログラムが格納される場所は、フラッシュメモリ２０６ではなく、例えば図示しないハードディスク、磁気ディスク、光ディスクなどの記憶媒体などであってもよい。【００９６】
また、ＤＲＡＭ２０５は、フレームの送信バッファや受信バッファとして使用することができる。フラッシュメモリ２０６は、送信制御プログラムを格納するとともに、図３に示したルーティングテーブル１０ａやリンク管理テーブル１０ｂなどに記憶される情報を記憶する。また、フラッシュメモリ２０６は、ノードに割り与えられる識別子やＭＡＣアドレスなども格納できる。【００９７】
ＰＨＹチップ２０２は、有線接続における物理層の処理を実行する回路である。無線モジュール２０７は、無線接続における物理層の処理を実行するハードウェアであり、図３で説明した受信部１１や送信部１２と同様の機能を実行する。例えば、無線モジュール２０７は、アンテナ、ＡＤＣ（Analog  to  Digital  Converter）、ＤＡＣ（Digital  to  Analog  Converter）、変調器、復調器などを含み、これらの処理によって無線通信でデータを送受信する。タイマＩＣ２０３は、図８で説明したクロック１９と同様の処理を実行する。例えば、タイマＩＣ２０３は、設定された時間までカウントアップし、設定された時間に到達すると、割込み信号をＭＰＵ２０１に出力する回路である。このようにコンピュータ１００は、プログラムを読み出して実行することで送信制御方法を実行する無線通信装置として動作する。
【符号の説明】
【００９８】
１０  ノード
１０ａ  ルーティングテーブル
１０ｂ  リンク管理テーブル
１１  受信部
１２  送信部
１３  フレーム分岐処理部
１４  テーブル管理部
１５  ＨＥＬＬＯフレーム処理部
１６  データフレーム処理部
１７  上位処理部
１８  再送回数制御部
【図１】
0005939262.tif 000002
【図２】
0005939262.tif 000003
【図３】
0005939262.tif 000004
【図４】
0005939262.tif 000005
【図５】
0005939262.tif 000006
【図６】
0005939262.tif 000007
【図７】
0005939262.tif 000008
【図８】
0005939262.tif 000009
【図９】
0005939262.tif 000010
【図１０】
0005939262.tif 000011
【図１１】
0005939262.tif 000012
【図１２】
0005939262.tif 000013
【図１３】
0005939262.tif 000014