以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(信号の受信時におけるメッシュパスの更新タイミングを遅延させる例)
2.第2の実施の形態(信号をユニキャスト送信およびブロードキャスト送信する例)
3.応用例
<1.第1の実施の形態>
[通信システムの構成例]
図1は、本技術の第1の実施の形態における通信システム200のシステム構成例を示す図である。
通信システム200は、複数の情報処理装置(情報処理装置100、情報処理装置210、情報処理装置220、情報処理装置230、情報処理装置240)を備える。通信システム200を構成する各情報処理装置(デバイス)は、例えば、無線通信機能を備える携帯型の情報処理装置や固定型の情報処理装置である。なお、携帯型の情報処理装置は、例えば、スマートフォン、携帯電話、タブレット端末等の無線通信装置であり、固定型の情報処理装置は、例えば、プリンタ、パーソナルコンピュータ等の情報処理装置である。
なお、図1では、各情報処理装置を表す矩形内に、各情報処理装置を識別するための符号(A乃至E)を付して示す。すなわち、情報処理装置100を表す矩形内に「A」を付し、情報処理装置210を表す矩形内に「B」を付し、情報処理装置220を表す矩形内に「C」を付し、情報処理装置230を表す矩形内に「D」を付し、情報処理装置240を表す矩形内に「E」を付す。また、これらの各符号A乃至Eは、図9乃至図20等に示すように、情報処理装置間においてやりとりされる信号の内容を示す場合に用いる。
また、図1では、情報処理装置100と、情報処理装置210、220、230のそれぞれとの通信経路を点線251、253、254で示す。また、他の情報処理装置間の通信経路についても同様に点線252、255乃至257で示す。
ここで、近接する情報処理装置と自律的に相互接続する通信方法として、アドホック通信やアドホックネットワーク等が知られている。このようなネットワークにおいては、各情報処理装置は、マスタ局(例えば、制御装置)に依存することなく、近接する情報処理装置と相互に通信を行うことが可能である。そこで、本技術の実施の形態では、自律的に近接情報処理装置と相互接続する通信方法として、アドホックネットワークを例にして説明する。
アドホックネットワークでは、近隣に新たな情報処理装置が追加されると、この新たな情報処理装置も自由にネットワークに参加することができる。例えば、最初に、図1に示す各情報処理装置のうち、情報処理装置100、情報処理装置210、情報処理装置220のみがアドホックネットワークに参加している場合を想定する。この場合に、情報処理装置230、情報処理装置240が順次追加されていくものとする。この場合には、これらの各情報処理装置(近接する情報処理装置)が増加するのに応じて、ネットワークのカバー範囲を増加させることができる。すなわち、情報処理装置230、情報処理装置240が順次追加されるのに応じて、ネットワークのカバー範囲を増加させることができる。
ここで、各情報処理装置は、近接する情報処理装置と自律的に相互接続する以外に、他の情報処理装置間でやりとりされる情報をバケツリレー的に転送することも可能である。
例えば、情報処理装置100は、情報処理装置210、220、230のそれぞれに直接通信することができるが、電波が届かない等の理由により、情報処理装置240には直接通信することができないものとする。
このように直接通信ができない場合でも、情報処理装置100との直接通信が可能な情報処理装置(情報処理装置210、220、230)が情報処理装置100のデータを情報処理装置240に転送することが可能である。そこで、このようにデータを転送することにより、情報処理装置100と、情報処理装置100と直接通信することができない情報処理装置240とは、情報処理装置210、220、230の何れかを経由して、互いに情報のやり取りを行うことが可能となる。
このように互いにデータ転送(いわゆる、バケツリレー)を行い、遠くの情報処理装置に情報を届ける方法は、マルチホップ・リレーと称されている。また、マルチホップを行うネットワークは、メッシュネットワークとして一般的に知られている。
このようなアドホックネットワークやメッシュネットワークを構成する情報処理装置の構成を図2に示す。また、マルチホップ・リレーについては、図4乃至図20等を参照して詳細に説明する。
また、本技術の実施の形態では、通信システム200を構成する各情報処理装置のうち、基準となる情報処理装置(例えば、信号を受信した情報処理装置)を自局と称し、他の情報処理装置を送信局、受信局、送信元局、宛先局、隣接局と称して説明する。
具体的には、自局が受信した信号を送信した情報処理装置を送信局と称し、自局からの信号を受信する情報処理装置を受信局と称する。また、自局が受信した信号を最初に送信した送信元の情報処理装置(いわゆる、バケツリレーの先頭)を送信元局と称し、自局が受信した信号を最終的に受信する情報処理装置(いわゆる、バケツリレーの終端)を宛先局と称する。また、自局が受信した信号を転送した情報処理装置を中継局と称し、自局にネットワーク上で隣接または近接する情報処理装置を隣接局と称して説明する。
[情報処理装置の構成例]
図2は、本技術の第1の実施の形態における情報処理装置100の内部構成例を示すブロック図である。なお、他の情報処理装置(情報処理装置210、220、230、240)の内部構成については、情報処理装置100と同一であるため、ここでは、情報処理装置100についてのみ説明し、他の情報処理装置の説明を省略する。
情報処理装置100は、アンテナ110と、通信部120と、I/O(Input/Output)インタフェース130と、制御部140と、メモリ150とを備える。また、これらの各部は、バス160を介して接続される。
通信部120は、アンテナ110を介して、電波の送受信を行うためのモジュール(例えば、モデム)である。例えば、通信部120は、ミリ波通信(60GHz等)、900MHz/2.4GHz/5GHz無線LAN(Local Area Network)、UWB(Ultra Wide Band)により無線通信を行うことができる。また、例えば、通信部120は、可視光通信、NFC(Near Field Communication)により無線通信を行うことができる。
例えば、通信部120は、制御部140の制御に基づいて、マルチホップの通信経路の生成または更新のための信号(RANN、PREQ、PREP)のやりとりを他の情報処理装置との間で無線通信を利用して行う。なお、RANN、PREQ、PREPについては、図4等を参照して詳細に説明する。
なお、通信部120は、電波(電磁波)を用いた無線通信を行うようにしてもよく、電波以外の媒体を用いた無線通信(例えば、磁界を用いて行われる無線通信)を行うようにしてもよい。
また、通信部120は、近隣の情報処理装置との間で通信リンクを開設して相互通信を行うとともに、情報処理装置100が通信可能である近隣の情報処理装置の数を管理し、通信可能である近隣の情報処理装置の数を示す情報(通信可能数情報)を保持する。また、通信部120は、無線通信に用いるチャネルの利用度合いを定期的または不定期に観測し、情報処理装置100の周りの通信回線がどの程度混雑しているか否かを示す情報(混雑度情報)を保持する。また、通信部120は、無線通信を行う近接の情報処理装置との間のリンククオリティ(受信電力や送信可能なデータレート等)を観測し、どの程度の帯域幅で近接の情報処理装置との間で無線通信を行うことができるかを示す情報(通信状態情報)を保持する。そして、通信部120は、これらの各情報を制御部140に供給する。
I/Oインタフェース130は、情報処理装置100と連動して動作するセンサ・アクチュエータ等の外部装置とのインタフェースである。図2では、外部装置として、例えば、移動検出部171、操作受付部172、表示部173および音声出力部174がI/Oインタフェース130に接続される例を示す。また、図2では、移動検出部171、操作受付部172、表示部173および音声出力部174を情報処理装置100の外部に設ける例を示すが、これらの全部または一部を情報処理装置100に内蔵するようにしてもよい。
移動検出部171は、情報処理装置100の加速度、動き、傾き等を検出することにより情報処理装置100の移動を検出するものであり、検出された移動に関する移動情報を、I/Oインタフェース130を介して制御部140に出力する。例えば、移動検出部171は、情報処理装置100が場所を移動しているか否かを示す移動情報(ログ(または、その移動に関するリアルタイム情報))を保持し、制御部140に供給する。なお、移動検出部171として、例えば、加速度センサ、ジャイロセンサ、GPS(Global Positioning System)を用いることができる。例えば、移動検出部171は、GPSを用いて検出された位置情報(例えば、緯度および経度)を利用して、情報処理装置100の移動距離(例えば、単位時間当たりの移動距離)を算出することができる。
操作受付部172は、ユーザにより行われた操作入力を受け付ける操作受付部であり、受け付けられた操作入力に応じた操作情報を、I/Oインタフェース130を介して制御部140に出力する。操作受付部172は、例えば、タッチパネル、キーボード、マウスにより実現される。
表示部173は、制御部140の制御に基づいて各種情報を表示する表示部である。なお、表示部173として、例えば、有機EL(Electro Luminescence)パネル、LCD(Liquid Crystal Display)パネル等の表示パネルを用いることができる。なお、操作受付部172および表示部173については、使用者がその指を表示面に接触または近接することにより操作入力を行うことが可能なタッチパネルを用いて一体で構成することができる。
音声出力部174は、制御部140の制御に基づいて、各種音声を出力する音声出力部(例えば、スピーカ)である。
制御部140は、メモリ150に格納されている制御プログラムに基づいて情報処理装置100の各部を制御するものである。例えば、制御部140は、送受信した情報の信号処理を行う。また、制御部140は、CPU(Central Processing Unit)により実現される。
メモリ150は、各種情報を格納するメモリである。例えば、メモリ150には、情報処理装置100が所望の動作を行うために必要となる各種情報(例えば、制御プログラム)が格納される。また、メモリ150には、例えば、図21に示すメッシュパス・テーブル350が格納される。また、メモリ150には、音楽コンテンツや画像コンテンツ(例えば、動画コンテンツ、静止画コンテンツ)等の各種コンテンツが格納される。
例えば、無線通信を利用してデータを送信する場合には、制御部140は、メモリ150から読み出された情報やI/Oインタフェース130から入力された信号等を処理し、実際に送信するデータの塊(送信パケット)を生成する。続いて、制御部140は、その生成された送信パケットを通信部120に出力する。また、通信部120は、その送信パケットを、実際に伝送するための通信方式のフォーマット等に変換した後に、変換後の送信パケットをアンテナ110から外部に送信する。
また、例えば、無線通信を利用してデータを受信する場合には、通信部120は、アンテナ110を介して受信した電波信号を、通信部120内の受信機が行う信号処理により受信パケットを抽出する。そして、制御部140は、その抽出された受信パケットを解釈する。この解釈の結果、保持すべきデータであると判断された場合には、制御部140は、そのデータをメモリ150に書き込む。また、他の情報処理装置に転送すべきデータであると判断された場合には、制御部140は、他の情報処理装置に転送するための送信パケットとして、そのデータを通信部120に出力する。また、外部アクチュエータに転送すべきデータであると判断された場合には、制御部140は、I/Oインタフェース130から外部(例えば、表示部173)に出力する。
例えば、制御部140は、メモリ150に格納されている各種コンテンツを、無線通信を利用して他の情報処理装置に提供することができる。
なお、情報処理装置100がバッテリーにより駆動されている場合には、情報処理装置100にはバッテリーが搭載されている(内蔵または装着)。この場合に、制御部140は、バッテリー残量を推定する機能を備え、推定されたバッテリー残量を随時取得することができる。
[信号フォーマット例]
図3は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置間においてやりとりされるパケットの信号フォーマットの一例を示す図である。
ここで、通信システム200を構成する各情報処理装置は、通信時にパケット形状の信号のやりとりを行う。このパケット形状の信号には、少なくとも管理パケットおよびデータパケットの2種類が存在する。そこで、図3のaには、管理パケットの信号フォーマットの一例を示し、図3のbには、データパケットの信号フォーマットの一例を示す。
図3のaに示す管理パケットは、ネットワークを生成する目的や、ネットワークを保持する目的で用いられるパケットである。
図3のaに示すように、管理パケットの送信信号は、ヘッダ部(301乃至303)と、ペイロード部304とから構成される。また、ヘッダ部には、3つのフィールドが存在する。この3つのフィールドは、Frame Controlフィールド301、RX STA ADDRフィールド302およびTX STA ADDRフィールド303である。
ヘッダ部の先頭には、このヘッダを含む信号の属性等が格納されているFrame Controlフィールド301が存在する。各情報処理装置は、Frame Controlフィールド301を参照することにより、パケットがデータパケットであるか、制御や管理のための管理パケットであるか等の情報を取得することができる。
RX STA ADDRフィールド302には、パケットの受信局を示す識別子(アドレス)が格納される。各情報処理装置は、RX STA ADDRフィールド302を参照することにより、その信号(パケット)をどの情報処理装置が受信するかを把握することができる。例えば、信号(パケット)を受信した情報処理装置は、RX STA ADDRフィールド302の内容が、自装置の識別子(アドレス)である場合、または、ブロードキャストアドレスである場合に、その受信した信号(パケット)の受信処理を開始する。
TX STA ADDRフィールド303には、パケットの送信局の識別子(アドレス)が格納される。各情報処理装置は、TX STA ADDRフィールド303を参照することにより、どの情報処理装置がその信号を送信したかを認識することができる。
図3のbに示すデータパケットは、アプリケーションデータ等を伝送する際に用いられるパケットである。
図3のbに示すように、データパケットの送信信号は、ヘッダ部(305乃至309)と、ペイロード部310とから構成される。また、ヘッダ部には、5つのフィールドが存在する。この5つのフィールドは、Frame Controlフィールド305、RX STA ADDRフィールド306、TX STA ADDRフィールド307、Dst STA ADDRフィールド308およびSrc STA ADDRフィールド309である。
ヘッダの先頭には、このヘッダの信号を含む属性等が格納されているFrame Controlフィールド305が存在する。各情報処理装置は、Frame Controlフィールド305を参照することにより、パケットがデータパケットであるか、制御や管理のための管理パケットであるか等の情報を取得することができる。
RX STA ADDRフィールド306には、パケットの受信局を示す識別子(アドレス)が格納される。各情報処理装置は、RX STA ADDRフィールド306を参照することにより、その信号(パケット)をどの情報処理装置が受信するかを把握することができる。例えば、信号(パケット)を受信した情報処理装置は、RX STA ADDRフィールド306の内容が、自装置の識別子(アドレス)である場合、または、ブロードキャストアドレスである場合には、その受信した信号(パケット)の受信処理を開始する。
TX STA ADDRフィールド307には、パケットの送信局の識別子(アドレス)が格納される。各情報処理装置は、TX STA ADDRフィールド307を参照することにより、どの情報処理装置がその信号を送信したかを認識することができる。
Dst STA ADDRフィールド308には、パケットの宛先局(当該パケットを最終的に受信すべき情報処理装置)を示す識別子(アドレス)が格納される。各情報処理装置は、Dst STA ADDRフィールド308を参照することにより、その信号を最終的にどの情報処理装置に送信すべきかを把握することができる。例えば、信号を受信した情報処理装置は、Dst STA ADDRフィールド308が、自装置の識別子(アドレス)でない場合には、その受信した信号を宛先局に送信するための転送処理を行う。
Src STA ADDRフィールド309には、パケットの送信元局(最初にパケットを送信した情報処理装置)の識別子(アドレス)が格納される。例えば、各情報処理装置は、Src STA ADDRフィールド309を参照することにより、その信号をどの情報処理装置が送信したのかを認識することができる。
ここで、上述したマルチホップ・リレーにより、特定の情報処理装置へ宛てたデータを転送する場合には、データの転送に先立って、どの経路でリレーしていくかを決定する必要がある。この手順は、経路選択と呼ばれる。また、この経路選択では、情報処理装置間で経路選択のための管理信号をやりとりすることにより通信経路を決定する。なお、メッシュネットワークにおける通信経路は、メッシュパスと呼ばれる。図4乃至図7では、そのメッシュパスを生成するために用いられる管理信号の種類と各々のフォーマットとを示す。
[信号フォーマット例]
図4は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置間においてやりとりされる管理パケットの信号フォーマットの一例を示す図である。
図5乃至図7は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置間においてやりとりされる管理パケットの信号フォーマットの内容例を示す図である。すなわち、図5乃至図7では、図4に示す管理パケットの信号フォーマットの内容例を示す。
図4のaには、管理パケットを示す。この管理パケットは、図3のaと同様である。なお、上述したように、管理パケットのFrameControlフィールド301には、この信号が管理パケットである旨が格納される。
図4のb乃至dには、図4のaに示す管理パケットにおけるペイロード部304の構成例を示す。具体的には、図4のbには、管理パケットがRANN(ルート報知信号)である場合の構成例を示す。また、図4のcには、管理パケットがPREQ(経路要求信号)である場合の構成例を示す。また、図4のdには、管理パケットがPREP(経路応答信号)である場合の構成例を示す。
図4のbに示すRANN(ルート報知信号)は、送信データの有無に関わらず、プロアクティブにメッシュパスを生成する際に用いられる信号である。ここで、プロアクティブにメッシュパスを生成する場合は、データ転送の必要の有無に関わらず、ネットワーク中の特定の情報処理装置と他の情報処理装置との間のメッシュパスを事前に生成する場合を意味する。
図4のbに示すように、RANNには、複数のフィールド(311乃至318)が存在する。
Lengthフィールド311には、ペイロードの長さを示す情報が格納される。
ActionTypeフィールド312には、この信号がRANNであることを示す識別子が格納される。信号を受信した情報処理装置は、ActionTypeフィールド312を参照することにより、その受信した信号がRANNであることを認識することができる。
Flagsフィールド313には、RANNの送信元局(RANNを最初に送信した情報処理装置)の属性が格納される。この属性は、例えば、情報処理装置の役割を表す情報である。例えば、RANNを最初に送信した情報処理装置(送信元局)が他の装置をインターネットに接続させるための機器である場合には、Flagsフィールド313にその旨が格納される。
OrigSTAフィールド314には、RANNの送信元局(RANNを最初に送信した情報処理装置)がどの情報処理装置であるかを示す識別子(アドレス)が格納される。ここで、RANNはマルチホップ・リレーにより遠くまで転送されるが、RANNを受信した情報処理装置は、OrigSTAフィールド314を参照することにより、その受信したRANNの送信元局がどの情報処理装置であるのかを認識することができる。
SeqNumフィールド315には、RANNを識別するための識別子が格納される。例えば、RANNが送信元局から送信される毎に、SeqNumフィールド315には、インクリメントされた値が格納される。すなわち、RANNは送信元局から定期的、または、不定期に送信されるが、RANNを受信した情報処理装置は、SeqNumフィールド315を参照することにより、その受信したRANNが、過去に受信したRANNと同一であるか否かを認識することができる。
HopCountフィールド316には、RANNが、送信元局(RANNを最初に送信した情報処理装置)から何ホップして届けられているかを示す数値が格納される。RANNを受信した情報処理装置は、その受信したRANNをマルチホップ転送するが、この転送処理毎に、HopCountフィールド316には、インクリメントされた値が格納される。
Metricフィールド317には、RANNの送信元局(RANNを最初に送信した情報処理装置)からどれだけのメトリック値を要してたどり着いたかを示す値が格納される。RANNを受信した情報処理装置は、その受信したRANNをマルチホップ転送するが、この転送処理毎に、Metricフィールド317には、情報処理装置間のリンクのメトリック値が累積加算された値が格納される。
ここで、情報処理装置間のリンクのメトリック値は、例えば、そのリンクでは何Mbpsで伝送が可能かを示す値である。例えば、IEEE802.11−2012規格では、メトリック値caを次の式1により求めることができる。
ca=[O+(Bt/r)]/[1/(1−ef)] … 式1
ここで、rは、データレート(data rate)(Mb/s)を示す値である。また、efは、フレームエラーレート(frame error rate)を示す値である。また、Btは、フレームサイズ(frame size)を示す値である。また、Oは、PHY(physical layer(物理層))固有の値である。
Etcフィールド318には、その他の管理情報が格納される。
図4のcに示すPREQ(経路要求信号)は、特定の情報処理装置宛てのメッシュパスの生成を要求する際に用いられる信号である。
図4のcに示すように、PREQには、複数のフィールド(319乃至328)が存在する。
Lengthフィールド319には、ペイロードの長さを示す情報が格納される。
ActionTypeフィールド320には、この信号がPREQであることを示す識別子が格納される。信号を受信した情報処理装置は、ActionTypeフィールド320を参照することにより、その受信した信号がPREQであることを認識することができる。
Flagsフィールド321には、PREQがRANNの受信にトリガされて送信されたものか(プロアクティブなメッシュパス生成プロセスであるか)を示す情報が格納される。
OrigSTAフィールド322には、メッシュパス生成の要求元の情報処理装置(送信元局)を示す識別子(アドレス)が格納される。ここで、PREQはマルチホップ・リレーにより遠くまで転送されるが、PREQを受信した情報処理装置は、OrigSTAフィールド322を参照することにより、その受信したPREQの送信元局がどの情報処理装置であるのかを認識することができる。
DestSTAフィールド323には、メッシュパス生成の要求先の情報処理装置(宛先局)を示す識別子が格納される。DestSTAフィールド323に格納されている識別子により特定される情報処理装置(宛先局)は、PREQを受信すると、これに応答してPREPを返送する。これにより、双方向のメッシュパスが生成される。
SeqNumフィールド324には、PREQを識別するための識別子が格納される。例えば、PREQが送信元局から送信される毎に、SeqNumフィールド324には、インクリメントされた値が格納される。すなわち、PREQは送信元局から複数回送信されることがあるが、PREQを受信した情報処理装置は、SeqNumフィールド324を参照することにより、その受信したPREQが、過去に受信したPREQと同一であるか否かを認識することができる。
HopCountフィールド325には、PREQが、送信元局(PREQを最初に送信した情報処理装置)から何ホップして届けられているかを示す数値が格納される。PREQを受信した情報処理装置は、その受信したPREQをマルチホップ転送するが、この転送処理毎に、HopCountフィールド325には、インクリメントされた値が格納される。
Metricフィールド326には、PREQの送信元局(PREQを最初に送信した情報処理装置)からどれだけのメトリック値を要してたどり着いたかを示す値が格納される。PREQを受信した情報処理装置は、その受信したPREQをマルチホップ転送するが、この転送処理毎に、Metricフィールド326には、情報処理装置間のリンクのメトリック値が累積加算された値が格納される。
Lifetimeフィールド327には、メッシュパスの有効期間を示す情報が格納される。すなわち、メッシュパス生成要求が成功すると、有効なメッシュパス(アクティブなメッシュパス)が生成されるが、Lifetimeフィールド327には、そのメッシュパスの有効期間を特定するための値が格納される。
Etcフィールド328には、その他の管理情報が格納される。
図4のdに示すPREP(経路応答信号)は、特定の情報処理装置宛てのメッシュパス生成の要求に応答する際に用いられる信号である。
図4のdに示すように、PREPには、複数のフィールド(329乃至338)が存在する。
Lengthフィールド329には、ペイロードの長さを示す情報が格納される。
ActionTypeフィールド330には、この信号がPREPであることを示す識別子が格納される。信号を受信した情報処理装置は、ActionTypeフィールド330を参照することにより、その受信した信号がPREPであることを認識することができる。
Flagsフィールド331には、PREPの送信元局(PREPを最初に送信した情報処理装置)の属性が格納される。
OrigSTAフィールド332には、メッシュパス生成の要求元の情報処理装置を示す識別子が格納される。ここで、OrigSTAフィールド332には、PREQのOrigSTAフィールド322に格納されていた情報処理装置(PREQの送信元局)の識別子が転記される。
DestSTAフィールド333には、メッシュパス生成の要求先の情報処理装置を示す識別子が格納される。ここで、DestSTAフィールド333には、PREQのDestSTAフィールド323に格納されていた情報処理装置(PREQの宛先局)の識別子が転記される。
SeqNumフィールド334には、PREPを識別するための識別子が格納される。例えば、PREPが、PREPの送信元局から送信される毎に、SeqNumフィールド334には、インクリメントされた値が格納される。すなわち、PREPは送信元局から複数回送信されることがあるが、PREPを受信した宛先局は、SeqNumフィールド334を参照することにより、その受信したPREPが、過去に受信したPREPと同一であるか否かを認識することができる。
HopCountフィールド335には、PREPが、PREPの送信元局から何ホップして届けられているかを示す数値が格納される。PREPを受信した情報処理装置は、その受信したPREPをマルチホップ転送するが、この転送処理毎に、HopCountフィールド335には、インクリメントされた値が格納される。
Metricフィールド336には、PREPの送信元局からどれだけのメトリック値を要してたどり着いたかを示す値が格納される。PREPを受信した情報処理装置は、その受信したPREPをマルチホップ転送するが、この転送処理毎に、Metricフィールド336には、情報処理装置間のリンクのメトリック値が累積加算された値が格納される。
Lifetimeフィールド337には、メッシュパスの有効期間を示す情報が格納される。すなわち、メッシュパス生成要求が成功すると、有効なメッシュパス(アクティブなメッシュパス)が生成されるが、Lifetimeフィールド337には、そのメッシュパスの有効期間を指定するための値が格納される。
Etcフィールド338には、その他の管理情報が格納される。
通信システム200を構成する各情報処理装置は、RANN、PREQ、PREPをやりとりすることにより、マルチホップ通信時に必要となる経路情報(転送情報、メッシュパス情報とも称する)を生成する。例えば、各情報処理装置は、RANN、PREQ、PREPをやりとりすることによりマルチホップの通信経路を一定時間間隔または不定期に生成する。また、その経路情報は、宛先の情報処理装置へパケットを届けるためには、次にどの情報処理装置に転送すべきかを特定するための経路情報である。この経路情報は、メッシュパス・テーブルとして、各情報処理装置の内部で保持される。そして、各情報処理装置は、特定の情報処理装置宛てにデータパケットを送信する際に、メッシュパス・テーブルを参照して、どの情報処理装置を受信局として指定してパケットを送信するかを決定する。すなわち、各情報処理装置は、特定の情報処理装置宛てにデータパケットを送信する際に、メッシュパス・テーブルを参照して、RX STA ADDRフィールド302にどの情報処理装置を指定してパケットを送信するかを決定する。このメッシュパス・テーブルについては、図8、図21、図22を参照して詳細に説明する。
[メッシュパス・テーブルの構成例]
図8は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置が保持するメッシュパス・テーブルの一例(メッシュパス・テーブル340)を模式的に示す図である。
図8のaには、メッシュパス・テーブル340の構成を模式的に示し、図8のbには、メッシュパス・テーブル340の内容例を示す。具体的には、図8のbには、メッシュパス・テーブル340の内容例として、Index346と、データ名347と、意味348とを示す。
図8のaに示すように、メッシュパス・テーブル340は、メモリ150にレコード形式で記録されている。また、メッシュパス・テーブル340は、宛先局のアドレス(Dest341)をキーとして各レコードを抽出することができるようになっている。また、メッシュパス・テーブル340の各レコードとして、NextHop342と、Metric343と、SeqNum344と、ExpTime345とが格納される。なお、図8のbには、Index346に、各レコードを識別するための符号a乃至dを付して示す。
Index346「a」のNextHop342には、宛先局にデータを届けるために、次にどの情報処理装置に転送すればよいかを示す情報処理装置の識別子が格納される。すなわち、NextHop342には、送信局の識別子が格納される。
Index346「b」のMetric343には、自局からメッシュパスの宛先局までのパスメトリック値が格納される。このパスメトリック値の算出方法については、図9、図10等に示す。
Index346「c」のSeqNum344には、メッシュパスの生成に利用されたPREQまたはPREPのSeqNum値(例えば、図4のcおよびdに示すSeqNumフィールド324、334)が格納される。
Index346「d」のExpTime345には、メッシュパスの有効期限が格納される。このメッシュパスの有効期限は、そのメッシュパスの生成に利用されたPREQまたはPREPのLifetimeフィールド327、337(図4のcおよびdに示す)に基づいて決定される。
通信システム200を構成する各情報処理装置は、経路生成の要求やその応答時には、経路情報を生成し、この生成された経路情報をメッシュパス・テーブル340に書き込む。また、通信システム200を構成する各情報処理装置は、データを転送する際には、そのデータを届ける宛先局のアドレス(Dest341)に基づいて、メッシュパス・テーブル340からその宛先局に対応する各レコードを抽出する。そして、情報処理装置は、その抽出された各レコードのNextHop342に対応する送信局にそのデータを転送する転送処理を行う。
[リアクティブ・メッシュパスの生成例]
図9および図10は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置によるリアクティブ・メッシュパスの生成例を示す図である。
図9および図10では、PREQ、PREPを用いて、メッシュパス・テーブル340を生成するための手順について説明する。具体的には、図9および図10では、図1に示すトポロジにおいて、情報処理装置100が情報処理装置240宛てのデータを送信する場合に、情報処理装置100が情報処理装置240との間のメッシュパス生成を要求する場合について説明する。
図9のaに示すように、情報処理装置100は、DestSTAフィールド323(図4のcに示す)に情報処理装置240を指定したPREQを送信する。このPREQの構成については、図4のcおよび図6に示す。また、PREQを送信する場合には、情報処理装置100の制御部140は、送信対象となるPREQにおけるHopCountフィールド325およびMetricフィールド326には、初期値としてゼロを格納する。また、情報処理装置100の制御部140は、送信対象となるPREQにおけるSeqNumフィールド324には、前回送信したPREQに格納した値をインクリメントした値を格納する。また、情報処理装置100の制御部140は、送信対象となるPREQの管理パケットにおけるRX STA ADDRフィールド303(図4のaに示す)には、周辺の各情報処理装置を受信局として指定するためのブロードキャストアドレスを設定する。
なお、図9のaでは、情報処理装置100から各情報処理装置に送信されるPREQの流れを太線の矢印で模式的に示す。また、太線の矢印には、信号の名称(PREQ)と、宛先局の符号(Dest=E)と、PREQの送信元局および中継局(送信局を含む)の符号(A)とを付して示す。
例えば、図9のaに示すPREQ Dest=E(A)は、宛先局が情報処理装置240であり、送信元局および中継局(送信局を含む)が情報処理装置100であるPREQを意味する。なお、以降の各図についても同様に、太線の矢印には、各名称および各符号を付して示す。
図9のaに示すように、情報処理装置210、220、230は、情報処理装置100から送信されたPREQを受信する。このようにPREQを受信すると、情報処理装置210、220、230は、その受信したPREQのOrigSTAフィールド322に識別子が格納されている情報処理装置宛て(情報処理装置100宛て)のメッシュパス情報を生成する。そして、情報処理装置210、220、230は、その生成されたメッシュパス情報を、情報処理装置100を宛先とするメッシュパス情報としてメッシュパス・テーブル340に記録する。
この場合に、各情報処理装置は、メッシュパス・テーブル340のDest341には、情報処理装置100の識別子(アドレス)を格納する。また、各情報処理装置は、メッシュパス・テーブル340のIndex346「a」のNextHop342には、受信したPREQのTX STA ADDRフィールド303の識別子(アドレス)を格納する。
また、各情報処理装置は、受信したPREQの送信局および自局間のリンクのメトリック値を取得する。例えば、情報処理装置210は、受信したPREQの送信局(情報処理装置100)および自局(情報処理装置210)間のリンクのメトリック値を取得する。続いて、各情報処理装置は、受信したPREQのMetricフィールド326に格納されている値に、その取得されたリンクのメトリック値を加算してパスメトリック値を算出する。続いて、各情報処理装置は、メッシュパス・テーブル340のIndex346「b」のMetric343に、その算出されたパスメトリック値を格納する。
ここで、受信したPREQの送信局は、TX STA ADDRフィールド303に格納されている識別子に対応する情報処理装置であり、図9に示す例では、情報処理装置100である。また、受信したPREQの送信局および自局間のリンクのメトリック値は、例えば、そのリンクでは何Mbpsで伝送が可能かを示す値である。
また、各情報処理装置は、メッシュパス・テーブル340のIndex346「c」のSeqNum344には、受信したPREQのSeqNumフィールド324の値を格納する。
また、各情報処理装置は、メッシュパス・テーブル340のIndex346「d」のExpTime345には、PREQの受信時刻にそのPREQのLifetimeフィールド327に格納されている値を加算した値(有効期限)を格納する。このように生成されたメッシュパスは、メッシュパス・テーブル340のIndex346「d」のExpTime345に格納された有効期限まで、有効なメッシュパスとして参照される。
このように、情報処理装置210、220、230は、情報処理装置100宛てのメッシュパスを生成する。
また、図9のbに示すように、PREQを受信した情報処理装置210、220、230のそれぞれは、受信したPREQのDestSTAフィールド323の識別子が自装置のものでないため、受信したPREQを転送する。この転送の際に、情報処理装置210、220、230は、受信したPREQのHopCountフィールド325をインクリメントする。そして、Metricフィールド326には、先に計算したパスメトリック値を格納し、他のPREQのフィールドには、受信したPREQの値を転記する。また、情報処理装置210、220、230は、RX STA ADDRフィールド302には、周辺の各情報処理装置を受信局として指定するためのブロードキャストアドレスを設定する。
例えば、情報処理装置240は、このように転送されたPREQを受信すると、上述した手順で、その受信したPREQのOrigSTAフィールド322に識別子が格納されている情報処理装置宛て(情報処理装置100宛て)のメッシュパス情報を生成する。そして、情報処理装置240は、その生成されたメッシュパス情報を、情報処理装置100を宛先とするメッシュパス情報としてメッシュパス・テーブル340に記録する。
ここで、図9のbに示すように、情報処理装置240は、情報処理装置220および230のそれぞれからPREQ信号を受信する。このように、複数の情報処理装置からPREQ信号を受信した場合には、情報処理装置240は、パスメトリック値の小さなパスを有効なメッシュパスとして選択し、パスメトリック値が大きいPREQを廃棄する。
図9に示す例では、情報処理装置220から転送されたPREQのパスメトリック値よりも、情報処理装置230から転送されたPREQのパスメトリック値のほうが小さい場合を想定する。この場合には、情報処理装置240は、情報処理装置100宛てのメッシュパスとして、情報処理装置230をNextHop342とするメッシュパスを生成する。
また、情報処理装置240は、受信したPREQのDestSTAフィールド323として自装置が指定されているため、このPREQに応答するためのPREPを生成する。そして、図10のaに示すように、情報処理装置240は、生成されたPREP信号を、PREQのOrigSTAフィールド322宛てのNextHopを受信局に指定して送信する。
この場合に、情報処理装置240は、OrigSTAフィールド332およびDestSTAフィールド333には、PREQに格納されていた値を転記し、HopCountフィールド335およびMetricフィールド336には、初期値としてゼロを格納する。また、情報処理装置240は、SeqNum344には、前回送信したPREQまたはPREPに格納した値をインクリメントした値を格納する。また、情報処理装置240は、RX STA ADDRフィールド302には、ユニキャストで情報処理装置230に送信するため、PREQのOrigSTA宛てのNextHop(この場合は情報処理装置230)を設定する。
情報処理装置230は、情報処理装置240から送信されたPREPを受信すると、上述した手順で、その受信したPREPのDestSTAフィールド333に識別子が格納されている情報処理装置宛て(情報処理装置240宛て)のメッシュパス情報を生成する。そして、情報処理装置230は、その生成されたメッシュパス情報を、情報処理装置240を宛先とするメッシュパス情報としてメッシュパス・テーブル340に記録する。このように、情報処理装置240から送信されたPREPを受信した場合には、情報処理装置230は、情報処理装置240宛てのメッシュパスを生成する。
図10のbに示すように、PREPを受信した情報処理装置230は、その受信したPREPのOrigSTAフィールド332の識別子が自装置のものでない。このため、情報処理装置230は、その受信したPREPをOrigSTAフィールド332の識別子に対応する情報処理装置に転送する。この転送の際に、情報処理装置230は、その受信したPREPのHopCountフィールド335をインクリメントする。そして、Metricフィールド336には、上述した手順で計算したパスメトリック値を格納し、他のPREPのフィールドには、受信したPREPの値を転記する。また、情報処理装置230は、PREPをユニキャストで送信するため、RX STA ADDRフィールド302には、情報処理装置100宛てのメッシュパスのNextHop342のアドレス(情報処理装置100のアドレス)を設定する。これにより、図10のbに示すように、情報処理装置230から情報処理装置100へのPREPのユニキャスト送信が行われる。
情報処理装置100は、情報処理装置230から送信されたPREPを受信すると、上述した手順で、その受信したPREPのDestSTAフィールド333に識別子が格納されている情報処理装置宛て(情報処理装置240宛て)のメッシュパス情報を生成する。そして、情報処理装置100は、その生成されたメッシュパス情報を、情報処理装置240を宛先とするメッシュパス情報としてメッシュパス・テーブル350に記録する。
このように、情報処理装置100は、情報処理装置240宛てのメッシュパスを生成する。また、情報処理装置100は、その受信したPREPのOrigSTAフィールド332の識別子が自装置のものであるため、これ以降の転送処理は行わず、情報処理装置100および情報処理装置240間の双方向メッシュパス生成手順を終了させる。
これ以降、生成されたメッシュパスの有効期限(ExpTime345)が経過するまでの間は、各情報処理装置内で生成されて保持されているメッシュパスレコードを参照することができる。このため、その有効期限が経過するまでの間は、情報処理装置100および情報処理装置240間でデータをやりとりする際に、各情報処理装置に保持されているメッシュパスレコードを参照して、マルチホップ・リレーの通信を行うことができる。
[プロアクティブ・メッシュパスの生成例]
上述したように、リアクティブ型のメッシュパス生成は、実際にデータの転送が必要になったときに起動される。ただし、データ転送の必要の有無に関わらず、ネットワーク中の特定の情報処理装置と他の情報処理装置との間のメッシュパスを事前に生成しておく手法も存在する。この手法は、プロアクティブ・メッシュパス生成と呼ばれる。例えば、メッシュネットワーク中に、外部ネットワークに接続されているゲートウエイ等があり、このゲートウエイを起点にインターネットに接続する場合には、ゲートウエイ機能を備える情報処理装置との間のメッシュパスを事前に作っておくと便利である。このため、プロアクティブ・メッシュパス生成が行われる場合がある。そこで、図11乃至図13では、プロアクティブ・メッシュパスの生成例について説明する。
図11乃至図13は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置によるプロアクティブ・メッシュパスの生成例を示す図である。図11乃至図13では、情報処理装置100がゲートウエイ機能を備え、情報処理装置100が経路のルート局として動作する例を示す。
図11のaに示すように、プロアクティブ・メッシュパス生成においては、経路のルート局として動作する情報処理装置100は、定期的または不定期にRANN(ルート報知信号)をブロードキャスト宛てに送信する。すなわち、RANNの送信では、RX STA ADDRフィールド302には、ブロードキャストアドレスが格納される。
また、図4のbおよびcに示すように、RANNは、DestSTAフィールドおよびLifetimeフィールドが存在しない点以外は、PREQと略同様である。
また、RANNを受信した各情報処理装置が行う各処理については、PREQを受信した場合と略同様である。すなわち、RANNを受信した各情報処理装置は、その受信したRANNのHopCountフィールド316およびMetricフィールド317を更新する。そして、図11のbに示すように、その更新されたRANNを周辺の情報処理装置に向けてブロードキャスト宛てに転送する。
ここで、RANNは、周辺の情報処理装置に向けてブロードキャスト送信されるため、各情報処理装置は、RANNを複数回、異なる情報処理装置から受信することがある。この場合には、各RANNの受信に際してパスメトリック値を算出し、パスメトリック値が小さいRANNのみを有効なRANNとして各処理を行う。そして、パスメトリック値が最小となるRANNがどの情報処理装置(隣接する情報処理装置)から送信されてきたRANNであるかを把握して、その最小となるRANNを送信した情報処理装置を記録しておく。
RANNを受信した各情報処理装置は、そのRANNのOrigSTAフィールド314に識別子が格納されている情報処理装置とのメッシュパスを生成するため、PREQを送信する。すなわち、RANNを受信した各情報処理装置は、そのRANNのOrigSTAフィールド314の識別子をDestSTAフィールド323に格納したPREQを送信する。
ここで、各情報処理装置は、受信したRANNのOrigSTAフィールド314に識別子が格納されている情報処理装置に、どの情報処理装置(隣接する情報処理装置)を介して送信すれば、パスメトリック値が最小となるかをすでに把握している。このため、RANNを併用する場合には、PREQをブロードキャスト送信せずに、そのパスメトリック値が最小となる情報処理装置(隣接する情報処理装置)を受信局として設定し、ユニキャスト送信する。この場合には、PREQのFlagsフィールド321には、RANNの受信により送信されたPREQである旨が格納される。また、図12のaでは、情報処理装置240が情報処理装置230を受信局に指定してPREQを送信する例を示す。これ以外のPREQに関する各処理に関しては、リアクティブ・メッシュパス生成と略同様であるため、ここでの説明を省略する。
また、図12のbに示すように、情報処理装置230は、情報処理装置240から送信されたPREQを受信すると、情報処理装置240宛てのメッシュパスを更新し、さらに情報処理装置100へとPREQを転送する。
また、図13のaに示すように、情報処理装置100は、情報処理装置230から送信されたPREQを受信すると、情報処理装置240宛てのメッシュパスを更新し、その受信したPREQに応答してPREPを返送する。
また、図13のbに示すように、情報処理装置230は、情報処理装置100から送信されたPREPを受信すると、情報処理装置100宛てのメッシュパスを更新し、さらに情報処理装置240へとPREPを転送する。
情報処理装置240は、情報処理装置230から送信されたPREPを受信すると、情報処理装置100宛てのメッシュパスを更新し、情報処理装置240および情報処理装置100間の双方向メッシュパス生成手順を終了する。
なお、上述したような無線ネットワークシステムを構成するための技術としては、IEEE 802.11-2012規格(IEEE Standard for Information technology--Telecommunications and information exchange between systems Local and metropolitan area networks--Specific requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications)が広く知られている。
[メッシュパスの生成・維持管理について]
上述したように、通信システム200を構成する各情報処理装置は、信号(PREQ、PREP、RANN)のやりとりを行い、メッシュパスの生成・維持管理を行う。そこで、これらの各処理について変更または追加することにより、メッシュパスの生成・維持管理をさらに適切に行うことが重要である。以下では、これらの点について説明する。
ここで、図1に示すように各情報処理装置が配置され、リンク(点線251乃至257で示す)が張られている場合を想定する。この場合に、第1リンク(点線251で示す)のメトリック値が100であり、第2リンク(点線252で示す)のメトリック値が100であり、第3リンク(点線253で示す)のメトリック値が400であるものとする。また、第4リンク(点線254で示す)のメトリック値が150であり、第5リンク(点線255で示す)のメトリック値が400であるものとする。また、第6リンク(点線256で示す)のメトリック値が100であり、第7リンク(点線257で示す)のメトリック値が200であるものとする。
[リアクティブ・メッシュパス生成について]
図14および図15は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置によるリアクティブ・メッシュパスの生成例を示す図である。図14および図15では、情報処理装置100が情報処理装置220に対してメッシュパス生成を要求する場合の例を示す。
図14のaに示すように、情報処理装置100がDestSTAフィールド323に情報処理装置220を指定したPREQをブロードキャスト送信する。このPREQは、情報処理装置220に直接送信される。このため、図14のbに示すように、情報処理装置220は、そのPREQを受信すると、PREPの応答処理を起動する。これにより、情報処理装置100および情報処理装置220間のメッシュパス生成が完了する。
ただし、情報処理装置100および情報処理装置220間のメッシュパスが生成された後に、図15のaに示すように、情報処理装置210が、受信したPREQの転送を行うと、情報処理装置220は、そのPREQを受信する。
ここで、上述したように、情報処理装置100および情報処理装置220のリンクのメトリック値(400)よりも、情報処理装置210を経由した経路のメトリック値(200(100+100))の方が小さい値となる。このため、図15のbに示すように、情報処理装置210が送信したPREQを受信すると、情報処理装置220は、そのPREPの応答処理を再度起動する。そして、情報処理装置210が、そのPREPを情報処理装置100に転送することにより、情報処理装置210を経由する情報処理装置100および情報処理装置220間の経路(メトリック値が最少となる経路)を設定することができる。
しかしながら、図14に示すように、メトリック値が最少となる経路を設定する前に、誤った経路(メトリック値が最少ではない経路)が設定されることになる。
そこで、本技術の実施の形態では、誤った経路が設定されることを防止する例を示す。例えば、本技術の第1の実施の形態では、PREQの宛先局がそのPREQを受信した直後にPREPを返送せずに、タイマ(時間ウインドウ)を設定し、このタイマが終了したタイミングでそのPREPの応答処理を起動する例を示す。
[リアクティブ・メッシュパスの生成について]
図16は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置によるリアクティブ・メッシュパスの生成例を示す図である。図16では、情報処理装置100が情報処理装置210に対してメッシュパス生成を要求する場合の例を示す。
図14および図15に示すように、情報処理装置210を経由する情報処理装置100および情報処理装置220間の経路(メトリック値が最少となる経路)が設定されている場合を想定する。この場合に、情報処理装置100が情報処理装置210に対して新規のメッシュパスを設定するための要求を行う場合を想定する。
図16に示すように、情報処理装置100は、DestSTAフィールド323に情報処理装置210を指定したPREQをブロードキャスト送信する。このPREQは、情報処理装置220にも直接送信される。このため、情報処理装置220は、そのPREQを受信すると、PREQの受信処理を起動する。すなわち、情報処理装置220は、PREQのOrigSTAフィールド322に対応する情報処理装置100宛てのメッシュパス情報を生成(この場合は更新)し、情報処理装置100に関するレコードの各情報としてメッシュパス・テーブル340に記録する。
これらの各処理により、設定されていた経路情報(情報処理装置210を経由する情報処理装置100および情報処理装置220間の経路(メトリック値が最少となる経路))が上書きされる。このように、上書きがされた場合には、情報処理装置220は、正しい経路(メトリック値が最少となる経路)での通信ができなくなるおそれがある。
そこで、本技術の第1の実施の形態では、PREQの受信時にはメッシュパスのレコードを書き換えずに保持情報として保持し、この保持情報についてはPREPを送信するタイミングでメッシュパスの情報として反映させる例を示す。
[プロアクティブ・メッシュパスの生成について]
図17および図18は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置によるプロアクティブ・メッシュパスの生成例を示す図である。図17および図18では、情報処理装置100がルート局であり、RANNを定期的に送信する場合の例を示す。
図17のaに示すように、情報処理装置100は、RANNをブロードキャスト送信する。このRANNは、情報処理装置220に直接送信される。このため、情報処理装置220は、そのRANNを受信すると、プロアクティブなメッシュパスを生成するため、図17のbに示すように、PREQの送信処理を起動する。これに応答して情報処理装置100がPREPを情報処理装置220に送信すると、情報処理装置100および情報処理装置220間のメッシュパス生成が完了する。
このように、メッシュパスが生成された後にも、図18のaに示すように、情報処理装置210がRANNの転送を行うことになる。このように、情報処理装置210が転送したRANNを受信すると、情報処理装置220は、情報処理装置210を経由した経路の方が小さなメトリック値であるため、図18のbに示すように、PREQの送信処理を再度起動する。
これらの処理により、情報処理装置210を経由する情報処理装置100および情報処理装置220間の経路(メトリック値が最少となる経路)を設定することができる。ただし、プロアクティブ・メッシュパスの生成においても、図17に示すように、メトリック値が最少となる経路を設定する前に、誤った経路(メトリック値が最少ではない経路)が設定されてしまうことになる。
そこで、本技術の実施の形態では、誤った経路が設定されることを防止する例を示す。例えば、本技術の第1の実施の形態では、RANNを受信した直後にPREQを送信せずにタイマ(時間ウインドウ)を設定し、このタイマが終了したタイミングでそのPREQの応答処理を起動する例を示す。
[有効なメッシュパス更新について]
ここでは、情報処理装置210を経由する情報処理装置100および情報処理装置220間の経路(メトリック値が最少となる経路)の有効なメッシュパスが設定されている場合を想定する。
上述したように、メッシュパスには有効期限が設定されている。ただし、有効期限が近付いたもののデータパケットの送受信が活発に行われている場合には、そのメッシュパスが無効になる前にメッシュパスをリフレッシュする処理が行われることがある。このリフレッシュ処理は、例えば、有効期限が近付いていると判断されたレコードの宛先局に対してPREQを生成する等の処理を行うことにより実現される。具体的には、例えば、情報処理装置が、データパケット転送時にメッシュパス・テーブル340のレコードを参照し、ExpTime345に格納されている有効期限が近付いているか否かを判断する。そして、情報処理装置は、有効期限が近付いていると判断された場合には、そのレコードの宛先局に対してPREQを生成する等の処理を行う。
ここで、ExpTime345の設定値は、PREQやPREPのLifetimeフィールド327、337の値に基づいて設定される。このため、メッシュパスのリフレッシュの起動(PREQの生成処理)が、情報処理装置100、情報処理装置210、情報処理装置220で同時に発生することが想定される。このように、メッシュパスのリフレッシュの起動(PREQの生成処理)が同時に発生すると、メッシュパス生成のための多数の管理信号がやりとりされることになり、無線通信のオーバーヘッドを増やすことになる。
そこで、本技術の実施の形態では、不要なオーバーヘッドを削減する例を示す。例えば、本技術の第1の実施の形態では、メッシュパスの有効期限満了に近いときに行われるパスのリフレッシュ処理については、リフレッシュ処理を行う情報処理装置がメッシュパスのどこに位置するのかに応じてトリガされる条件を変更する例を示す。
[部分的に重複するメッシュパス生成のオーバーヘッドについて]
ここでは、情報処理装置210を経由する情報処理装置100および情報処理装置220間の経路(メトリック値が最少となる経路)のメッシュパスが生成された場合を想定する。このようにメッシュパスが生成された後に、情報処理装置100が情報処理装置210とのメッシュパスを生成する場合がある。
ここで、情報処理装置100が情報処理装置210との間でメッシュパスを生成するためには、情報処理装置100が、DestSTAフィールド323に情報処理装置210を設定したPREQを送信する必要がある。このように、情報処理装置100が情報処理装置210との間でメッシュパスを生成するためには、メッシュパス生成のための管理信号のやりとりが発生する。この管理信号のオーバーヘッドは、できるだけ少なく収めることが重要である。
また、情報処理装置100が情報処理装置220との間で設定したメッシュパスにおいて、情報処理装置100のNextHop342が情報処理装置210に設定されている。このため、情報処理装置100から情報処理装置210宛てのNextHop342は、情報処理装置210であることが自明である。しかしながら、このような場合でも、情報処理装置210とのメッシュパスを生成するためには、情報処理装置100は、新たな管理信号をやりとりする必要がある。
そこで、本技術の第1の実施の形態では、メッシュパスを生成する際には、NextHopに対応する情報処理装置宛てのメッシュパスレコードについても生成(一時保持、更新)する例を示す。また、本技術の第1の実施の形態では、NextHopのレコード更新に際しては、パスのリフレッシュ処理が最も遅くトリガされるように設定を行う例を示す。
[有効なメッシュパスの更新について]
図19は、本技術の第1の実施の形態における通信システム200において有効なメッシュパスが設定されている場合を示す図である。図19では、情報処理装置210を経由する情報処理装置100および情報処理装置220間の経路(メトリック値が最少となる経路)の有効なメッシュパス(太線251、252で示す)が設定されている例を示す。
図20は、本技術の第1の実施の形態における情報処理装置100が有効なメッシュパスを更新する場合におけるデータの流れを模式的に示す図である。
ここで、図19に示すメッシュパスの有効期限が近付いた場合に、そのメッシュパスをリフレッシュして更新する場合を想定する。この場合には、図20のaに示すように、情報処理装置100は、メッシュパスのリフレッシュのため、DestSTAフィールド323に情報処理装置220を設定したPREQをブロードキャスト送信する。
情報処理装置100から送信されたPREQを受信した情報処理装置210は、その受信したPREQの転送を行うため、そのPREQをブロードキャスト送信する。また、情報処理装置210が送信したPREQを受信した情報処理装置220は、情報処理装置210を経由した正しい経路を選択した上でPREPの応答処理を行うことができる。
しかしながら、情報処理装置100から情報処理装置220にPREQが正しく伝送されないことも想定される。例えば、PREQが他の信号と衝突する等の理由により正しく伝送されないことが想定される。
ここで、ブロードキャスト送信は、ARQ(Automatic repeat-request(自動再送要求))を伴った伝送が行われず、信号衝突を検知することができない。このため、例えば、図20のbに示すように、情報処理装置210から情報処理装置220へのPREQのブロードキャスト送信に失敗した場合(×印で示す)には、情報処理装置220は、PREQを受信することができない。
この場合には、情報処理装置220は、情報処理装置100から直接送信されたPREQの受信結果に基づいて、PREPの応答信号を生成してそのPREPを情報処理装置100に直接返送することになる。この場合には、メッシュパスのリフレッシュ処理により、正しい経路ではなく、誤った経路が設定されることになる。
すなわち、情報処理装置210を経由する情報処理装置100および情報処理装置220間の経路(正しい経路)ではなく、情報処理装置210を経由しない情報処理装置100および情報処理装置220間の経路(誤った経路)が設定されることになる。
そこで、本技術の第2の実施の形態では、有効なメッシュパスのNextHopに相当する情報処理装置に管理情報(PREQやRANN)を送信する場合には、同一の管理情報をブロードキャスト送信およびユニキャスト送信する例を示す。この例については、本技術の第2の実施の形態で示す。
[メッシュパス・テーブルの構成例]
図21および図22は、本技術の第1の実施の形態における通信システム200を構成する各情報処理装置が保持するメッシュパス・テーブルの一例(メッシュパス・テーブル350)を模式的に示す図である。
図21には、メッシュパス・テーブル350の構成を模式的に示し、図22には、メッシュパス・テーブル350の内容例を示す。具体的には、図22には、メッシュパス・テーブル350の内容例として、Index346と、データ名347と、意味348とを示す。なお、図21および図22に示すメッシュパス・テーブル350は、図8に示すメッシュパス・テーブル340に新たな情報を追加したものである。具体的には、符号f乃至k、n、p、qの各情報が新規に追加された情報である。このため、図21および図22では、図8に示すメッシュパス・テーブル340と共通する部分には同一の符号を付してこれらの説明の一部を省略する。また、図21は、図8のaに対応し、図22は、図8のbに対応する。
図21に示すように、メッシュパス・テーブル350は、メモリ150にレコード形式で記録されている。このように、本技術の実施の形態では、説明の容易のため、図8に示すメッシュパス・テーブル340に新たな情報を追加したメッシュパス・テーブル350を1つのテーブルで管理する例を示す。ただし、新たに追加される情報(符号f乃至k、n、p、qの各情報)については、メッシュパス・テーブル340とは別のテーブル(または、別のメモリ)で管理するようにしてもよい。
Index346「e」のProactiveFlag351には、メッシュパスがプロアクティブに生成されたものであるか否かを示すフラグが格納される。
Index346「f」のActReason352には、メッシュパスにおいて自装置がどの位置に存在するかを示す値が格納される。この値として、例えば、そのメッシュパスの生成時に、自装置がOrigSTAであったか、DestSTAであったか、OrigSTAから何ホップ目の中継局であったかを示す値が格納される。
Index346「g」のCand(Candidate).Flag353には、Index346「f」以降の各情報が有効であるか否かを示すフラグが格納される。
Index346「h」のCand.NextHop354には、PREQ(または、RANN)を受信した際に、このレコードの宛先局へのNextHop候補と判断された情報処理装置の識別子が格納される。ここで、レコードの宛先局は、その受信したPREQ(または、RANN)のOrigSTAに識別子が格納されている情報処理装置を意味する。
Index346「i」のCand.Metric355には、PREQ(または、RANN)を受信した際に算出されたパスメトリック値が格納される。このパスメトリック値は、このレコードの宛先局(すなわち、PREQ(または、RANN)のOrigSTA)までのパスメトリック値を意味する。
Index346「j」のCand.SeqNum356には、このレコードを生成する際に利用されたPREQ(または、RANN)のSeqNum値が格納される。
Index346「k」のCand.ExpTime357には、このレコードを生成する際に利用されたPREQのLifetimeに基づいて決定される有効期限が格納される。
Index346「n」のCand.ActReason358には、メッシュパスにおいて自装置がどの位置に存在するかを示す値が格納される。この値として、例えば、そのメッシュパスの生成時に、自装置がOrigSTAであったか、DestSTAであったか、OrigSTAから何ホップ目の中継ノードであったかを示す値が格納される。
Index346「p」のCand.NB(neighbor).Metric359には、このレコードを生成する際に利用されたPREQ(または、RANN)の送信局との間のリンクメトリック値が格納される。
Index346「q」のCand.NB.ExpTime360には、このレコードを生成する際に利用されたPREQのLifetimeに基づいて決定される有効期限が格納される。
これらの項目(符号f乃至k、n、p、q)は、PREQの受信時およびRANNの受信時に、PREQまたはRANNのOrigSTAに対応する宛先局のレコードを対象に記録される。そして、PREPを送信するタイミングで、メッシュパスの更新時に元データとして参照される。
[情報処理装置の動作例]
次に、情報処理装置の動作例について図面を参照して詳細に説明する。なお、以下で示す各動作例では、情報処理装置100についてのみ説明するが、他の情報処理装置の動作についても同様に適用することができる。
[PREQ受信時の処理例]
図23は、本技術の第1の実施の形態における情報処理装置100が保持するメッシュパス・テーブル350の更新例を示す図である。なお、この更新については、図24を参照して詳細に説明する。
図24は、本技術の第1の実施の形態における情報処理装置100による信号処理の処理手順の一例を示すフローチャートである。
ここで、メッシュパスの生成を要求する情報処理装置は、上述した手順によりPREQを送信する。そこで、図24では、PREQを受信した情報処理装置100による信号送受信処理の処理手順の一例を示す。なお、この例で示す各信号の符号については、図4に示す信号と同一の符号を付して示す。また、この例で示すメッシュパス・テーブル350の符号については、図21に示すメッシュパス・テーブル350と同一の符号を付して示す。また、以下の各動作例で示す各符号についても同様である。
PREQを受信した情報処理装置100の制御部140は、その受信したPREQのOrigSTAフィールド322に識別子が格納されている情報処理装置(送信元局)までのパスメトリック値を算出する(ステップS801)。例えば、情報処理装置100の制御部140は、その受信したPREQを送信した送信局(TX STA ADDRフィールド303に識別子(アドレス)が格納されている情報処理装置)および自局間のリンクメトリック値を取得する。例えば、情報処理装置100の制御部140は、現在のビーコンのRSSI(Received Signal Strength Indicator)に基づいて、送信局および自局間のリンクメトリック値を推定することができる。例えば、RSSIおよびメトリック値の対応テーブルを予め保持しておき、このテーブルを用いて、RSSIからメトリック値を推定することができる。続いて、情報処理装置100の制御部140は、その加算により求められたリンクメトリック値を、その受信したPREQのMetricフィールド326に格納されている値に加算してパスメトリック値を算出する(ステップS801)。
続いて、情報処理装置100の制御部140は、その受信したPREQのOrigSTAフィールド322に識別子が格納されている送信元局を宛先(Dest341)とするレコードをメッシュパス・テーブル350から抽出する(ステップS802)。このレコードを構造体変数TABとも称して説明する。
続いて、情報処理装置100の制御部140は、OrigSTAフィールド322に識別子が格納されている送信元局を宛先とするレコードが存在するか否かを判断する(ステップS803)。そのレコードが存在しない場合には(ステップS803)、情報処理装置100の制御部140は、その送信元局を宛先(Dest341)とする新規レコードをメッシュパス・テーブル350に生成する(ステップS804)。
また、そのOrigSTAフィールド322に識別子が格納されている送信元局を宛先とするレコードが存在する場合には(ステップS803)、情報処理装置100の制御部140は、経路候補とするか否かを判断する(ステップS805)。すなわち、情報処理装置100の制御部140は、受信したPREQのSeqNumフィールド324の値がTABのCand.SeqNum356(図21に示す)の値よりも大きいか否かを判断する。また、情報処理装置100の制御部140は、その両者が一致していて、かつ、算出されたパスメトリック値(送信元局から自局までのパスメトリック値)がTABのCand.Metric355(図21に示す)の値よりも小さいか否かを判断する。
これらの経路候補とするための条件を満たす場合には(ステップS805)、情報処理装置100の制御部140は、今回受信したPREQの送信局がその抽出されたレコードの宛先局への経路候補になると判断する(ステップS805)。この場合には、情報処理装置100の制御部140は、図23のaに示すように、そのレコードの各項目に、各情報を格納する(ステップS806)。この処理は、経路候補情報を一時的に保持する処理に相当する(ステップS806)。
具体的には、Index346「e」のProactiveFlag351には、受信したPREQのflagsフィールド321またはDestSTAフィールド323に基づいてTrueValueまたはFalseValueが格納される。すなわち、flagsフィールド321がプロアクティブなメッシュパス生成プロセスであることを示す場合、または、DestSTAフィールド323にブロードキャストが指定されている場合には、TrueValueが格納される。一方、それ以外の場合には、FalseValueが格納される。
また、Index346「g」のCand.Flag353には、有効である旨が設定される。すなわち、TrueValueが格納される。
また、Index346「h」のCand.NextHop354には、受信したPREQのTX STA ADDRフィールド303の識別子が格納される。
また、Index346「i」のCand.Metric355には、算出されたパスメトリック値(送信元局から自局までのパスメトリック値)が格納される。
また、Index346「j」のCand.SeqNum356には、受信したPREQのSeqNumフィールド324に格納されている値が格納される。
また、Index346「k」のCand.ExpTime357には、受信したPREQのLifetimeフィールド327に格納されている値(メッシュパスの有効期限)に現在時刻を加算した値が格納される。
また、Index346「n」のCand.ActReason358には、自装置がPREQのDestSTAフィールド323である場合には、2が格納される。この場合には、リフレッシュ処理が2番目に早くトリガされる設定がされる。一方、自装置がPREQのDestSTAフィールド323でない場合には、PREQのHopCountフィールド325の値×2+4が格納される。
一方、経路候補になると判断されなかった場合には(ステップS805)、情報処理装置100の制御部140は、そのPREQを廃棄してPREQ受信処理の動作を終了する。
続いて、情報処理装置100の制御部140は、受信したPREQの送信元局および送信局が一致するか否かを判断する(ステップS807)。すなわち、情報処理装置100の制御部140は、PREQのOrigSTAフィールド322に格納されている識別子と、PREQのTX STA ADDRフィールド303に格納されている識別子とが一致するか否かを判断する(ステップS807)。ここで、受信したPREQの送信元局および送信局が一致しない場合は、受信したPREQが他の情報処理装置(送信元局)から送信されたものである場合を意味する。
そして、受信したPREQの送信元局および送信局が一致しない場合には(ステップS807)、情報処理装置100の制御部140は、送信局を宛先とするレコードをメッシュパス・テーブル350から抽出する(ステップS808)。すなわち、情報処理装置100の制御部140は、TX STA ADDRフィールド303に識別子が格納されている送信局を宛先とするレコードをメッシュパス・テーブル350から抽出する(ステップS808)。
続いて、情報処理装置100の制御部140は、TX STA ADDRフィールド303に識別子が格納されている送信局を宛先とするレコードが存在するか否かを判断する(ステップS809)。そのレコードが存在しない場合には(ステップS809)、制御部140は、その送信局を宛先(Dest341)とする新規レコードをメッシュパス・テーブル350に生成する(ステップS810)。
また、そのTX STA ADDRフィールド303に識別子が格納されている送信局を宛先とするレコードが存在する場合を想定する(ステップS809)。この場合には、情報処理装置100の制御部140は、受信したPREQの内容を直接通信局候補(隣接通信局候補)として格納する(ステップS811)。すなわち、情報処理装置100の制御部140は、図23のbに示すように、そのレコードの各項目に、各情報を格納する(ステップS811)。この処理は、経路候補情報を一時的に保持する処理に相当する(ステップS811)。
具体的には、Index346「g」のCand.Flag353には、有効である旨が設定される。すなわち、TrueValueが格納される。
また、Index346「p」のCand.NB.Metric359には、受信したPREQの送信局および自局間のリンクメトリック値が格納される。
また、Index346「q」のCand.NB.ExpTime360には、受信したPREQのLifetimeフィールド327に格納されている値(メッシュパスの有効期限)に現在時刻を加算した値が格納される。
続いて、情報処理装置100の制御部140は、受信したPREQの宛先局および自局が一致するかを判断する(ステップS812)。すなわち、情報処理装置100の制御部140は、受信したPREQのDestSTAフィールド323に格納されている識別子が、自装置の識別子と一致するかを判断する(ステップS812)。
そして、受信したPREQの宛先局および自局が一致しない場合には(ステップS812)、情報処理装置100の制御部140は、受信したPREQの転送処理を行う(ステップS813)。この場合に、情報処理装置100の制御部140は、受信したPREQのMetricフィールド326をパスメトリック値で更新し、HopCountフィールド325をインクリメントして更新し、これらが更新されたPREQを転送する(ステップS813)。
受信したPREQの宛先局および自局が一致する場合には(ステップS812)、情報処理装置100の制御部140は、受信したPREQの転送処理を行わず、PREPの応答処理を起動する(ステップS814)。ここで、情報処理装置100の制御部140は、PREPの応答は即座に行わず、PREPの送信まで時間的猶予を持たせるためにタイマを設定する(ステップS814)。なお、受信したPREQのOrigSTAフィールド322に対応する送信元局宛ての応答処理のタイマが既に設定されている場合には、何もせずに処理を終了する。
[タイマの設定例]
ここで、PREQの応答処理により設定されるタイマについて説明する。
上述したように、情報処理装置は、経路を生成する際に、PREQを送信して宛先局からのPREPが返送されてくるまで待つことになる。しかし、PREQを送信した後に、所定時間が経過しても応答がない場合には、情報処理装置はPREQを再送する。このため、タイマの値(PREPの送信までの時間的猶予)を大きくし過ぎると、PREPの送信遅延により無駄なPREQ再送が誘発されてしまうおそれがある。
例えば、PREQの再送までの時間は、システムで利用されるパラメタ値によって定められている。例えば、IEEE802.11s規格の場合、PREQの再送までの時間は、最低でも2×(dot11MeshHWMPnetDiameterTraversalTime)以上になるよう定められている。ここで、(dot11MeshHWMPnetDiameterTraversalTime)は、情報処理装置が経路要求の信号を送信してから、その信号がリレーによってネットワーク全体にいきわたるまでに要する推定値である。このため、タイマの値(PREPの送信までの時間的猶予)は、その推定値よりも小さい値を設定する必要がある。
また、IEEE802.11s規格では、情報処理装置が経路要求の信号を送信してから、その信号が何ホップ分リレーすればネットワーク全体に行き渡るかを示す推定値を定めている。具体的には、その推定値として、(dot11MeshHWMPnetDiameter)というパラメタが定められている。これらのパラメタに基づいて、1ホップあたりに要する転送時間の推定値Aを、次の式により算出することができる。
A=(dot11MeshHWMPnetDiameterTraversalTime)÷(dot11MeshHWMPnetDiameter)
また、タイマの値(PREPの送信までの時間的猶予)は、推定値Aよりも大きく設定することが好ましい。
これらの点を勘案すると、タイマの値(PREPの送信までの時間的猶予)Bは、次の条件を満たすように設定することが好ましい。
B<(dot11MeshHWMPnetDiameterTraversalTime)×C
B>A×D
ここで、Cは、定数であり、例えば、4乃至16程度の値を設定することができる。また、Dは、定数であり、1乃至8程度の値を設定することができる。
このように、タイマの値(PREPの送信までの時間的猶予)は、短すぎては意味がないが、長すぎるとシステムの挙動の不安定化を誘発するため、適切な値を設定することが重要である。
このように、制御部140は、2つの推定値(dot11MeshHWMPnetDiameterTraversalTime、dot11MeshHWMPnetDiameter)に基づいてタイマの値(所定時間)を決定することができる。
[PREPの受信処理および送信処理]
情報処理装置100は、上述したPREP送信のタイマが満了した場合、または、自局以外の情報処理装置宛てのPREPを受信した場合に、PREPの送信処理を起動する。そこで、PREPの送信時の処理を、図25乃至図28を用いて説明する。
図25および図26は、本技術の第1の実施の形態における情報処理装置100が保持するメッシュパス・テーブル350の更新例を示す図である。なお、この更新については、図27を参照して詳細に説明する。
図27および図28は、本技術の第1の実施の形態における情報処理装置100による信号処理の処理手順の一例を示すフローチャートである。
最初に、情報処理装置100の制御部140は、今回の処理が、自局宛てのPREQへの応答処理として起動するか、PREPの受信に応じて起動するかを判断する(ステップS821)。自局宛のPREQへの応答処理として起動する場合には(ステップS821)、情報処理装置100の制御部140は、そのPREQからの情報の転記等を行い、送信すべきPREPを生成する(ステップS833)。このように、送信すべきPREPを生成して送信処理に備える(ステップS833)。
PREPの受信に応じて起動する場合には(ステップS821)、情報処理装置100の制御部140は、受信したPREPの送信元局に対応するレコードをメッシュパス・テーブル350から抽出する(ステップS822)。すなわち、情報処理装置100の制御部140は、受信したPREPのDestSTAフィールド333に識別子が格納されている送信元局を宛先(Dest341)とするレコードをメッシュパス・テーブル350から抽出する(ステップS822)。
続いて、情報処理装置100の制御部140は、DestSTAフィールド333に識別子が格納されている送信元局を宛先とするレコードが存在するか否かを判断する(ステップS823)。そのレコードが存在しない場合には(ステップS823)、情報処理装置100の制御部140は、その送信元局を宛先(Dest341)とする新規レコードをメッシュパス・テーブル350に生成する(ステップS824)。
また、そのDestSTAフィールド333に識別子が格納されている送信元局を宛先とするレコードが存在する場合には(ステップS823)、情報処理装置100の制御部140は、図25のaに示すように、そのレコードを更新する(ステップS825)。これはメッシュパスの設定に相当する処理となる。
具体的には、Index346「a」のNextHop342には、PREPのTX STA ADDRフィールド303が格納される。また、Index346「b」のMetric343には、PREPのMetricフィールドの値に、送信局および自局間のリンクメトリック値を加算することにより算出されたパスメトリック値が格納される。また、Index346「c」のSeqNum344には、PREPのSeqNum値が格納される。また、Index346「d」のExpTime345には、PREPのLifetimeに現在時刻が加算された値が格納される。また、Index346「f」のActReason352には、自局がPREPのOrigSTAフィールド332である場合には1が格納され、これ以外の場合には、PREPのHopCountフィールド335の値×2+3が格納される。なお、Index346「f」のActReason352に1が格納されることにより、リフレッシュ処理が最も早くトリガされる設定とすることができる。この他に、Index346「g」のCand.Flag353にはFalseValueを格納し、さらにIndex346「j」のCand.SeqNumにはIndex346「c」のSeqNum344に格納した値と同じ値を格納する。
続いて、情報処理装置100の制御部140は、受信したPREPの送信元局と、受信したPREPの送信局とが一致するか否かを判断する(ステップS826)。すなわち、情報処理装置100の制御部140は、受信したPREPのDestSTAフィールド333の識別子と、受信したPREPのTX STA ADDRフィールド303の識別子とが一致するか否かを判断する(ステップS826)。
受信したPREPの送信元局と、受信したPREPの送信局とが一致しない場合には(ステップS826)、情報処理装置100の制御部140は、その送信局を宛先局とするレコードをメッシュパス・テーブル350から抽出する(ステップS827)。すなわち、情報処理装置100の制御部140は、受信したPREPのTX STA ADDRフィールド303に識別子が格納されている送信局を宛先(Dest341)とするレコードをメッシュパス・テーブル350から抽出する(ステップS827)。
続いて、情報処理装置100の制御部140は、TX STA ADDRフィールド303に識別子が格納されている送信局を宛先とするレコードが存在するか否かを判断する(ステップS828)。そのレコードが存在しない場合には(ステップS828)、情報処理装置100の制御部140は、その送信局を宛先(Dest341)とする新規レコードをメッシュパス・テーブル350に生成する(ステップS829)。
また、そのTX STA ADDRフィールド303に識別子が格納されている送信局を宛先とするレコードが存在する場合には(ステップS828)、情報処理装置100の制御部140は、図25のbに示すように、そのレコードを更新する(ステップS830)。これはNextHop宛てのメッシュパスレコードもついでに生成することにより、経路生成のオーバーヘッドを削減する処理に相当する。
具体的には、Index346「a」のNextHop342には、PREPのTX STA ADDRフィールド303が格納される。また、Index346「b」のMetric343には、自局および送信局間のリンクメトリック値が格納される。また、Index346「c」のSeqNum344には、無効な値(例えば、どの値と比較しても"小なり"と判断される値)が格納される。また、Index346「d」のExpTime345には、PREPのLifetimeフィールド337の値に現在時刻を加算した値が格納される。また、Index346「f」のActReason352には、0が格納される。このように、Index346「f」のActReason352には、0が格納されることにより、リフレッシュ処理が最も遅くトリガされる設定とすることができる。この他に、Index346「g」のCand.Flag353にはFalseValueを格納し、さらにIndex346「j」のCand.SeqNumにはIndex346「c」のSeqNum344に格納したのと同じ値を格納する。
続いて、情報処理装置100の制御部140は、受信したPREPのOrigSTAフィールド322に格納されている識別子が自局のものであるか否かを判断する(ステップS831)。受信したPREPのOrigSTAフィールド322に格納されている識別子が自局のものである場合には(ステップS831)、PREPの受信処理の動作を終了する。
受信したPREPのOrigSTAフィールド322に格納されている識別子が自局のものでない場合には(ステップS831)、情報処理装置100の制御部140は、PREPを生成する(ステップS832)。すなわち、情報処理装置100の制御部140は、受信したPREPのMetricフィールド336の値に、自局および送信局間のリンクメトリック値を加算して更新し、HopCountをインクリメントして更新してPREPを生成する(ステップS832)。このように、転送すべきPREPを生成して送信処理に備える(ステップS832)。
続いて、情報処理装置100の制御部140は、送信準備したPREPのOrigSTAフィールド332に対応するレコードを更新する(ステップS834)。すなわち、情報処理装置100の制御部140は、送信準備したPREPのOrigSTAフィールド332に対応するレコードをメッシュパス・テーブル350から抽出する。続いて、情報処理装置100の制御部140は、その抽出されたレコードのCand.Flag353(Index346「g」)がTrueValueとなっていることを確認する。続いて、情報処理装置100の制御部140は、図26のaに示すように、そのレコードを更新する(ステップS834)。これは、図24に示すように、PREQを受信した際に一次保持された情報(経路候補情報)を反映する処理に相当する。
具体的には、Index346「a」のNextHop342には、このレコードのCand.NextHop354の値が転記される。また、Index346「b」のMetric343には、このレコードのCand.Metric355の値が転記される。また、Index346「c」のSeqNum344には、このレコードのCand.SeqNum356の値が転記される。また、Index346「d」のExpTime345には、このレコードのCand.ExpTime357の値が転記される。また、Index346「f」のActReason352には、このレコードのCand.ActReason358の値が転記される。また、Index346「g」のCand.Flag353には、無効である旨が設定される(すなわち、FalseValueが格納される。)
また、場合によっては、そのレコードのProactiveFlag351を参照し、ステップS822で抽出されたレコードのProactiveFlag351に転記する。なお、この処理は、プロアクティブPREQの利用時のみに必要となる。
続いて、情報処理装置100の制御部140は、受信したPREPのOrigSTAフィールド332(PREPの宛先局)と、ステップS834で更新されたレコードのNextHopとが一致するか否かを判断する(ステップS835)。これらが一致しない場合には(ステップS835)、情報処理装置100の制御部140は、そのNextHopを宛先局とするレコードを更新する(ステップS836)。すなわち、情報処理装置100の制御部140は、NextHopを宛先局とするレコードをメッシュパス・テーブル350から抽出する。続いて、情報処理装置100の制御部140は、その抽出されたレコードのCand.Flag353がTrueValueとなっていることを確認する。続いて、情報処理装置100の制御部140は、図26のbに示すように、そのレコードを更新する(ステップS836)。これは、図24に示すように、PREQを受信した際に一次保持された情報(隣接経路候補情報)を反映する処理に相当し、NextHop宛てのメッシュパスレコードを生成することにより、経路生成のオーバーヘッドを削減する処理に相当する。
具体的には、Index346「a」のNextHop342には、PREPのOrigSTAをキーとしたレコードのNextHopが格納される。また、Index346「b」のMetric343には、このレコードのCand.NB.Metric359の値が転記される。また、Index346「c」のSeqNum344には、無効な値(例えば、どの値と比較しても"小なり"と判断される値)が格納される。また、Index346「d」のExpTime345には、このレコードのCand.NB.ExpTimeの値が転記される。また、Index346「f」のActReason352には、0が格納される。すなわち、Index346「f」のActReason352に0が格納されることにより、(リフレッシュ処理が最も遅くトリガされる設定がされる。この他に、Index346「g」のCand.Flag353にはFalseValueを格納し、さらにIndex346「j」のCand.SeqNumにはIndex346「c」のSeqNum344に格納したのと同じ値を格納する。
続いて、情報処理装置100の制御部140は、ステップS832またはS833において生成されたPREPを、PREPのOrigSTA宛てのNextHopに向けてユニキャスト送信する(ステップS837)。このPREPのRX STA ADDRフィールド302には、NextHopの識別子(アドレス)が格納される。
[PREQの送信トリガの調整例]
図29は、本技術の第1の実施の形態における情報処理装置100によりPREQの送信トリガを調整する際に用いられる閾値を示す図である。
上述したように、情報処理装置100は、データを他の情報処理装置宛てに送信する際にどの情報処理装置を受信局に設定して送信すべきかを調べるため、メッシュパス・テーブル350を参照する。すなわち、情報処理装置100は、データを他の情報処理装置宛てに送信する際にNextHopにどの情報処理装置を指定すべきかを調べるため、メッシュパス・テーブル350を参照する。
しかしながら、メッシュパス・テーブル350を参照した結果、宛先局となる情報処理装置に対応するレコードが存在しない場合、そのレコードが有効な情報を格納していない場合、または、そのレコードの有効期限が切れている場合も想定される。これらの場合には、情報処理装置100は、その宛先局への有効なメッシュパスを設定するためのPREQを生成して送信する。また、RANNを受信した場合にも、情報処理装置100は、プロアクティブなメッシュパス生成のためのPREQを生成して送信する。
また、メッシュパス・テーブル350から抽出されたレコードに有効なメッシュパスが格納されていた場合でも、そのメッシュパスの有効期限切れが近い場合には、有効なメッシュパスの失効によるデータ転送の遅れを防ぐことが重要である。このため、情報処理装置100は、抽出されたレコードに有効なメッシュパスが格納されていた場合でも、有効期限切れが近いと判断したときには、メッシュパスをリフレッシュする目的でPREQを送信する。
例えば、情報処理装置100は、メッシュパスの有効期限までの値が閾値X(msec)以下となった場合に、このリフレッシュ目的のPREQ送信をトリガすることが考えられる。しかしながら、メッシュパス中の複数の情報処理装置が同時にリフレッシュ目的のPREQ送信を行うと、管理情報のオーバーヘッドが増加するため、これを削減することが重要である。
そこで、本技術の実施の形態では、メッシュパスのレコードのIndex346「f」のActReason352に設定されている値に応じて、期限切れまでの時刻の閾値Xを調整する。具体的には、図29に示すように調整を行う。
すなわち、ActReason352に設定されている値が0である場合には、情報処理装置100の制御部140は、閾値の調整を行わない。すなわち、X'=Xとされる。
また、ActReason352に設定されている値が1である場合には、情報処理装置100の制御部140は、期限切れまでの時刻の閾値として、X'=X+800(msec)を算出して用いる。
また、ActReason352に設定されている値が2である場合には、情報処理装置100の制御部140は、期限切れまでの時刻の閾値として、X'=X+400(msec)を算出して用いる。
また、ActReason352に設定されている値が3以上である場合には、情報処理装置100の制御部140は、期限切れまでの時刻の閾値として、X'=min(X+(20×ActReason352の値),300)を算出して用いる。ここで、min(A,B)は、入力値であるAおよびBのうちの小さい方を出力する関数を意味する。
この調整により、PREQのOrigSTAフィールド322が最も早くリフレッシュ目的のPREQ送信をトリガし、PREQのDestSTAフィールド323が次にリフレッシュ目的のPREQ送信をトリガするように設定される。また、中継局は各々別のタイミングでトリガがかかるように設定される。これにより、メッシュパス中の複数の情報処理装置が同時にリフレッシュ目的のPREQ送信を行わないように制御することができる。
また、メッシュパスのサブセットのNextHop宛てのメッシュパスは、最も遅くリフレッシュ目的のPREQ送信トリガがかかるように設定され、メッシュパスを保持するために必要な管理情報のオーバーヘッドを削減することができる。
このように、制御部140は、メッシュパス(通信経路)における情報処理装置100の位置に基づいて、その経路情報を破棄する時間を特定するための有効時間を変更する。
[RANN受信時の処理例]
図30は、本技術の第1の実施の形態における情報処理装置100が保持するメッシュパス・テーブル350の更新例を示す図である。なお、この更新については、図31を参照して詳細に説明する。
図31は、本技術の第1の実施の形態における情報処理装置100による信号処理の処理手順の一例を示すフローチャートである。
上述したように、プロアクティブなメッシュパスをルート局との間で生成するため、情報処理装置は、RANNを受信すると、これに応答してPREQをRANNの送信元局に向けて送信する。そこで、図31では、RANNを受信した情報処理装置100による信号処理の処理手順の一例を示す。
RANNを受信した情報処理装置100の制御部140は、その受信したRANNのOrigSTAフィールド314に識別子が格納されている情報処理装置(送信元局)までのパスメトリック値を算出する(ステップS841)。例えば、情報処理装置100の制御部140は、その受信したRANNを送信した情報処理装置(TX STA ADDRフィールド303に識別子(アドレス)が格納されている情報処理装置)および自局間のリンクメトリック値を算出する。続いて、情報処理装置100の制御部140は、その算出されたリンクメトリック値を、その受信したRANNのMetricフィールド317に格納されている値に加算してパスメトリック値を算出する(ステップS841)。
続いて、情報処理装置100の制御部140は、その受信したRANNのOrigSTAフィールド314に識別子が格納されている送信元局を宛先(Dest341)とするレコードをメッシュパス・テーブル350から抽出する(ステップS842)。このレコードを構造体変数TABとも称して説明する。
続いて、情報処理装置100の制御部140は、OrigSTAフィールド314に識別子が格納されている送信元局を宛先とするレコードが存在するか否かを判断する(ステップS843)。そのレコードが存在しない場合には(ステップS843)、情報処理装置100の制御部140は、その送信元局を宛先(Dest341)とする新規レコードをメッシュパス・テーブル350に生成する(ステップS844)。
また、そのOrigSTAフィールド314に識別子が格納されている送信元局を宛先とするレコードが存在する場合には(ステップS843)、情報処理装置100の制御部140は、経路候補とするか否かを判断する(ステップS845)。すなわち、情報処理装置100の制御部140は、受信したRANNのSeqNum315の値がTABのCand.SeqNum356(図21に示す)の値よりも大きいか否かを判断する。また、情報処理装置100の制御部140は、その両者が一致していて、かつ、算出されたパスメトリック値(送信元局から自局までのパスメトリック値)がTABのCand.Metric355(図21に示す)の値よりも小さいか否かを判断する。
これらの経路候補とするための条件を満たす場合には(ステップS845)、情報処理装置100の制御部140は、今回受信したRANNの送信局がその抽出されたレコードの宛先局への経路候補になると判断する(ステップS845)。この場合には、情報処理装置100の制御部140は、図30に示すように、そのレコードの各項目に、各情報を格納する(ステップS846)。この処理は、経路候補情報を一時的に保持する処理に相当する(ステップS846)。
具体的には、Index346「e」のProactiveFlag351には、TrueValueが格納される(オプション)。また、Index346「g」のCand.Flag353には、有効である旨が設定される。すなわち、Index346「g」のCand.Flag353には、TrueValueが格納される。
また、Index346「h」のCand.NextHop354には、RANNのTX STA ADDRフィールド303の識別子(アドレス)が格納される。また、Index346「i」のCand.Metric355には、算出されたパスメトリック値(送信元局から自局までのパスメトリック値)が格納される。また、Index346「j」のCand.SeqNum356には、受信したRANNのSeqNumフィールド315の値が格納される。
一方、経路候補になると判断されなかった場合には(ステップS845)、情報処理装置100の制御部140は、そのRANNを廃棄してRANN受信処理の動作を終了する。
また、経路候補になると判断され(ステップS845)、各情報が格納された場合には(ステップS846)、情報処理装置100の制御部140は、PREQの生成処理を起動する(ステップS847)。ここで、情報処理装置100の制御部140は、PREQの応答は即座に行わず、PREQの送信まで時間的猶予を持たせるためにタイマを設定する(ステップS847)。なお、受信したRANNのOrigSTAフィールド314に対応する送信元局宛てのPREQ生成処理のタイマが既に設定されている場合には、タイマ設定を行わずに、処理を終了する。そして、タイマの満了となるまで待機する。
続いて、情報処理装置100の制御部140は、受信したRANNの転送処理を行う(ステップS848)。この場合に、情報処理装置100の制御部140は、受信したRANNのMetricフィールド317をパスメトリック値で更新し、HopCountフィールド316をインクリメントして更新し、これらが更新されたRANNを転送する(ステップS848)。
なお、図31での図示は省略するが、PREQ生成処理のタイマが満了すると、PREQ送信処理が起動される。
[タイマの設定例]
ここで、RANNの応答処理により設定されるタイマについて説明する。
ここで、上述したように、タイマの値(PREQの送信までの時間的猶予)は、短すぎては意味がないが、長すぎるとシステムの挙動の不安定化を誘発するため、適切な値を設定することが重要である。また、上述したように、1ホップあたりに要する転送時間の推定値Aは、次の式により算出することができる。
A=(dot11MeshHWMPnetDiameterTraversalTime)÷(dot11MeshHWMPnetDiameter)
このため、PREPの送信までの時間的猶予は、この推定値Aよりも大きく設定することが好ましい。
また、タイマの値(PREQの送信までの時間的猶予)Bは、次の条件を満たすように設定することが好ましい。
B>A×D
ここで、Dは、定数であり、1乃至8程度の値を設定することができる。
このように、制御部140は、信号のやりとりにより設定されるメッシュパス(通信経路)に関する経路情報を確定するタイミングをその信号の受信タイミングを基準として遅延させるための制御を行う。具体的には、制御部140は、経路要求信号(PREQ、RANN)を受信した場合には、その経路要求信号の送信元局への通信経路に関する経路情報を経路候補情報としてメッシュパス・テーブル350に保持させる。そして、制御部140は、その経路要求信号に対応する経路応答信号(PREP、PREQ)を送信元局に送信するタイミングでその経路候補情報を送信元局への通信経路に関する経路情報として確定させる。
また、制御部140は、宛先が情報処理装置100でない経路要求信号を受信した場合には、その経路要求信号を送信した送信局への通信経路に関する経路情報を隣接経路候補情報としてメッシュパス・テーブル350に保持させる。そして、制御部140は、その経路要求信号に対応する経路応答信号を送信元局に送信するタイミングでその隣接経路候補情報を送信局への通信経路に関する経路情報として確定させる。
また、制御部140は、宛先が情報処理装置100である経路要求信号を受信した場合には、その経路要求信号を受信してから所定時間(タイマ)が経過したタイミングでその経路要求信号に対応する経路応答信号をその経路要求信号の送信元局宛に送信する。なお、本技術の実施の形態では、メッシュパス・テーブル350の項目としてCand.SeqNum356(Index346「j」)を設ける例を示したが、Cand.SeqNum356を省略するようにしてもよい。このように、Cand.SeqNum356を省略する場合には、例えば、上述したCand.SeqNum356への格納処理および読み出し処理を、SeqNum344への格納処理および読み出し処理として解釈することができる。
<2.第2の実施の形態>
本技術の第1の実施の形態では、リアクティブなメッシュパスを生成する場合に、PREQはブロードキャスト送信する例を示した。しかしながら、上述したように、PREQをブロードキャスト送信すると、信号衝突等によりPREQが消失する可能性がある。このように、PREQが消失すると、例えば、図20に示すように、不適切なメッシュパスが設定されることがある。
そこで、本技術の第2の実施の形態では、情報処理装置は、現在有効なメッシュパスを保持している宛先局に管理情報(PREQ、RANN)を送信する場合には、ブロードキャスト送信とともにNextHopにユニキャスト送信を行う例を示す。なお、本技術の第2の実施の形態における通信システムは、図1等に示す通信システム200と略同様である。このため、通信システム200と共通する部分については、同一の符号を付して、これらの説明の一部を省略する。
[有効なメッシュパスの更新例]
図32および図33は、本技術の第2の実施の形態における通信システム200を構成する各情報処理装置によるPREQの送信例を示す図である。
図32および図33では、情報処理装置210を経由する情報処理装置100および情報処理装置220間の有効なメッシュパスが存在している場合を想定する。この場合に、そのメッシュパスをリフレッシュする目的で情報処理装置100が情報処理装置220宛てにPREQを送信する例を示す。
図32のaには、情報処理装置100が情報処理装置220宛てにPREQをユニキャスト送信する例を示す。図32のbには、情報処理装置100が情報処理装置220宛てにPREQをブロードキャスト送信する例を示す。
図33のaには、情報処理装置100から情報処理装置220宛てのPREQをユニキャスト送信する例を示す。図33のbには、情報処理装置100から情報処理装置220宛てのPREQをブロードキャスト送信する例を示す。
図32のaに示すように、情報処理装置100は、メッシュパスをリフレッシュする目的でPREQを情報処理装置210に向けてユニキャスト送信する。すなわち、情報処理装置100は、DestSTAフィールド323に情報処理装置220を指定したPREQを、情報処理装置220宛てのNextHop342に指定されている情報処理装置210に向けてユニキャスト送信する。
また、図32のbに示すように、情報処理装置100は、ユニキャスト送信したPREQと同一内容のPREQをブロードキャスト送信する。
図32のaおよびbに示すように、同一内容のPREQについてユニキャスト送信およびブロードキャスト送信をした場合には、情報処理装置210は、同一内容の2つのPREQを重複受信することになる。このように同一内容の2つのPREQを重複受信した場合でも、上述した受信手順に基づいて、何れか一方のPREQが破棄される。このため、同一内容の2つのPREQを重複送信しても問題はない。
ここで、ユニキャスト送信された信号が他の信号と衝突した場合には、ARQを用いて再送処理が行われる。このため、ユニキャスト送信されたPREQが他の信号と衝突したような場合でも、そのPREQについては再送処理が行われるため、高い信頼度で情報処理装置210にPREQを届けることができる。
情報処理装置210は、PREQを受信すると、その受信したPREQを上述した手順で処理し、内部のメッシュパス・テーブル350のレコードを更新するとともに、その受信したPREQの転送処理を起動する。
ここで、図33のaに示すように、情報処理装置210も同様に、PREQのDestSTA宛ての有効なメッシュパスが存在することを確認すると、NextHop宛てにPREQをユニキャスト送信する。また、図33のbに示すように、情報処理装置210は、ユニキャスト送信したPREQと同一内容のPREQをブロードキャスト送信する。
情報処理装置220は、情報処理装置210から送信されたPREQを受信することにより、PREPの応答処理を開始する。これにより、最終的に安定した情報処理装置100および情報処理装置220間のメッシュパスをメンテナンスすることができる。
なお、この有効なメッシュパスの更新の動作例については、図34を参照して詳細に説明する。
[有効なメッシュパスの更新の動作例]
図34は、本技術の第2の実施の形態における情報処理装置100による信号処理の処理手順を示すフローチャートである。
情報処理装置100の制御部140は、PREQの送信処理が起動されると、そのPREQの宛先局に対応するメッシュパス・テーブル350を抽出して、その宛先局への有効なメッシュパスが存在するか否かを判断する(ステップS851)。その宛先局への有効なメッシュパスが存在する場合には(ステップS851)、情報処理装置100の制御部140は、その有効なメッシュパスのNextHop342に向けてユニキャストでPREQを送信する(ステップS852)。
続いて、情報処理装置100の制御部140は、ユニキャスト送信したPREQと同一のPREQをブロードキャスト送信する(ステップS853)。
なお、図34では、PREQをユニキャスト送信した後に、そのPREQをブロードキャスト送信する例を示したが、PREQをブロードキャスト送信した後に、そのPREQをユニキャスト送信するようにしてもよい。
[RANN送信の動作例]
上述したように、有効なメッシュパスを更新する際にPREQをブロードキャスト送信する信号の衝突への脆弱性は、プロアクティブにメッシュパスを生成する際に用いられるRANNについても同様のことがいえる。すなわち、RANNもブロードキャストで送信されるため、衝突等により消失の可能性があり、消失することにより不安定なメッシュパスが生成される可能性がある。
そこで、本技術の第2の実施の形態では、RANNを送信する情報処理装置は、有効なメッシュパスのNextHopに対応する情報処理装置宛てにユニキャスト送信も行うようにする。この場合における情報処理装置の動作例を図35に示す。
図35は、本技術の第2の実施の形態における情報処理装置100による信号処理の処理手順を示すフローチャートである。
RANNの送信処理が起動されると、情報処理装置100の制御部140は、メッシュパス・テーブル350の各レコードを走査し、プロアクティブに生成されたメッシュパスを抽出する処理を繰り返し行う(ループL860)。ここで、プロアクティブに生成されたメッシュパスであるか否かについては、レコードのProactiveFlag351を参照することにより判断することができる。
そして、プロアクティブに生成されたメッシュパスのレコードがあった場合には、情報処理装置100の制御部140は、そのレコードのNextHop342を抽出する(ステップS861)。続いて、情報処理装置100の制御部140は、今回の送信対象となるRANNを、そのNextHop342に既にユニキャスト送信したか否かを判断する(ステップS862)。
そして、ユニキャスト送信していない場合には(ステップS862)、情報処理装置100の制御部140は、そのNextHop342に向けてRANNをユニキャスト送信する(ステップS863)。ただし、そのRANN送信が、他の情報処理装置からRANNを受信したことによりトリガされている場合には、その受信したRANNの送信局に対してはRANNを送信しない。
続いて、情報処理装置100の制御部140は、そのNextHop342にRANNをユニキャスト送信した旨を記録する(ステップS864)。例えば、情報処理装置100の制御部140は、RANNをユニキャスト送信したNextHop342の識別子と、RANNをユニキャスト送信した旨とをメモリ150に記録する(ステップS864)。
この記録処理が終了した場合(ステップS864)、または、既にユニキャスト送信したと判断された場合には(ステップS862)、プロアクティブに生成されたメッシュパスを抽出する処理が繰り返し行われる(ループL860)。
また、これらの走査が終了すると(ループL860)、情報処理装置100の制御部140は、RANNをブロードキャスト送信する(ステップS865)。これにより、RANN信号を必要なだけ安定して送信することが可能となる。
なお、図35では、RANNをユニキャスト送信した後に、そのRANNをブロードキャスト送信する例を示したが、RANNをブロードキャスト送信した後に、そのRANNをユニキャスト送信するようにしてもよい。
ここで、情報処理装置100は、情報処理装置100に隣接する情報処理装置(隣接局)の全てにRANNをユニキャスト送信することも想定される。このような場合には、情報処理装置100は、ブロードキャスト送信を行わずに省略することができる。
[プロアクティブPREQの送信例]
プロアクティブにメッシュパスを生成する手法としては、RANNを用いる方法の他に、プロアクティブPREQをルート局が定期的に送信する方法も考えられる。
プロアクティブPREQは、DestSTAフィールド323にブロードキャストアドレスを記入した信号を送信することにより、これを受信した各情報処理装置が宛先局として指定されるPREQ信号である。また、RANNと同様、プロアクティブPREQもルート局から定期的に送信される。このプロアクティブPREQもブロードキャストで送信されるため、衝突等により消失の可能性があり、消失することにより不安定なメッシュパスが生成される可能性がある。
そこで、本技術の第2の実施の形態では、プロアクティブPREQを送信する情報処理装置は、有効なメッシュパスのNextHopに対応する情報処理装置宛てにユニキャスト送信を行うようにする。この場合における情報処理装置の動作例を図36に示す。
図36は、本技術の第2の実施の形態における情報処理装置100による信号処理の処理手順を示すフローチャートである。
プロアクティブPREQの送信処理が起動されると、情報処理装置100の制御部140は、メッシュパス・テーブル350の各レコードを走査し、プロアクティブに生成されたメッシュパスを抽出する処理を繰り返し行う(ループL870)。ここで、プロアクティブに生成されたメッシュパスであるか否かについては、レコードのProactiveFlag351を参照することにより判断することができる。
そして、プロアクティブに生成されたメッシュパスのレコードがあった場合には、情報処理装置100の制御部140は、そのレコードのNextHop342を抽出する(ステップS871)。続いて、情報処理装置100の制御部140は、今回の送信対象となるプロアクティブPREQを、そのNextHop342に既にユニキャスト送信したか否かを判断する(ステップS872)。
そして、ユニキャスト送信していない場合には(ステップS872)、情報処理装置100の制御部140は、そのNextHop342に向けてプロアクティブPREQをユニキャスト送信する(ステップS873)。ただし、そのPREQ送信が、他の情報処理装置からPREQを受信したことによりトリガされている場合には、その受信したPREQの送信局に対してはそのPREQをユニキャスト送信しない。
続いて、情報処理装置100の制御部140は、そのNextHop342にプロアクティブPREQをユニキャスト送信した旨を記録する(ステップS874)。例えば、情報処理装置100の制御部140は、プロアクティブPREQをユニキャスト送信したNextHop342の識別子と、プロアクティブPREQをユニキャスト送信した旨とをメモリ150に記録する(ステップS874)。
この記録処理が終了した場合(ステップS874)、または、既にユニキャスト送信したと判断された場合には(ステップS872)、プロアクティブに生成されたメッシュパスを抽出する処理が繰り返し行われる(ループL870)。
また、これらの走査が終了すると(ループL870)、情報処理装置100の制御部140は、プロアクティブPREQをブロードキャスト送信する(ステップS875)。これにより、プロアクティブPREQ信号を必要なだけ安定して送信することが可能となる。
なお、図36では、プロアクティブPREQをユニキャスト送信した後に、そのプロアクティブPREQをブロードキャスト送信する例を示した。ただし、プロアクティブPREQをブロードキャスト送信した後に、そのプロアクティブPREQをユニキャスト送信するようにしてもよい。
ここで、情報処理装置100は、情報処理装置100に隣接する情報処理装置(隣接局)の全てにプロアクティブPREQをユニキャスト送信することも想定される。このような場合には、情報処理装置100は、ブロードキャスト送信を行わずに省略することができる。
このように、制御部140は、信号を他の情報処理装置に送信する場合に他の情報処理装置への通信経路に関する経路情報が存在するときには他の情報処理装置にその信号をユニキャスト送信し、かつ、その信号をブロードキャスト送信するための制御を行う。また、制御部140は、他の情報処理装置への通信経路に関する経路情報が存在しない場合にはその信号をブロードキャスト送信する。
また、制御部140は、プロアクティブに生成された通信経路の更新のための信号を送信する場合にはその通信経路に関する経路情報により特定される次の宛先の情報処理装置にその信号をユニキャスト送信し、かつ、その信号をブロードキャスト送信する。
このように、本技術の実施の形態によれば、メッシュパスの生成処理において、安定したマルチホップの経路を提供することができる。また、メッシュパスの更新処理において、不要なオーバーヘッドを削減しつつ、安定したマルチホップの経路を提供することができる。すなわち、メッシュパスの安定性を向上させることができる。言い換えると、複数の情報処理装置間における通信経路の生成および管理を適切に行うことができる。
<3.応用例>
本開示に係る技術は、様々な製品へ応用可能である。例えば、情報処理装置100は、スマートフォン、タブレットPC(Personal Computer)、ノートPC、携帯型ゲーム端末若しくはデジタルカメラなどのモバイル端末、テレビジョン受像機、プリンタ、デジタルスキャナ若しくはネットワークストレージなどの固定端末、又はカーナビゲーション装置などの車載端末として実現されてもよい。また、情報処理装置100は、スマートメータ、自動販売機、遠隔監視装置又はPOS(Point Of Sale)端末などの、M2M(Machine To Machine)通信を行う端末(MTC(Machine Type Communication)端末ともいう)として実現されてもよい。さらに、情報処理装置100は、これら端末に搭載される無線通信モジュール(例えば、1つのダイで構成される集積回路モジュール)であってもよい。
[3−1.第1の応用例]
図37は、本開示に係る技術が適用され得るスマートフォン900の概略的な構成の一例を示すブロック図である。スマートフォン900は、プロセッサ901、メモリ902、ストレージ903、外部接続インタフェース904、カメラ906、センサ907、マイクロフォン908、入力デバイス909、表示デバイス910、スピーカ911、無線通信インタフェース913、アンテナスイッチ914、アンテナ915、バス917、バッテリー918及び補助コントローラ919を備える。
プロセッサ901は、例えばCPU(Central Processing Unit)又はSoC(System on Chip)であってよく、スマートフォン900のアプリケーションレイヤ及びその他のレイヤの機能を制御する。メモリ902は、RAM(Random Access Memory)及びROM(Read Only Memory)を含み、プロセッサ901により実行されるプログラム及びデータを記憶する。ストレージ903は、半導体メモリ又はハードディスクなどの記憶媒体を含み得る。外部接続インタフェース904は、メモリーカード又はUSB(Universal Serial Bus)デバイスなどの外付けデバイスをスマートフォン900へ接続するためのインタフェースである。
カメラ906は、例えば、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を有し、撮像画像を生成する。センサ907は、例えば、測位センサ、ジャイロセンサ、地磁気センサ及び加速度センサなどのセンサ群を含み得る。マイクロフォン908は、スマートフォン900へ入力される音声を音声信号へ変換する。入力デバイス909は、例えば、表示デバイス910の画面上へのタッチを検出するタッチセンサ、キーパッド、キーボード、ボタン又はスイッチなどを含み、ユーザからの操作又は情報入力を受け付ける。表示デバイス910は、液晶ディスプレイ(LCD)又は有機発光ダイオード(OLED)ディスプレイなどの画面を有し、スマートフォン900の出力画像を表示する。スピーカ911は、スマートフォン900から出力される音声信号を音声に変換する。
無線通信インタフェース913は、IEEE802.11a、11b、11g、11n、11ac及び11adなどの無線LAN標準のうちの1つ以上をサポートし、無線通信を実行する。無線通信インタフェース913は、インフラストラクチャーモードにおいては、他の装置と無線LANアクセスポイントを介して通信し得る。また、無線通信インタフェース913は、アドホックモードにおいては、他の装置と直接的に通信し得る。無線通信インタフェース913は、典型的には、ベースバンドプロセッサ、RF(Radio Frequency)回路及びパワーアンプなどを含み得る。無線通信インタフェース913は、通信制御プログラムを記憶するメモリ、当該プログラムを実行するプロセッサ及び関連する回路を集積したワンチップのモジュールであってもよい。無線通信インタフェース913は、無線LAN方式に加えて、近距離無線通信方式、近接無線通信方式又はセルラ通信方式などの他の種類の無線通信方式をサポートしてもよい。アンテナスイッチ914は、無線通信インタフェース913に含まれる複数の回路(例えば、異なる無線通信方式のための回路)の間でアンテナ915の接続先を切り替える。アンテナ915は、単一の又は複数のアンテナ素子(例えば、MIMOアンテナを構成する複数のアンテナ素子)を有し、無線通信インタフェース913による無線信号の送信及び受信のために使用される。
なお、図37の例に限定されず、スマートフォン900は、複数のアンテナ(例えば、無線LAN用のアンテナ及び近接無線通信方式用のアンテナ、など)を備えてもよい。その場合に、アンテナスイッチ914は、スマートフォン900の構成から省略されてもよい。
バス917は、プロセッサ901、メモリ902、ストレージ903、外部接続インタフェース904、カメラ906、センサ907、マイクロフォン908、入力デバイス909、表示デバイス910、スピーカ911、無線通信インタフェース913及び補助コントローラ919を互いに接続する。バッテリー918は、図中に破線で部分的に示した給電ラインを介して、図37に示したスマートフォン900の各ブロックへ電力を供給する。補助コントローラ919は、例えば、スリープモードにおいて、スマートフォン900の必要最低限の機能を動作させる。
図37に示したスマートフォン900において、図2を用いて説明した通信部120、制御部140及びメモリ150は、無線通信インタフェース913において実装されてもよい。また、これら機能の少なくとも一部は、プロセッサ901又は補助コントローラ919において実装されてもよい。
[3−2.第2の応用例]
図38は、本開示に係る技術が適用され得るカーナビゲーション装置920の概略的な構成の一例を示すブロック図である。カーナビゲーション装置920は、プロセッサ921、メモリ922、GPS(Global Positioning System)モジュール924、センサ925、データインタフェース926、コンテンツプレーヤ927、記憶媒体インタフェース928、入力デバイス929、表示デバイス930、スピーカ931、無線通信インタフェース933、アンテナスイッチ934、アンテナ935及びバッテリー938を備える。
プロセッサ921は、例えばCPU又はSoCであってよく、カーナビゲーション装置920のナビゲーション機能及びその他の機能を制御する。メモリ922は、RAM及びROMを含み、プロセッサ921により実行されるプログラム及びデータを記憶する。
GPSモジュール924は、GPS衛星から受信されるGPS信号を用いて、カーナビゲーション装置920の位置(例えば、緯度、経度及び高度)を測定する。センサ925は、例えば、ジャイロセンサ、地磁気センサ及び気圧センサなどのセンサ群を含み得る。データインタフェース926は、例えば、図示しない端子を介して車載ネットワーク941に接続され、車速データなどの車両側で生成されるデータを取得する。
コンテンツプレーヤ927は、記憶媒体インタフェース928に挿入される記憶媒体(例えば、CD又はDVD)に記憶されているコンテンツを再生する。入力デバイス929は、例えば、表示デバイス930の画面上へのタッチを検出するタッチセンサ、ボタン又はスイッチなどを含み、ユーザからの操作又は情報入力を受け付ける。表示デバイス930は、LCD又はOLEDディスプレイなどの画面を有し、ナビゲーション機能又は再生されるコンテンツの画像を表示する。スピーカ931は、ナビゲーション機能又は再生されるコンテンツの音声を出力する。
無線通信インタフェース933は、IEEE802.11a、11b、11g、11n、11ac及び11adなどの無線LAN標準のうちの1つ以上をサポートし、無線通信を実行する。無線通信インタフェース933は、インフラストラクチャーモードにおいては、他の装置と無線LANアクセスポイントを介して通信し得る。また、無線通信インタフェース933は、アドホックモードにおいては、他の装置と直接的に通信し得る。無線通信インタフェース933は、典型的には、ベースバンドプロセッサ、RF回路及びパワーアンプなどを含み得る。無線通信インタフェース933は、通信制御プログラムを記憶するメモリ、当該プログラムを実行するプロセッサ及び関連する回路を集積したワンチップのモジュールであってもよい。無線通信インタフェース933は、無線LAN方式に加えて、近距離無線通信方式、近接無線通信方式又はセルラ通信方式などの他の種類の無線通信方式をサポートしてもよい。アンテナスイッチ934は、無線通信インタフェース933に含まれる複数の回路の間でアンテナ935の接続先を切り替える。アンテナ935は、単一の又は複数のアンテナ素子を有し、無線通信インタフェース933による無線信号の送信及び受信のために使用される。
なお、図38の例に限定されず、カーナビゲーション装置920は、複数のアンテナを備えてもよい。その場合に、アンテナスイッチ934は、カーナビゲーション装置920の構成から省略されてもよい。
バッテリー938は、図中に破線で部分的に示した給電ラインを介して、図38に示したカーナビゲーション装置920の各ブロックへ電力を供給する。また、バッテリー938は、車両側から給電される電力を蓄積する。
図38に示したカーナビゲーション装置920において、図2を用いて説明した通信部120、制御部140及びメモリ150は、無線通信インタフェース933において実装されてもよい。また、これら機能の少なくとも一部は、プロセッサ921において実装されてもよい。
また、本開示に係る技術は、上述したカーナビゲーション装置920の1つ以上のブロックと、車載ネットワーク941と、車両側モジュール942とを含む車載システム(又は車両)940として実現されてもよい。車両側モジュール942は、車速、エンジン回転数又は故障情報などの車両側データを生成し、生成したデータを車載ネットワーク941へ出力する。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)
マルチホップの通信経路の生成または更新のための信号のやりとりを他の情報処理装置との間で無線通信を利用して行う通信部と、
前記信号のやりとりにより設定される通信経路に関する経路情報を確定するタイミングを前記信号の受信タイミングを基準として遅延させるための制御を行う制御部と
を具備する情報処理装置。
(2)
前記制御部は、前記通信経路の生成または更新のための信号として経路要求信号を受信した場合には、前記経路要求信号を最初に送信した情報処理装置である送信元局への通信経路に関する経路情報を経路候補情報として保持し、前記経路要求信号に対応する経路応答信号を前記送信元局に送信するタイミングで前記経路候補情報を前記送信元局への通信経路に関する経路情報として確定させる前記(1)に記載の情報処理装置。
(3)
前記経路候補情報は、前記経路要求信号を送信した情報処理装置である送信局の識別子と、前記送信元局への通信経路に関するパスメトリック値と、前記経路要求信号に含まれるSeqNum値と、前記経路要求信号に含まれる有効時間情報と、前記送信元局への通信経路における前記情報処理装置の位置を示す情報とが関連付けられた情報である前記(2)に記載の情報処理装置。
(4)
前記制御部は、前記通信経路における前記情報処理装置の位置に基づいて、前記経路情報を破棄する時間を特定するための有効時間を変更する前記(3)に記載の情報処理装置。
(5)
前記制御部は、前記通信経路の生成または更新のための信号として宛先が前記情報処理装置である経路要求信号を受信した場合には、前記経路要求信号を受信してから所定時間が経過したタイミングで前記経路要求信号に対応する経路応答信号を前記経路要求信号を最初に送信した情報処理装置である送信元局宛に送信する前記(1)から(4)のいずれかに記載の情報処理装置。
(6)
前記制御部は、前記情報処理装置が経路要求信号を送信してから当該経路要求信号がリレーによりネットワーク全体に行き渡るまでに要する推定値と、前記情報処理装置が経路要求信号を送信してから当該経路要求信号が何ホップ分リレーすればネットワーク全体に行き渡るかを示す推定値とに基づいて、前記所定時間を決定する前記(5)に記載の情報処理装置。
(7)
前記制御部は、前記通信経路の生成または更新のための信号として宛先が前記情報処理装置でない経路要求信号を受信した場合には、前記経路要求信号を送信した情報処理装置である送信局への通信経路に関する経路情報を隣接経路候補情報として保持し、前記経路要求信号に対応する経路応答信号を前記送信元局に送信するタイミングで前記隣接経路候補情報を前記送信局への通信経路に関する経路情報として確定させる前記(1)から(6)のいずれかに記載の情報処理装置。
(8)
前記隣接経路候補情報は、前記送信局への通信経路に関するパスメトリック値と、前記経路要求信号に含まれる有効時間情報とが関連付けられた情報である前記(7)に記載の情報処理装置。
(9)
マルチホップの通信経路の生成または更新のための信号のやりとりを他の情報処理装置との間で無線通信を利用して行う通信手順と、
前記信号のやりとりにより設定される通信経路に関する経路情報を確定するタイミングを前記信号の受信タイミングを基準として遅延させるための制御を行う制御手順と
を具備する情報処理方法。