IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝エネルギーシステムズ株式会社の特許一覧

特開2024-106040通信装置、通信方法、およびプログラム
<>
  • 特開-通信装置、通信方法、およびプログラム 図1
  • 特開-通信装置、通信方法、およびプログラム 図2
  • 特開-通信装置、通信方法、およびプログラム 図3
  • 特開-通信装置、通信方法、およびプログラム 図4
  • 特開-通信装置、通信方法、およびプログラム 図5
  • 特開-通信装置、通信方法、およびプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024106040
(43)【公開日】2024-08-07
(54)【発明の名称】通信装置、通信方法、およびプログラム
(51)【国際特許分類】
   H04W 40/24 20090101AFI20240731BHJP
   H04W 40/12 20090101ALI20240731BHJP
   H04W 84/18 20090101ALI20240731BHJP
【FI】
H04W40/24
H04W40/12
H04W84/18
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023010101
(22)【出願日】2023-01-26
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】317015294
【氏名又は名称】東芝エネルギーシステムズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】小堺 康之
(72)【発明者】
【氏名】小林 崇裕
(72)【発明者】
【氏名】米山 清二郎
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA21
5K067DD11
5K067DD45
5K067EE02
5K067EE25
(57)【要約】      (修正有)
【課題】近隣ノードに関する情報を保持するメモリリソースを枯渇し、新たな近隣ノードを検知した場合に、短い時間でマルチホップネットワークを安定化させる通信装置、通信方法およびプログラムを提供する。
【解決手段】通信装置は、近隣ノードとの通信品質を含む近隣情報を含むネイバーテーブルを記憶する記憶部105と、近隣情報に基づいて、近隣ノードの中から親ノードを選択する経路制御部と、テストフレームを送信し、近隣ノードとの間の通信品質を測定し、近隣情報を更新するテストフレーム送受信部と、新規の近隣ノードから広報フレームを受信し、広報フレームの送信元の新規の近隣ノードの近隣情報がテーブルに存在せず、テーブルに空きが無く、かつ、テーブルに近隣情報が記憶された近隣ノードのうち通信品質を測定済みの近隣ノードが所定数未満である場合、新規の近隣ノードの近隣情報をテーブルに登録しない広報フレーム受信部と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
近隣ノードとの通信品質を含む近隣情報を含むネイバーテーブルを記憶する記憶部と、
前記ネイバーテーブルが含む前記近隣情報に基づいて、前記近隣ノードの中から親ノードを選択する経路制御部と、
前記近隣ノードにテストフレームを送信して、当該近隣ノードとの間の通信品質を測定し、測定した前記通信品質に基づいて、前記近隣情報を更新するテストフレーム送受信部と、
新規の前記近隣ノードから広報フレームを受信し、当該広報フレームの送信元の前記新規の近隣ノードの前記近隣情報が前記ネイバーテーブルに存在せず、前記ネイバーテーブルに空きが無く、かつ、前記ネイバーテーブルに前記近隣情報が記憶された前記近隣ノードのうち前記通信品質を測定済みの前記近隣ノードが所定数未満である場合、前記新規の近隣ノードの前記近隣情報を前記ネイバーテーブルに登録しない広報フレーム受信部と、
を備える通信装置。
【請求項2】
前記広報フレーム受信部は、
前記新規の近隣ノードの前記近隣情報が前記ネイバーテーブルに存在せず、前記ネイバーテーブルに空きが無く、かつ、前記ネイバーテーブルに前記近隣情報が記憶された前記近隣ノードのうち前記通信品質を測定済みの前記近隣ノードが前記所定数以上である場合、
前記ネイバーテーブルに前記近隣情報が記憶されている前記近隣ノードとの前記通信品質と、集約装置から当該近隣ノードまでのパスコストと、を足し合わせた第1コストを算出し、
前記集約装置から前記新規の近隣ノードまでのパスコストと、予め設定されたパスコストと、を足し合わせた第2コストを算出し、
前記第1コストが最も大きい前記近隣ノードを削除候補の近隣ノードに設定し、前記第2コストが、前記削除候補の近隣ノードの前記第1コストより大きい場合、前記新規の近隣ノードを前記削除候補の近隣ノードに設定し直し、
前記削除候補の近隣ノードの前記近隣情報が前記ネイバーテーブルに存在する場合、前記削除候補の近隣ノードの前記近隣情報を前記ネイバーテーブルから削除し、かつ前記新規の近隣ノードの前記近隣情報を前記ネイバーテーブルに登録する、請求項1に記載の通信装置。
【請求項3】
前記テストフレーム送受信部は、前記近隣ノードからのテストフレームの受信電波レベル、または前記近隣ノードに届いた前記通信装置からのテストフレームの受信電波レベルを前記通信品質として測定し、
前記広報フレーム受信部は、前記ネイバーテーブルに前記近隣情報が含まれる前記近隣ノード、および前記新規の近隣ノードのうち、前記受信電波レベルが最も低い前記近隣ノードの前記近隣情報を前記ネイバーテーブルから削除する、請求項1または2に記載の通信装置。
【請求項4】
前記広報フレーム受信部は、前記ネイバーテーブルに前記近隣情報が登録された前記近隣ノードのうち前記受信電波レベルが最も低い前記近隣ノードを削除候補の近隣ノードに設定し、前記新規の近隣ノードの前記受信電波レベルが前記削除候補の近隣ノードの前記受信電波レベルより低い場合、前記新規の近隣ノードを前記削除候補の近隣ノードに設定し直し、前記削除候補の近隣ノードの前記近隣情報を前記ネイバーテーブルから削除する、請求項3に記載の通信装置。
【請求項5】
通信装置で実行される通信方法であって、
経路制御部が、ネイバーテーブルに含まれかつ近隣ノードとの通信品質を含む近隣情報に基づいて、前記近隣ノードの中から親ノードを選択する工程と、
テストフレーム送受信部が、前記近隣ノードにテストフレームを送信して、当該近隣ノードとの間の通信品質を測定し、測定した前記通信品質に基づいて、前記近隣情報を更新する工程と、
広報フレーム受信部が、新規の前記近隣ノードから広報フレームを受信し、当該広報フレームの送信元の前記新規の近隣ノードの前記近隣情報が前記ネイバーテーブルに存在せず、前記ネイバーテーブルに空きが無く、かつ、前記ネイバーテーブルに前記近隣情報が記憶された前記近隣ノードのうち前記通信品質を測定済みの前記近隣ノードが所定数未満である場合、前記新規の近隣ノードの前記近隣情報を前記ネイバーテーブルに登録しない工程と、
を含む通信方法。
【請求項6】
コンピュータを、
ネイバーテーブルに含まれかつ近隣ノードとの通信品質を含む近隣情報に基づいて、前記近隣ノードの中から親ノードを選択する経路制御部と、
前記近隣ノードにテストフレームを送信して、当該近隣ノードとの間の通信品質を測定し、測定した前記通信品質に基づいて、前記近隣情報を更新するテストフレーム送受信部と、
新規の前記近隣ノードから広報フレームを受信し、当該広報フレームの送信元の前記新規の近隣ノードの前記近隣情報が前記ネイバーテーブルに存在せず、前記ネイバーテーブルに空きが無く、かつ、前記ネイバーテーブルに前記近隣情報が記憶された前記近隣ノードのうち前記通信品質を測定済みの前記近隣ノードが所定数未満である場合、前記新規の近隣ノードの前記近隣情報を前記ネイバーテーブルに登録しない広報フレーム受信部と、
して機能させるためのプログラム。



