(57)【要約】      （修正有）【課題】輻輳と品質とのトレードオフのなかで最適なブロードキャストの繰り返し回数を設定する方法を提供する。【解決手段】ネットワーク中に含まれる通信装置が、通信装置に隣接する装置である隣接装置の数、および、隣接装置の各々の隣接装置の数を用いて、通信装置のネットワーク中での配置を特定する。通信装置は、通信装置のネットワーク中での配置の候補と、通信装置がフレームをブロードキャストする回数を対応付けた回数情報を用いて、ブロードキャストフレームをブロードキャストする回数を決定する。通信装置は、決定した回数だけブロードキャストフレームをブロードキャストする。【選択図】図１
2015097348.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク中に含まれる通信装置に、
前記通信装置に隣接する装置である隣接装置の数、および、前記隣接装置の各々の隣接装置の数を用いて、前記通信装置のネットワーク中での配置を特定し、
前記通信装置の前記ネットワーク中での配置の候補と、前記通信装置がフレームをブロードキャストする回数を対応付けた回数情報を用いて、ブロードキャストフレームをブロードキャストする回数を決定し、
決定した回数だけ前記ブロードキャストフレームをブロードキャストする
処理を行わせることを特徴とする通信方法。
【請求項２】
前記通信装置は、
輻輳が発生する可能性が無視できない程度に装置が密集している密集エリアに配置されている場合、前記ブロードキャストフレームを送信する装置に選択される確率である選択確率を設定し、
前記通信装置が前記ブロードキャストフレームを送信する装置に選択されるかを判定し、
前記ブロードキャストフレームを送信する装置に選択されると、前記ブロードキャストフレームを、前記回数情報が前記密集エリアに対応付けている回数、ブロードキャストする
処理を行うことを特徴とする請求項１に記載の通信方法。
【請求項３】
前記ブロードキャストフレームは、前記ブロードキャストフレームを識別するフレーム識別子を含み、
前記通信装置は、
前記フレーム識別子が第１の値であるブロードキャストフレームの受信数が、前記受信数として許容される値の上限である上限閾値を超えると、前記第１の値よりも大きい第２の値が前記フレーム識別子として割り当てられたブロードキャストフレームを送信する装置に選択される確率を小さくし、
前記受信数が、前記受信数として許容される値の下限である下限閾値未満であると、前記第２の値が前記フレーム識別子として割り当てられたブロードキャストフレームを送信する装置に選択される確率を大きくする
ことを特徴とする請求項２に記載の通信方法。
【請求項４】
前記回数情報は、経路の品質が悪いほど前記ブロードキャストフレームをブロードキャストする回数が大きくなるように設定されており、
前記通信装置は、
輻輳が発生しない程度に装置が分散している分散エリアか、前記密集エリアと前記分散エリアの境界に位置する場合、前記隣接装置の中で相対的に前記通信装置との通信状態が悪い装置から、前記通信装置に至る経路の通信品質を計算し、
前記回数情報で前記通信装置の配置と前記通信品質に対応付けられている回数、前記ブロードキャストフレームをブロードキャストする
ことを特徴とする請求項２または３に記載の通信方法。
【請求項５】
前記回数情報は、経路の品質が悪いほど前記ブロードキャストフレームをブロードキャストする回数が大きくなるように設定されており、
前記通信装置は、
前記ブロードキャストフレームに含まれているデータの配信元を宛先としたデータフレームの転送元を特定し、
輻輳が発生しない程度に装置が分散している分散エリアか、前記密集エリアと前記分散エリアの境界に位置する場合、前記転送元のうちで前記通信装置との通信状態が相対的に悪い装置から、前記通信装置に至る経路の通信品質を計算し、
前記回数情報で前記通信装置の配置と前記通信品質に対応付けられている回数、前記ブロードキャストフレームをブロードキャストする
ことを特徴とする請求項２または３に記載の通信方法。
【請求項６】
前記通信装置のネットワーク中での配置の特定の際に、
前記隣接装置の数が第１の閾値を下回る場合、輻輳が発生しない程度に装置が分散している分散エリアに、前記通信装置が配置されていると判定し、
前記隣接装置の数が前記第１の閾値以上であり、かつ、前記隣接装置の各々の隣接装置の数が第２の閾値以上である場合、輻輳が発生する可能性が無視できない程度に装置が密集している密集エリアに、前記通信装置が配置されていると判定し、
前記隣接装置の数が前記第１の閾値以上であり、かつ、前記隣接装置の１つ以上の隣接装置の隣接装置の数が前記第２の閾値未満である場合、前記密集エリアと前記分散エリアの境界に位置すると判定する
ことを特徴とする請求項１〜５のいずれか１項に記載の通信方法。
【請求項７】
前記通信装置は、
前記ブロードキャストフレームに含まれているデータの配信元が宛先に指定されたフレームの転送元のリストである第１のリストを生成し、
前記配信元を送信元とするフレームの転送元のリストである第２のリストを生成し、
前記隣接装置の数が第１の閾値以上であり、かつ、前記第１のリストに含まれている装置の少なくとも１つで通信可能な装置の数が第２の閾値未満の場合、
輻輳が発生する可能性が無視できない程度に装置が密集している密集エリアから、輻輳が発生しない程度に装置が分散している分散エリアに前記ブロードキャストフレームを転送していると判定し、
前記第１のリストに含まれている装置のうちで、前記通信装置との通信状態が相対的に悪い装置をブロードキャストの回数を決定するための指標とする指標装置に設定し、
前記回数情報で、前記密集エリアと前記分散エリアの境界の配置に対応付けられた回数のうち、前記指標装置と前記通信装置の間の通信品質に対応付けられた回数を、前記通信装置が前記ブロードキャストフレームをブロードキャストする回数に決定し、
前記隣接装置の数が前記第１の閾値以上であり、かつ、前記第２のリストに含まれている装置の少なくとも１つで通信可能な装置の数が前記第２の閾値未満の場合、前記分散エリアから前記密集エリアに前記ブロードキャストフレームを転送していると判定し、前記ブロードキャストフレームを少なくとも１回ブロードキャストする
ことを特徴とする請求項１〜３のいずれか１項に記載の通信方法。
【請求項８】
前記通信装置は、
所定の期間以上にわたって、前記ブロードキャストフレームに含まれているデータの配信元を宛先としたフレームを中継していない場合、前記ブロードキャストフレームをブロードキャストしない
ことを特徴とする請求項１〜７のいずれか１項に記載の通信方法。
【請求項９】
ネットワーク中に含まれる通信装置であって、
ブロードキャストフレームをブロードキャストする回数を、前記通信装置の前記ネットワーク中での配置の候補に対応付けて記憶する記憶部と、
前記通信装置に隣接する装置である隣接装置の数、および、前記隣接装置の各々の隣接装置の数を用いて、前記通信装置の前記ネットワーク中での配置を特定する特定部と、
前記ブロードキャストフレームを、特定した配置と同じ候補に対応付けられた回数、ブロードキャストするための制御を行う制御部と、
前記ブロードキャストフレームをブロードキャストする送信部
を備えることを特徴とする通信装置。
【請求項１０】
輻輳が発生する可能性が無視できない程度に装置が密集している密集エリアに配置されていると特定された場合、前記ブロードキャストフレームを送信する装置に選択される確率である選択確率を設定する設定部と、
前記通信装置が前記ブロードキャストフレームを送信する装置に選択されるかを判定する判定部
をさらに備え、
前記制御部は、前記通信装置が前記ブロードキャストフレームを送信する装置に選択されると、前記送信部に、前記記憶部で前記密集エリアに対応付けられている回数、前記ブロードキャストフレームをブロードキャストさせる
ことを特徴とする請求項９に記載の通信装置。
【請求項１１】
前記ブロードキャストフレームは、前記ブロードキャストフレームを識別するフレーム識別子を含み、
前記設定部は、
前記フレーム識別子が第１の値であるブロードキャストフレームの受信数が、前記受信数として許容される値の上限である上限閾値を超えると、前記第１の値よりも大きい第２の値が前記フレーム識別子として割り当てられたブロードキャストフレームを送信する装置に選択される確率を小さくし、
前記受信数が、前記受信数として許容される値の下限である下限閾値未満であると、前記第２の値が前記フレーム識別子として割り当てられたブロードキャストフレームを送信する装置に選択される確率を大きくする
ことを特徴とする請求項１０に記載の通信装置。
【請求項１２】
前記記憶部は、経路の品質が悪いほどブロードキャストの回数が大きくなるように、前記ブロードキャストの回数を対応付け、
前記制御部は、
輻輳が発生しない程度に装置が分散している分散エリアか、前記密集エリアと前記分散エリアの境界に配置されていると特定された場合、前記隣接装置の中で相対的に前記通信装置との通信状態が悪い装置から、前記通信装置に至る経路の通信品質を計算し、
前記制御部は、前記通信装置の配置と前記通信品質に対応付けられている回数、前記ブロードキャストフレームをブロードキャストする
ことを特徴とする請求項１０または１１に記載の通信装置。
【請求項１３】
他の通信装置宛のフレームを転送する転送処理部をさらに備え、
前記転送処理部は、前記ブロードキャストフレームに含まれているデータの配信元を宛先としたデータフレームの転送元を特定し、
前記記憶部は、経路の品質が悪いほどブロードキャストの回数が大きくなるように、経路の品質と前記ブロードキャストの回数を対応付け、
前記制御部は、
輻輳が発生しない程度に装置が分散して配置されている分散エリアか、前記密集エリアと前記分散エリアの境界に位置することが特定されると、前記転送元のうちで前記通信装置との通信状態が相対的に悪い装置から、前記通信装置に至る経路の通信品質を計算し、
前記通信装置の配置と前記通信品質とに対応付けられている回数、前記ブロードキャストフレームをブロードキャストするための処理を行う
ことを特徴とする請求項１０または１１に記載の通信装置。
【請求項１４】
他の通信装置宛のフレームを転送する転送処理部をさらに備え、
前記記憶部は、経路の品質が悪いほどブロードキャストの回数が大きくなるように、経路の品質と前記ブロードキャストの回数を対応付け、
前記転送処理部は、
前記ブロードキャストフレームに含まれているデータの配信元が宛先に指定されたフレームの転送元のリストである第１のリストを生成し、
前記配信元を送信元とするフレームの転送元のリストである第２のリストを生成し、
前記隣接装置の数が第１の閾値以上であり、かつ、前記第１のリストに含まれている装置の少なくとも一つで通信可能な装置の数が第２の閾値未満の場合、
前記特定部は、前記通信装置の配置を、輻輳が発生する可能性が無視できない程度に装置が密集している密集エリアから輻輳が発生しない程度に装置が分散している分散エリアに前記ブロードキャストフレームを転送する配置であると判定し、
前記制御部は、前記第１のリストに含まれている装置のうちで、前記通信装置との通信状態が相対的に悪い装置に至る経路の品質に対応付けられた回数、前記ブロードキャストフレームをブロードキャストするための処理を行い、
前記隣接装置の数が前記第１の閾値以上であり、かつ、前記第２のリストに含まれている装置の少なくとも一つで通信可能な装置の数が前記第２の閾値未満の場合、
前記特定部は、前記通信装置の配置を、前記分散エリアから前記密集エリアに前記ブロードキャストフレームを転送する配置であると判定し、
前記制御部は、前記ブロードキャストフレームを少なくとも１回ブロードキャストするための制御を行う
ことを特徴とする請求項９〜１１のいずれか１項に記載の通信装置。
【請求項１５】
前記制御部は、
所定の期間以上にわたって、前記ブロードキャストフレームに含まれているデータの配信元を宛先としたフレームを中継していない場合、前記ブロードキャストフレームをブロードキャストするための処理を行わない
ことを特徴とする請求項９〜１４のいずれか１項に記載の通信装置。
【請求項１６】
ネットワーク中に含まれる通信装置に、
前記通信装置に隣接する装置である隣接装置の数、および、前記隣接装置の各々の隣接装置の数を用いて、前記通信装置のネットワーク中での配置を特定し、
前記通信装置の前記ネットワーク中での配置の候補と、前記通信装置がフレームをブロードキャストする回数を対応付けた回数情報を用いて、ブロードキャストフレームをブロードキャストする回数を決定し、
決定した回数だけ前記ブロードキャストフレームをブロードキャストする
処理を行わせることを特徴とする通信プログラム。
【請求項１７】
複数の通信装置を含むネットワークを有するシステムであって、
前記ネットワーク中の第１の通信装置が、
第２の通信装置から送信されたブロードキャストフレームを受信し、
前記第１の通信装置に隣接する装置である隣接装置の数、および、前記隣接装置の各々の隣接装置の数を用いて、前記第１の通信装置のネットワーク中での配置を特定し、
前記第１の通信装置の前記ネットワーク中での配置の候補と、ブロードキャストの回数を対応付けた回数情報を用いて、前記ブロードキャストフレームをブロードキャストする回数を決定し、
決定した回数だけ前記ブロードキャストフレームをブロードキャストする
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信装置を含むネットワークで行われる通信に関する。
【背景技術】
【０００２】
アドホックネットワークは、ネットワークに参加する通信装置が追加もしくは削除された場合でも、動的にネットワークが形成されるため、利便性が高い。このため、アドホックネットワークは、センサネットワークなどに適用されることもある。ところで、アドホックネットワークが形成された後で、通信装置で使用されるプログラムファイルが更新された場合や、設定が変更された場合など、アドホックネットワークに参加している全ての通信装置に情報を送信する場合がある。この場合、アドホックネットワーク中のゲートウェイとして動作する通信装置に更新後のプログラムや設定値などの情報がダウンロードされる。以下の説明では、アドホックネットワーク中のゲートウェイとして動作する通信装置を単に「ゲートウェイ」と記載する。ゲートウェイは、ダウンロードした情報をブロードキャストする。さらに、ブロードキャストフレームを受信した通信装置は、受信したブロードキャストフレームに含まれている情報を含めたフレームを、ブロードキャストする。
【０００３】
関連する技術として、予め定めた数のネガティブな承認メッセージが１つ以上のデータフレームについて受信された場合にのみ、フレームの再送信を行う放送通信システムが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００４−５３５１２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
背景技術として説明したように、ゲートウェイがダウンロードした情報をブロードキャストすると、ブロードキャストフレームを受信した通信装置も、ブロードキャストを行うため、ネットワーク中で送受信されるフレーム数は膨大になる。このため、ブロードキャストによってネットワーク中の全ての通信装置に情報を送ろうとすると、ネットワーク中で輻輳が発生しやすい。また、輻輳が発生しない程度の頻度でブロードキャストを行おうとすると、フレームの送信間隔を長くすることになってしまうので、データがアドホックネットワーク中の全ての通信装置に到達するまでに時間がかかってしまう。
【０００６】
関連する技術として述べた再送方法を適用しても、再送フレーム以外によってネットワークで発生する輻輳は防止できない。また、ブロードキャストフレームを受信した通信装置は、送信元に対して確認応答を送信しないので、関連する技術として述べたシステムを、アドホックネットワーク中でのブロードキャスト送信に適用することもできない。
【０００７】
本発明は、ネットワーク中での輻輳の発生を抑制する通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態にかかる通信方法では、ネットワーク中に含まれる通信装置が、前記通信装置に隣接する装置である隣接装置の数、および、前記隣接装置の各々の隣接装置の数を用いて、前記通信装置のネットワーク中での配置を特定する。通信装置は、前記通信装置の前記ネットワーク中での配置の候補と、前記通信装置がフレームをブロードキャストする回数を対応付けた回数情報を用いて、ブロードキャストフレームをブロードキャストする回数を決定する。通信装置は、決定した回数だけ前記ブロードキャストフレームをブロードキャストする。
【発明の効果】
【０００９】
ネットワーク中での輻輳の発生を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態にかかる通信方法の例を説明する図である。
【図２】通信装置の構成の例を示す図である。
【図３】通信装置のハードウェア構成の例を示す図である。
【図４】フレームのフォーマットの例を示す図である
【図５】リンクテーブルの例を示す図である。
【図６】ルーティングテーブルの例を示す図である。
【図７】ブロードキャスト受信テーブルの例を示す図である。
【図８】通信装置の配置の例を示す図である。
【図９】配置の特定方法の例を示すフローチャートである。
【図１０】分散エリアに設置された通信装置間の通信の例を示す図である。
【図１１】回数情報の例を示す図である。
【図１２】乗数判定の例を説明するフローチャートである。
【図１３】ブロードキャストする回数の決定方法の例を示すフローチャートである。
【図１４】密集エリアの例を示す図である。
【図１５】ネットワークで行われる通信の例を示す図である。
【図１６】ＧＷ宛データ受信記録の例を示す図である。
【図１７】第２の実施形態での配置の特定方法の例を示すフローチャートである。
【図１８】第２の実施形態においてブロードキャストの回数を決定する方法の例を示すフローチャートである。
【図１９】ネットワークで行われる通信の例を示す図である。
【図２０】第３の実施形態で使用されるＧＷ宛フレーム受信記録の例を示す図である。
【図２１】第３の実施形態での制御部の処理の例を説明するフローチャートである。
【図２２】ＧＷ宛フレーム受信記録と中継情報の例を示す図である。
【図２３】リンクテーブルの例を示す図である。
【図２４】第４の実施形態での配置の特定方法の例を示すフローチャートである。
【図２５】第４の実施形態においてブロードキャストの回数を決定する方法の例を示すフローチャートである。
【図２６】ネットワークの例を示す図である。
【図２７】ブロードキャストが行われる回数のシミュレーション結果の例を示す図である。
【図２８】ブロードキャストによりデータを取得できた通信装置の割合の例を示す図である。
【図２９】通信装置が同じブロードキャストフレームを受信する回数のシミュレーション結果の例を示す図である。
【発明を実施するための形態】
【００１１】
図１は、実施形態にかかる通信方法の例を示す。図１では、アドホックネットワークに参加している通信装置（ノード装置）を丸で示している。ネットワーク中の通信装置は、隣接する通信装置の数や、隣接する通信装置が通信可能な通信装置の数を用いて、配置状態を判定する。以下の説明では、ある通信装置に「隣接する」通信装置とは、ある通信装置から送信されたフレームを受信することができる範囲内に位置する通信装置のことを指すものとする。また、ある通信装置から送信されたフレームを受信できる範囲に位置する通信装置のことを、その通信装置の「隣接装置」と記載することがある。なお、ある通信装置が他の通信装置を介さずに直接通信することができる通信装置は、その通信装置の隣接装置である。以下、通信装置１０同士の区別を容易にするために、通信装置１０を特定する際に、「ノードＮ」という文字列、または、アルファベットのＮに、各通信装置１０を識別する数字を続けて得られる文字列を使用する。
【００１２】
通信装置は、隣接装置との間で通信することにより、隣接装置の総数を特定する。さらに、通信装置は、隣接装置の各々から、その隣接装置が直接通信可能な通信装置の数も取得する。例えば、図１のノードＮ１はノードＮ１０〜Ｎ１７との間で直接フレームを送受信でき、ノードＮ１２はノードＮ１、Ｎ１１、Ｎ１３、Ｎ１８、Ｎ２、Ｎ２０との間でフレームを送受信できるとする。すると、ノードＮ１は、ノードＮ１の隣接装置がＮ１０〜Ｎ１７の８台であることを特定する。一方、ノードＮ１２の隣接装置は、ノードＮ１、Ｎ１１、Ｎ１３、Ｎ１８、Ｎ２、Ｎ２０の６台である。このため、ノードＮ１２は、ノードＮ１２の隣接装置に対して、ノードＮ１２の隣接装置の数が６であることを通知する。すると、ノードＮ１は、ノードＮ１２の隣接装置数が６であることを認識する。同様に、ノードＮ１０、Ｎ１１、Ｎ１３〜Ｎ１７も、それぞれ、隣接している通信装置に、隣接装置の総数を通知するので、ノードＮ１は、各隣接装置について、その隣接装置が他の通信装置を介さずに通信可能な通信装置の数を特定できる。ノードＮ２、Ｎ３を含むその他の通信装置でも、ノードＮ１と同様に、隣接装置の総数と、各隣接装置が通信可能な通信装置数を特定する。
【００１３】
各通信装置は、予め閾値Ｔｈ１と閾値Ｔｈ２を記憶しているものとする。閾値Ｔｈ１は、ブロードキャストに起因する輻輳が発生する恐れが無視できない程度に、周辺の通信装置が多いエリアであるかを判定するために使用される。閾値Ｔｈ２は、隣接装置が直接通信可能な装置の数が、情報の到達性を低くする恐れが発生する程度まで小さいかを判定するために使用される。
【００１４】
通信装置は、隣接装置数が閾値Ｔｈ１未満である場合、周辺に通信装置が少ないため、ブロードキャストによる輻輳が発生しにくいエリアに配置されていると判定するものとする。すると、通信装置は、隣接装置との通信状況に合わせて決定した回数、ブロードキャストフレームの送信を繰り返す。例えば、閾値Ｔｈ１が４だとする。この場合、ノードＮ３の隣接装置はノードＮ２１とＮ２２で、隣接装置数は２である。このため、通信装置Ｎ３は、ブロードキャストフレームを受信すると、受信したフレームをノードＮ２１、Ｎ２２との通信品質に応じて決定した回数、ブロードキャストする。
【００１５】
一方、隣接装置数が閾値Ｔｈ１以上である場合、通信装置は、周辺に通信装置が多いエリアに配置されていると判定する。すると、通信装置は、隣接装置のいずれかで、通信可能な通信装置の数が閾値Ｔｈ２未満になっているかを判定する。直接通信可能な通信装置の数が閾値Ｔｈ２未満の隣接装置がブロードキャストフレームの受信に失敗すると、ネットワーク全体にデータが到達しない恐れがある。このため、通信装置は、隣接装置との間の通信品質に応じて決定した回数、ブロードキャストする。例えば、ノードＮ２の隣接装置がノードＮ１２とＮ１８〜Ｎ２０の４台であるとすると、ノードＮ２は、隣接装置の各々について、通信可能な通信装置の数を閾値Ｔｈ２と比較する。ここで、閾値Ｔｈ２が３であり、ノードＮ１９が通信可能な通信装置はノードＮ２とＮ２１の２台であるとする。この場合、通信装置Ｎ２は、ブロードキャストフレームを受信すると、ノードＮ２の隣接装置との間の通信品質に応じた回数、ブロードキャストすることにより、ノードＮ１９へのフレームの送信確率を高める。
【００１６】
いずれの隣接装置でも、通信可能な通信装置の数が閾値Ｔｈ２以上の場合、通信装置は、通信装置が密集したエリアに配置されていると判定する。すると、通信装置は、ブロードキャストする通信装置として選択された場合には１回フレームをブロードキャストするが、ブロードキャストする通信装置に選択されないとブロードキャストを行わない。例えば、ノードＮ１は、ブロードキャストする通信装置として選択されたと判定すると、１回ブロードキャストする。なお、ブロードキャストする装置の選択方法は後述する。
【００１７】
このように、実施形態にかかる方法では、各通信装置が、周辺の通信装置の配置の状況を、隣接装置数と、隣接装置が通信可能な通信装置数を用いて判定し、判定結果に応じてブロードキャストの回数を０回以上の範囲で変更する。このため、データの到達性を確保しつつ、ネットワーク中の輻輳を防止できる。
【００１８】
なお、本明細書中では、読みやすくするための便宜上、ネットワーク中で送受信される情報の単位を表現する際に使用する文言を「フレーム」に統一しているにすぎない。このため、実装に応じて、適宜、「フレーム」という文言を「パケット」に読み替えることができるものとする。
【００１９】
＜装置構成＞
通信装置１０は、送信部１１、受信部１２、フレーム処理部２０、記憶部４０を備える。フレーム処理部２０は、Ｈｅｌｌｏフレーム生成部２１、フレーム識別子（Frame identifier、ＦＩＤ）管理部２２、フレーム振り分け部２３、Ｈｅｌｌｏフレーム処理部２４、転送処理部２５、アプリケーション処理部２６を有する。フレーム処理部２０は、さらに、ブロードキャスト処理部３０を有する。ブロードキャスト処理部３０は、制御部３１、配置状態特定部３２、および、乗数判定処理部３３を有する。乗数判定処理部３３は、設定部３４と判定部３５を有する。記憶部４０は、リンクテーブル４１、ルーティングテーブル４２、回数情報４３、ブロードキャスト受信テーブル４４を記憶する。
【００２０】
Ｈｅｌｌｏフレーム生成部２１は、予め決定された所定の周期でＨｅｌｌｏフレームを生成し、送信部１１に出力する。送信部１１はＨｅｌｌｏフレーム生成部２１から入力されたＨｅｌｌｏフレームを、隣接する通信装置１０に送信する。さらに、送信部１１は、転送処理部２５、アプリケーション処理部２６、制御部３１などから入力されたフレームを、フレームのローカル宛先に送信する。ここで、「ローカル宛先」（Local Destination、ＬＤ）は、フレームを最終的な宛先に送信するために行われる１ホップの転送の際に、宛先として指定される通信装置１０のことを指す。さらに、フレームの最終的な宛先を「グローバル宛先」（Global Destination、ＧＤ）と記載することがある。関連して、フレームを生成した通信装置１０を「グローバル送信元」（Global Source、ＧＳ）と記載することがある。また、フレームが１ホップ転送される場合の転送元の通信装置１０のことを、「ローカル送信元」（Local Source、ＬＳ）と記載することもある。
【００２１】
受信部１２は、通信装置１０に送信されてきたフレームを受信する。受信部１２は、受信したフレームをＦＩＤ管理部２２に出力する。ＦＩＤ管理部２２は、入力されたフレームがブロードキャストフレームである場合、ブロードキャストフレーム中のＦＩＤを抽出する。ＦＩＤ管理部２２は、所定の期間内に送受信したブロードキャストフレーム中のＦＩＤとフレームの受信数をブロードキャスト受信テーブル４４に記録する。ＦＩＤ管理部２２は、受信部１２から入力されたブロードキャストフレームのＦＩＤが、過去に送受信されたブロードキャストフレームのＦＩＤと一致する場合、受信部１２から入力されたブロードキャストフレームを廃棄する。一方、受信部１２から入力されたブロードキャストフレームのＦＩＤが、過去に送受信されたブロードキャストフレームのＦＩＤと一致しない場合、ＦＩＤ管理部２２は、入力されたフレームをフレーム振り分け部２３に出力する。なお、ＦＩＤ管理部２２がブロードキャストフレームを特定する方法は任意である。例えば、ＦＩＤ管理部２２は、グローバル宛先アドレスがブロードキャストアドレスであるフレームを、ブロードキャストフレームとして扱うことができる。
【００２２】
フレーム振り分け部２３は、入力されたフレームに含まれているアドホックヘッダ中のフレームタイプを確認する。フレームタイプの値は、フレームの種類によって異なり、例えば、Ｈｅｌｌｏフレームとデータフレームでは、異なる値となっている。フレーム振り分け部２３は、予め、通信装置１０が受信する可能性があるフレームの種類の各々に対応するフレームタイプの値を記憶することができ、また、適宜、記憶部４０から取得することもできる。フレーム振り分け部２３は、ＨｅｌｌｏフレームをＨｅｌｌｏフレーム処理部２４に出力する。フレーム振り分け部２３は、データフレームが入力された場合、グローバル宛先を確認する。フレーム振り分け部２３は、通信装置１０に割り振られたアドレス、または、ブロードキャストアドレスがグローバル宛先に指定されているフレームを、アプリケーション処理部２６に出力する。一方、グローバル宛先に他の通信装置１０が指定されているデータフレームは、転送処理部２５に出力される。
【００２３】
Ｈｅｌｌｏフレーム処理部２４は、Ｈｅｌｌｏフレームから取得した情報を、リンクテーブル４１やルーティングテーブル４２に記録する。Ｈｅｌｌｏフレーム処理部２４は、Ｈｅｌｌｏフレームの受信強度などを用いて、隣接する通信装置１０との間の経路の品質を計算する。Ｈｅｌｌｏフレーム処理部２４は、隣接する通信装置についての情報や、隣接する通信装置１０との間の経路の品質を、リンクテーブル４１に記録する。一方、Ｈｅｌｌｏフレーム処理部２４は、フレームのグローバル宛先の通信装置に対応付けてフレームの転送先（ロ―カル宛先）の通信装置を記録することにより、ルーティングテーブル４２に経路情報を記録する。リンクテーブル４１とルーティングテーブル４２の例や使用方法等については、後述する。
【００２４】
転送処理部２５は、フレーム振り分け部２３などから入力されたフレームのグローバル宛先に応じて、ローカル宛先を決定して、アドホックヘッダを生成する。転送処理部２５は、ローカル宛先を決定する際に、ルーティングテーブル４２を参照する。転送処理部２５は、処理対象のフレームのアドホックヘッダを変更し、送信部１１に出力する。
【００２５】
アプリケーション処理部２６は、フレーム振り分け部２３から入力されたフレームを処理する。アプリケーション処理部２６は、ブロードキャストフレームを処理した場合、ブロードキャストの対象となるデータを制御部３１に出力する。
【００２６】
制御部３１は、アプリケーション処理部２６からデータが入力されると、入力されたデータを含むフレームのブロードキャストが要求されたと判定する。制御部３１は、配置状態特定部３２に、通信装置１０の配置状態の特定を要求する。配置状態特定部３２は、リンクテーブル４１を参照して、通信装置１０の隣接装置数を特定する。ここで、隣接装置数は、リンクテーブル４１のエントリ数と同じ値である。さらに、通信装置１０は、各隣接装置について、その隣接装置に隣接している通信装置１０の数を特定する。配置状態特定部３２は、通信装置１０の隣接装置数と、隣接装置ごとのリンクテーブル４１のエントリ数を用いて、通信装置１０の配置を特定する。配置の特定方法については後述する。
【００２７】
配置状態特定部３２は、特定した配置を制御部３１に通知する。制御部３１は、特定された配置に応じて、ブロードキャストの回数を決定する。このとき、制御部３１は、適宜、回数情報４３を参照する。通信装置１０の数が少ないエリアに通信装置１０が設置されている場合や、直接通信できる装置が少ない通信装置１０に隣接している場合、制御部３１は、回数情報４３を用いて、ブロードキャストの回数を決定する。一方、通信装置１０の設置数が多いエリアに通信装置１０が設置されている場合、通信装置１０がブロードキャストするかの判定を乗数判定処理部３３に要求する。設定部３４は、適宜、ブロードキャスト受信テーブル４４を参照して通信装置１０がブロードキャストを行う通信装置１０に選択される確率の計算に使用される変数の値を設定する。ブロードキャスト受信テーブル４４には、ブロードキャストフレーム中のＦＩＤごとに、ブロードキャストフレームの受信数が記録されている。判定部３５は、設定部３４で設定された値を用いて計算された確率を用いて乗数判定を行い、通信装置１０がブロードキャストするかを制御部３１に通知する。設定部３４と判定部３５での処理は後で説明する。
【００２８】
図３は、通信装置１０のハードウェア構成の例を示す図である。通信装置１０は、プロセッサ１００、バス１０１（１０１ａ〜１０１ｃ）、タイマＩＣ１０４、Dynamic Random access Memory（ＤＲＡＭ）１０６、フラッシュメモリ１０７、無線モジュール１０８を備える。通信装置１０は、オプションとして、ＰＨＹチップ１０２を含むことができる。バス１０１ａ〜１０１ｃは、プロセッサ１００、ＰＨＹチップ１０２、タイマＩＣ１０４、ＤＲＡＭ１０６、フラッシュメモリ１０７、および、無線モジュール１０８を、データの入出力が可能になるように接続する。
【００２９】
プロセッサ１００は、MicroProcessing Unit（ＭＰＵ）などの任意の処理回路である。プロセッサ１００は、フラッシュメモリ１０７に格納されたファームウェアなどのプログラムを読み込んで処理を行う。このとき、プロセッサ１００は、ＤＲＡＭ１０６をワーキングメモリとして使用できる。通信装置１０において、プロセッサ１００は、フレーム処理部２０として動作する。通信装置１０において、ＤＲＡＭ１０６は、記憶部４０として動作する。通信装置１０において、無線モジュール１０８は、送信部１１および受信部１２として動作する。ＰＨＹチップ１０２は、有線通信に用いられる。例えば、アドホックネットワークと他のネットワーク中の装置の間の通信を中継するゲートウェイとして動作する通信装置１０は、ＰＨＹチップ１０２を介して、他のネットワークとの間の通信を行うことができる。
【００３０】
タイマＩＣ１０４は、時刻情報の取得、Ｈｅｌｌｏフレームを送信する間隔の計測、隣接する通信装置１０からＨｅｌｌｏフレームを受信する間隔の計測、フレームを受信してから経過した時間の測定などに用いられる。つまり、タイマＩＣ１０４は、Ｈｅｌｌｏフレーム生成部２１、Ｈｅｌｌｏフレーム処理部２４、転送処理部２５、アプリケーション処理部２６などの一部として動作する。
【００３１】
なお、ファームウェアなどのプログラムは、コンピュータ読み取り可能な記憶媒体に格納されて提供され、通信装置１０にインストールされてもよい。また、プログラムは、ネットワークからＰＨＹチップ１０２や無線モジュール１０８を介してダウンロードされることにより通信装置１０にインストールされてもよい。さらに、実施形態に応じて、ＤＲＡＭ１０６やフラッシュメモリ１０７以外の他の種類の記憶装置が利用されることがある。また、通信装置１０は、コンピュータによって実現されても良い。
【００３２】
＜第１の実施形態＞
以下、第１の実施形態を、隣接する通信装置１０に関する情報の取得、ブロードキャストフレームの受信処理、配置の特定、ブロードキャストの回数の決定に分けて説明する。以下の説明では、各通信装置１０の動作を区別し易くするために、符号の後に、アンダーバー、および、動作を行う通信装置１０に割り当てられた番号を記載することがある。ここで、通信装置１０に割り当てられた番号は、アルファベットのＮに続く数字であるとする。従って、例えば、ノードＮ１が備えるＨｅｌｌｏフレーム生成部２１のことを、Ｈｅｌｌｏフレーム生成部２１＿１と記載することがあるものとする。
【００３３】
〔隣接する通信装置に関する情報の取得〕
まず、通信装置１０が、隣接装置の数と、隣接する通信装置１０の各々が保持するリンクテーブル４１のエントリ数の情報を取得する方法について説明する。なお、リンクテーブル４１のエントリ数は、そのリンクテーブル４１を保持する通信装置１０に隣接している通信装置１０の数である。
【００３４】
アドホックネットワーク中の各通信装置１０は、その通信装置１０が保持している経路情報を含むＨｅｌｌｏフレームを、隣接する通信装置１０に送信する。例えば、図１に示すノードＮ１０の隣接装置がノードＮ１、Ｎ１１、Ｎ１７、Ｎ２７である場合、ノードＮ１０は、ノードＮ１、Ｎ１１、Ｎ１７、Ｎ２７にＨｅｌｌｏフレームを送信する。
【００３５】
図４は、フレームのフォーマットの例を示す。図４には、Ｈｅｌｌｏフレーム２００とデータフレーム３００の例が示されている。データフレーム３００については後述する。Ｈｅｌｌｏフレーム２００は、アドホックヘッダ２０１、時刻情報２０２、Ｈｅｌｌｏメッセージヘッダ２０３、Ｈｅｌｌｏヘッダ２０４を備え、さらに、署名情報やパディングを含む。アドホックヘッダ２０１には、ローカル宛先アドレス、ローカル送信元アドレス、フレームタイプ、フレームサイズなどの情報が含まれている。なお、Ｈｅｌｌｏフレーム以外のフレームもアドホックヘッダを備えており、フレームの種類はタイプの値で識別される。例えば、データフレームではタイプ＝１、Ｈｅｌｌｏフレームでは、タイプ＝０に設定される。時刻情報２０２は、Ｈｅｌｌｏフレームが生成された時刻を表わす。Ｈｅｌｌｏフレームでは、Ｈｅｌｌｏフレームを生成した通信装置１０に割り当てられたアドレスがローカル送信元アドレスに設定される。また、隣接する全ての通信装置１０への送信を示すブロードキャストアドレスが、Ｈｅｌｌｏフレームのローカル宛先アドレスに設定される。
【００３６】
Ｈｅｌｌｏメッセージヘッダ２０３には、Ｈｅｌｌｏ情報、バイアス、装置起動経過カウンタが含まれる。装置起動経過カウンタは、Ｈｅｌｌｏフレームを生成した通信装置１０が起動されてからの経過時間を示す。Ｈｅｌｌｏ情報は、ゲートウェイ（ＧＷ）情報、リザーブ領域、Ｈｅｌｌｏヘッダ数を含む。ゲートウェイ情報は、Ｈｅｌｌｏフレームを生成した通信装置１０がゲートウェイとして動作しているかを示す。例えば、ゲートウェイ情報＝１はＨｅｌｌｏフレームを生成した通信装置１０がゲートウェイとして動作していることを表わし、ゲートウェイ情報＝０はＨｅｌｌｏフレームを生成した通信装置１０がゲートウェイとして動作しないことを表わす。Ｈｅｌｌｏヘッダ数は、Ｈｅｌｌｏフレームに含まれるＨｅｌｌｏヘッダの数であり、そのＨｅｌｌｏフレームで通知する経路情報の数である。
【００３７】
Ｈｅｌｌｏヘッダ２０４は、Ｈｅｌｌｏフレームを生成した通信装置１０が保持している経路情報を通知するために使用される。図４の例では、Ｈｅｌｌｏヘッダ２０４には、グローバル宛先アドレス、ホップ数、経路品質重み、エントリ数が含まれる。グローバル宛先アドレスは、そのＨｅｌｌｏヘッダで通知される経路情報の最終的な宛先となる通信装置１０のアドレスである。ホップ数は、Ｈｅｌｌｏフレームを生成した通信装置１０から、グローバル宛先までのホップ数である。経路品質重みは、Ｈｅｌｌｏフレームを生成した通信装置１０から、グローバル宛先までの経路品質を示す値である。エントリ数は、Ｈｅｌｌｏヘッダに、Ｈｅｌｌｏフレームを生成した通信装置１０に至る経路の情報が格納されている場合に有効であり、Ｈｅｌｌｏフレームを生成した通信装置１０が保持するリンクテーブル４１のエントリ数である。
【００３８】
例えば、図１に示すノードＮ１０は、ノードＮ１０をグローバル宛先とするＨｅｌｌｏヘッダに、ノードＮ１０が保持するリンクテーブル４１＿１０のエントリ数を記録する。ノードＮ１０中のＨｅｌｌｏフレーム生成部２１＿１０が生成するＨｅｌｌｏフレーム２００＿１０に含まれる情報要素の例を以下に示す。
ローカル送信元アドレス：ノードＮ１０
ローカル宛先アドレス  ：隣接する全ての通信装置１０
タイプ                ：Ｈｅｌｌｏフレーム
時刻                  ：１２：００：００
Ｈｅｌｌｏヘッダ数    ：３
Ｈｅｌｌｏヘッダ１
グローバル宛先アドレス：ノードＮ１０
ホップ数              ：０
エントリ数            ：４
Ｈｅｌｌｏヘッダ２
グローバル宛先アドレス：ノードＮ２７
ホップ数              ：１
Ｈｅｌｌｏヘッダ３
グローバル宛先アドレス：ＧＷ
ホップ数              ：３
Ｈｅｌｌｏフレーム生成部２１＿１０は、Ｈｅｌｌｏフレーム２００＿１０を送信部１１＿１０に出力する。ノードＮ１０の送信部１１＿１０は、ノードＮ１０に隣接する全ての通信装置１０にＨｅｌｌｏフレーム２００＿１０を送信する。
【００３９】
ノードＮ１の受信部１２＿１は、Ｈｅｌｌｏフレーム２００＿１０を受信すると、Ｈｅｌｌｏフレーム２００＿１０をＦＩＤ管理部２２＿１に出力する。ＦＩＤ管理部２２＿１は、Ｈｅｌｌｏフレーム２００＿１０をフレーム振り分け部２３＿１に出力する。フレーム振り分け部２３＿１は、入力されたフレームのフレームタイプがＨｅｌｌｏフレームであるため、Ｈｅｌｌｏフレーム２００＿１０をＨｅｌｌｏフレーム処理部２４＿１に出力する。Ｈｅｌｌｏフレーム処理部２４＿１は、Ｈｅｌｌｏフレーム２００＿１０を用いて、ノードＮ１が保持するリンクテーブル４１＿１とルーティングテーブル４２＿１を更新する。
【００４０】
図５は、ノードＮ１が保持するリンクテーブル４１の例を示す。図５の例では、リンクテーブル４１には、Ｈｅｌｌｏフレームの送信元となった隣接装置の識別子に対応付けて、その隣接装置との間の経路の通信品質、隣接装置が保持するリンクテーブル４１中のエントリ数が記録されている。Ｈｅｌｌｏフレーム処理部２４＿１は、Ｈｅｌｌｏフレーム２００＿１０に含まれている情報を抽出して、Ｈｅｌｌｏフレームの送信元と、送信元でのエントリ数を、リンクテーブル４１＿１に記録する。
【００４１】
通信品質は、Ｈｅｌｌｏフレームの受信間隔の平均値、受信間隔の分散値、受信強度の平均値、受信強度の分散値などを用いて計算される。Ｈｅｌｌｏフレーム処理部２４＿１は、Ｈｅｌｌｏフレームの受信間隔が正しい値に近いほど通信品質を良くし、Ｈｅｌｌｏフレームの受信強度が大きいほど通信品質を良い値とする。さらに、Ｈｅｌｌｏフレーム処理部２４＿１は、Ｈｅｌｌｏフレームの受信間隔の分散値と受信強度の分散値のいずれについても、小さいほど通信品質を良い値にする。なお、ここで述べた通信品質の計算方法は一例であり、通信品質の計算方法は、実装に応じて変更され得る。Ｈｅｌｌｏフレーム処理部２４＿１がＨｅｌｌｏフレーム２００＿１０を処理することにより、リンクテーブル４１＿１に、図５中のＮｏ．１の情報が記録される。
【００４２】
図６は、ルーティングテーブル４２の例を示す。ルーティングテーブル４２は、１つのグローバル宛先に対して、１つ以上の任意の数のローカル宛先を記録することができる。図６に示すルーティングテーブル４２は、１つのグローバル宛先に対して、３つ以下のローカル宛先を記憶することができる。Ｈｅｌｌｏフレーム処理部２４は、Ｈｅｌｌｏフレームの送信元の通信装置１０を、Ｈｅｌｌｏヘッダ中のグローバル宛先に対するローカル宛先として、ルーティングテーブル４２に記録する。例えば、ノードＮ１がノードＮ１０から前述のＨｅｌｌｏフレームを受信した場合、Ｈｅｌｌｏフレーム処理部２４＿１は、ルーティングテーブル４２＿１のＮｏ．１−３、Ｎｏ．２−１、および、Ｎｏ．３−１のエントリを記録する。
【００４３】
以上の説明では、ノードＮ１の処理を詳しく説明したが、ノードＮ１１、Ｎ１７、Ｎ２７も、ノードＮ１０からＨｅｌｌｏフレームを受信すると、ノードＮ１と同様の処理を行う。さらに、ネットワーク中のいずれの通信装置１０も、所定の時間間隔でＨｅｌｌｏフレームを隣接する通信装置１０に送信する。このため、ネットワーク中の全ての通信装置１０は、隣接する通信装置１０と、各隣接装置が保持するリンクテーブル４１のエントリ数を特定することができる。
【００４４】
〔ブロードキャストフレームの受信処理〕
次に、ブロードキャストフレームのフォーマットと、通信装置１０がブロードキャストフレームを受信した場合に行われる処理の例を説明する。
【００４５】
ブロードキャストフレームは、データフレームの一種であるので、図４のデータフレーム３００に示すフォーマットを有する。従って、ブロードキャストフレームは、アドホックヘッダ２０１、データヘッダ３０１、データペイロード、署名、パディングを含む。データフレーム中のアドホックヘッダ２０１は、Ｈｅｌｌｏフレームに含まれているアドホックヘッダ２０１と同様である。データヘッダ３０１には、グローバル宛先アドレス、グローバル送信元アドレス、フレーム識別子（ＦＩＤ）、ＨＴＬ（Hop to live）が含まれている。
【００４６】
ブロードキャストフレームでは、データヘッダ３０１中のグローバル宛先アドレスとして、ブロードキャストアドレスが指定され、グローバル送信元アドレスとして、データフレーム中のデータペイロードを生成した通信装置１０のアドレスが設定される。従って、ブロードキャストフレームの場合、データヘッダ３０１中のグローバル送信元アドレスには、データの配信を開始した通信装置１０のアドレスが指定される。例えば、ゲートウェイが、アドホックネットワーク中の各通信装置１０にソフトウェアのバージョンアップを行うためのデータを配信する場合、グローバル送信元アドレスには、ゲートウェイのアドレスが設定される。フレーム識別子は、データフレーム毎に割り振られた識別番号である。ＨＴＬは、データフレームの有効期限を表す値である。ＨＴＬの値は、転送処理部２５によって他の通信装置１０にフレームを転送される際に、１つずつデクリメントされる。なお、ＨＴＬ＝０となると、データフレームは廃棄される。
【００４７】
図１に示すネットワーク中のノードＮ１がブロードキャストフレームを受信したとする。すると、受信部１２＿１は、ブロードキャストフレームをＦＩＤ管理部２２＿１に出力する。ＦＩＤ管理部２２＿１は、ブロードキャストフレーム中のフレーム識別子を抽出し、ブロードキャスト受信テーブル４４を参照する。ブロードキャスト受信テーブル４４には、これまで受信したブロードキャストフレームのうちで最新のフレームについての、フレーム識別子と、受信回数が記録されている。図７に、ブロードキャスト受信テーブル４４の例を示す。例えば、ノードＮ１が受信したブロードキャストフレームのうちの最新のフレームのフレーム識別子が１４であり、ノードＮ１がフレーム識別子＝１４のフレームを５つ受信したとする。この場合、ノードＮ１はブロードキャスト受信テーブル４４＿１ａ（図７）を保持している。
【００４８】
ＦＩＤ管理部２２＿１は、ブロードキャストフレーム中のフレーム識別子の値とブロードキャスト受信テーブル４４＿１ａ中のフレーム識別子を比較することにより、受信済みのフレームと同じデータが含まれているブロードキャストフレームを廃棄する。なお、ＦＩＤ管理部２２＿１は、ブロードキャストフレーム中のフレーム識別子とブロードキャスト受信テーブル４４＿１ａ中のフレーム識別子が一致する場合、ブロードキャスト受信テーブル４４＿１ａの受信回数を１つインクリメントする。例えば、ＦＩＤ管理部２２＿１は、入力されたブロードキャストフレームのＦＩＤが１４であれば、そのブロードキャストフレームを廃棄し、ブロードキャスト受信テーブル４４＿１ａの受信回数を５から６に変更する。
【００４９】
一方、入力されたブロードキャストフレームが初めて受信されたフレームである場合、ＦＩＤ管理部２２＿１は、ブロードキャストフレームをフレーム振り分け部２３＿１に出力する。さらに、ＦＩＤ管理部２２＿１は、ブロードキャストフレーム中のフレーム識別子の値を変更し、さらに、受信回数を１に設定する。このとき、ＦＩＤ管理部２２＿１は、ブロードキャスト受信テーブル４４＿１を更新する前の受信回数とＦＩＤを設定部３４＿１に出力する。例えば、ノードＮ１がフレーム識別子＝１５のブロードキャストフレームを受信すると、ＦＩＤ管理部２２＿１は、ブロードキャスト受信テーブル４４＿１ａをブロードキャスト受信テーブル４４＿１ｂに更新する。さらに、ＦＩＤ管理部２２＿１は、ＦＩＤ＝１４のフレームの受信回数が５回であることを設定部３４＿１に通知する。
【００５０】
フレーム振り分け部２３＿１は、ＦＩＤ管理部２２＿１から入力されたブロードキャストフレームを、アプリケーション処理部２６＿１に出力する。アプリケーション処理部２６＿１は、ブロードキャストフレームが入力されると、入力されたフレーム中のデータペイロードを処理する。さらに、アプリケーション処理部２６＿１は、入力されたブロードキャストフレームをブロードキャストするために、ブロードキャストフレームを制御部３１＿１に出力する。
【００５１】
制御部３１＿１は、アプリケーション処理部２６＿１からブロードキャストフレームが入力されると、入力されたフレームのブロードキャストが要求されたと判定し、配置状態特定部３２＿１に、ノードＮ１の配置状態の特定を要求する。配置状態特定部３２＿１の処理については後述する。以上の説明では、ノードＮ１での処理を例として説明したが、ブロードキャストフレームを受信したいずれの通信装置１０も、ノードＮ１と同様にブロードキャストフレームを処理する。
【００５２】
〔配置の特定〕
図８は、通信装置１０の配置の例を示す。通信装置１０の配置は、分散エリアへの配置、密集エリアへの配置、分散エリアと密集エリアの境界への配置の３通りに分類できる。以下、閾値Ｔｈ１と閾値Ｔｈ２を用いて、配置の特定方法の例を説明する。閾値Ｔｈ１は、隣接装置の数と比較される閾値であり、閾値Ｔｈ２は、隣接装置が保持するリンクテーブルのエントリ数と比較される閾値である。閾値Ｔｈ１は、ネットワーク中の一部のエリア内で、ブロードキャストによる輻輳の発生が無視できなくなる隣接装置数の最小値である。閾値Ｔｈ２は、一部の通信装置１０がブロードキャストを行わないことによる情報の到達性の低下の原因にならない隣接装置数の下限値である。以下の説明では、配置の決定に使用する閾値が、閾値Ｔｈ１＝４、閾値Ｔｈ２＝３に設定されている場合を例として説明するが、閾値Ｔｈ１および閾値Ｔｈ２の値は実装に応じて任意に設定され得る。
【００５３】
「分散エリア」は、ブロードキャストフレームの送信を行っても輻輳が発生しない程度の密度で通信装置１０が配置されているエリアである。以下の説明では、隣接装置の数が閾値Ｔｈ１未満の通信装置１０を「分散エリア」に配置された通信装置１０と記載することがある。分散エリアでは、図８の配置Ｌ１に示すように、通信装置１０の密度が相対的に低い。配置Ｌ１の破線の円（Ｈ１〜Ｈ３）は、配置Ｌ１中の通信装置１０ａから送信されたフレームを届けるときのホップ数が同じ領域を表わしている。例えば、Ｈ１の円の内側にある３つの通信装置１０には、通信装置１０ａから１ホップでフレームが届く。一方、Ｈ１の円とＨ２の円の間に含まれている通信装置１０には通信装置１０ａから２ホップでフレームが送信され、Ｈ３の円上の通信装置１０には通信装置１０ａから３ホップでフレームが送信される。換言すると、配置Ｌ１の例では、通信装置１０ａの隣接装置は、Ｈ１の円の内側に位置する３つの通信装置１０である。ここでは、閾値Ｔｈ１＝４であるので、通信装置１０ａは、分散エリアに含まれているといえる。
【００５４】
「密集エリア」は、エリア中の全ての通信装置１０がブロードキャストを行うと輻輳が発生するエリアである。以下の説明では、隣接装置の数が閾値Ｔｈ１以上であり、かつ、全ての隣接装置が通信可能な装置の数も閾値Ｔｈ２以上である通信装置１０を「密集エリア」に配置された通信装置１０と記載することがある。密集エリアでは、図８の配置Ｌ２に示すように、ネットワーク中に配置されている通信装置１０の密度が相対的に高い。配置Ｌ２の破線の円（Ｈ４〜Ｈ６）は、配置Ｌ２中の通信装置１０ｂから送信されたフレームを届けるときのホップ数が同じ領域を表わしている。Ｈ４は通信装置１０ｂから１ホップ、Ｈ５は通信装置１０ｂから２ホップ、Ｈ６は通信装置１０から３ホップの範囲を示している。配置Ｌ２の例では、通信装置１０ｂの隣接装置は、Ｈ４の円の内側に位置する８つの通信装置１０である。従って、閾値Ｔｈ１＝４であり、通信装置１０ｂの隣接装置の各々が直接通信できる通信装置１０の数も閾値Ｔｈ２を超えている場合、配置Ｌ２をとっているエリアは、密集エリアと判定される。密集エリアでは、輻輳を防止するために、密集エリア内の通信装置１０のうちで選択された通信装置１０がブロードキャストを行い、選択されていない通信装置１０はブロードキャストを行わない。ブロードキャストを行う通信装置１０の選択については後述する。
【００５５】
図８の配置Ｌ３は、分散エリアと密集エリアの境界を含む配置の例である。「密集エリアと分散エリアの境界」に位置する通信装置１０は、隣接装置数は密集エリアの基準を満たすが、隣接装置のうちの少なくとも１つにおいて、他の装置を介さずに通信できる通信装置１０の数が閾値Ｔｈ２未満である。
【００５６】
配置Ｌ３では、各通信装置１０の隣接装置を見やすくするために、互いに隣接する通信装置１０間を実線で結んでいる。通信装置１０ｃの隣接装置数は４であるので、通信装置１０ｃは隣接装置数については密集エリアの基準を満たす。しかし、通信装置１０ｃの隣接装置である通信装置１０ｄの隣接装置数は２であるので、通信装置１０ｄは、通信装置１０ｃが含まれるエリアからの情報を通信装置１０ｃ以外の装置から受信できない。このため、例えば、通信装置１０ｇからの配信データを通信装置１０ｃが送信しないと、配信データが通信装置１０ｄに到達しないことになってしまう。このため、通信装置１０ｃは、密集エリアと分散エリアの境界に位置する通信装置１０として、ブロードキャストを行う。
【００５７】
通信装置１０ｆも通信装置１０ｃと同様に、隣接装置数は閾値Ｔｈ１以上であるので隣接装置数は密集エリアの基準を満たしている。しかし、通信装置１０ｆが通信装置１０ｅから受信したフレームをブロードキャストしないと、通信装置１０ｆの隣接装置のうち通信装置１０ｅ以外の装置には、通信装置１０ｆが通信装置１０ｅから受信したフレームに含まれているデータが配信されない。このため、通信装置１０ｆも、密集エリアと分散エリアの境界に位置する通信装置１０として、ブロードキャストを行う。
【００５８】
図９は、配置の特定方法の例を示すフローチャートである。図９を参照しながら、配置状態特定部３２が通信装置１０の配置を特定する方法の例を説明する。配置の特定の際に、配置状態特定部３２は、閾値Ｔｈ１およびＴｈ２の他に、定数Ｍと変数ｍを使用する。定数Ｍは、図９に示す処理を行っている通信装置１０の隣接装置数を表わす。変数ｍは、リンクテーブル４１のエントリ数と閾値Ｔｈ２との間の比較を行った隣接装置の数を計数するために使用される。
【００５９】
配置状態特定部３２は、制御部３１から配置の特定を要求されると、通信装置１０が保持するリンクテーブル４１に含まれているエントリ数（Ｍ）を取得する（ステップＳ１）。リンクテーブル４１に含まれているエントリ数は、通信装置１０の隣接装置数である。配置状態特定部３２は、閾値Ｔｈ１と隣接装置数Ｍを比較する（ステップＳ２）。隣接装置数Ｍが閾値Ｔｈ１よりも小さい場合、ブロードキャストを行っても輻輳が発生しないことが予測される。そこで、隣接装置数Ｍが閾値Ｔｈ１よりも小さい場合、配置状態特定部３２は、通信装置１０が分散エリアに配置されていると判定する（ステップＳ２でＮｏ、ステップＳ３）。
【００６０】
隣接装置数Ｍが閾値Ｔｈ１以上である場合、ブロードキャストにより輻輳が発生する恐れがある。そこで、配置状態特定部３２は、通信装置１０が密集エリアと分散エリアの境界に配置されているかを判定するための処理を行う。配置状態特定部３２は、変数ｍを１に設定する（ステップＳ２でＹｅｓ、ステップＳ４）。配置状態特定部３２は、リンクテーブル４１を参照し、ｍ番目の隣接装置が保持しているリンクテーブル４１のエントリ数を、閾値Ｔｈ２と比較する（ステップＳ５）。すなわち、配置状態特定部３２は、ｍ番目の隣接装置が他の装置を介さずに通信可能な通信装置１０の数を閾値Ｔｈ２と比較する。ｍ番目の隣接装置が保持しているリンクテーブル４１のエントリ数が閾値Ｔｈ２未満である場合、配置状態特定部３２は、通信装置１０が密集エリアと分散エリアの境界に配置されていると判定する（ステップＳ５でＮｏ、ステップＳ６）。
【００６１】
一方、ｍ番目の隣接装置が保持しているリンクテーブル４１のエントリ数が閾値Ｔｈ２以上である場合、配置状態特定部３２は、変数ｍを１つインクリメントして、隣接装置数Ｍと比較する（ステップＳ５でＹｅｓ、ステップＳ７、Ｓ８）。変数ｍが隣接装置数Ｍの値より大きくなるまで、配置状態特定部３２は、ステップＳ５〜Ｓ８を繰り返す（ステップＳ８でＮｏ）。変数ｍが隣接装置数Ｍの値より大きくなると、配置状態特定部３２は、いずれの隣接装置でも、リンクテーブル４１のエントリ数が閾値Ｔｈ２以上であるため、通信装置１０が密集エリアに位置していると判定する（ステップＳ８でＹｅｓ、ステップＳ９）。配置状態特定部３２は、特定した配置を制御部３１に通知する。
【００６２】
〔ブロードキャスト回数の決定〕
制御部３１は、配置状態特定部３２から通信装置１０の配置を通知されると、配置に応じて、所定の確率以上の割合でデータの伝播に成功するために、フレームを何回ブロードキャストするかを決定する。例えば、分散エリア中で通信品質の悪い経路を介してフレームを送信するときには、制御部３１は、ブロードキャストの回数を大きくして、同じフレームのブロードキャストを繰り返す。一方、密集エリア内でフレームを送信する場合や、通信品質の良い経路を介してフレームを送信する場合、制御部３１は、ブロードキャストの回数を少なくして、ネットワーク中で送受信されるフレーム数をなるべく少なくする。
【００６３】
以下、各通信装置１０の制御部３１が、配置に応じてブロードキャストする回数を決定する方法の例を説明する。
【００６４】
（１）分散エリア、および、密集エリアと分散エリアの境界の通信装置
図１０は、分散エリアに設置された通信装置１０間の通信の例を示す。図１０は、状態Ｃ１と状態Ｃ２の各々において行われる通信の例を示す。状態Ｃ１と状態Ｃ２のいずれでも、ノードＮ４１〜Ｎ４５が分散エリアに含まれているものとする。図１０の範囲Ａ４１はノードＮ４１から送信されたフレームを受信可能な範囲を示し、範囲Ａ４４はノードＮ４４から送信されたフレームを受信可能な範囲を示す。ノードＮ４１の隣接装置は、範囲Ａ４１に含まれる通信装置１０であり、ノードＮ４４の隣接装置は、範囲Ａ４４に含まれる通信装置１０である。従って、状態Ｃ１と状態Ｃ２のいずれにおいても、ノードＮ４１にとっての隣接装置は、ノードＮ４２〜Ｎ４４であり、ノードＮ４４の隣接装置はノードＮ４１、Ｎ４３、Ｎ４５である。
【００６５】
ノードＮ４１中の制御部３１＿４１は、配置状態特定部３２＿４１から、ノードＮ３１が分散エリアに配置されていることを通知されたとする。すると、制御部３１＿４１は、ノードＮ４１からフレームをブロードキャストする回数を決定するために、ノードＮ４１に隣接する通信装置１０とノードＮ４１との間の通信品質を特定する。このとき、制御部３１＿４１は、リンクテーブル４１＿４１を参照する。図１０の状態Ｃ１の例では、各通信装置１０間での通信品質は以下のとおりであるとする。
ノードＮ４１とノードＮ４２の間の通信品質：Ｖａ
ノードＮ４１とノードＮ４３の間の通信品質：Ｖｂ
ノードＮ４１とノードＮ４４の間の通信品質：Ｖｃ
次に、制御部３１＿４１は、ブロードキャストする回数を求めるために、回数情報４３＿４１を参照する。
【００６６】
図１１は、回数情報４３の例を示す。回数情報４３は、通信装置１０の配置や通信品質と、通信装置１０がフレームをブロードキャストする回数を対応付けている。回数情報４３は、ネットワーク中に含まれる通信装置１０間で共通の値が設定されているものとする。通信品質の計算方法は、図５を参照しながら説明したとおり、実装に応じて変更されうるが、図１１の例では、通信品質の値が小さいほど、通信品質が良好であるものとする。各段階でのブロードキャスト回数は、その段階に分類された通信品質の経路を介して通信するノード装置に対して、フレームの送信が成功する確率を所定の値以上にするために求められるフレームの送信回数である。
【００６７】
例えば、図１１に示す回数情報４３では、通信装置１０が分散エリアに配置されている場合、通信品質をＧ１〜Ｇ９の閾値を用いて１０段階に分類し、各段階にブロードキャスト回数を対応付けている。図１１の例では、閾値Ｇ１が示す通信品質よりも経路の通信品質が良いときは、フレームのブロードキャストが１回であっても、フレームの送信に成功する確率が所定の値以上である。一方、経路の品質が、閾値Ｇ８で表わされる品質以下であり、かつ、閾値Ｇ９で表わされる品質より良い場合、フレームの送信に成功する確率を所定の値以上にするために、通信装置１０は、フレームを９回ブロードキャストすることになる。
【００６８】
制御部３１＿４１は、各隣接装置との間の通信品質に対応するブロードキャストの回数を求める。例えば、Ｖａ〜Ｖｃの値と、閾値Ｇ１〜Ｇ９の大きさを比較すると、
Ｇ９＜Ｖａ、
Ｖｂ＜Ｇ１、
Ｇ１＜Ｖｃ＜Ｇ２
であるとする。すると、制御部３１＿４１は、フレームの送信に成功する確率を所定の値以上にするためのブロードキャスト回数は、ノードＮ４２との間の通信品質を基準にすると１０回であると判定する。同様に、制御部３１＿４１は、ノードＮ４３との間の通信品質を基準にするとブロードキャストの回数は１回でよく、ノードＮ４４との間の通信品質を基準にするとブロードキャストの回数は２回となることも、回数情報４３から特定する。制御部３１＿４１は、各隣接装置との通信品質を用いて得られたブロードキャストの回数のうちでもっとも大きな値を採用する。従って、状態Ｃ１の例では、制御部３１＿４１は、フレームを１０回ブロードキャストすることを決定する。
【００６９】
このように、制御部３１は、隣接する通信装置１０との間の経路の通信品質に応じて、フレームをブロードキャストする回数を決定する。従って、隣接する全ての通信装置１０との通信品質が良好である場合、通信装置１０は、ブロードキャストの回数を小さく設定できる。
【００７０】
例えば、図１０の状態Ｃ２において、ノードＮ４４と隣接装置との間の通信品質が以下のとおりであるとする。
ノードＮ４４とノードＮ４１の間の通信品質：Ｖｃ
ノードＮ４４とノードＮ４３の間の通信品質：Ｖｄ
ノードＮ４４とノードＮ４５の間の通信品質：Ｖｅ
ここで、Ｖｄが閾値Ｇ１より小さく、Ｇ１＜Ｖｃ＜Ｇ２、Ｇ１＜Ｖｅ＜Ｇ２であるとする。すると、制御部３１＿４４は、回数情報４３（図１１）を用いて、ノードＮ４３との間の通信品質を基準にするとブロードキャストの回数は１回でよく、ノードＮ４１、Ｎ４５との間の通信品質を基準にするとブロードキャストの回数は２回となることを特定する。そこで、制御部３１＿４４は、ノードＮ４４からのブロードキャストの回数を２回に決定する。すなわち、分散エリアに位置する通信装置１０は、隣接装置との間の経路のうちで通信品質が比較的劣悪な経路の品質に合わせて、ブロードキャストする回数を変動させることができる。
【００７１】
制御部３１は、ブロードキャストの回数を決定すると、アプリケーション処理部２６から入力されたブロードキャストフレームを、決定した回数だけ、送信部１１に出力する。送信部１１は、制御部３１から入力されたフレームをブロードキャストする。
【００７２】
なお、ここでは、制御部３１が各隣接装置との間の通信品質に基づいてブロードキャストの回数を求め、得られた回数のうちの最大値を、その通信装置１０が行うブロードキャストの回数とする場合を説明したが、これは一例である。例えば、制御部３１は、隣接装置との間の通信品質を取得すると、得られた通信品質のうちで最も悪い条件を、ブロードキャストの回数の決定するための基準に決定しても良い。例えば、状態Ｃ１の例では、制御部３１＿４１は、ノードＮ４１とノードＮ４２の間の通信品質を、ノードＮ４１からフレームをブロードキャストする回数を求めるための基準に使用する。制御部３１は、決定した基準を用いて回数情報４３を参照し、基準とする通信品質に対応付けられた回数を、通信装置１０がブロードキャストする回数に決定できる。
【００７３】
密集エリアと分散エリアの境界の通信装置１０中の制御部３１も、分散エリアに配置された通信装置１０の制御部３１と同様の方法により、フレームをブロードキャストする回数を決定する。このため、密集エリアと分散エリアの境界に位置する通信装置１０も、通信品質が比較的劣悪な経路の品質に合わせて、ブロードキャストする回数を変動させることができる。さらに、制御部３１は、決定した回数だけ、ブロードキャストフレームを送信部１１に出力するので、制御部３１で決定された回数だけ、フレームがブロードキャストされる。従って、密集エリアと分散エリアの境界でもデータの到達性が確保される。
【００７４】
（２）密集エリアに配置された通信装置
制御部３１は、密集エリアに配置されていることが通知されると、通信装置１０自身がブロードキャストフレームを送信しなくても、隣接装置からのブロードキャストにより、データがネットワーク中に伝播される可能性があることを認識する。つまり、密集エリア内では、選択された通信装置１０がブロードキャストを行うことによって、データをネットワーク中の全ての通信装置１０に伝播できる。そこで、密集エリアに位置していることを通知されると、制御部３１は、アプリケーション処理部２６から入力されたブロードキャストフレーム中のフレーム識別子とともに、乗数判定の要求を設定部３４に出力する。
【００７５】
図１２は、乗数判定の例を説明するフローチャートである。図１２で説明する処理では、ブロードキャストする通信装置１０に選択される確率の計算の際に、変数ｃを使用する。さらに、設定部３４は、変数ｃの値を調整するために、閾値Ｔｈ３とＴｈ４を使用する。閾値Ｔｈ３は、１つのブロードキャストフレームを受信する回数として許容する上限値である。閾値Ｔｈ３は、ネットワークの輻輳が発生しないと予測される範囲内で、同じブロードキャストフレームを１つの通信装置１０が受信できる回数の上限値である。一方、閾値Ｔｈ４は、１つのブロードキャストフレームを受信する回数として許容する下限値である。換言すると、閾値Ｔｈ４は、ネットワーク全体に情報を伝播できる程度にブロードキャストフレームの送信が行われているときに、同じブロードキャストフレームを１つの通信装置１０が受信する回数の下限値であるといえる。
【００７６】
設定部３４は、制御部３１から乗数判定が要求されるまで待機している（ステップＳ２１でＮｏ）。乗数判定が要求されると、設定部３４は、通信装置１０が受信したブロードキャストのフレーム識別子（ＦＩＤ）を取得する（ステップＳ２１でＹｅｓ、ステップＳ２２）。設定部３４は、処理対象のブロードキャストフレームのＦＩＤと異なるＦＩＤを含むブロードキャストフレームの受信履歴があるかを判定する（ステップＳ２３）。処理対象のブロードキャストフレームとはＦＩＤの値が異なるブロードキャストフレームの受信履歴がある場合、ＦＩＤ管理部２２は、ブロードキャスト受信テーブル４４の更新の際に、更新前のＦＩＤと受信回数を設定部３４に通知している。そこで、設定部３４は、ＦＩＤ管理部２２からＦＩＤと受信回数の通知がない場合、通信装置１０が初めてブロードキャストフレームを受信したと判定する（ステップＳ２３でＮｏ）。そこで、設定部３４は、定数ｃを０に設定する（ステップＳ２４）。
【００７７】
一方、ＦＩＤ管理部２２から通知されたＦＩＤと制御部３１から通知されたＦＩＤが異なる場合、設定部３４は、処理対象のフレームのＦＩＤとは異なるＦＩＤが付されたブロードキャストフレームの受信履歴があると判定する（ステップＳ２３でＹｅｓ）。すると、設定部３４は、ＦＩＤ管理部２２から通知された受信回数を閾値Ｔｈ３と比較する（ステップＳ２５）。受信回数が閾値Ｔｈ３よりも大きい場合、通信装置１０は、同じブロードキャストフレームを受信する回数として許容される回数を超えて、１つのブロードキャストフレームを受信していることになる（ステップＳ２５でＹｅｓ）。すると設定部３４は、輻輳が発生する可能性が高いと判定して、通信装置１０がフレームをブロードキャストする確率を下げるために、変数ｃを１つインクリメントする（ステップＳ２６）。
【００７８】
ブロードキャスト受信テーブル４４に記録されている受信回数が閾値Ｔｈ３以下の場合、設定部３４は、輻輳が発生する可能性は無視できると判定する（ステップＳ２５でＮｏ）。そこで、次に、設定部３４は、データの伝達が損なわれない程度に通信が行われているかを判定するために、受信回数を閾値Ｔｈ４と比較する（ステップＳ２７）。受信回数が閾値Ｔｈ４よりも小さい場合、通信装置１０が１つのブロードキャストフレームを受信する回数は、データの伝達性が担保されるために求められる回数に達していないことになる（ステップＳ２７でＹｅｓ）。すると設定部３４は、データがネットワークの全体に伝播できない恐れがあると判定して、通信装置１０がフレームをブロードキャストする確率を上げるために、変数ｃを１つデクリメントする（ステップＳ２８）。なお、受信回数が閾値Ｔｈ４以上の場合、ネットワーク中で送受信されるブロードキャストフレームの数は、輻輳を発生させない程度であり、かつ、データの伝達性を担保するために十分な量である（ステップＳ２７でＮｏ）。従って、乗数判定部３３は、閾値Ｔｈ４≦受信回数≦閾値Ｔｈ３を満たしている間は、変数ｃを変更しない。
【００７９】
変数ｃの設定が終わると、判定部３５は、１から２のｃ乗の値までの範囲で乱数を生成する（ステップＳ２９）。図１２の例では、判定部３５は、生成した乱数が１である場合、通信装置１０自身が、フレームをブロードキャストする通信装置１０に選択されたと判定する（ステップＳ３０でＹｅｓ、ステップＳ３１）。一方、判定部３５は、生成した乱数が１ではない場合、通信装置１０は、フレームをブロードキャストする通信装置１０に選択されていないと判定する（ステップＳ３０でＮｏ、ステップＳ３２）。
【００８０】
判定部３５は、乗数判定の結果、通信装置１０がブロードキャストする装置として選択されたかを、制御部３１に通知する。判定部３５から、ブロードキャストする装置として選択されていない旨の通知を受けると、制御部３１は、フレームをブロードキャストせずに廃棄する。一方、判定部３５から、ブロードキャストする装置として選択された旨の通知を受けると、制御部３１は、回数情報４３を参照し、密集エリアに含まれる通信装置１０に対応付けられている回数を、ブロードキャストの回数に決定する。図１１の例では、密集エリア中の通信装置１０がブロードキャストする装置として選択されると、フレームを１回ブロードキャストするように設定されている。そこで、密集エリアに配置された通信装置１０のうちで、ブロードキャストする装置に選択された通信装置１０の制御部３１は、ブロードキャストフレームを１回、送信部１１に出力する。このため、選択された通信装置１０から１回だけ、フレームがブロードキャストされる。
【００８１】
なお、図１２では、生成した乱数の値が１である通信装置１０がブロードキャストを行う場合を例として説明したが、これは一例に過ぎない。すなわち、ブロードキャストを行う通信装置１０に選択されているかを判定するために用いる値は１〜２のｃ乗までの任意の値にすることができる。
【００８２】
図１２を参照しながら述べたように、設定部３４は、ブロードキャスト受信テーブル４４に記録された受信回数と閾値Ｔｈ３、Ｔｈ４との比較結果を用いて、通信装置１０がブロードキャストする可能性の大きさを調整している。ここで、ブロードキャスト受信テーブル４４に記録された受信回数は、通信装置１０が隣接装置から同じブロードキャストを受信した回数である。従って、設定部３４は、通信装置１０が隣接装置から同じブロードキャストフレームを受信する回数が多いほど、通信装置１０自身がブロードキャストを行わなくてもデータが伝達できる可能性が高いと判定して、ブロードキャストを行わない確率を大きくする。このため、ネットワーク中の輻輳が回避されやすい。
【００８３】
図１３は、ブロードキャストの回数の決定方法の例を説明するフローチャートである。制御部３１は、通信装置１０が分散エリアに配置されていることが、配置状態特定部３２から通知されているかを判定する（ステップＳ４１）。通信装置１０が分散エリアに配置されている場合、制御部３１は、通信装置１０の隣接装置との間の経路のうちで、通信品質が相対的に悪い経路の品質を、リンクテーブル４１から取得する（ステップＳ４１でＹｅｓ、ステップＳ４２）。制御部３１は、通信品質が相対的に悪い経路の品質に対応付けられた回数を、回数情報４３から取得し、得られた回数だけ、ブロードキャストフレームを送信部１１から送信する（ステップＳ４３）。
【００８４】
通信装置１０が分散エリアに配置されていない場合、制御部３１は、通信装置１０が密集エリアと分散エリアの境界に配置されていることが、配置状態特定部３２から通知されているかを判定する（ステップＳ４４）。密集エリアと分散エリアの境界に配置されていることが通知されている場合、制御部３１は、ステップＳ４２、Ｓ４３の処理を行う（ステップＳ４４でＹｅｓ、ステップＳ４２、Ｓ４３）。
【００８５】
通信装置１０が分散エリアにも、密集エリアと分散エリアの境界にも配置されていない場合、制御部３１は、通信装置１０が密集エリアに配置されていることが、配置状態特定部３２から通知されているかを判定する（ステップＳ４４でＮｏ、ステップＳ４５）。制御部３１は、通信装置１０が密集エリアにも配置されていない場合、フレームをブロードキャストせずに処理を終了する（ステップＳ４５でＮｏ、ステップＳ４９）。
【００８６】
通信装置１０が密集エリアに配置されている場合、制御部３１は、ブロードキャストする通信装置１０として選択されるかを判定するための処理を、設定部３４に依頼する（ステップＳ４６）。なお、ステップＳ４６で行われる処理は、図１２を参照しながら説明したとおりである。判定部３５は、通信装置１０がブロードキャストする装置として選択されているかを判定する（ステップＳ４７）。通信装置１０がブロードキャストする装置として選択されている場合、制御部３１は、ブロードキャストが１回、行われるように制御する（ステップＳ４７でＹｅｓ、ステップＳ４８）。一方、通信装置１０がブロードキャストする装置として選択されていない場合、制御部３１は、ブロードキャストフレームを送信部１１に出力せずに破棄する（ステップＳ４７でＮｏ、ステップＳ４９）。
【００８７】
図１４は、密集エリアの例を示す。図１４を参照しながら、第１の実施形態で送受信されるフレーム数の削減効果の例を述べる。図１４に示す密集エリアには、ノードＮ５１〜Ｎ６８が含まれている。図１４において、範囲Ａ５１は、ノードＮ５１から送信されたフレームが届く範囲を示す。同様に、範囲Ａ５３は、ノードＮ５３から送信されたフレームが届く範囲、範囲Ａ５９は、ノードＮ５９から送信されたフレームが届く範囲を示す。従って、ノードＮ５１にとっての隣接装置は、ノードＮ５２〜Ｎ５９である。ノードＮ５３にとっての隣接装置は、ノードＮ５１、Ｎ５２、Ｎ５４、Ｎ５５、Ｎ５９〜Ｎ６４である。さらに、ノードＮ５９にとっての隣接装置は、ノードＮ５１〜Ｎ５３、Ｎ５７、Ｎ５８、Ｎ６０、Ｎ６５〜Ｎ６８である。
【００８８】
例えば、ノードＮ５１がブロードキャストしたフレームをブロードキャストする通信装置１０として、ノードＮ５３とＮ５９が選択されたとする。すると、ノードＮ５１は、ノードＮ５１自身がブロードキャストしたフレームを、ノードＮ５３とＮ５９から受信するだけですむので、送信済みのブロードキャストフレームを２回、受信することになる。一方、密集エリアであってもブロードキャストする通信装置１０を選択しない場合は、ノードＮ５１は、ノードＮ５２〜Ｎ５９の全ての隣接装置から、ノードＮ５１自身がブロードキャストしたフレームを受信し直すことになる。すると、ノードＮ５１は、ノードＮ５１自身から送信したブロードキャストフレームを８回も受信することになる。このように、第１の実施形態では、輻輳を防止するために、送受信されるブロードキャストフレームの数を制限できる。
【００８９】
さらに、第１の実施形態にかかる方法では、分散エリアや、密集エリアと分散エリアの境界に配置された通信装置１０では、フレームの送信に成功する確率が全ての隣接装置において一定の値以上になるように、ブロードキャストする回数を増やすこともできる。
【００９０】
このように、配置に応じて、個々の通信装置１０がブロードキャストの回数を調整することにより、ネットワーク中で送受信されるフレーム数を制限しつつ、データの到達性を担保することができる。このため、データがネットワーク中の全ての通信装置１０に確実に届く状況を維持しつつ、ネットワークでの輻輳の発生を防止できる。
【００９１】
＜第２の実施形態＞
第２の実施形態では、通信装置１０の配置に加えて、データが配信される通信経路も考慮して、ブロードキャストフレームを削減する場合について説明する。なお、第２の実施形態では、ブロードキャストフレームの配信元となり得る通信装置１０は、ネットワーク中の各通信装置１０に認識されているものとする。以下の例では、ブロードキャストフレームの配信元がゲートウェイ（ＧＷ）である場合を例として説明する。
【００９２】
図１５は、ネットワークで行われる通信の例を示す。ネットワーク中の各通信装置１０は、ＧＷとして動作する通信装置１０との間の通信経路を確立している。図１５は、ネットワーク中の通信装置１０がＧＷにデータを送信する場合の送信経路を示している。図１５の例では、ノードＮ７４は、ノードＮ７３、Ｎ７２を経由してフレームをＧＷに送信している。同様に、ノードＮ７７は、ノードＮ７２を経由してフレームをＧＷに送信し、ノードＮ７５は、ノードＮ７１経由でフレームをＧＷに送信する。さらに、ノードＮ７６、Ｎ７１、Ｎ７２は、それぞれ、直接、フレームをＧＷに送信する。
【００９３】
図１５のような通信経路が使用される場合、ＧＷから各通信装置１０への通信経路は、図１５の矢印の逆向きの経路をたどるものとする。例えば、ＧＷは、ノードＮ７２、Ｎ７３を経由してノードＮ７４にフレームを送信できる。この場合、ノードＮ７２がＧＷから受信するフレームの最終的な宛先は、ノードＮ７２〜Ｎ７４、Ｎ７７のいずれかである可能性がある。一方、ＧＷ宛のフレームの通信経路の末端に位置している通信装置１０は、ＧＷがグローバル送信元である受信フレームには、他の通信装置１０に転送するフレームは含まれていない。つまり、グローバル送信元がＧＷに設定されているフレームは、図１５に示す経路の逆向きで転送されてくるため、例えば、ノードＮ７４が受信するフレームは、ノードＮ７４が最終的な宛先に設定されているフレームに限られる。ノードＮ７５〜Ｎ７７についても同様に、グローバル送信元がＧＷの受信フレームを他の通信装置１０に転送しない。換言すると、グローバル送信元がＧＷとなっているフレームを、ＧＷ宛のフレームの通信経路の末端に位置している通信装置１０が他の通信装置１０に転送しなくても、ネットワーク中の全ての通信装置１０にＧＷから通知された情報を伝播できている。
【００９４】
そこで、第２の実施形態では、各通信装置１０がＧＷ宛のフレームを中継しているかを判定し、ＧＷ宛のフレームを中継していない通信装置１０は、ＧＷから配信された情報を含むフレームをブロードキャストしない。第２の実施形態では、第１の実施形態と同様に、配置によってブロードキャストの回数を調整した上で、ＧＷとの通信経路の末端の通信装置１０がブロードキャストを行わないので、ネットワーク中で送受信されるフレーム数をさらに削減できる。
【００９５】
以下、第２の実施形態での通信装置１０の処理の例を説明する。第２の実施形態でも、通信装置１０の構成は、第１の実施形態と同様であるが、さらに、ＧＷ宛フレーム受信記録４５を記憶部４０に保持している。
【００９６】
転送処理部２５は、フレーム振り分け部２３からフレームが入力されると、適宜、ルーティングテーブル４２を参照して、フレームの転送先を特定する。このとき、転送処理部２５は、転送先の特定の他に、グローバル宛先がＧＷであるかも判定する。転送処理部２５は、転送処理を行ったフレームのグローバル宛先がＧＷである場合、ＧＷ宛フレーム受信記録４５を生成または更新する。転送処理部２５は、さらに、特定した宛先に向けてフレームを転送する。
【００９７】
ＧＷ宛フレーム受信記録４５の例を図１６に示す。ＧＷ宛フレーム受信記録４５には、ブロードキャストフレームを用いて伝播されるデータの配信元がゲートウェイであることと、ゲートウェイ宛フレームの転送実績の有無、転送を行ってからの経過時間が記録される。転送処理部２５は、配信元宛（ＧＷ宛）のフレームを受信するたびに経過時間をゼロに設定する。転送処理部２５は、経過時間が所定の閾値を超えると転送実績を消去する。例えば、閾値が２４時間である場合、最後にＧＷ宛のフレームを転送してから２４時間が経過すると、転送処理部２５は、ＧＷ宛フレーム受信記録４５中の転送実績の値を、「有」から「無」に変更した上で、経過時間を初期化する。なお、図１６はＧＷ宛フレーム受信記録４５の一例を示しており、例えば、経過時間の代わりに、ＧＷ宛のフレームを転送した時刻がＧＷ宛フレーム受信記録４５に記録されても良い。この場合、ＧＷ宛のフレームの転送時刻から所定の時間が経過すると、配信元への転送実績が消去される。
【００９８】
通信装置１０自身に宛てられたフレームの処理や、ブロードキャストフレームの受信処理は、第１の実施形態と同様である。従って、ブロードキャストフレームを受信した通信装置１０中のアプリケーション処理部２６は、第１の実施形態と同様に、ブロードキャストフレームを制御部３１に出力する。制御部３１は、ブロードキャストフレームが入力されると、第１の実施形態と同様に、配置状態特定部３２に配置の特定を要求する。
【００９９】
図１７は、第２の実施形態での配置の特定方法の例を示すフローチャートである。配置状態特定部３２は、配置の特定が要求されると、ブロードキャストフレームのグローバル送信元（配信元）に宛てたフレームの転送実績があるかを判定する（ステップＳ６１）。ここでは、ブロードキャストフレームのグローバル送信元となる装置は、ゲートウェイであるので、配置状態特定部３２は、ＧＷ宛フレーム受信記録４５を用いて、ゲートウェイ宛のフレームの転送実績があるかを判定する。ゲートウェイ宛のフレームを転送した実績がない場合、配置状態特定部３２は、通信装置１０が通信経路の末端に配置されていると判定し、判定結果を制御部３１に通知する（ステップＳ６２）。一方、ゲートウェイ宛のフレームを転送した実績がある場合、配置状態特定部３２は、ステップＳ６３〜Ｓ７１の処理を行う。ステップＳ６３〜Ｓ７１の処理は、図９を参照しながら説明したステップＳ１〜Ｓ９の処理と同様である。すなわち、第２の実施形態では、配置状態特定部３２は、通信装置１０の配置を、通信経路の末端、分散エリア、密集エリア、分散エリアと密集エリアの境界の４通りに分類する。
【０１００】
図１８は、第２の実施形態においてブロードキャストの回数を決定する方法の例を示すフローチャートである。制御部３１は、配置状態特定部３２から配置が通知されると、図１８に示す手順でブロードキャストの回数を決定する。制御部３１は、通信装置１０が通信経路の末端に配置されているかを判定する（ステップＳ８１）。通信装置１０が通信経路の末端に配置されている場合、制御部３１は、フレームをブロードキャストせずに廃棄する（ステップＳ８１でＹｅｓ、ステップＳ８２）。通信装置１０が通信経路の末端に配置されていないと判定された場合、ステップＳ８３〜Ｓ９１の処理が行われる。ステップＳ８３〜Ｓ９１の処理は、図１３を参照しながら説明したステップＳ４１〜Ｓ４９の処理と同様である。従って、第２の実施形態によると、通信経路の末端に位置する通信装置１０と、密集エリア中でブロードキャストを行う装置に選択されていない通信装置１０は、フレームのブロードキャストを行わない。
【０１０１】
第２の実施形態では、通信装置１０が配置されている位置がネットワーク中のどこであっても、ブロードキャストされているデータの配信元に宛てたフレームの中継を行っていない通信装置１０であれば、フレームをブロードキャストしない。このため、例えば、図１５のノードＮ７６のように、ＧＷの近傍に位置する通信装置１０や、隣接装置の数が多い通信装置１０であっても、フレームをブロードキャストしないですむ場合がある。その結果、データの到達性を維持したままで、ネットワーク中で送受信されるブロードキャストフレームの数を削減できる。
【０１０２】
＜第３の実施形態＞
第３の実施形態では、ブロードキャストされるデータの伝播方向を考慮することにより、ネットワーク中で送受信されるブロードキャストフレームの数をさらに削減する場合について説明する。また、第３の実施形態においても第２の実施形態と同様に、ネットワーク中の各通信装置１０は、ブロードキャストフレームに含まれているデータの配信元がゲートウェイであることを予め認識しているものとする。なお、第３の実施形態においても、通信装置１０自身に宛てられたフレームやブロードキャストフレームの処理は、第１の実施形態と同様である。
【０１０３】
図１９は、ネットワーク中の分散エリアで行われる通信の例を示す。範囲Ａ８１はノードＮ８１から送信されたフレームが受信される範囲を示し、範囲Ａ８４はノードＮ８４から送信されたフレームが受信される範囲を示す。従って、ノードＮ８１の隣接装置は、範囲Ａ８１に含まれる通信装置１０であり、ノードＮ８４の隣接装置は、範囲Ａ８４に含まれる通信装置１０である。つまり、ノードＮ８１にとっての隣接装置は、ノードＮ８２〜Ｎ８４であり、ノードＮ８４の隣接装置はノードＮ８１、Ｎ８５、Ｎ８６である。さらに、図１９において、破線の矢印は、ノードＮ８１〜Ｎ８６がゲートウェイにデータフレームを送信する場合に使用される経路の例を示す。実線の矢印は、破線の矢印の逆向きの経路であり、ゲートウェイからノードＮ８１〜Ｎ８６にデータを送信する場合に使用される。なお、ゲートウェイが配信元となっているブロードキャストフレームのうち、各通信装置１０がデータの取得に使用するフレームについても、図１９の実線で示す経路で送信されればネットワーク中の全ての通信装置１０に到達できるものとする。
【０１０４】
第３の実施形態では、転送処理部２５は、転送対象のフレームのグローバル宛先がゲートウェイである場合、転送先を特定するだけでなく、転送対象のフレームのローカル送信元（ＬＳ）も抽出する。抽出されたローカル送信元は、ゲートウェイ宛のフレームの受信履歴とともに、ＧＷ宛フレーム受信記録４６に記録される。
【０１０５】
図２０は、第３の実施形態で使用されるＧＷ宛フレーム受信記録４６の例を示す。図２０に示すように、第３の実施形態では、通信装置１０は、ＧＷ宛フレーム受信記録４５（図１６）の代わりにＧＷ宛フレーム受信記録４６を備えるものとする。例えば、ノードＮ８１は、ノードＮ８４からゲートウェイ宛のデータフレームを受信すると、ＧＷ宛フレーム受信記録４６＿８１のＮｏ．１のエントリを生成する。同様に、ノードＮ８１は、ノードＮ８２からゲートウェイ宛のデータフレームを受信すると、ＧＷ宛フレーム受信記録４６＿８１のＮｏ．２のエントリを生成する。転送処理部２５は、ＧＷ宛フレーム受信記録４５の生成と並行して、フレームの転送処理も行う。ノードＮ８４でも受信フレームはノードＮ８１と同様に処理される。このため、ノードＮ８４は、ノードＮ８５とノードＮ８６の各々から受信したゲートウェイ宛のデータフレームを用いて、ＧＷ宛フレーム受信記録４６＿８４を生成する。なお、いずれのエントリでも、そのエントリが生成されたときには、ＧＷ宛のフレームの受信からの経過時間に０が設定されるものとする。
【０１０６】
通信装置１０がブロードキャストフレームを受信したときの処理は、第１および第２の実施形態と同様であるので、アプリケーション処理部２６から制御部３１にブロードキャストフレームの送信に関する処理が要求される。配置状態特定部３２から、通信装置１０が分散エリアに配置されていることが通知されると、制御部３１は、フレームをブロードキャストする回数を決定するために、これまでに中継したゲートウェイ宛のフレームのローカル送信元を特定する。ここで、通信装置１０が中継したゲートウェイ宛のフレームのローカル送信元となっている装置は、ゲートウェイとの通信を行うために通信装置１０を経由する経路を用いている。換言すると、通信装置１０が中継したゲートウェイ宛のフレームのローカル送信元となっている装置は、通信装置１０からブロードキャストフレームを受信しないと、他の経路からはブロードキャストフレームを受信できない可能性がある。そこで第３の実施形態では、制御部３１は、これまでに中継したゲートウェイ宛のフレームのローカル送信元のうちで、通信装置１０との間の経路の通信品質が相対的に悪い装置との間の経路の品質に合わせて、フレームをブロードキャストする回数を決定する。
【０１０７】
例えば、図１９のノードＮ８１が分散エリアに配置されていることが制御部３１＿８１に通知されたとする。すると、制御部３１＿８１は、ブロードキャストの回数を決定するために、ゲートウェイ宛のフレームのＬＳとしてＧＷ宛フレーム受信記録４６＿８１（図２０）に記録されている隣接装置のうちでノードＮ８１との間の品質が最も悪い経路を特定する。すなわち、制御部３１＿８１は、ＧＷ宛フレーム受信記録４６＿８１とリンクテーブル４１＿８１を参照することにより、ノードＮ８１の隣接装置のうちのノードＮ８２とＮ８４のいずれとの間の経路の品質がより悪いかを決定する。ここでは、ノードＮ８１とノードＮ８２の間の経路の品質よりも、ノードＮ８１とノードＮ８４の間の経路の品質のほうが悪いとする。すると、制御部３１＿８１は、ノードＮ８１とノードＮ８４の間の経路の品質を、回数情報４３（図１１）に含まれている閾値Ｇ１〜Ｇ９と比較した結果に応じて、ブロードキャストの回数を決定する。
【０１０８】
次にノードＮ８４での処理の例を述べる。配置状態特定部３２＿８４もノードＮ８４が分散エリアに配置されていると判定したとする。すると、制御部３１＿８４は、ＧＷ宛フレーム受信記録４６＿８４（図２０）を参照することにより、ノードＮ８４が中継したことのあるゲートウェイ宛のフレームの転送元（ＬＳ）は、ノードＮ８５とノードＮ８６であることを特定する。そこで、制御部３１＿８４は、ノードＮ８４とノードＮ８５の間の経路と、ノードＮ８４とノードＮ８６の間の経路のうち品質が悪いほうに合わせて、ノードＮ８４がブロードキャストする回数を決定する。
【０１０９】
図１９に示す例では、ノードＮ８４とノードＮ８４の隣接装置の間の経路のうちで、最も通信品質が最も悪い経路は、ノードＮ８１とノードＮ８４の間の経路である。しかし、制御部３１＿８４は、ＧＷ宛フレーム受信記録４６＿８４（図２０）にノードＮ８１の情報が無いため、ノードＮ８１とゲートウェイの間の通信経路にノードＮ８４は含まれていないと判定する。そこで、制御部３１＿８４は、ノードＮ８１とノードＮ８４の間の経路の状態に左右されずに、ブロードキャストの回数を決定できる。つまり、制御部３１＿８４は、ノードＮ８４をゲートウェイとの間の通信経路に含む通信装置１０との間の経路の品質に合わせて、ブロードキャストの回数を決定できる。
【０１１０】
図１９と図２０を参照しながら分散エリアに配置された通信装置１０での処理を説明したが、分散エリアと密集エリアの境界に配置された通信装置１０も、分散エリアに配置された通信装置１０と同様にブロードキャストの回数を決定する。
【０１１１】
図２１は、第３の実施形態での制御部３１の処理の例を説明するフローチャートである。制御部３１は、配置状態特定部３２から通知された配置が、分散エリアか分散エリアと密集エリアの境界のいずれかであるかを判定する（ステップＳ１０１）。分散エリアに配置されておらず、さらに、分散エリアと密集エリアの境界にも配置されていない場合、制御部３１は、密集エリアか通信経路の末端に位置する通信装置１０としての処理を行う（ステップＳ１０１でＮｏ、ステップＳ１０２）。なお、密集エリアか通信経路の末端に位置する通信装置１０について、ブロードキャストの回数を決定する方法は、第１および第２の実施形態と同様である。
【０１１２】
分散エリアか分散エリアと密集エリアの境界のいずれかに配置されている場合、制御部３１は、ＧＷ宛フレーム受信記録４６を用いて、過去に中継したゲートウェイ宛フレームのローカル送信元の情報を取得する（ステップＳ１０１でＹｅｓ、ステップＳ１０３）。制御部３１は、過去に中継したゲートウェイ宛フレームのローカル送信元となった通信装置１０との間の経路のうち、相対的に通信品質が悪い経路を選択する（ステップＳ１０４）。制御部３１は、選択した経路の通信品質を回数情報４３に含まれている閾値と比較することにより、選択した経路の通信品質に対応付けられたブロードキャストの回数を取得する（ステップＳ１０５）。制御部３１は、取得した回数だけフレームをブロードキャストする。
【０１１３】
このように、第３の実施形態によると、分散エリアや分散エリアと密集エリアの境界に位置する通信装置１０は、ゲートウェイ宛のフレームを中継している通信装置１０にブロードキャストフレームを送信できるように、ブロードキャストの回数を調整する。このため、隣接装置とゲートウェイとの通信経路に通信装置１０が含まれていない場合は、通信装置１０はその隣接装置との間の経路の状況に影響されずにブロードキャストの回数を決定できる。換言すると、隣接装置とゲートウェイとの通信経路に通信装置１０が含まれていない場合、その隣接装置と通信装置１０の間の通信経路の品質が悪くても、他の経路の状況が良好であれば、通信装置１０は、ブロードキャストの回数を大きくしない。このため、ネットワーク中で送受信されるブロードキャストフレームの数が削減される。
【０１１４】
＜第４の実施形態＞
第４の実施形態では、データフレームの送受信が、ゲートウェイからネットワーク中の通信装置１０に宛てた通信と、各通信装置１０からゲートウェイに宛てた通信に使用される場合について、ブロードキャストの回数を最適化する方法の例を説明する。第４の実施形態では、分散エリアと密集エリアの境界の通信装置１０を、密集エリアから分散エリアにブロードキャストフレームを送信する装置と、分散エリアから密集エリアにブロードキャストフレームを送信する装置の２つのグループに分類する。以下、配置の決定に使用する情報の取得、配置の決定、ブロードキャストの回数の決定に分けて、第４の実施形態を説明する。
【０１１５】
〔配置の決定に使用する情報の取得〕
第４の実施形態では、通信装置１０は、ＧＷ宛フレーム受信記録４６の他に中継情報４７を保持している。中継情報４７には、通信装置１０がゲートウェイ以外の通信装置１０に向けて転送したデータフレームのローカル送信元と、そのローカル送信元からのフレームを最後に通信装置１０が中継した時刻からの経過時間が含まれている。第４の実施形態では、転送処理部２５は、転送対象のフレームについて、転送先を特定するだけでなく、転送対象のフレームのローカル送信元（ＬＳ）も抽出する。転送処理部２５は、グローバル宛先がゲートウェイであるフレームから抽出したローカル送信元の情報を、ゲートウェイ宛のフレームの受信履歴とともに、ＧＷ宛フレーム受信記録４６に記録する。一方、転送処理部２５は、グローバル宛先がゲートウェイ以外であるフレームから抽出したローカル送信元の情報を、中継情報４７に記録する。換言すると、中継情報４７は、ゲートウェイから通知された情報を含むフレームを通信装置１０に送信する可能性がある隣接装置のリストであるといえる。また、ＧＷ宛フレーム受信記録４６は、ゲートウェイから通知された情報を含むフレームを通信装置１０が送信する対象の隣接装置であるといえる。このため、ＧＷ宛フレーム受信記録４６か中継情報４７に記録されているローカル送信元のいずれかと通信装置１０の間の経路を含まない経路は、データフレームの送受信に使用されていないことになる。
【０１１６】
図２２は、ＧＷ宛フレーム受信記録４６と中継情報４７の例を示す。例えば、図２２のケースＣ３に示すネットワーク中のノードＮ９３は、ノードＮ９４からゲートウェイ宛のデータフレームを受信する。このとき、ノードＮ９３がノードＮ９４から受信するデータフレームに設定されているアドレスは、グローバル宛先がゲートウェイ、ローカル送信元がノードＮ９４に設定されている。そこで、ノードＮ９３の転送処理部２５＿９３は、ノードＮ９４から受信したデータフレームのアドレス情報と受信時刻に基づいて、ＧＷ宛フレーム受信記録４６＿９３（図２２）を生成する。さらに、ノードＮ９３がデータフレームＦ１〜Ｆ３を受信したとする。ここで、データフレームＦ１〜Ｆ３のアドレス情報は以下のとおりであるとする。
データフレームＦ１
グローバル送信元アドレス：ＧＷ
グローバル宛先アドレス  ：ノードＮ９７
ローカル送信元アドレス  ：ノードＮ９０
データフレームＦ２
グローバル送信元アドレス：ＧＷ
グローバル宛先アドレス  ：ノードＮ９８
ローカル送信元アドレス  ：ノードＮ９２
データフレームＦ３
グローバル送信元アドレス：ＧＷ
グローバル宛先アドレス  ：ノードＮ９９
ローカル送信元アドレス  ：ノードＮ９１
【０１１７】
転送処理部２５＿９３は、データフレームＦ１を転送する際に、データフレームＦ１の最終的な宛先がノードＮ９７であることと、データフレームＦ１の転送元がノードＮ９０であることを認識する。そこで、転送処理部２５＿９３は、ノードＮ９３とノードＮ９０の間の経路がデータフレームの送受信に使用されていることに基づいて、中継情報４７＿９３のエントリＮｏ．１を生成する。同様に、転送処理部２５＿９３は、データフレームＦ２に基づいて中継情報４７＿９３のエントリＮｏ．２、データフレームＦ３に基づいて中継情報４７＿９３のエントリＮｏ．３を生成する。
【０１１８】
一方、ノードＮ９６は、ノードＮ９８とノードＮ９９からゲートウェイ宛のデータフレームを受信し、さらに、ノードＮ９９がグローバル宛先に指定されたデータフレームをノードＮ９５から受信したとする。すると、転送処理部２５＿９６は、ゲートウェイ宛のデータフレームに基づいて、ＧＷ宛フレーム受信記録４６＿９６を生成する。さらに、転送処理部２５＿９６は、ノードＮ９９がグローバル宛先に指定されたデータフレームを用いて、中継情報４７＿９６のエントリＮｏ．１を生成する。
【０１１９】
その他の通信装置１０も、ノードＮ９３、Ｎ９６と同様に、ＧＷ宛フレーム受信記録４６と中継情報４７を生成する。なお、中継情報４７の情報は、エントリに対応付けられているローカル送信元から受信したフレームの中継を最後に行ってから所定の時間が経過すると、転送処理部２５により消去されるものとする。
【０１２０】
さらに、ネットワーク中のいずれの通信装置１０も、第１の実施形態と同様にリンクテーブル４１やルーティングテーブル４２を生成する。ノードＮ９３が保持するリンクテーブル４１＿９３と、ノードＮ９６が保持するリンクテーブル４１＿９６の例を、図２３に示す。
【０１２１】
〔配置の決定〕
以下、経路の末端と分散エリアのいずれにも配置されていないと判定された通信装置１０についての配置の決定方法について説明する。なお、第４の実施形態でも、経路の末端に位置している通信装置１０の特定方法は、第２の実施形態と同様である。また、分散エリアに配置されている通信装置１０の特定方法は、第１および第２の実施形態と同様である。
【０１２２】
配置状態特定部３２は、ゲートウェイ宛のフレームの中継実績があり、さらに、隣接装置の数が閾値Ｔｈ１を超えている場合、ＧＷ宛フレーム受信記録４６に含まれているローカル宛先のリストを取得する。ここで、ＧＷ宛フレーム受信記録４６に含まれているローカル宛先は、通信装置１０がゲートウェイからのデータを提供している隣接装置である。例えば、ノードＮ９３の配置状態特定部３２＿９３では、ＧＷ宛フレーム受信記録４６＿９３を参照することにより、ノードＮ９３がノードＮ９４にゲートウェイからのデータを提供していることを特定する。
【０１２３】
次に、配置状態特定部３２は、ゲートウェイからのデータの提供先の通信装置１０においての隣接装置の数をリンクテーブル４１から取得する。ゲートウェイからのデータの提供先においての隣接装置の数が閾値Ｔｈ２未満の場合、配置状態特定部３２は、通信装置１０はゲートウェイからのデータを分散エリアに送信していると判定する。ゲートウェイからのデータの提供先が複数ある場合、１つの提供先でも隣接装置の数が閾値Ｔｈ２未満であれば、配置状態特定部３２は、ゲートウェイからのフレームを分散エリアに送信していると判定する。例えば、ノードＮ９３の場合、リンクテーブル４１＿９３を参照することにより、ノードＮ９４にとっての隣接装置が２台であることを特定する。ここで、閾値Ｔｈ２＝３である場合、配置状態特定部３２＿９３は、ノードＮ９３のことを、ゲートウェイから送信されたデータを分散エリアに送信する通信装置１０であると判定する。
【０１２４】
一方、ノードＮ９６の場合、配置状態特定部３２＿９６は、ＧＷ宛フレーム受信記録４６＿９６を参照することにより、ノードＮ９６がノードＮ９９とノードＮ９８にゲートウェイからのデータを提供していることを特定する。さらに、リンクテーブル４１＿９６（図２３）を参照することにより、ノードＮ９８、Ｎ９９のいずれの通信装置１０も、隣接装置の数が閾値Ｔｈ２を超えていることを特定する。すると、配置状態特定部３２＿９６は、ノードＮ９６がゲートウェイから配信されたデータを分散エリア中の装置に送信していないと判定する。
【０１２５】
配置状態特定部３２は、ゲートウェイから配信されたデータを分散エリアに送信する通信装置１０ではないと判定すると、中継情報４７に含まれているローカル宛先のリストを取得する。ここで、中継情報４７に含まれているローカル宛先は、通信装置１０にゲートウェイからのデータを提供している隣接装置である。例えば、配置状態特定部３２＿９６は、中継情報４７＿９６（図２２）を参照することにより、ノードＮ９５がノードＮ９６にゲートウェイからのデータを提供していることを特定する。
【０１２６】
次に、配置状態特定部３２は、ゲートウェイからのデータを送信してきている装置にとっての隣接装置の数をリンクテーブル４１から取得する。ゲートウェイからのデータを送信してきている装置においての隣接装置の数が閾値Ｔｈ２未満の場合、配置状態特定部３２は、通信装置１０はゲートウェイからのデータを分散エリア中の装置から受信して、密集エリアに送信していると判定する。なお、ゲートウェイからのデータを送信してくる装置のうちの１台でも隣接装置の数が閾値Ｔｈ２未満であれば、配置状態特定部３２は、通信装置１０がゲートウェイからのフレームを分散エリア中の装置から受信し、密集エリアに送信していると判定する。例えば、ノードＮ９６の場合、リンクテーブル４１＿９６（図２３）を参照することにより、ノードＮ９５にとっての隣接装置が２台であることを特定する。閾値Ｔｈ２＝３であるので、配置状態特定部３２＿９６は、ノードＮ９６のことを、ゲートウェイから送信されたデータを、分散エリアの装置から取得して密集エリアに送信する通信装置１０であると判定する。
【０１２７】
なお、配置状態特定部３２は、ゲートウェイから送信されたデータを分散エリアに送信する通信装置１０ではなく、分散エリアの装置から取得したデータを密集エリアに送信する通信装置１０でもない通信装置１０を、密集エリアに配置されていると判定する。
【０１２８】
図２４は、第４の実施形態での配置の特定方法の例を示すフローチャートである。図２４の例では、定数Ｘ、Ｙと変数ｘ、ｙを使用する。定数Ｘは、ＧＷ宛フレーム受信記録４６に含まれているローカル送信元（ＬＳ）の数であり、定数Ｙは中継情報４７に含まれているローカル送信元の数である。変数ｘ、ｙは、処理対象としたローカル送信元の数の係数に使用される。なお、図２４は配置の特定方法の一例であり、例えば、ステップＳ１１７〜Ｓ１２０の前に,ステップＳ１２１〜Ｓ１２５の処理を行うように、処理の順序が変更される場合がある。また、ステップＳ１１５とステップＳ１１６の順序は互いに変更されても良い。
【０１２９】
配置状態特定部３２は、制御部３１から配置の特定を要求されると、ＧＷ宛フレーム受信記録４６を参照することにより、ゲートウェイをグローバル宛先としたフレームを中継したことがあるかを判定する（ステップＳ１１１）。ゲートウェイをグローバル宛先としたフレームを中継したことがない場合、配置状態特定部３２は、通信経路の末端に位置する通信装置１０であると判定する（ステップＳ１１１でＮｏ、ステップＳ１１２）。ゲートウェイをグローバル宛先としたフレームを中継したことがある場合、配置状態特定部３２は、リンクテーブル４１のエントリ数Ｍが閾値Ｔｈ１以上であるかを判定する（ステップＳ１１１でＹｅｓ、ステップＳ１１３）。リンクテーブル４１のエントリ数Ｍが閾値Ｔｈ１未満の場合、配置状態特定部３２は、通信装置１０が分散エリアに配置されていると判定する（ステップＳ１１３でＮｏ、ステップＳ１１４）。
【０１３０】
リンクテーブル４１のエントリ数Ｍが閾値Ｔｈ１以上の場合、配置状態特定部３２は、ＧＷ宛フレーム受信記録４６を参照して、中継済みのゲートウェイ宛フレームのローカル送信元の数（Ｘ）を取得する（ステップＳ１１３でＹｅｓ、ステップＳ１１５）。配置状態特定部３２は、変数ｘとｙを１に設定する（ステップＳ１１６）。配置状態特定部３２は、ＧＷ宛フレーム受信記録４６中のｘ番目のローカル送信先が保持するリンクテーブル４１のエントリ数は、閾値Ｔｈ２以上であるかを判定する（ステップＳ１１７）。このとき、配置状態特定部３２は、ＧＷ宛フレーム受信記録４６中のｘ番目のローカル送信先についての情報を、リンクテーブル４１から取得するものとする。ｘ番目のローカル送信先が保持するリンクテーブル４１のエントリ数が、閾値Ｔｈ２未満である場合、配置状態特定部３２は、ゲートウェイから配信されたデータを分散エリアに送信していると判定する（ステップＳ１１７でＮｏ、ステップＳ１２０）。
【０１３１】
一方、ＧＷ宛フレーム受信記録４６中のｘ番目のローカル送信先が保持するリンクテーブル４１のエントリ数が閾値Ｔｈ２以上である場合、配置状態特定部３２は、変数ｘを１つインクリメントする（ステップＳ１１７でＹｅｓ、ステップＳ１１８）。その後、配置状態特定部３２は、変数ｘが定数Ｘより大きいかを判定し、変数ｘが定数Ｘを超えるまで、ステップＳ１１７〜Ｓ１２０の処理を繰り返す（ステップＳ１１９でＮｏ）。変数ｘが定数Ｘより大きくなる場合は、ＧＷ宛フレーム受信記録４６中のいずれのローカル送信先でも隣接装置の数が閾値Ｔｈ２以上である（ステップＳ１１９でＹｅｓ）。すなわち、変数ｘが定数Ｘより大きくなる場合、通信装置１０は、分散エリア中の通信装置１０にデータを送信していない。
【０１３２】
ＧＷ宛フレーム受信記録４６中のいずれのローカル送信先でも隣接装置の数が閾値Ｔｈ２以上である場合、配置状態特定部３２は、中継情報４７中に記録されているローカル送信元の数（Ｙ）を取得する（ステップＳ１２１）。配置状態特定部３２は、中継情報４７中のｙ番目のローカル送信先が保持するリンクテーブル４１のエントリ数は、閾値Ｔｈ２以上であるかを判定する（ステップＳ１２２）。なお、配置状態特定部３２は、中継情報４７中のｙ番目のローカル送信先についての情報を、リンクテーブル４１から取得する。ｙ番目のローカル送信先が保持するリンクテーブル４１のエントリ数が、閾値Ｔｈ２未満である場合、配置状態特定部３２は、分散エリア中の装置から受信したフレームを密集エリアに送信していると判定する（ステップＳ１２２でＮｏ、ステップＳ１２５）。なお、通信装置１０が分散エリア中の装置から受信したフレームには、ゲートウェイから配信されたデータが含まれている。
【０１３３】
一方、中継情報４７中のｙ番目のローカル送信先が保持するリンクテーブル４１のエントリ数が閾値Ｔｈ２以上である場合、配置状態特定部３２は、変数ｙを１つインクリメントする（ステップＳ１２２でＹｅｓ、ステップＳ１２３）。その後、配置状態特定部３２は、変数ｙが定数Ｙより大きいかを判定し、変数ｙが定数Ｙを超えるまで、ステップＳ１２２〜Ｓ１２５の処理を繰り返す（ステップＳ１２４）。変数ｙが定数Ｙより大きくなる場合は、中継情報４７中のいずれのローカル送信先でも隣接装置の数が閾値Ｔｈ２以上である（ステップＳ１２４でＹｅｓ）。すなわち、変数ｙが定数Ｙより大きくなる場合、通信装置１０は、分散エリア中の装置から受信したフレームを密集エリア中の装置に送信する通信装置１０ではない。そこで、配置状態特定部３２は、通信装置１０が密集エリアに配置されていると判定する（ステップＳ１２６）。
【０１３４】
〔ブロードキャストの回数の決定〕
制御部３１は、配置状態特定部３２から配置の判定結果を取得すると、通信装置１０の配置に応じてブロードキャストの回数を決定する。通信装置１０が分散エリアに配置されている場合と密集エリアに配置されている場合のブロードキャストの回数の決定方法は、第１〜第３の実施形態と同様である。さらに、通信装置１０が通信経路の末端に位置している場合、通信装置１０は、第２の実施形態と同様にブロードキャストを行わない。
【０１３５】
ゲートウェイから配信されたデータを分散エリアに送信している通信装置１０であると判定された場合、制御部３１は、通信装置１０の隣接装置のうちで分散エリアに含まれている装置のうち、通信状況が相対的に悪い装置を特定する。制御部３１は、特定した装置へのフレームの送信に成功する確率が予め決められた閾値以上になるように、回数情報４３を用いて、ブロードキャストの回数を決定する。すなわち、制御部３１は、特定した装置との間の通信経路の品質に回数情報４３で対応付けられている回数を、ブロードキャストの回数に決定する。
【０１３６】
一方、分散エリアの装置から受信したフレームを密集エリアに送信する通信装置１０であると判定された場合、制御部３１は、ブロードキャストの回数を１回に設定する。分散エリアの装置から受信したフレームを密集エリアに送信する通信装置１０では、ブロードキャストを行わないと、密集エリア中のいずれの通信装置１０にもフレームが届かないおそれがあるためである。例えば、図２２のノードＮ９６がフレームをブロードキャストしないと、ノードＮ９６がノードＮ９５から受信したフレームはノードＮ９７〜Ｎ９９に到達しない。このため、ノードＮ９６がフレームをブロードキャストしないと、ノードＮ９７〜Ｎ９９を含む密集エリアのいずれの通信装置１０にもフレームが送られないことになってしまう。しかし、ノードＮ９６のように密集エリアに接している通信装置１０が１回ブロードキャストを行えば、密集エリア内ではいずれかの通信装置１０がフレームを受信できる可能性が高い。このため、制御部３１＿９６は、ノードＮ９６からのブロードキャストの回数を１回に設定する。
【０１３７】
図２５は、第４の実施形態においてブロードキャストの回数を決定する方法の例を示すフローチャートである。図２５のステップＳ１３１〜Ｓ１３４、Ｓ１３７は、図１８を参照しながら説明したステップＳ８１〜Ｓ８５と同様である。
【０１３８】
通路の末端に位置する通信装置１０でなく、分散エリアに位置する通信装置１０でもない場合、制御部３１は、ゲートウェイから配信されたデータを分散エリアに送信している装置であるかを判定する（ステップＳ１３５）。ゲートウェイから配信されたデータを分散エリアに送信している場合、制御部３１は、分散エリア中の隣接装置との間の経路のうちで、通信品質が相対的に悪い経路の品質をリンクテーブル４１から取得する（ステップＳ１３５でＹｅｓ、ステップＳ１３６）。制御部３１は、特定した経路の品質に対応付けられた回数を、回数情報４３から取得し、得られた回数だけ、ブロードキャストフレームを送信部１１から送信する（ステップＳ１３７）。
【０１３９】
配信されたデータを分散エリアに送信していない場合、制御部３１は、通信装置１０が分散エリア中の装置を介してゲートウェイからの配信データを受信し、密集エリア中の装置に送信しているかを判定する（ステップＳ１３５でＮｏ、ステップＳ１３８）。通信装置１０が分散エリア中の装置を介してゲートウェイからの配信データを受信し、密集エリア中の装置に送信している場合、制御部３１は、ブロードキャストの回数を１回に設定する（ステップＳ１３８でＮｏ、ステップＳ１４２）。ステップＳ１３９〜Ｓ１４３の処理は、図１３を参照しながら説明したステップＳ４５〜Ｓ４９、および、図１８のステップＳ８７〜Ｓ９１と同様である。
【０１４０】
このように、データフレームが配信される方向を考慮することにより、密集エリアと分散エリアの境界に位置している通信装置１０であっても、配信されている情報を密集エリアと分散エリアのいずれに配信するかによりブロードキャストの回数を調整できる。このため、ネットワーク中で送受信されるフレームの数が最適化される。
【０１４１】
〔シミュレーション結果〕
以下、図２６〜図２９を参照しながら、第４の実施形態のシミュレーションの結果の例を説明する。
【０１４２】
図２６は、ネットワークの例を示す。図２６に示すネットワークは、グループＧ１〜Ｇ３を含む。図２６の例では、グループＧ１〜Ｇ３の中には、それぞれ１６５台の通信装置１０が含まれているものとする。さらに、グループＧ１とグループＧ２の間は、３台の通信装置１０でつながっており、グループＧ２とグループＧ３の間は、６台の通信装置１０でつながっている。ここで、１つのグループは、そのグループに含まれている通信装置１０からのフレームが受信可能な範囲であるとする。例えば、グループＧ１に含まれているある通信装置１０が送信したフレームは、全ての通信装置１０間の経路の状況が良好であれば、グループＧ１に含まれている他の全ての通信装置１０に受信され得る。グループＧ２、Ｇ３についても同様である。図２６の例では、ゲートウェイは、グループＧ１に含まれているものとする。つまり、グループＧ１には、ゲートウェイの他に、１６４台の通信装置１０が含まれている。従って、図２６に示すネットワーク中に含まれる通信装置１０の数は、１６５＋３＋１６５＋６＋１６５＝５０４台である。なお、図２６は、ネットワークの一例であって、実施形態にかかる通信方法を適用するネットワークに含まれる通信装置１０の数、グループの数、グループ内の通信装置１０の数、グループ間を結ぶ通信装置１０の数は任意に変更されうる。
【０１４３】
図２７は、ブロードキャストが行われる回数のシミュレーション結果の例を示す。図２７は、図２６に示すネットワークにおいて、ネットワーク中の通信装置１０が、１〜９９％のいずれかの確率でフレームの受信に失敗するものと仮定したときのシミュレーションの結果である。シミュレーションでは、フレームの受信に失敗する確率は、ネットワーク中の通信装置１０にランダムに割り当てられている。さらに、フレームの受信に失敗する確率は、ＦＩＤごとに、割り当てが変更されているものとする。図２７の例では、ＦＩＤ＝１〜３０のフレームをゲートウェイから送信したことにより、ネットワーク中で行われるブロードキャストの回数のネットワーク中の各通信装置１０での総和を、ＦＩＤごとに示している。なお、ＦＩＤの値が大きいほど、後にゲートウェイから送信されたフレームであることを示すものとする。例えば、ゲートウェイは、ＦＩＤ＝１のフレームをブロードキャストした後で、ＦＩＤ＝２のフレームをブロードキャストする。
【０１４４】
ここで、ブロードキャストの回数の総和は、ネットワーク中の各通信装置１０が行ったブロードキャストの総和である。例えば、ゲートウェイを含むネットワーク中の全ての通信装置１０が１回ずつブロードキャストを行う場合、ネットワーク中のブロードキャストの回数の総和は、以下のように計算できる。
総和＝１６５×１＋３×１＋１６５×１＋６×１＋１６５×１＝５０４回
さらに、複数回ブロードキャストする通信装置１０がある場合、その通信装置１０のブロードキャストの回数は、総和の計算のときも１以上である。例えば、ノードＮ１がフレームを４回ブロードキャストしたとする。この場合、総和の計算のときにも、ノードＮ１のブロードキャストの回数は４回となる。一方、ブロードキャストフレームの受信に失敗した通信装置１０や、ブロードキャストしないことを決定した通信装置１０はブロードキャストを行わないため、ブロードキャストの回数は０回とする。
【０１４５】
図２７中のグラフＡは、第４の実施形態を図２６のネットワークに適用したときのブロードキャストの回数の総和を、ＦＩＤに対応付けてプロットした結果である。一方、グラフＢは、ブロードキャストフレームの受信に成功した通信装置１０が１回ずつ受信フレームをブロードキャストする方式を、図２６のネットワークに適用したときのブロードキャストの回数の総和を、ＦＩＤに対応付けてプロットした結果である。なお、フレームの受信に失敗する確率の各通信装置１０への設定は、グラフＡとグラフＢで同じである。グラフＡでは、ＦＩＤ＝５以降のフレームについては、ブロードキャストの総数が、グラフＢよりも低くなっている。
【０１４６】
図２８は、ブロードキャストによりデータを取得できた通信装置１０の割合の例を示す。図２８は、図２７に示す回数のブロードキャストが行われた場合に、図２６のネットワークに含まれている通信装置１０のうち、ブロードキャストフレームの受信に成功した通信装置１０の割合を示している。グラフＣは、第４の実施形態を図２６のネットワークに適用したことにより、グラフＡ（図２７）に示す回数のブロードキャストが行われた場合に、データを取得できた通信装置１０の割合を示している。一方、グラフＤは、ブロードキャストフレームの受信に成功した通信装置１０が１回ずつ受信フレームをブロードキャストする方式で、グラフＢ（図２７）に示す回数のブロードキャストが行われた場合に、データを取得できた通信装置１０の割合を示している。なお、各通信装置１０がフレームの受信に失敗する確率の設定は、図２７と図２８では、ＦＩＤごとに同じ設定である。
【０１４７】
グラフＣに示すように、第４の実施形態を図２６のネットワークに適用したときは、ＦＩＤ＝２以外のフレームは、全ての通信装置１０に到達している。一方、グラフＤに示すように、ブロードキャストフレームの受信に成功した通信装置１０が１回ずつ受信フレームをブロードキャストする方式では、ＦＩＤ＝８、２１、２９以外のフレームは、ネットワーク中の全ての通信装置１０に到達していない。従って、図２７と図２８より、第４の実施形態にかかる方法は、フレームの到達率をほぼ１００％にしつつ、ネットワーク中のフレーム数を抑えることができることが読み取れる。図２６のようなネットワークでは、グループ間を接続する通信装置１０のうちの１つでもブロードキャストフレームの受信に失敗すると、受信に失敗した通信装置１０よりもゲートウェイからのホップ数が大きい通信装置１０のグループに含まれている通信装置１０がブロードキャストフレームを受信できなくなる。従って、例えば、ＦＩＤ＝６、７などのように、グラフＤにおいてブロードキャストフレームを受信できた通信装置１０の割合が３３％程度の場合、グループＧ１とグループＧ２の間の通信装置１０間での通信状態が悪化していることが考えられる。一方、ＦＩＤ＝９、１０などのように、グラフＤにおいてブロードキャストフレームを受信できた通信装置１０の割合が６６％程度の場合、グループＧ２とグループＧ３の間の通信装置１０間での通信状態が悪化していることが考えられる。しかし、第４の実施形態にかかる方法では、通信状態が悪化している経路においては、図１１などを参照して説明したように、ブロードキャストの回数を増加させるため、ブロードキャストフレームの受信に成功し易くなっている。このため、ＦＩＤ＝６、７、９、１０などのように、グラフＤで、ブロードキャストフレームを受信できた通信装置１０の割合が３０％程度まで悪化している状況下においても、グラフＣでは、フレームの到達率が高い確率に保たれている。
【０１４８】
図２９は、１つの通信装置１０が同じブロードキャストフレームを受信する回数のシミュレーション結果の例を示す。グラフＥは、図２７のグラフＡに示す回数のブロードキャストが行われた際に、ネットワーク中の通信装置１０が受信したブロードキャストフレームの平均数をＦＩＤの関数としてプロットしている。グラフＦは、図２７のグラフＡに示す回数のブロードキャストが行われた際に、ネットワーク中で最も多くブロードキャストフレームを受信した通信装置１０での、ブロードキャストフレームの受信数をＦＩＤの関数としてプロットしている。なお、グラフＥ、Ｆのいずれも、図２６に示すネットワーク中で第４の実施形態に係る通信方法が行われている場合について得られたグラフである。
【０１４９】
一方、グラフＧ、Ｈは、図２６に示すネットワーク中で、ブロードキャストフレームの受信に成功した通信装置が１回ずつ受信フレームをブロードキャストする方式が採用された場合のグラフである。グラフＧは、図２７のグラフＢに示す回数のブロードキャストが行われた際に、ネットワーク中の通信装置１０が受信したブロードキャストフレームの平均数をＦＩＤの関数として表わしている。グラフＨは、図２７のグラフＢに示す回数のブロードキャストが行われた際に、ネットワーク中で最も多くブロードキャストフレームを受信した通信装置１０での、ブロードキャストフレームの受信数をＦＩＤの関数として表わしている。
【０１５０】
図２９のグラフＥとグラフＧを比較すると、ＦＩＤ＝４以降では、グラフＥの値は、グラフＧの値を下回っている。従って、第４の実施形態では、ブロードキャストフレームの受信に成功した通信装置が１回ずつ受信フレームをブロードキャストする方式に比べ、ネットワーク中の個々の通信装置１０が受信するフレーム数が削減されているといえる。さらに、グラフＦとグラフＨを比較すると、グラフＦの値がグラフＨの値を全てのフレームにおいて下回っている。従って、ネットワーク中で最もブロードキャストフレームの受信が多い装置同士での受信数は、第４の実施形態を採用した場合、ブロードキャストフレームの受信に成功した通信装置が１回ずつ受信フレームをブロードキャストする場合よりも小さくなるといえる。このため、第４の実施形態では、ブロードキャストフレームの受信に成功した通信装置が１回ずつ受信フレームをブロードキャストする方式よりも、通信装置１０の処理負荷が低下しているといえる。
【０１５１】
図２６〜図２９を参照しながら述べたシミュレーション結果より、第４の実施形態を用いると、ネットワーク中で送受信されるフレーム数を削減しつつ、ブロードキャストフレームの到達可能性を向上させられることが分かる。
【０１５２】
第４の実施形態で説明したように、データフレームの送受信がゲートウェイとネットワーク中の通信装置１０の間で行われる場合としては、センサや公共料金のメータからゲートウェイに測定値を通知するネットワークなどが考えられる。センサや公共料金のメータは、測定箇所が密集している場合は、図２６に示したように、１つの通信装置１０にとっての隣接装置の数が膨大になる場合がありえる。第４の実施形態では、通信経路に使用されている通信装置１０を、ＧＷ宛フレーム受信記録４６や中継情報４７を用いて特定した上で、通信経路に使用されている通信装置１０の中から、分散エリアや密集エリアにフレームを送信する通信装置１０が選択される。このため、隣接装置の数が膨大になっても効率的に、分散エリアや密集エリアにフレームを送信する通信装置１０を特定できる。さらに特定した配置に応じて、適切なブロードキャストの回数を指定できる。
【０１５３】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１５４】
通信装置１０の設置状況に応じて、特定の種類の配置の通信装置１０についてブロードキャストの回数を調整するように変形することもできる。例えば、分散エリア中の通信装置１０の影響が無視できる系では、密集エリアのみをブロードキャストの回数の調整の対象とできる。この場合、密集エリアでは、第１の実施形態で述べたように選択された通信装置１０がブロードキャストを行い、選択されていない通信装置１０はブロードキャストを行わない。また、第２の実施形態で述べたように、通信経路の末端の通信装置１０はブロードキャストを行わないように設定しつつ、密集エリアや分散エリアなどのその他の配置においてはブロードキャストの回数の調整を行わないようにすることもできる。さらに、密集エリアに配置された通信装置１０でブロードキャストの回数を調整した上で、通信経路の末端の通信装置１０がブロードキャストを行わないようにするが、分散エリアなどではブロードキャストの回数の調整を行わないこともできる。
【０１５５】
第４の実施形態では、データフレームの送受信が、ゲートウェイとネットワーク中の通信装置１０の間で行われる場合を例として説明したが、他の通信装置１０間でデータフレームの送受信が行われるシステムでも第４の実施形態を使用することもできる。この場合、転送処理部２５は、転送処理の際にデータフレームのグローバル送信元をチェックする。グローバル送信元がブロードキャストフレームに含まれるデータの配信元である場合、転送処理部２５は、データフレームのローカル送信元を中継情報４７に記録する。
【０１５６】
アプリケーション処理部２６は、ブロードキャストの対象となるデータと共に、ブロードキャストフレームの受信を制御部３１に通知する信号を制御部３１に出力しても良い。この場合、制御部３１は、ブロードキャストフレームの受信を通知する信号が入力されたことをトリガとして、配置状態特定部３２に配置状態の特定を要求する。
【０１５７】
また、通信装置１０は、通信装置１０が保持するリンクテーブル４１に含まれているエントリ数を、Ｈｅｌｌｏフレーム中のＨｅｌｌｏヘッダの代わりに、Ｈｅｌｌｏメッセージヘッダに含めることもできる。Ｈｅｌｌｏヘッダにリンクテーブル４１のエントリ数が含まれる場合、各Ｈａｌｌｏヘッダにエントリ数を記録する領域が含まれないため、Ｈｅｌｌｏフレームの大きさを小さくすることができる。
【０１５８】
第２〜第４の実施形態では、ブロードキャストフレームの配信元がゲートウェイである場合を例として説明したが、ブロードキャストフレームの配信元はゲートウェイに限られない。ゲートウェイ以外の装置がブロードキャストフレームの配信元となる場合、ＧＷ宛フレーム受信記録４５の代わりに、ブロードキャストフレームの配信元となる通信装置１０の識別子に対応付けて、配信元宛のフレームの転送実績などの情報が記録される。
【符号の説明】
【０１５９】
１０  通信装置
１１  送信部
１２  受信部
２０  フレーム処理部
２１  Ｈｅｌｌｏフレーム生成部
２２  ＦＩＤ管理部
２３  フレーム振り分け部
２４  Ｈｅｌｌｏフレーム処理部
２５  転送処理部
２６  アプリケーション処理部
３０  ブロードキャスト処理部
３１  制御部
３２  配置状態特定部
３３  乗数判定処理部
３４  設定部
３５  判定部
４０  記憶部
４１  リンクテーブル
４２  ルーティングテーブル
４３  回数情報
４５、４６  ＧＷ宛フレーム受信記録
４７  中継情報
１００  プロセッサ
１０１  バス
１０２  ＰＨＹチップ
１０４  タイマＩＣ
１０６  ＤＲＡＭ
１０７  フラッシュメモリ
１０８  無線モジュール
【図１】
2015097348.tif 000003
【図２】
2015097348.tif 000004
【図３】
2015097348.tif 000005
【図４】
2015097348.tif 000006
【図５】
2015097348.tif 000007
【図６】
2015097348.tif 000008
【図７】
2015097348.tif 000009
【図８】
2015097348.tif 000010
【図９】
2015097348.tif 000011
【図１０】
2015097348.tif 000012
【図１１】
2015097348.tif 000013
【図１２】
2015097348.tif 000014
【図１３】
2015097348.tif 000015
【図１４】
2015097348.tif 000016
【図１５】
2015097348.tif 000017
【図１６】
2015097348.tif 000018
【図１７】
2015097348.tif 000019
【図１８】
2015097348.tif 000020
【図１９】
2015097348.tif 000021
【図２０】
2015097348.tif 000022
【図２１】
2015097348.tif 000023
【図２２】
2015097348.tif 000024
【図２３】
2015097348.tif 000025
【図２４】
2015097348.tif 000026
【図２５】
2015097348.tif 000027
【図２６】
2015097348.tif 000028
【図２７】
2015097348.tif 000029
【図２８】
2015097348.tif 000030
【図２９】
2015097348.tif 000031