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

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

▶ 株式会社東芝の特許一覧

特許7480102通信システム、ノード、通信方法及びプログラム
<>
  • 特許-通信システム、ノード、通信方法及びプログラム 図1
  • 特許-通信システム、ノード、通信方法及びプログラム 図2
  • 特許-通信システム、ノード、通信方法及びプログラム 図3
  • 特許-通信システム、ノード、通信方法及びプログラム 図4
  • 特許-通信システム、ノード、通信方法及びプログラム 図5
  • 特許-通信システム、ノード、通信方法及びプログラム 図6
  • 特許-通信システム、ノード、通信方法及びプログラム 図7
  • 特許-通信システム、ノード、通信方法及びプログラム 図8
  • 特許-通信システム、ノード、通信方法及びプログラム 図9
  • 特許-通信システム、ノード、通信方法及びプログラム 図10
  • 特許-通信システム、ノード、通信方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-26
(45)【発行日】2024-05-09
(54)【発明の名称】通信システム、ノード、通信方法及びプログラム
(51)【国際特許分類】
   H04W 40/20 20090101AFI20240430BHJP
   H04W 84/18 20090101ALI20240430BHJP
【FI】
H04W40/20
H04W84/18
【請求項の数】 12
(21)【出願番号】P 2021150318
(22)【出願日】2021-09-15
(65)【公開番号】P2023042904
(43)【公開日】2023-03-28
【審査請求日】2023-03-10
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】田中 康之
【審査官】吉倉 大智
(56)【参考文献】
【文献】特開2012-217164(JP,A)
【文献】特開2019-036846(JP,A)
【文献】荒木 涼太郎 Ryotaro ARAKI,アドホックネットワークにおける近傍ノード協力形パケット転送方式 A Cooperative Packet Forwarding Method Using Neighbour Nodes for Ad Hoc Networks,電子情報通信学会技術研究報告 Vol.114 No.6 IEICE Technical Report,日本,一般社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2014年04月,第114巻
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24- 7/26
H04W 4/00-99/00
(57)【特許請求の範囲】
【請求項1】
無線マルチホップネットワークを構成する複数のノードを備え、
前記ノードは、
送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、前記自ノードの近隣に存在する近隣ノードの少なくとも1つが、前記転送ノードとして前記パス情報に含まれているか否かを判定する判定部と、
前記自ノード及び前記近隣ノードの少なくとも1つが前記パス情報に含まれている場合、前記自ノードと前記宛先ノードとの間の距離を特定する処理部と、
前記距離に応じた待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に前記近隣ノードから確認応答を受信していない場合、前記パケットを転送する無線通信制御部と、を備え、
前記複数のノードの送信タイミングは、前記複数のノードのそれぞれが異なる場所にひとつの送信セルを持つ送信スケジュールによって制御され、
前記無線通信制御部は、前記近隣ノードにより転送されたパケットを前記送信スケジュールに基づく前記近隣ノードの送信タイミングで受信し、かつ、前記近隣ノードにより転送されたパケットを転送すると判定された場合、前記近隣ノードにより転送されたパケットの確認応答を送信する送信セルの開始時刻から、前記待ち時間経過した時に、前記確認応答を前記無線マルチホップネットワークに送信する、
通信システム。
【請求項2】
無線マルチホップネットワークを構成する複数のノードを備え、
前記ノードは、
送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、前記自ノードの近隣に存在する近隣ノードの少なくとも1つが、前記転送ノードとして前記パス情報に含まれているか否かを判定する判定部と、
前記自ノード及び前記近隣ノードの少なくとも1つが前記パス情報に含まれている場合、前記自ノードと前記宛先ノードとの間の距離を特定する処理部と、
前記距離に応じた待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に前記近隣ノードから確認応答を受信していない場合、前記パケットを転送する無線通信制御部と、を備え、
前記無線通信制御部は、前記近隣ノードから送信された確認応答の受信タイミングと、前記無線マルチホップネットワーク内における前記近隣ノードの位置情報から特定される確認応答の送信タイミングと、の差に基づいて、前記自ノードのクロックを補正する、
信システム。
【請求項3】
前記確認応答は、前記確認応答を送信した近隣ノードのランク値を含み、
前記処理部は、前記確認応答に含まれるランク値から、前記近隣ノードの位置情報を特定する、
請求項に記載の通信システム。
【請求項4】
前記判定部は、前記パケットにランク値が更に含まれている場合、前記パケットに含まれるランク値と、前記自ノードのランク値との大小関係に基づいて前記パケットを転送するか否かを更に判定し、
前記無線通信制御部は、前記自ノード及び前記近隣ノードの少なくとも一方が前記パス情報に含まれており、かつ、前記大小関係に基づいて前記パケットを転送すると判定された場合、前記待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に他のノードから確認応答を受信していない場合、前記パケットのランク値を前記自ノードのランク値に更新して、前記パケットを転送する、
請求項1乃至のいずれか1項に記載の通信システム。
【請求項5】
前記処理部は、前記自ノードのランク値と、前記宛先ノードのランク値との差から、前記距離を特定する、
請求項に記載の通信システム。
【請求項6】
前記無線マルチホップネットワークは、木構造の前記複数のノードによって構成され、
前記送信スケジュールは、前記複数のノードのそれぞれが異なる場所にひとつの送信セルは、時分割多重と周波数ホッピングとを利用して決定される、
請求項に記載の通信システム。
【請求項7】
無線マルチホップネットワークを構成するノードであって、
送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、前記自ノードの近隣に存在する近隣ノードの少なくとも1つが、前記転送ノードとして前記パス情報に含まれているか否かを判定する判定部と、
前記自ノード及び前記近隣ノードの少なくとも1つが前記パス情報に含まれている場合、前記自ノードと前記宛先ノードとの間の距離を特定する処理部と、
前記距離に応じた待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に前記近隣ノードから確認応答を受信していない場合、前記パケットを転送する無線通信制御部と、を備え、
前記ノードの送信タイミングは、複数のノードのそれぞれが異なる場所にひとつの送信セルを持つ送信スケジュールによって制御され、
前記無線通信制御部は、前記近隣ノードにより転送されたパケットを前記送信スケジュールに基づく前記近隣ノードの送信タイミングで受信し、かつ、前記近隣ノードにより転送されたパケットを転送すると判定された場合、前記近隣ノードにより転送されたパケットの確認応答を送信する送信セルの開始時刻から、前記待ち時間経過した時に、前記確認応答を前記無線マルチホップネットワークに送信する、
ノード。
【請求項8】
無線マルチホップネットワークを構成するノードであって、
送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、前記自ノードの近隣に存在する近隣ノードの少なくとも1つが、前記転送ノードとして前記パス情報に含まれているか否かを判定する判定部と、
前記自ノード及び前記近隣ノードの少なくとも1つが前記パス情報に含まれている場合、前記自ノードと前記宛先ノードとの間の距離を特定する処理部と、
前記距離に応じた待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に前記近隣ノードから確認応答を受信していない場合、前記パケットを転送する無線通信制御部と、を備え、
前記無線通信制御部は、前記近隣ノードから送信された確認応答の受信タイミングと、前記無線マルチホップネットワーク内における前記近隣ノードの位置情報から特定される確認応答の送信タイミングと、の差に基づいて、前記自ノードのクロックを補正する、
ノード。
【請求項9】
無線マルチホップネットワークを構成するノードの通信方法であって、
前記ノードが、送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、前記自ノードの近隣に存在する近隣ノードの少なくとも1つが、前記転送ノードとして前記パス情報に含まれているか否かを判定するステップと、
前記ノードが、前記自ノード及び前記近隣ノードの少なくとも1つが前記パス情報に含まれている場合、前記自ノードと前記宛先ノードとの間の距離を特定するステップと、
前記ノードが、前記距離に応じた待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に前記近隣ノードから確認応答を受信していない場合、前記パケットを転送するステップと、を含み、
前記ノードの送信タイミングは、複数のノードのそれぞれが異なる場所にひとつの送信セルを持つ送信スケジュールによって制御され、
前記転送するステップは、前記近隣ノードにより転送されたパケットを前記送信スケジュールに基づく前記近隣ノードの送信タイミングで受信し、かつ、前記近隣ノードにより転送されたパケットを転送すると判定された場合、前記近隣ノードにより転送されたパケットの確認応答を送信する送信セルの開始時刻から、前記待ち時間経過した時に、前記確認応答を前記無線マルチホップネットワークに送信するステップ、
を含む通信方法。
【請求項10】
無線マルチホップネットワークを構成するノードの通信方法であって、
前記ノードが、送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、前記自ノードの近隣に存在する近隣ノードの少なくとも1つが、前記転送ノードとして前記パス情報に含まれているか否かを判定するステップと、
前記ノードが、前記自ノード及び前記近隣ノードの少なくとも1つが前記パス情報に含まれている場合、前記自ノードと前記宛先ノードとの間の距離を特定するステップと、
前記ノードが、前記距離に応じた待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に前記近隣ノードから確認応答を受信していない場合、前記パケットを転送するステップと、
前記ノードが、前記近隣ノードから送信された確認応答の受信タイミングと、前記無線マルチホップネットワーク内における前記近隣ノードの位置情報から特定される確認応答の送信タイミングと、の差に基づいて、前記自ノードのクロックを補正するステップと、
を含む通信方法。
【請求項11】
無線マルチホップネットワークを構成するノードを、
送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、前記自ノードの近隣に存在する近隣ノードの少なくとも1つが、前記転送ノードとして前記パス情報に含まれているか否かを判定する判定部と、
前記自ノード及び前記近隣ノードの少なくとも1つが前記パス情報に含まれている場合、前記自ノードと前記宛先ノードとの間の距離を特定する処理部と、
前記距離に応じた待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に前記近隣ノードから確認応答を受信していない場合、前記パケットを転送する無線通信制御部、として機能させ、
前記ノードの送信タイミングは、複数のノードのそれぞれが異なる場所にひとつの送信セルを持つ送信スケジュールによって制御され、
前記無線通信制御部は、前記近隣ノードにより転送されたパケットを前記送信スケジュールに基づく前記近隣ノードの送信タイミングで受信し、かつ、前記近隣ノードにより転送されたパケットを転送すると判定された場合、前記近隣ノードにより転送されたパケットの確認応答を送信する送信セルの開始時刻から、前記待ち時間経過した時に、前記確認応答を前記無線マルチホップネットワークに送信する、
プログラム。
【請求項12】
無線マルチホップネットワークを構成するノードを、
送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、前記自ノードの近隣に存在する近隣ノードの少なくとも1つが、前記転送ノードとして前記パス情報に含まれているか否かを判定する判定部と、
前記自ノード及び前記近隣ノードの少なくとも1つが前記パス情報に含まれている場合、前記自ノードと前記宛先ノードとの間の距離を特定する処理部と、
前記距離に応じた待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に前記近隣ノードから確認応答を受信していない場合、前記パケットを転送する無線通信制御部、として機能させ、
前記無線通信制御部は、前記近隣ノードから送信された確認応答の受信タイミングと、前記無線マルチホップネットワーク内における前記近隣ノードの位置情報から特定される確認応答の送信タイミングと、の差に基づいて、前記自ノードのクロックを補正する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は通信システム、ノード、通信方法及びプログラムに関する。
【背景技術】
【0002】
オポチュニスティックルーティング(Opportunistic Routing)は無線の特性を生かしたパケット転送方式で、転送時間の短縮、及び、パケット転送の信頼性の向上等が期待できる。従来のパケット転送方式では事前に確立したルーティングパスに沿ってホップバイホップでパケットを転送するが、オポチュニスティックルーティングでは、必ずしも、事前に確立したルーティングパスに沿ってパケットを転送しない。例えば、オポチュニスティックルーティングでは、送信されたパケットが数ホップ先の最終宛先のノードに受信されれば、中間ノードによる転送が省略される。
【先行技術文献】
【非特許文献】
【0003】
【文献】Sanjit Biswas、Robert Morris、ExOR:opportunistic multi-hop routing for wireless networks、[令和3年9月5日検索]、インターネット〈URL:https://dl.acm.org/doi/10.1145/1080091.1080108〉
【文献】Simon Duquennoy、Olaf Landsiedel、Thiemo Voigt、Let the tree Bloom:scalable opportunistic routing with ORPL、[令和3年9月5日検索]、インターネット〈URL:https://dl.acm.org/doi/10.1145/2517351.2517369〉
【文献】RFC 6550、RPL:IPv6 Routing Protocol for Low-Power and Lossy Networks、[令和3年9月5日検索]、インターネット〈URL:https://tools.ietf.org/html/rfc6550〉
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら従来の技術では、標準MACプロトコルを変更せずにオポチュニスティックルーティングを実現しながら、不要な再転送を抑制することができなかった。
【課題を解決するための手段】
【0005】
実施形態の通信システムは、無線マルチホップネットワークを構成する複数のノードを備える。前記ノードは、判定部と処理部と無線通信制御部とを備える。判定部は、送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、前記自ノードの近隣に存在する近隣ノードの少なくとも1つが、前記転送ノードとして前記パス情報に含まれているか否かを判定する。処理部は、前記自ノード及び前記近隣ノードの少なくとも1つが前記パス情報に含まれている場合、前記自ノードと前記宛先ノードとの間の距離を特定する。無線通信制御部は、前記距離に応じた待ち時間の後に、前記パケットに対する確認応答を前記無線マルチホップネットワークに送信し、前記待ち時間の間に前記近隣ノードから確認応答を受信していない場合、前記パケットを転送する。前記複数のノードの送信タイミングは、前記複数のノードのそれぞれが異なる場所にひとつの送信セルを持つ送信スケジュールによって制御される。前記無線通信制御部は、前記近隣ノードにより転送されたパケットを前記送信スケジュールに基づく前記近隣ノードの送信タイミングで受信し、かつ、前記近隣ノードにより転送されたパケットを転送すると判定された場合、前記近隣ノードにより転送されたパケットの確認応答を送信する送信セルの開始時刻から、前記待ち時間経過した時に、前記確認応答を前記無線マルチホップネットワークに送信する。
【図面の簡単な説明】
【0006】
図1】第1実施形態の通信システムの装置構成の例を示す図。
図2】第1実施形態のルータとして動作するノードの機能構成の例を示す図。
図3】第1実施形態の通常のノードの機能構成の例を示す図。
図4】第1実施形態のノード間で送受信されるパケットの構成の例を示す図。
図5】第1実施形態のランク値による転送制御方法について説明するための図。
図6】第1実施形態のパケット受信処理の例を示すフローチャート。
図7】第1実施形態のパケット転送処理の例を示すフローチャート。
図8】第2実施形態のパケット受信処理の例を示すフローチャート。
図9】第3実施形態の時分割多重の送信スケジュールの例を示す図。
図10】第4実施形態のノード間で送受信されるパケットの構成の例を示す図。
図11】第1乃至第4実施形態のノードのハードウェア構成の例を示す図。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、通信システム、ノード、通信方法及びプログラムの実施形態を詳細に説明する。
【0008】
従来のパケット転送方式として、例えばExOR及びORPL等がある。
【0009】
ExORでは、送信ノードは、自身の近隣ノードから転送ノードを複数選び、送信パケットのヘッダに転送ノードを列挙する。送信されたパケットを受信した近隣ノードは、パケットのヘッダを参照し、自身が転送ノードとして指定されている場合に確認応答を送信する。なお、ExORでは宛先に近い転送ノードほど早いタイミングで確認応答が送信できるため、自分の確認応答のタイミングよりも早く他ノードから確認応答を受信した場合は、該パケットの転送を取りやめる。これにより、パケットを受信した転送ノードのうち、もっとも宛先に近いノードのみがパケットを転送できる。
【0010】
ORPLでは、duty-cycledの無線通信上にオポチュニスティックルーティングを実現する。送信ノードは、送信パケットを連続して送信する。近隣ノードのうち、転送ノードになりうるノードが当該パケットを受信し、確認応答を送信ノードに返すと、送信ノードによる送信処理が完了する。パケット受信時に自ノードが転送ノードになりうるか否かは、RPLの木構造を利用して判断される。パケットがルートに向かう上りパケットの場合は、送信ノードよりもRPL Rankがパラメタw以上小さいときに転送ノードになる。ここで、パラメタwは不必要な転送を避けるための閾値である。下りパケットについては、ルーティングヘッダに転送ノードを列挙するか、Bloom Filterで転送ノードの集合を表現する。
【0011】
ExORもORPLも標準MACプロトコルであるIEEE 802.15.4のままでは、オポチュニスティックルーティングを実現することができない。
【0012】
以下の第1実施形態では、標準MACプロトコルを変更せずにオポチュニスティックルーティングを実現しながら、不要な再転送を抑制する通信システム、ノード、通信方法及びプログラムについて説明する。
【0013】
(第1実施形態)
はじめに、第1実施形態の通信システムの装置構成の例について説明する。
【0014】
[装置構成の例]
図1は第1実施形態の通信システム100の装置構成の例を示す図である。第1実施形態の通信システム100は、ノード10a~10n及びネットワーク200を備える。
【0015】
ノード10a~10nは、無線マルチホップネットワークを構成する通信装置である。図1中の点線は無線リンクを表す。点線の接続関係は、ノード10a~10nが構築するルーティングツリーを示す。以下、ノード10a~10nを区別しない場合は、単にノード10という。
【0016】
ノード10aは、ノード10aの周辺ノードとの無線リンクの他に、ネットワーク200との接続を持つ。典型的にはネットワーク200は、インターネットである。ノード10aは、ノード10a~10nで構成する無線マルチホップネットワークと、外部のネットワーク200とを接続するルータ(ゲートウェイ、集約装置又はコンセントレータ)として動作する。なお、ノード10aがネットワーク200との接続を持つことは必須ではない。
【0017】
第1実施形態の通信システム100では、無線通信規格としてIEEE 802.15.4が使用され、ルーティングプロトコルとしてIETF RFC 6550(RPL)が使用される場合を例にして説明する。なお、無線通信規格は、IEEE 802.15.4に限られず、時分割多重方式で通信する無線通信規格であれば任意でよい。例えば、無線通信規格は、IEEE 802.11及びWi-SUN FAN等でもよいし、独自の通信規格でもよい。また、ルーティングプロトコルについてもRPLに限らず、CTP(Collection Tree Protocol)やその他のプロトコルでもよい。
【0018】
次に、第1実施形態のノード10aの機能構成の例について説明する。
【0019】
[ノード10aの機能構成の例]
図2は第1実施形態のルータとして動作するノード10aの機能構成の例を示す図である。第1実施形態のノード10aは、通信処理部11、記憶部12、無線通信制御部13及び対外通信制御部14を備える。
【0020】
通信処理部11は、判定部111、処理部112及び記憶制御部113を備える。
【0021】
判定部111は、無線通信制御部13により受信されたパケットを転送するか否かを判定する。例えば、判定部111は、送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、自ノードの近隣に存在する近隣ノードの少なくとも1つが、転送ノードとして当該パス情報に含まれているか否かを判定する。判定部111の動作の詳細は、図6のフローチャートを用いて後述する。
【0022】
処理部112は、ネットワーク通信処理を行う。例えば、処理部112は、ノード10a~10nで構成される無線マルチホップネットワークの制御を行う。無線マルチホップネットワークの制御には、例えば無線マルチホップネットワークの構築及び維持のための制御データの送信制御、及び、無線マルチホップネットワークを構成するノード10の親子関係の特定等が含まれる。無線マルチホップネットワークの構築及び維持のための制御データは、無線通信制御部13によりブロードキャストされたり、特定のノード10宛にユニキャストされたりする。
【0023】
また例えば、処理部112は、無線通信制御部13と対外通信制御部14との間のパケット転送を行う。また例えば、処理部112は、アプリケーションデータの生成、送信及び受信等を行う。アプリケーションデータは任意でよい。例えば、アプリケーションデータは、センサアプリケーションにより取得されたセンサデータ等である。
【0024】
また例えば、処理部112は、自ノード及び近隣ノードの少なくとも1つが、パス情報に含まれている場合、自ノードと宛先ノードとの間の距離を特定する。
【0025】
記憶制御部113は、記憶部12に記憶される情報の記憶制御(読み出し及び書き込み等)を行う。
【0026】
記憶部12は、ネットワークトポロジを管理する情報を記憶する。例えば、記憶部12は、ノード10b~ノード10nから受信した無線マルチホップネットワーク制御パケットの情報(例えばRPLの制御情報)を記憶する。
【0027】
また例えば、記憶部12は、ノード10a~ノード10bの接続関係を示す情報を記憶する。後述のように、ノード10b~ノード10nは近隣ノードとの間の無線通信品質に従って、近隣ノードの中から自ノードの上位ノード(親ノード)を選択する。この上位ノード・子ノードの情報がネットワーク制御パケットにより各ノード10b~ノード10nからノード10aに伝えられる。その結果、記憶部12が接続関係を示す情報として持つ最小セットの情報は、ノード10a~ノード10nの親子関係を示す情報である。処理部112は、この親子関係の情報を基に、ネットワーク全体のネットワークトポロジ図を生成したり、そのネットワークトポロジ上でノード10aからあるノード10の間に存在するノード10を列挙したりする。
【0028】
無線通信制御部13は、ノード10b~10nから送信されたパケットを受信すると、当該パケットを通信処理部11へ入力する。無線通信制御部13は、通信処理部11から受け付けたノード10b~10n宛のパケットやブロードキャストパケットを送信する。具体的には、無線通信制御部13は、処理部112により特定された距離に応じた待ち時間の後に、パケットに対する確認応答を無線マルチホップネットワークに送信し、待ち時間の間に近隣ノードから確認応答を受信していない場合、パケットを転送する。
【0029】
対外通信制御部14は、ネットワーク200を介した通信を制御する。なお上述のように、ノード10aは、対外通信制御部14を備えていなくてもよい。
【0030】
次に、第1実施形態のノード10b~10nの機能構成の例について説明する。ノード10b~10nの機能構成は同じなので、ノード10bを例にして説明する。
【0031】
[ノード10bの機能構成の例]
図3は第1実施形態の通常のノード10bの機能構成の例を示す図である。第1実施形態のノード10bは、通信処理部11、記憶部12及び無線通信制御部13を備える。
【0032】
通信処理部11は、判定部111、処理部112及び記憶制御部113を備える。
【0033】
判定部111は、無線通信制御部13により受信されたパケットを転送するか否かを判定する。判定部111の動作の詳細は、図6のフローチャートを用いて後述する。
【0034】
処理部112は、ネットワーク通信処理を行う。例えば、処理部112は、ノード10a~10nで構成される無線マルチホップネットワーク上のパケット転送処理を行う。また例えば、処理部112は、アプリケーションデータの生成、送信及び受信等を行う。
【0035】
また例えば、処理部112は、無線マルチホップネットワークの構築及び維持のための制御データの送信制御を行う。また例えば、処理部112は、ノード10bの近隣ノード(図1では、例えばノード10a、10c及び10f)により送信された制御データを、無線通信制御部13を介して受信することで、自ノードの近隣に存在する近隣ノードを示す近隣ノード情報を認識する。制御データは、無線通信制御部13によりブロードキャスト又はマルチキャストされたり、特定のノード宛にユニキャストされたりすることによって、ノード10bとノード10a~10nの間で送受信される。なお近隣ノードは、制御データの受信以外の方法で認識されてもよい。
【0036】
記憶制御部113は、記憶部12に記憶される情報の記憶制御(読み出し及び書き込み等)を行う。
【0037】
記憶部12は、近隣ノード情報、及び、ランク情報を記憶する。ランク情報とはネットワークトポロジ上でのノード10aからの相対的な距離を表す情報であり、中間ノード数(ホップ数)で表現されたり、中間ノード数に加えて電波強度やETX(Expected Transmission Count)といった通信品質情報、ノードの状態情報などを考慮して計算される値だったりする。ノードの状態情報とは例えば、子ノードの数や、ノードが電池駆動している場合には電池の残量などである。
【0038】
<近隣ノード情報の例>
近隣ノード情報は、各ノード10のアドレス情報、及び、各ノード10の無線通信品質の評価値等を含む。典型的には、近隣ノード情報に含まれる各ノード10の情報はライフタイム管理がされ、一定期間更新されなければ自動で削除される。また、近隣ノード情報により特定される近隣ノードから少なくともひとつのノード10が、ノード10bの上位ノード(親ノード)として選ばれる。図1の例では、ノード10aがノード10bの上位ノードに選ばれる。
【0039】
上位ノードの選択基準はアプリケーション等に応じていろいろな選択基準がある。例えば、処理部112は、RSSI(Received Signal Strength Indication)、ETX(Expected Transmission Count)、及び、その他のメトリックを使って算出されたコスト等で評価された無線通信品質に基づいて、上位ノードを選択する。
【0040】
ノード10bにより選択される上位ノードは、無線環境の変動により変化する。処理部112は、新たに上位ノードを選択したとき、または所定のインタバル等に従って、新たな上位ノードの情報を含む制御パケットを、無線通信制御部13を介してノード10aへ送信する。ノード10aが、この制御パケットを受信し、処理することで、ノード10bの上位ノード(つまり、子ノードをノード10bとしたときの親ノード)が認識される。ノード10bの上位ノードは、親子関係の情報としてノード10aの記憶部12に記憶される。
【0041】
<ランク情報の例>
処理部112は、自ノードの上位ノードの情報に従って自ノードのランク情報を算出する。ランク情報は、例えばノード10aに近いほど小さいランク値である。ランク値の算出方法は、使用しているルーティングプロトコル及びランク算出アルゴリズム等により異なる。基本的には、自ノードのランク値は、自ノードの上位ノードのランク値に、当該上位ノードとの間の無線通信品質の評価値が加算されることにより算出される。よって、自ノードのランク値は上位ノードのランク値よりも大きくなる。上位ノードよりも大きい自ノードのランク値から、ネットワークトポロジ上のノード10aからの距離は上位ノードよりも自ノードのほうが遠いことがわかる。処理部112は、記憶部12から自ノードのランク情報を取得し、このランク情報を制御データとして無線通信制御部13を介してブロードキャスト又はマルチキャストしたり、特定ノード宛にユニキャストしたりする。
【0042】
無線通信制御部13は、通信処理部11から受け付けたノード10a、10c~10n宛のパケットやブロードキャストパケットを送信する。また、無線通信制御部13は、ノード10a、10c~10nから送信されたパケットを受信すると、当該パケットを通信処理部11へ入力する。
【0043】
<パケットの例>
図4は第1実施形態のノード10間で送受信されるパケットの構成の例を示す図である。パケットはヘッダ101とペイロード102とを含む。ヘッダ101には、このパケットの送信元アドレス、宛先アドレス、及び、転送のために使われる制御情報などが含まれる。ペイロード102には、送信元ノードが生成し、宛先ノードが処理するデータ(例えばアプリケーションデータ等)が含まれる。なお、無線通信制御部13によって図4のパケットに更にヘッダが追加されてもよい。
【0044】
次に実施形態の通信システム100の転送制御方法について説明する。
【0045】
実施形態の通信システム100では、パケットの転送のために使われる転送制御情報がパケットに格納される。例えば、転送制御情報は、パケットの送信元ノードのランク値、又は、当該パケットを中継する転送ノード(中間ノード)のランク値を含む。
【0046】
また例えば、転送制御情報は、送信元ノードから宛先ノードまでのネットワークトポロジ上のパス情報(親子関係の繋がり)を含む。ネットワークトポロジ上のパス情報は、ソースルーティングヘッダのようにパス上の(中間)ノードのアドレスを列挙して表現されていてもよいし、Bloom Filterのような圧縮形式で表現されていてもよい。
【0047】
図5は第1実施形態のランク値による転送制御方法について説明するための図である。なお、図5の例では、図1の通信システム100のうち、説明に使用しないノード10b、10e、10i、10m及び10nは省略されている。図5に示すように、ノード10aから遠いノード10ほど、ランク値が大きくなる。
【0048】
転送のために使われる転送制御情報としてランク情報が使われるとき、例えば、ノード10aの無線通信制御部13は、ノード10aからノード10k宛のパケットのヘッダ101に、送信元アドレスとしてノード10aを設定し、宛先アドレスとしてノード10kを設定し、ランク情報としてノード10aのランク値(0)を設定する。
【0049】
逆に、ノード10kからノード10a宛のパケットでは、送信元アドレスと宛先アドレスとが入れ替わり、ランク情報にはノード10kのランク値である250が、ノード10kの無線通信制御部13により設定される。
【0050】
ノード10aからノード10k宛のパケット、及び、ノード10kからノード10a宛のパケットをノード10gの無線通信制御部13が転送するとき、パケットに設定されるランク値をノード10gのランク値(175)で更新する。なお、ノード10gの無線通信制御部13は、送信元アドレス及び宛先アドレスは変更しない。
【0051】
一方、転送のために使われる転送制御情報としてパス情報が使われるとき、ノード10aからノード10k宛のパケットのヘッダ101には、ノード10c及び10gを識別する情報(例えばアドレス情報等)が、ノード10aの無線通信制御部13により設定される。ノード10c及び10gを識別する情報は、例えばヘッダ101内で、ノード10a(ルート)に近い順に列挙される。これにより、送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係が、ヘッダ101に格納されたパス情報から特定可能になる。
【0052】
また、ノード10kからノード10a宛のパケットのヘッダ101にも、ノード10c及び10gを識別する情報がノード10kの無線通信制御部13により設定される。この場合には、ノード10kの無線通信制御部13は、何らかの方法で、自ノードからノード10aまでのパス情報を取得する。例えば、ノード10kの無線通信制御部13は、ネットワークトポロジを管理する情報を記憶するノード10aから、自ノードからノード10aまでのパス情報を取得する。
【0053】
ヘッダ101に含める転送制御情報として、ランク値及びパス情報は排他的ではない。ヘッダ101に含まれる転送制御情報には、パケットの転送ノード(またはパケットの送信元ノード)のランク値、及び、送信元ノードから宛先ノードまでのパス情報の両方が含まれていてもよい。
【0054】
[パケット受信処理の例]
図6は第1実施形態のパケット受信処理の例を示すフローチャートである。まず、判定部111が、無線通信制御部13により受信されたパケットの宛先ノードを確認し、当該パケットが自ノード宛であるか否かを判定する(ステップS1)。パケットが自ノード宛である場合(ステップS1,Yes)、例えばセンサアプリケーション等の上位レイヤが、パケットの受信処理(例えばパケットに含まれるデータの取得等)を行う(ステップS2)。
【0055】
パケットが自ノード宛でない場合(ステップS1,No)、判定部111が、パケットのヘッダ101に、転送制御情報としてパス情報が含まれているか否かを判定する(ステップS3)。パス情報が含まれていない場合(ステップS3,No)、処理はステップS5に進む。
【0056】
パス情報が含まれている場合(ステップS3,Yes)、判定部111は、自ノードまたは近隣ノード(自ノード及び近隣ノードの少なくとも1つ)が、パケットの送信元ノードと宛先ノード間のパス上に転送ノードとして含まれているか否かを判定する(ステップS4)。自ノードまたは近隣ノードがパス上に転送ノードとして含まれていない場合(ステップS4,No)、処理部112が、パケットを破棄する(ステップS8)。
【0057】
自ノードまたは近隣ノードがパス上に転送ノードとして含まれている場合(ステップS4,Yes)、判定部111が、パケットのヘッダ101に、転送制御情報としてランク情報(ランク値)が含まれているか否かを判定する(ステップS5)。ランク情報が含まれていない場合(ステップS5,No)、処理部112が、パケットを破棄する(ステップS8)。
【0058】
ランク情報が含まれている場合(ステップS5,Yes)、判定部111は、自ノードがパケットを転送すべきか否かを、パケットに含まれるランク値と、自ノードのランク値との大小関係に基づいて判定する(ステップS6)。具体的には、判定部111は、パケットの宛先が、ノード10a、及び、ネットワーク200に接続された外部装置等である場合(パケットが上りパケットである場合)、パケットの転送制御情報に含まれるランク値よりも、自ノードのランク値が小さい時に、パケットを転送すると判定する。一方、判定部111は、パケットが、無線マルチホップネットワーク内でノード10a(ルート)から離れていく下りパケットである場合、パケットの転送制御情報に含まれるランク値よりも、自ノードのランク値が大きい時に、パケットを転送すると判定する。
【0059】
自ノードがパケットを転送しない場合(ステップS6,No)、処理部112が、当該パケットを破棄する(ステップS8)。
【0060】
自ノードがパケットを転送する場合(ステップS6,Yes)、無線通信制御部13が、当該パケットを転送する(ステップS7)。パケットの転送処理の詳細は、図7を参照して後述する。
【0061】
なお、自ノードでパケットを生成し、送信元ノードとして当該パケットを送信する際に、転送制御情報としてランク情報を使うか、パス情報を使うか、その両方を使うかは、当該自ノードの転送制御設定として事前に静的に設定されていてもよいし、動的に設定されていてもよい。
【0062】
動的に設定される場合には、例えばネットワーク200に接続された外部装置等から各ノード10への指示によって、転送制御情報としてランク情報を使うか、パス情報を使うか、その両方を使うかが、各ノードに設定される。
【0063】
[パケット転送処理の例]
図7は第1実施形態のパケット転送処理の例を示すフローチャートである。図6のステップS7でパケットを転送する場合、処理部112が、自ノードと宛先ノードとの間の距離を特定する(ステップS21)。
【0064】
この距離は、無線マルチホップネットワーク上の論理的な距離であっても、実空間内の物理的な距離であってもよい。パケットを転送するノード10が、宛先ノードとの間の距離を特定するために必要な情報は、当該パケットに含まれていてもよい。
【0065】
例えばパケットのヘッダ101に、宛先ノードのランク値が入っている場合、パケットを転送するノード10の処理部112は、自ノードのランク値と宛先ノードのランク値との差から、無線マルチホップネットワーク上の論理的な距離を特定してもよい。
【0066】
また例えば、パケットを転送するノード10と、無線マルチホップネットワーク内の特定のノード10間のホップ数が、ランク値などから算出できる場合、送信元ノードが、パケットのヘッダ101に、送信元ノードと宛先ノードとの間のホップ数を入れてもよい。ノード10の処理部112は、このホップ数を利用することで、無線マルチホップネットワーク上の論理的な距離を特定してもよい。
【0067】
また例えば、ノード10の無線マルチホップネットワーク上の位置に応じたネットワークアドレスが各ノード10に付与されていてもよい。パケットを転送するノード10の処理部112は、自ノードのネットワークアドレスと宛先ノードのネットワークアドレスとから論理的な距離を特定してもよい。
【0068】
また例えば、各ノード10の処理部112は、ノード10が設置されている場所の座標情報を静的にもしくはGNSS(Global Navigation Satellite System)等を利用して動的に取得している場合、パケットのヘッダ101に含まれた宛先アドレスの座標情報から、自ノードと宛先アドレスとの間の物理的な距離を特定してもよい。
【0069】
パケットを転送するノード10の無線通信制御部13は、上記のような方法で特定された距離に応じた待ち時間の後に(ステップS22)、パケットに対する確認応答を無線マルチホップネットワークに送信する(ステップS23)。確認応答が送信されるタイミングは、受信されたパケットの受信開始時刻に待ち時間を加算して得られる時刻でもよいし、受信されたパケットの受信終了時刻に待ち時間を加算して得られる時刻でもよい。また、待ち時間には、距離に応じて変動する時間と、固定的に設定された時間との合算で算出されてもよい。
【0070】
Opportunistic Routingにおいては、典型的には、無線通信制御部13は、自ノードと宛先ノードとの間の距離が短ければ短いほど、前述の待ち時間が短くなるように、待ち時間を決定する。また、典型的には、無線通信制御部13は、論理的距離が同じ複数のノード10間ではパス情報を考慮し、受信されたパケットのパス情報に含まれるノード10のほうが待ち時間が短くなるように、待ち時間をする。しかし、自ノードと宛先ノードの間の距離に応じた待ち時間の決定方法はこの限りではない。
【0071】
また、確認応答を送信するまでの間の無線通信制御部13の受信待ち状態(ステップS22)では、受信待ち状態にする期間は転送の判断から確認応答送信までの連続した全期間でもよいし、連続した全期間の一部(例えば全期間の中で、定期的に所定の期間、受信待ち状態を繰り返す等)でもよい。
【0072】
次に、判定部111は、ステップS22の受信待ち状態の間に、他のノード10から、転送対象のパケットに対する確認応答を受信したか否かを判定する(ステップS24)。転送対象のパケットに対する確認応答を受信した場合(ステップS24,Yes)、無線通信制御部13は、パケットの転送を取りやめ、転送対象のパケットに対する確認応答を受信していない場合(ステップS24,No)、無線通信制御部13は、パケットを転送する(ステップS25)。
【0073】
なお、確認応答の送信直前にはキャリアセンスを行ってもよい。無線通信制御部13は、キャリアセンスを行う場合で、キャリアセンスの結果、確認応答の送信を行うチャネルがビジーであったときには確認応答の送信およびパケットの転送を取りやめる。
【0074】
また、最終宛先のノード10も、転送ノードと同様に、受信されたパケットの確認応答を送信する。この場合、最終宛先のノード10の無線通信制御部13は、自ノードと宛先ノードとの間の距離は「無し」として、確認応答送信までの待ち時間を算出する。
【0075】
以上、説明したように、第1実施形態の通信システム100では、判定部111が、送信元ノードから宛先ノードまでのネットワークトポロジ上に含まれる転送ノードの親子関係を示すパス情報を含むパケットを受信すると、自ノード、及び、自ノードの近隣に存在する近隣ノードの少なくとも1つが、転送ノードとしてパス情報に含まれているか否かを判定する。処理部112が、自ノード及び近隣ノードの少なくとも1つがパス情報に含まれている場合、自ノードと宛先ノードとの間の距離を特定する。そして、無線通信制御部13が、当該距離に応じた待ち時間の後に、パケットに対する確認応答を無線マルチホップネットワークに送信し、当該待ち時間の間に近隣ノードから確認応答を受信していない場合、パケットを転送する。
【0076】
これにより第1実施形態の通信システム100によれば、標準MACプロトコルを変更せずにオポチュニスティックルーティングしながら、不要な再転送を抑制することができなかった。
【0077】
例えば、具体的なルーティングプロトコル名を使って説明すると、第1実施形態により、例えば下記のような制御を行うことができる。まず、RPLによって、ノード10の親子関係が作成される。無線マルチホップネットワークでは、パケットは常に、IP-in-IPで転送される。外側のIPヘッダに、上述の転送制御情報が格納される。MACレイヤの宛先には非ユニキャストアドレスを使い(ブロードキャストアドレス or マルチキャストアドレス)、宛先となるノード10を特定せず、不特定のノード10が受信処理を行えるようにする。
【0078】
ノード10は、RPLのルートに向かう上りパケットについては、自ノードのRPL Rankを転送制御情報に設定する。ノード10は、受信されたパケットが自ノードと同じRPL Rankか、それよりも大きな値を持つとき、当該パケットを転送する。パケットの転送待ちをしている間に、自ノードよりもRPL Rankが小さなノードから、転送対象のパケットの確認応答を受信した場合は、転送対象のパケットの転送を中止する。
【0079】
下りパケットについては、RPLルートが、宛先ノードまでの親子関係をたどり、それぞれのIPアドレスを転送制御情報に設定する(RPL Non-Storing modeと同様)。これらのアドレスはbloom filterの形式で表現されていてもよい。ノード10は、転送制御情報に自ノードのアドレスが入っているノードは、当該パケットを転送する。また、転送制御情報に入っているアドレスを近隣ノードリストに持つノードも当該パケットを転送する。パケットの転送待ちをしている間に、自分よりもRPL Rankが大きなノードから、転送対象のパケットの確認応答を受信した場合は、転送対象のパケットの転送を中止する。
【0080】
なお、第1実施形態において、他のノード10宛のパケットを受信したときの転送要否を判定する際に、Trickle Algorithmのredundancy constant kを用いた制御のような冗長転送をしてもよい。
【0081】
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
【0082】
第2実施形態では、ノード10の無線通信制御部13は、パケットの転送をした後、転送されたパケットの受信確認をするまで、パケットを再送する。
【0083】
[パケット受信処理の例]
図8は第2実施形態のパケット受信処理の例を示すフローチャートである。図8では、ステップS2の処理の後に、ステップS7の処理を実行する点、及び、ステップS7の処理が上述の図6のフローチャートと異なる。
【0084】
具体的には、第2実施形態の通信システム100では、パケットを受信したノード10が、最終宛先ノードであっても、上位レイヤによる受信パケットの処理後(ステップS2)、当該パケットをブロードキャスト又はマルチキャストにより転送(送信)する(ステップS7)。これにより最終宛先ノードにパケットを転送したノード10は、ステップS7の処理によって最終宛先ノードから送信されたパケットを受信することによって、自身が最終宛先ノードへ転送したパケットの受信確認をすることができる。
【0085】
また、ステップS7の転送処理では、転送元のノード10の無線通信制御部13は、次の転送ノードへパケットを転送する際に、再送処理を行う。具体的には、転送元のノード10の無線通信制御部13は、転送元のノード10により転送されたパケットを受信した次の転送ノードによってブロードキャスト又はマルチキャスト送信されたパケットを受信するまで、パケットを再送する。
【0086】
最終宛先ノードであっても、上位レイヤによるパケットの処理後(ステップS2)、当該パケットがブロードキャスト又はマルチキャストにより転送(送信)されるため、ステップS7で実行される再送処理は、パケットが最終宛先ノードに転送される場合にも有効になる。
【0087】
第2実施形態の通信システム100によれば、第1実施形態の効果に加えて、更に、無線マルチホップネットワーク内のパケットの転送をより確実に行うことができる。
【0088】
(第3実施形態)
次に第3実施形態について説明する。第3実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
【0089】
第3実施形態では、TSCH(Time Slotted Channel Hopping)のように、時分割多重の無線通信方式が使われている場合について説明する。
【0090】
第3実施形態では、上述の近隣ノード情報が、ノード10b~10nの記憶部12だけでなく、ノード10aの記憶部12にも記憶される。更に、第3実施形態の近隣ノード情報では、各近隣ノードのデータ送信タイミング(送信セル)も記憶される。各ノード10の無線通信制御部13は、近隣ノードの送信セルで受信待ちを行い、当該近隣ノードにより送信(転送)されたパケットの受信処理を行う。
【0091】
すなわち、第3実施形態の通信システム100では、複数のノードの送信タイミングは、複数のノードのそれぞれが異なる場所にひとつの送信セルを持つ送信スケジュールによって制御される。ノード10の無線通信制御部13は、近隣ノードにより転送されたパケットを送信スケジュールに基づく近隣ノードの送信タイミングで受信する。無線通信制御部13は、近隣ノードにより転送されたパケットを転送すると判定部111が判定した場合、近隣ノードにより転送されたパケットの確認応答を送信する送信セルの開始時刻から、自ノードと宛先ノードとの間の距離に応じた待ち時間経過した時に、確認応答を無線マルチホップネットワークに送信する。
【0092】
[送信スケジュールの例]
図9は第3実施形態の時分割多重の送信スケジュールの例を示す図である。図9の例では、スロットオフセット(時分割多重)が10個、チャネルオフセット(周波数ホッピング)が5個のスロットフレーム内に各ノード10の送信セルが割り当てられている。各ノード10の送信セルに隣接するセルには特定のノード10の送信セルを割り当てない。この例では、たまたま送信セルが割り当てられたスロットオフセットがすべて奇数だが、奇数のスロットオフセットや偶数のスロットオフセットに送信セルの割り当てを制限しなくてもよい。
【0093】
無線通信制御部13は、パケットを転送するとき、パケットを受信したセルの右隣のセルで確認応答を送信する。確認応答を送信するタイミングは、自ノードと宛先ノードとの間の距離により決定する。典型的には、無線通信制御部13は、自ノードと宛先ノードとの距離が短ければ短いほど、確認応答を送信するセルの先頭に近いタイミング(セルの開始時間に近いタイミング)で確認応答の送信を行う。
【0094】
具体的には、無線通信制御部13は、TSCHを使用している場合、この確認応答の送信タイミングの制御を、macTsCcaOffsetの値を距離に応じて動的に決定することで実現する。この確認応答を待ち受ける送信元ノードまたは転送ノードがさまざまなタイミングで送信される確認応答を受信できるように、macTsRxWaitには十分に大きい値が設定される。また、確認応答を取りこぼさないよう、macTsRxOffsetの値も調整される。
【0095】
確認応答を受信したノード10の無線通信制御部13は、送信元ノードにより決定された確認応答送信タイミングと、実際に確認応答の受信が開始された時刻とを使い、自ノードのクロックを、確認応答の送信元ノードのクロックに合わせてもよい。典型的には、確認応答の受信ノードのランクより確認応答の送信元ノードのランクのほうが小さいときに、受信側のノード10が、自ノードのクロックを送信元ノードに合わせる。
【0096】
送信側のノード10により決定された確認応答送信タイミングは、例えば確認応答に含まれる送信元ノードのランクや特定のノード10からのホップ数、送信元ノードのネットワークアドレスなど、なんらかの形で無線マルチネットワーク上の論理的な位置を示す位置情報を使って特定できる。例えば、処理部112は、近隣ノードから受信された確認応答に含まれるランク値から、無線マルチネットワーク上の近隣ノードの論理的な位置を示す位置情報を特定する。
【0097】
受信側のノード10の無線通信制御部13は、送信側のノード10が確認応答送信タイミングを決定するときと、同じ入力及びアルゴリズムを使い、当該タイミングを特定する。受信側のノード10の無線通信制御部13は、そのようにして特定された確認応答送信タイミングと、確認応答の受信時刻とを使い、自ノードのクロックを送信側のノード10のクロックに合わせる。すなわち、受信側のノード10の無線通信制御部13は、近隣ノードから送信された確認応答の受信タイミングと、無線マルチホップネットワーク内における近隣ノードの位置情報から特定される確認応答の送信タイミングと、の差に基づいて、自ノードのクロックを補正する。
【0098】
両ノードのクロックが完全に同期していた場合、受信側のノード10が特定した確認応答送信タイミングと、実際の確認応答の受信時刻とは完全に一致する。もしも受信側のノード10のクロックが、送信側のノード10のクロックに対して遅れていた場合、受信側のノード10が特定した確認応答送信タイミングよりも実際の確認応答の受信時刻が早まる。
【0099】
(第4実施形態)
次に第4実施形態について説明する。第4実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
【0100】
第4実施形態では、転送されるパケットの詳細について説明する。
【0101】
<パケットの例>
図10は第4実施形態のノード10間で送受信されるパケットの構成の例を示す図である。第4実施形態のパケットのヘッダ101は、内部ヘッダ101aと外部ヘッダ101bとに分けられている。内部ヘッダ101aには送信元ノード及び宛先ノードの情報が格納される。
【0102】
外部ヘッダ101bには、上述の転送制御情報が格納される。また、外部ヘッダ101bには送信元アドレスとして、パケットを転送した転送ノードのアドレスが格納される。パケットが、当該パケットを生成した送信元ノードから送信される際は、外部ヘッダ101bの送信元アドレスと内部ヘッダ101aの送信元アドレスは同じ(送信元ノードのアドレス)になる。外部ヘッダ101bの宛先アドレスには、ブロードキャストアドレス又はマルチキャストアドレスが格納される。すなわち、無線通信制御部13は、ブロードキャスト又はマルチキャストによりパケットを転送する。
【0103】
なお、無線通信制御部13により図10のパケットに更にヘッダが追加されてもよい。
【0104】
最後に、第1乃至第4実施形態のノード10のハードウェア構成の例について説明する。
【0105】
[ハードウェア構成の例]
図11は第1乃至第4実施形態のノード10のハードウェア構成の例を示す図である。第1乃至第4実施形態のノード10は、制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306を備える。制御装置301、主記憶装置302、補助記憶装置303、表示装置304、入力装置305及び通信装置306は、バス310を介して接続されている。
【0106】
制御装置301は、補助記憶装置303から主記憶装置302に読み出されたプログラムを実行する。主記憶装置202は、ROM及びRAM等のメモリである。補助記憶装置303は、HDD(Hard Disk Drive)及びメモリカード等である。図2及び3の記憶部12は、主記憶装置302及び補助記憶装置303に対応する。
【0107】
表示装置304は、ノード10の状態等を表示する。表示装置304は、例えば液晶ディスプレイ等である。入力装置305は、ノード10を操作するためのインタフェースである。入力装置305は、例えばノード10の筐体に備えられたボタン等である。なお、表示装置304及び入力装置305は、表示機能と入力機能とを有するタッチパネル等により実現されていてもよい。また、ノード10は、表示装置304及び入力装置305を備えていなくてもよい。
【0108】
通信装置306は、他のノード10、及び、外部装置等と通信するためのインタフェースである。
【0109】
第1乃至第4実施形態のノード10で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、メモリカード、CD-R及びDVD等のコンピュータで読み取り可能な記憶媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【0110】
また第1乃至第4実施形態のノード10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また第1乃至第4実施形態のノード10で実行されるプログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
【0111】
また第1乃至第4実施形態のノード10のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0112】
第1乃至第4実施形態のノード10で実行されるプログラムは、上述した図2のノード10a、及び、図3のノード10b~10nの機能ブロックのうち、プログラムによっても実現可能な機能ブロックを含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、制御装置301が記憶媒体からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶装置302上にロードされる。すなわち上記各機能ブロックは主記憶装置302上に生成される。
【0113】
なお上述した図2及び3の各機能ブロックの一部又は全部をソフトウェアにより実現せずに、IC等のハードウェアにより実現してもよい。
【0114】
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2以上を実現してもよい。
【0115】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0116】
10 ノード
11 通信処理部
12 記憶部
13 無線通信制御部
14 対外通信制御部
100 通信システム
111 判定部
112 処理部
113 記憶制御部
200 ネットワーク
301 制御装置
302 主記憶装置
303 補助記憶装置
304 表示装置
305 入力装置
306 通信装置
310 バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11