【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、通信装置、通信方法、およびプログラムに関する。
【背景技術】
【0002】
木構造(DAG:Directed Acyclic Graph)の通信経路(所謂、メッシュネットワーク)を自動構成する技術、各ノード(通信装置の一例)がデータをバケツリレーする技術、通信品質が良くかつ集約装置までのポップ数が少なくなる親ノードを選択して自動的に切り替える技術等が開示されている。ここで、集約装置は、ボーダールータ、コンセントレータ、ルートノード等とも呼ばれる。
【0003】
また、親ノードを選択するために、近隣ノードに関する情報を収集し、当該収集した情報を用いて親ノードを選択するアルゴリズムが開示されている。ここで、近隣ノードに関する情報としては、受信電波レベル(RSSI:Received Signal Strength Indicator、LQI:Link Quality Indicator)、フレーム到達の割合を示す値であるETX、パスコスト(または、Rank値)等であっても良い。
【0004】
受信電波レベルは、自ノードから近隣ノードへ届いたフレームの受信レベルである。または、受信電波レベルは、近隣ノードから自ノードへ届いたフレームの受信レベルである。ETXは、自ノードから近隣ノードへ送信したデータフレーム数と、自ノードに到着したデータフレーム数と、から求めた値である。パスコストは、例えば、集約装置から近隣ノードまでのホップ数と、固定値と、を乗算した値である。また、パスコストは、集約装置から近隣ノードまでの通信品質値の累計であっても良く、集約装置から近隣ノードまでのホップ数と、固定値と、を乗算した値に、さらに集約装置から近隣ノードまでの通信品質値の累計を加えた値であっても良い。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第6164001号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術においては、通信装置のメモリ量には限りがあるため、全ての近隣ノードに関する情報を記憶できない場合がある。また、近隣ノードに関する情報を保持するメモリリソースが枯渇しかつ新たな近隣ノードを検知した場合における当該新たな近隣ノードに関する情報の管理アルゴリズムが知られていない。具体的には、新たな近隣ノードを検知した場合、記憶しているいずれかの近隣ノードに関する情報を破棄するか、または、新たな近隣ノードに関する情報を記憶せずに破棄するか、を管理するアルゴリズムが知られていない。また、短い時間でマルチホップネットワークを安定化させるための情報管理方法が知られていない。例えば、特許文献1記載の技術では、単純に先勝ちしており、メモリリソースが枯渇していた場合、既存の近隣ノードに関する情報を追い出さず、新規に検知した近隣ノードに関する情報を保持しない。
【0007】
本発明は、上記に鑑みてなされたものであって、近隣ノードに関する情報を保持するメモリリソースを枯渇し、かつ新たな近隣ノードを検知した場合に、短い時間でマルチホップネットワークを安定化させることができる通信装置、通信方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
実施形態の通信装置は、記憶部と、経路制御部と、テストフレーム送受信部と、広報フレーム受信部と、を備える。記憶部は、近隣ノードとの通信品質を含む近隣情報を含むネイバーテーブルを記憶する。経路制御部は、ネイバーテーブルが含む近隣情報に基づいて、近隣ノードの中から親ノードを選択する。テストフレーム送受信部は、近隣ノードにテストフレームを送信して、当該近隣ノードとの間の通信品質を測定し、測定した通信品質に基づいて、近隣情報を更新する。広報フレーム受信部は、新規の近隣ノードから広報フレームを受信し、当該広報フレームの送信元の新規の近隣ノードの近隣情報がネイバーテーブルに存在せず、ネイバーテーブルに空きが無く、かつ、ネイバーテーブルに近隣情報が記憶された近隣ノードのうち通信品質を測定済みの近隣ノードが所定数未満である場合、新規の近隣ノードの近隣情報をネイバーテーブルに登録しない。
【図面の簡単な説明】
【0009】
図1図1は、第1の実施形態にかかる通信装置の構成の一例を示すブロック図である。
図2図2は、第1の実施形態にかかる通信装置が有するネイバーテーブルの一例を説明するための図である。
図3図3は、第1の実施形態にかかる通信装置における近隣ノードの近隣情報の登録処理の流れの一例を示すフローチャートである。
図4図4は、第1の実施形態にかかる通信装置における削除候補の近隣ノードの探索処理の流れの一例を示すフローチャートである。
図5図5は、第2の実施形態にかかる通信装置における近隣ノードの近隣情報の登録処理の流れの一例を示すフローチャートである。
図6図6は、第2の実施形態にかかる通信装置における受信電波レベルが最悪の近隣ノードを探索する処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、添付の図面を参照して、本実施形態にかかる通信装置、通信方法、およびプログラムの一例について説明する。
【0011】
(第1の実施形態)
図1は、第1の実施形態にかかる通信装置の構成の一例を示すブロック図である。本実施形態にかかる通信装置1は、図1に示すように、経路制御部101、広報フレーム送信部102、広報フレーム受信部103、テストフレーム送受信部104、記憶部105、および無線通信インタフェース106を有する。
【0012】
記憶部105は、ネイバーテーブルを記憶する記憶部の一例である。ここで、ネイバーテーブルは、近隣ノードとの通信品質等、近隣ノードに関する近隣情報を含む管理テーブルである。無線通信インタフェース106は、通信装置1(自装置または自ノードという)と、近隣ノード等の外部装置と、の無線通信を司る。
【0013】
経路制御部101は、ネイバーテーブルが含む近隣情報に基づいて、近隣ノードの中から親ノードを選択する経路制御部の一例である。本実施形態では、経路制御部101は、近隣情報が更新されたことをトリガにして、親ノードを選択する。例えば、経路制御部101は、RFC6552またはRFC6719等に従って、親ノードを選択する。
【0014】
テストフレーム送受信部104は、近隣ノードにテストフレームを送信する。ここで、テストフレームは、近隣ノードと自ノードとの間の通信品質を計測するためのフレームである。また、テストフレームは、サーバや他のノードとのデータ通信のためのユニキャストフレームであっても良い。
【0015】
本実施形態では、テストフレーム送受信部104は、近隣ノードと自ノードとの間の通信品質を計測するために、少なくとも、ネイバーテーブルに近隣情報が保持される近隣ノードに対してテストフレームを送信する。テストフレームを送信するタイミングは、例えば、定期的に送信しても良いし、Trickle Timer(RFC6206)に従ったタイミングであっても良い。
【0016】
また、テストフレーム送受信部104は、近隣ノード等の他のノードからテストフレームを含む任意のフレームを受信した場合に、ネイバーテーブルに含まれる近隣情報のうち、当該テストフレームの送信元の近隣ノードの近隣情報(例えば、受信電波レベル)を更新する。すなわち、テストフレーム送受信部104は、近隣ノードにテストフレームを送信して、当該近隣ノードとの間の通信品質を測定し、測定した通信品質に基づいて、近隣情報を更新するテストフレーム送受信部の一例として機能する。本実施形態では、テストフレーム送受信部104は、テストフレーム送信後のACK受信時、またはACK待ちのタイムアウト時に、テストフレームの送信元の近隣ノードの近隣情報を更新する。
【0017】
広報フレーム送信部102は、集約装置から自ノードまでのパスコストを含む広報フレームを近隣ノードに送信する。ここで、広報フレームは、集約装置から自ノードまでのパスコストを含むデータであっても良い。例えば、広報フレームは、RFC6550のRPLに記載のDIOであっても良いし、IEEE802.15.4、Bluetooth(登録商標)、無線LAN(Local Area Network)等のビーコンであっても良い。本実施形態では、広報フレーム送信部102は、任意のタイミングで広報フレームを送信しても良い。
【0018】
広報フレーム受信部103は、近隣ノードから受信する広報フレームを処理する。具体的には、広報フレーム受信部103は、新規の近隣ノードから広報フレームを受信する。また、広報フレーム受信部103は、当該受信した広報フレームの送信元の新規の近隣ノードの近隣情報がネイバーテーブルに存在せず、ネイバーテーブルに空きが無く、かつ、ネイバーテーブルに近隣情報が記憶された近隣ノードのうち通信品質を測定済みの近隣ノードが所定数n未満である場合、新規の近隣ノードの近隣情報をネイバーテーブルに登録しない。ここで、所定数nは、予め設定された数である。これにより、通信品質を測定済みの近隣ノードの数が所定数nに達するまで、ネイバーテーブルから近隣情報を削除しない。その結果、通信品質を測定済みの近隣ノードを増やしやすくなるためネットワーク安定化までの時間を短くできる。
【0019】
また、広報フレーム受信部103は、新規の近隣ノードの近隣情報がネイバーテーブルに存在せず、ネイバーテーブルに空きが無く、かつ、ネイバーテーブルに近隣情報が記憶された近隣ノードのうち通信品質を測定済みの近隣ノードが所定数n以上である場合、第1コスト、および第2コストを算出する。ここで、第1コストは、ネイバーテーブルに近隣情報が記憶されている近隣ノードとの通信品質と、集約装置から近隣ノードまでのパスコストと、を足し合わせたコストである。また、第2コストは、集約装置から新規の近隣ノードまでのパスコストと、予め設定されたパスコストと、を足し合わせたコストである。
【0020】
そして、広報フレーム受信部103は、第1コストが最も大きい近隣ノードを削除候補の近隣ノードに設定し、第2コストが、削除候補の近隣ノードの第1コストより大きい場合、新規の近隣ノードを削除候補の近隣ノードに設定し直す。さらに、広報フレーム受信部103は、削除候補の近隣ノードの近隣情報がネイバーテーブルに存在する場合、削除候補の近隣ノードの近隣情報をネイバーテーブルから削除し、かつ新規の近隣ノードの近隣情報をネイバーテーブルに登録する、これにより、集約装置へのパケット到達率を良くする近隣ノードをネイバーテーブルに残すことができるので、近隣情報を保持するメモリリソースを枯渇し、かつ新たな近隣ノードを検知した場合に、短い時間でマルチホップネットワークを安定化させることができる。
【0021】
図2は、第1の実施形態にかかる通信装置が有するネイバーテーブルの一例を説明するための図である。本実施形態では、記憶部105に記憶されるネイバーテーブルは、図2に示すように、近隣ノードアドレスと、パスコスト、第1受信電波レベル、第2受信電波レベル、第1通信品質値、第2通信品質値、通信品質値測定済みステータス等を含む。
【0022】
近隣ノードアドレスは、ネイバーテーブルに登録された近隣ノードを識別する情報であり、例えば、近隣ノードのEUI64であっても良い。パスコストは、集約装置から近隣ノードまでのパスコストであり、その値が小さい程、集約装置までのパケット到達確率が良いと推定される。ここで、集約装置は、ボーダールータ、コンセントレータ、ルートノードであっても良い。例えば、パスコストは、RFC6550、RFC6552、またはRFC6719で定義されるRankであっても良いし、集約装置から近隣ノードまでの経路上のポップ数であっても良いし、集約装置から近隣ノードまでの経路上の通信品質の累計であっても良い。
【0023】
第1受信電波レベルは、自ノードでの受信電波レベルである。具体的には、第1受信電波レベルは、近隣ノードから自ノードに届いた任意のフレームの受信電波レベルである。第2受信電波レベルは、近隣ノードに届いた自ノードからのテストフレームの受信電波レベルである。
【0024】
第1,2受信電波レベルは、その値が大きい程、近隣ノードとの通信品質が良いと推定される。第1受信電波レベルは、近隣ノードから自ノードに届いた任意のフレームの受信電波レベルの移動平均値であっても良い。第2受信電波レベルは、自ノードから近隣ノードに届いたテストフレームの受信レベルの移動平均値であってもよい。第2受信電波レベルの値は、例えば近隣ノードから送信されるフレームに記載される。第1,2受信電波レベルは、第3受信電波レベルの計算に使用される。第3受信電波レベルは、第1受信電波レベルと同値でも良い。また、第3受信電波レベルは、第1受信電波レベルと第2受信電波レベルのうち、小さい方の値であっても良い。第3受信電波レベルは、自ノードと近隣ノードとの通信時の受信電波レベルとして使用される。
【0025】
第1通信品質値は、近隣ノードへ送信したテストフレームの通信品質値である。第2通信品質値は、近隣ノードから自ノードへ送信したテストフレームの通信品質値である。具体的には、第1,2通信品質値は、テストフレームのパケットが到達する可能性を表す数値であっても良く、その値が小さい程、自ノードと近隣ノードとの間の通信品質が良いと推定される。
【0026】
例えば、第1,2通信品質値は、下記の式(1)で求めても良い。
第1,2通信品質値=MinCost×近隣ノードからの到達確認フレーム(ACK)の受信数÷近隣ノードへのテストフレームの送信数・・・(1)
または、第1,2通信品質値は、上記の式(1)で求めた値の移動平均値であっても良い。
【0027】
通信品質測定済ステータスは、近隣ノードとの通信品質を測定済みか否かを表すステータスである。例えば、mを1以上の自然数とし、ネイバーテーブルに近隣ノードの近隣情報を登録してから当該近隣ノードへテストフレームの送信を試行した回数がm回に到達したとき、テストフレーム送受信部104は、当該近隣ノードの通信品質測定済ステータスをTrueに変更し、広報フレーム受信部103が近隣ノードを新規に登録するとき、登録する近隣ノードの通信品質測定済ステータスをFalseに初期化する。なお、テストフレーム送受信部104は、ネイバーテーブルに近隣ノードの近隣情報を登録してから当該近隣ノードへテストフレームを送信した回数がm回に到達し、かつ当該近隣ノードから第2通信品質値が記載されたフレームを受信したとき、当該近隣ノードの通信品質測定済ステータスをTrueに変更しても良い。
【0028】
図3は、第1の実施形態にかかる通信装置における近隣ノードの近隣情報の登録処理の流れの一例を示すフローチャートである。近隣ノードから広報フレームを受信すると、広報フレーム受信部103は、広報フレームの送信元の近隣ノードの近隣情報がネイバーテーブルに存在するか否かを判断する(ステップS301)。ネイバーテーブルに送信元の近隣ノードの近隣情報が存在する場合(ステップS301:Yes)、広報フレーム受信部103は、ネイバーテーブル内の送信元の近隣ノードの近隣情報を更新して処理を終了する(ステップS302)。例えば、広報フレーム受信部103は、第1受信電波レベルを更新する。
【0029】
ネイバーテーブルに送信元の近隣ノードの近隣情報が存在しない場合(ステップS301:No)、広報フレーム受信部103は、ネイバーテーブルに空きがあるか否かを判断する(ステップS303)。ここで、ネイバーテーブルに空きがあるとは、予め設定された数よりも近隣ノードの近隣情報の数が少ないことを示す。そして、ネイバーテーブルに空きがある場合(ステップS303:Yes)、広報フレーム受信部103は、ネイバーテーブルに、送信元の近隣ノード(すなわち、新規の近隣ノード)の近隣情報を追加(登録)する(ステップS304)。
【0030】
ネイバーテーブルに空きが無い場合(ステップS303:No)、広報フレーム受信部103は、ネイバーテーブル内の通信品質値測定済みステータスがTrueである近隣ノードの数が所定数n未満であるか否かを判断する(ステップS305)。通信品質値測定済みステータスがTrueである近隣ノードの数が所定数n未満である場合(ステップS305:Yes)、広報フレーム受信部103は、新規の近隣ノードの近隣情報をネイバーテーブルに登録しない。これにより、通信品質を測定済みの近隣ノードを増やし易くすることができるので、ネットワークの安定化までの時間を短くすることができる。
【0031】
通信品質値測定済みステータスがTrueである近隣ノードの数が所定数n以上である場合(ステップS305:No)、広報フレーム受信部103は、近隣ノードのうち通信品質が最も悪い近隣ノード(以下、削除候補の近隣ノードという)を探索する(ステップS306)。次いで、削除候補の近隣ノードの近隣情報がネイバーテーブルに存在するか否かを判断する(ステップS307)。削除候補の近隣ノードの近隣情報がネイバーテーブルに存在しない場合(ステップS307:No)、すなわち、新規の近隣ノードが削除候補の近隣ノードである場合、広報フレーム受信部103は、ネイバーテーブルから近隣情報を削除せず、また、新規の近隣ノードの近隣情報をネイバーテーブルに登録しない。
【0032】
また、削除候補の近隣ノードの近隣情報がネイバーテーブルに存在する場合(ステップS307:Yes)、広報フレーム受信部103は、削除候補の近隣ノードの近隣情報をネイバーテーブルから削除するとともに(ステップS308)、新規の近隣ノードの近隣情報をネイバーテーブルに登録する(ステップS309)。これにより、通信品質が最悪と推定される近隣ノードを優先して削除することができるため、自ノードとの間の通信品質が良い近隣ノードをネイバーテーブルに残すことができるため、マルチホップネットワーク安定化までの時間を短くできる。
【0033】
図4は、第1の実施形態にかかる通信装置における削除候補の近隣ノードの探索処理の流れの一例を示すフローチャートである。まず、広報フレーム受信部103は、削除候補の近隣ノードをnilに設定し、かつWorst Costを0に設定する(ステップS401)。ここで、Worst Costは、削除候補の近隣ノードのパスコストである。
【0034】
広報フレーム受信部103は、ネイバーテーブル内のすべての近隣ノードそれぞれ(近隣ノードxとする)について、ステップS402からステップS406までを実施する。広報フレーム受信部103は、ネイバーテーブルに近隣情報が登録されている近隣ノードxが、親ノードであるか否かを判断する(ステップS402)。近隣ノードxが親ノードである場合(ステップS402:Yes)、広報フレーム受信部103は、近隣ノードxを削除候補の近隣ノードから外す。近隣ノードxが親ノードでない場合(ステップS402:No)、広報フレーム受信部103は、近隣ノードxへテストフレームが未送信であるか否かを判断する(ステップS403)。近隣ノードxへテストフレームが未送信の場合(ステップS403:Yes)、広報フレーム受信部103は、近隣ノードxを削除候補の近隣ノードから外す。これにより、通信品質値を未計測の近隣ノードがネイバーテーブルから追い出され難くすることができる。これにより、通信品質が良い可能性のある近隣ノードがネイバーテーブルに残りやすいため、マルチホップネットワークの安定化までの時間を短くすることができる。
【0035】
近隣ノードxへテストフレームを送信済みである場合(ステップS403:No)、広報フレーム受信部103は、集約装置から近隣ノードxまでのパスコストと、近隣ノードxとの通信品質値と、を足し合わせた値を、近隣ノードxのcostとして算出する(ステップS404)。ここで、集約装置から近隣ノードxまでのパスコストは、広報フレームに記載された値であっても良い。次いで、広報フレーム受信部103は、算出したcostが、Worst Costより大きいか否かを判断する(ステップS405)。
【0036】
算出したcostがWorst Cost以下である場合(ステップS405:No)、広報フレーム受信部103は、近隣ノードxを削除候補の近隣ノードから外す。一方、算出したcostがWorst Costより大きい場合(ステップS405:Yes)、広報フレーム受信部103は、算出したcostをWorst Costに設定し、かつ近隣ノードxを削除候補の近隣ノードに設定する(ステップS406)そして、広報フレーム受信部103は、ステップS402~ステップS406の処理を、ネイバーテーブル内の全ての近隣ノードについて繰り返す。
【0037】
ネイバーテーブル内の全ての近隣ノードについてステップS402~ステップS406の処理が繰り返されると、広報フレーム受信部103は、集約装置から新規の近隣ノードまでのパスコストと、予め設定されたMinCostと、を足し合わせたcostを算出する(ステップS407)。これにより、新規の近隣ノードと、ネイバーテーブル内の近隣ノードと、を比較可能となる。ここで、MinCostは、ネットワークの安定が最良時の通信品質値であり、予め設定されている固定値であっても良い。
【0038】
次いで、広報フレーム受信部103は、削除候補の近隣ノードがnilか、またはステップS407で算出したcostがWorst Costより大きいか否かを判断する(ステップS408)。削除候補の近隣ノードがnilでなく、かつステップS307で算出したcostがWorst Cost以下である場合(ステップS408:No)、広報フレーム受信部103は、新規の近隣ノードを削除候補の近隣ノードに設定せずに、削除候補の近隣ノードを返却する(ステップS409)。一方、削除候補の近隣ノードがnilか、またはステップS407で算出したcostがWorst Costより大きい場合(ステップS408:Yes)、広報フレーム受信部103は、新規の近隣ノードを削除候補の近隣ノードに設定し(ステップS410)、削除候補の近隣ノードを返却する(ステップS409)。これにより、集約装置へのパケット到達率を良くする近隣ノードをネイバーテーブルに残すことができる。
【0039】
このように、第1の実施形態にかかる通信装置1によれば、ネイバーテーブルに近隣情報が登録された近隣ノードのうち通信品質が悪い近隣ノードを優先的に削除し、かつ通信品質を測定済みの近隣ノードの数が所定数nに達するまで、ネイバーテーブルから近隣情報を削除しない。その結果、近隣情報を保持するメモリリソースを枯渇し、かつ新たな近隣ノードを検知した場合に、短い時間でマルチホップネットワークを安定化させることができる。
【0040】
(第2の実施形態)
本実施形態は、第3受信電波レベルに基づいて、ネイバーテーブルから、通信品質が悪い近隣ノードを削除する例である。以下の説明では、第1の実施形態と同様の構成については説明を省略する。
【0041】
本実施形態では、広報フレーム受信部103は、ネイバーテーブルに近隣情報が含まれる近隣ノード、および新規の近隣ノードのうち、第3受信電波レベルが最も低い近隣ノードの近隣情報をネイバーテーブルから削除する。具体的には、広報フレーム受信部103は、ネイバーテーブルに近隣情報が登録された近隣ノードのうち第3受信電波レベルが最も低い近隣ノードを削除候補の近隣ノードに設定する。次いで、広報フレーム受信部103は、新規の近隣ノードの第3受信電波レベルが削除候補の近隣ノードの第3受信電波レベルより低い場合、新規の近隣ノードを削除候補の近隣ノードに設定し直し、削除候補の近隣情報をネイバーテーブルから削除する。これにより、通信装置1から遠すぎるノードを早めに親ノードの選択肢から外すことができるので、ネットワークの安定化までの時間を短くすることができる。
【0042】
図5は、第2の実施形態にかかる通信装置における近隣ノードの近隣情報の登録処理の流れの一例を示すフローチャートである。本実施形態では、ネイバーテーブルに空きが無い場合(ステップS303:No)、広報フレーム受信部103は、ネイバーテーブルに近隣情報が含まれる近隣ノード、および新規の近隣ノードのうち、第3受信電波レベルが最も低い近隣ノード(削除候補の近隣ノード)を探索する(ステップS501)。次いで、広報フレーム受信部103は、削除候補の近隣ノードが見つかったか否かを判断する(ステップS502)。
【0043】
削除候補の近隣ノードが見つかった場合(ステップS502:Yes)、広報フレーム受信部103は、ステップS307に進み、削除候補の近隣ノードの近隣情報がネイバーテーブルに存在するか否かを判断する。これにより、通信装置1から遠すぎるノードを早めに親ノードの選択肢から外すことができるので、ネットワークの安定化までの時間を短くすることができる。一方、削除候補の近隣ノードが見つからなかった場合(ステップS502:No)、広報フレーム受信部103は、ステップS305に進み、ネイバーテーブルの通信品質値測定済みステータスが測定済みの近隣ノードの数が所定数n未満であるか否かを判断する。
【0044】
図6は、第2の実施形態にかかる通信装置における受信電波レベルが最悪の近隣ノードを探索する処理の流れの一例を示すフローチャートである。まず、広報フレーム受信部103は、削除候補の近隣ノードをnilに設定し、かつWorst Levelを0に設定する(ステップS601)。ここで、Worst Levelは、削除候補の近隣ノードの第3受信電波レベルである。
【0045】
広報フレーム受信部103は、ステップS602~ステップS606に示す処理を、ネイバーテーブル内の全ての近隣ノードそれぞれ(近隣ノードxとする)について繰り返す。広報フレーム受信部103は、ネイバーテーブルに近隣情報が登録される近隣ノードとの通信時の第3受信電波レベルが十分に強いか否かを判断する(ステップS602)。ここで、第3受信電波レベルが十分に強いとは、予め設定されている受信電波レベルの閾値以上であることであっても良い。または、第3受信電波レベルが十分に強いとは、近隣ノードとの通信時の第3受信電波レベルが、少なくとも1度、閾値B以上であり、それ以降、閾値Bを下回らないことであっても良い。
【0046】
近隣ノードxとの通信時の第3受信電波レベルが十分に強い場合(ステップS602:Yes)、広報フレーム受信部103は、当該近隣ノードxを削除候補の近隣ノードから外す。第3受信電波レベルが十分に強くない場合(ステップS602:No)、広報フレーム受信部103は、近隣ノードxが親ノードか否かを判断する(ステップS603)。近隣ノードxが親ノードである場合(ステップS603:Yes)、広報フレーム受信部103は、近隣ノードxを削除候補の近隣ノードから外す。
【0047】
近隣ノードxが親ノードでない場合(ステップS603:No)、広報フレーム受信部103は、近隣ノードxとの通信時の第3受信電波レベルをlevelに設定する(ステップS604)。次いで、広報フレーム受信部103は、設定したlevelがWorst Levelより低いか否かを判断する(ステップS605)。設定したlevelがWorst Level以上である場合(ステップS605:No)、広報フレーム受信部103は、近隣ノードxを削除候補の近隣ノードから外す。一方、設定したlevelがWorst Levelより低い場合(ステップS605:Yes)、広報フレーム受信部103は、近隣ノードxとの通信時の第3受信電波レベルをWorst Levelに設定し、かつ近隣ノードxを削除候補の近隣ノードに設定する(ステップS606)。
【0048】
その後、広報フレーム受信部103は、削除候補の近隣ノードがnilであるか否かを判断する(ステップS607)。削除候補の近隣ノードがnilの場合(ステップS607:Yes)、広報フレーム受信部103は、ステップS602と同様に、新規の近隣ノードとの通信時の第3受信電波レベルが十分に強いか否かを判断する(ステップS608)。新規の近隣ノードとの通信時の第3受信電波レベルが十分に強い場合(ステップS608:Yes)、広報フレーム受信部103は、削除候補の近隣ノードが無いことを返却する(ステップS609)。
【0049】
新規の近隣ノードとの通信時の第3受信電波レベルが十分に強くない場合(ステップS608:No)、広報フレーム受信部103は、新規の近隣ノードを削除候補の近隣ノードに設定し(ステップS610)、新規の近隣ノードを削除候補の近隣ノードとして返却する(ステップS609)。
【0050】
また、削除候補の近隣ノードがnilでない場合(ステップS607:No)、広報フレーム受信部103は、新規の近隣ノードとの通信時の第3受信電波レベルがWorst Levelより低いか否かを判断する(ステップS611)。新規の近隣ノードとの通信時の第3受信電波レベルがWorst Level以上である場合(ステップS611:No)、広報フレーム受信部103は、ステップS602からステップS606で設定した削除候補の近隣ノードを返却する(ステップS609)。
【0051】
新規の近隣ノードとの通信時の第3受信電波レベルがWorst Levelより低い場合(ステップS611:Yes)、広報フレーム受信部103は、新規の近隣ノードを削除候補の近隣ノードに設定し(ステップS610)、当該削除候補の近隣ノードを返却する(ステップS609)。
【0052】
このように、第2の実施形態にかかる通信装置1によれば、通信装置1から遠すぎる等の理由で受信電波レベルが低い近隣ノードを早めに親ノードの選択肢から外すことができるので、ネットワークの安定化までの時間を短くすることができる。
【0053】
以上説明したとおり、第1から第2の実施形態によれば、近隣情報を保持するメモリリソースが枯渇し、かつ新たな近隣ノードを検知した場合に、短い時間でマルチホップネットワークを安定化させることができる。
【0054】
なお、本実施形態の通信装置1で実行されるプログラムは、ROM(Read Only Memory)等に予め組み込まれて提供される。本実施形態の通信装置1で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
【0055】
さらに、本実施形態の通信装置1で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の通信装置1で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【0056】
本実施形態の通信装置1で実行されるプログラムは、上述した各部(経路制御部101、広報フレーム送信部102、広報フレーム受信部103、テストフレーム送受信部104、無線通信インタフェース106)を含むモジュール構成としても良く、実際のハードウェアとしてはCPU(Central Processing Unit)等のプロセッサの一例が上記ROMからプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、経路制御部101、広報フレーム送信部102、広報フレーム受信部103、テストフレーム送受信部104、無線通信インタフェース106が主記憶装置上に生成されるように構成されても良い。
【0057】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0058】
1 通信装置
101 経路制御部
102 広報フレーム送信部
103 広報フレーム受信部
104 テストフレーム送受信部
105 記憶部
106 無線通信インタフェース
図1
図2
図3
図4
図5
図6