以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.実施の形態(マルチキャスト・メッシュパスを作成してマルチキャスト送信を行う例)
2.応用例
<1.実施の形態>
[通信システムの構成例]
図1は、本技術の実施の形態における通信システム10のシステム構成例を示す図である。
通信システム10は、複数の情報処理装置(情報処理装置100、情報処理装置101、情報処理装置102、情報処理装置103)を備える。図1では、各装置間における通信経路を点線104乃至107で示す。また、各通信経路におけるパスメトリック値を点線上の矩形内に示す。
通信システム10を構成する各情報処理装置(デバイス)は、例えば、無線通信機能を備える携帯型の情報処理装置や固定型の情報処理装置である。なお、携帯型の情報処理装置は、例えば、スマートフォン、携帯電話、タブレット端末等の無線通信装置であり、固定型の情報処理装置は、例えば、プリンタ、パーソナルコンピュータ等の情報処理装置である。
ここで、周囲に存在する情報処理装置と自律的に相互接続する通信方法として、アドホック通信やアドホックネットワーク等が知られている。このようなネットワークにおいては、各情報処理装置は、マスタ局(例えば、制御装置)に依存することなく、周囲に存在する情報処理装置と相互に通信を行うことが可能である。そこで、図1では、周囲に存在する情報処理装置と自律的に相互接続する通信方法として、アドホックネットワークを例にして説明する。
アドホックネットワークでは、周囲に新たな情報処理装置が追加されると、この新たな情報処理装置も自由にネットワークに参加することができる。例えば、最初に、図1に示す各情報処理装置のうち、情報処理装置100、情報処理装置101のみがアドホックネットワークに参加している場合を想定する。この場合に、情報処理装置102、情報処理装置103が順次追加されていくものとする。この場合には、これらの各情報処理装置(周囲に存在する情報処理装置)が増加するのに応じて、ネットワークのカバー範囲を増加させることができる。すなわち、情報処理装置102、情報処理装置103が順次追加されるのに応じて、ネットワークのカバー範囲を増加させることができる。
ここで、各情報処理装置は、周囲に存在する情報処理装置と自律的に相互接続する以外に、他の情報処理装置間でやりとりされる情報をバケツリレー的に転送することも可能である。
例えば、情報処理装置100は、情報処理装置101、情報処理装置102のそれぞれとの間で直接通信することができるが、電波が届かない等の理由により、情報処理装置103には直接通信することができないものとする。
このように直接通信ができない場合でも、情報処理装置100との直接通信が可能な情報処理装置101が情報処理装置100のデータを情報処理装置103に転送することが可能である。そこで、このようにデータを転送することにより、情報処理装置100と、情報処理装置100と直接通信することができない情報処理装置103とは、情報処理装置101を経由して、互いに情報のやり取りを行うことが可能となる。
このように互いにデータ転送(いわゆる、バケツリレー)を行い、遠くの情報処理装置に情報を届ける方法は、マルチホップ・リレーと称されている。また、マルチホップを行うネットワークは、メッシュネットワークとして一般的に知られている。また、メッシュネットワークを構成する技術としては、IEEE(Institute of Electrical and Electronic Engineers)802.11s−2011等の規格が知られている。
このようなアドホックネットワークやメッシュネットワークを構成する情報処理装置の構成例を図2に示す。また、通信システム10は、複数の情報処理装置が1対1で無線通信を行うことにより複数の情報処理装置が相互に接続されるネットワークの一例である。
[情報処理装置の構成例]
図2は、本技術の実施の形態における情報処理装置100の内部構成例を示すブロック図である。なお、他の情報処理装置(情報処理装置101、102、103)の内部構成については、情報処理装置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の制御に基づいて、マルチホップの通信経路の生成または更新のための信号(PREQ、PREP)のやりとりを他の情報処理装置との間で無線通信を利用して行う。なお、PREQ、PREPについては、図4等を参照して詳細に説明する。
なお、通信部120は、電波(電磁波)を用いた無線通信を行うようにしてもよく、電波以外の媒体を用いた無線通信(例えば、磁界を用いて行われる無線通信)を行うようにしてもよい。
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には、例えば、図11に示すメッシュパス・テーブル300が格納される。また、メモリ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は、本技術の実施の形態における通信システム10を構成する各情報処理装置間においてやりとりされるパケットの信号フォーマットの一例を示す図である。
ここで、通信システム10を構成する各情報処理装置は、通信時にパケット形状の信号のやりとりを行う。このパケット形状の信号には、少なくともデータパケットおよび管理パケットの2種類が存在する。
図3のaには、データパケット(マルチキャスト)の信号フォーマットの一例を示す。また、図3のbには、データパケット(ユニキャスト)の信号フォーマットの一例を示す。また、図3のcには、管理パケットの信号フォーマットの一例を示す。
図3のaおよびbに示すデータパケットは、アプリケーションデータ等を伝送する際に用いられるパケットである。
ここで、IEEE802.11s規格では、宛先がマルチキャストアドレスか否かによりヘッダ部のフォーマットが異なる。すなわち、宛先がユニキャストアドレスの場合には、5つのフィールドがヘッダ部に存在する。また、宛先がマルチキャストアドレスの場合には、4つのフィールドがヘッダ部に存在する。
具体的には、図3のaに示すように、データパケット(マルチキャスト)の送信信号は、ヘッダ部(201乃至204)と、ペイロード部205とから構成される。
また、ヘッダ部には、4つのフィールドが存在する。この4つのフィールドは、Frame Control201、Dst ADDR202、TX ADDR203およびSrc ADDR204である。
ヘッダの先頭には、このヘッダを含む信号の属性等が格納されているFrame Control201が存在する。各情報処理装置は、Frame Control201を参照することにより、パケットがデータパケットであるか、制御や管理のための管理パケットであるか等の情報を取得することができる。
Dst ADDR202には、パケットの宛先局(そのパケットを最終的に受信すべき情報処理装置)を示す識別子(アドレス)が格納される。各情報処理装置は、Dst ADDR202を参照することにより、その信号を最終的にどの情報処理装置に送信すべきかを把握することができる。例えば、信号を受信した情報処理装置は、Dst ADDR202が、自装置の識別子(アドレス)でない場合には、その受信した信号を宛先局に送信するための転送処理を行う。
TX ADDR203には、パケットの送信局(そのパケットを送信した情報処理装置)の識別子(アドレス)が格納される。各情報処理装置は、TX ADDR203を参照することにより、どの情報処理装置がその信号を送信したかを認識することができる。
Src ADDR204には、パケットの送信元局(最初にパケットを送信した情報処理装置)の識別子(アドレス)が格納される。例えば、各情報処理装置は、Src ADDR204を参照することにより、その信号をどの情報処理装置が送信したのかを認識することができる。
図3のbに示すように、データパケット(ユニキャスト)の送信信号は、ヘッダ部(211乃至215)と、ペイロード部216とから構成される。
また、ヘッダ部には、5つのフィールドが存在する。この5つのフィールドは、Frame Control211、RX ADDR212、TX ADDR213、Dst ADDR214およびSrc ADDR215である。なお、Frame Control211、TX ADDR213、Dst ADDR214およびSrc ADDR215については、図3のaに示す同一名称のフィールドに対応する。
RX ADDR212には、パケットの受信局(そのパケットを受信すべき情報処理装置)を示す識別子(アドレス)が格納される。各情報処理装置は、RX ADDR212を参照することにより、その信号(パケット)をどの情報処理装置が受信するかを把握することができる。例えば、信号(パケット)を受信した情報処理装置は、RX ADDR212の内容が、自装置の識別子(アドレス)である場合、その受信した信号(パケット)の受信処理を開始する。
ここで、宛先がマルチキャストアドレスの場合には、図3のaに示すように、RX ADDRフィールドが存在せず、Dst ADDRがRX ADDRとして解釈される。例えば、図3のaに示すフォーマットの信号(パケット)を受信した場合には、Dst ADDR202がブロードキャストアドレスであるときや、自装置が属するマルチキャストグループのアドレスであるときに、その信号の受信処理を開始する。
また、例えば、パケットを受信した情報処理装置は、Dst ADDRの内容が自装置のアドレスでない場合、RX ADDRの内容が、マルチキャストアドレスである場合、その受信したパケットを宛先局に届けるための転送処理を行う。
図3のcに示す管理パケットは、ネットワークを生成する目的や、ネットワークを保持する目的で用いられるパケットである。
図3のcに示すように、管理パケットの送信信号は、ヘッダ部(221乃至223)と、ペイロード部224とから構成される。また、ヘッダ部には、3つのフィールドが存在する。この3つのフィールドは、Frame Control221、RX ADDR222およびTX ADDR223である。
ヘッダ部の先頭には、このヘッダを含む信号の属性等が格納されているFrame Control221が存在する。各情報処理装置は、Frame Control221を参照することにより、パケットがデータパケットであるか、制御や管理のための管理パケットであるか等の情報を取得することができる。
RX ADDR222には、パケットの受信局を示す識別子(アドレス)が格納される。各情報処理装置は、RX ADDR222を参照することにより、その信号(パケット)をどの情報処理装置が受信するかを把握することができる。例えば、信号(パケット)を受信した情報処理装置は、RX ADDR222の内容が、自装置の識別子(アドレス)である場合、または、ブロードキャストアドレスである場合に、その受信した信号(パケット)の受信処理を開始する。
TX ADDR223には、パケットの送信局の識別子(アドレス)が格納される。各情報処理装置は、TX ADDR223を参照することにより、どの情報処理装置がその信号を送信したかを認識することができる。
[マルチキャスト送信時のマルチホップ・リレーの例]
図4は、本技術の実施の形態における通信システム10を構成する各情報処理装置により行われるマルチホップ・リレーの遷移例を模式的に示す図である。
ここで、IEEE802.11s規格では、マルチホップ・リレーにより、複数の情報処理装置宛て(マルチキャスト)にデータを送信する場合を想定する。この場合には、送信元の情報処理装置は、図3のaに示すマルチキャスト用のデータパケットのフォーマットを利用してデータパケットを生成して送信する。
また、IEEE802.11s規格では、マルチキャスト送信時には、経路情報を生成せずに、データパケットの送信が行われ、フラッディングによりネットワークの隅々までパケット伝達が行われる。このパケットの流れを図4のa乃至dに示す。
図4では、送信元局である情報処理装置100が、情報処理装置101、102、103宛てにブロードキャストのデータを送信する場合の例を示す。また、図4のa乃至dに示すDは、DST ADDRを意味し、Sは、Src ADDRを意味し、Tは、TX ADDRを意味するものとする。また、情報処理装置100乃至103のそれぞれを0乃至3で簡略化して示す。また、ブロードキャストをAで示す。
例えば、図4のaでは、DST ADDRにブロードキャストを指定し、TX ADDRを情報処理装置100とし、Src ADDRを情報処理装置100とするパケットを情報処理装置100が送信する例を示す。例えば、矢印104、107に示すように、情報処理装置100から情報処理装置101、102にそのパケットが送信される。
また、図4のbに示すように、情報処理装置100からのパケットを受信した情報処理装置101は、TX ADDRを情報処理装置101に書き換えて同一内容のパケットを送信する。例えば、矢印104乃至106に示すように、情報処理装置101から情報処理装置100、102、103にそのパケットが送信される。
同様に、図4のcに示すように、情報処理装置100(または、情報処理装置101)からのパケットを受信した情報処理装置102は、TX ADDRを情報処理装置102に書き換えて同一内容のパケットを送信する。例えば、矢印105、107に示すように、情報処理装置102から情報処理装置100、101にそのパケットが送信される。
また、図4のdに示すように、情報処理装置101からのパケットを受信した情報処理装置103は、TX ADDRを情報処理装置103に書き換えて同一内容のパケットを送信する。例えば、矢印106に示すように、情報処理装置103から情報処理装置101にそのパケットが送信される。
このようにして、メッシュネットワーク内の全ての情報処理装置にブロードキャストのデータ送信が試みられる。
ここで、上述したマルチホップ・リレーにより、特定の情報処理装置へ宛てたデータを転送する場合(ユニキャスト送信する場合)には、データの転送に先立って、どの経路でリレーしていくかを決定する必要がある。この手順は、経路選択と呼ばれる。また、この経路選択では、情報処理装置間で経路選択のための管理信号をやりとりすることにより通信経路を決定する。なお、メッシュネットワークにおける通信経路は、メッシュパスと呼ばれる。図5乃至図7では、そのメッシュパスを生成するために用いられる管理信号の種類と各々のフォーマットとを示す。
[信号フォーマット例]
図5は、本技術の実施の形態における通信システム10を構成する各情報処理装置間においてやりとりされる管理パケットの信号フォーマットの一例を示す図である。すなわち、図5では、メッシュパスを作成するために用いられる管理信号の種類と各々のフォーマット例とを示す。
図6および図7は、本技術の実施の形態における通信システム10を構成する各情報処理装置間においてやりとりされる管理パケットの信号フォーマットの内容例を示す図である。すなわち、図6および図7では、図5に示す管理パケットの信号フォーマットの内容例を示す。
図5のaには、管理パケットを示す。この管理パケットは、図3のcと同様である。なお、上述したように、管理パケットのFrameControl221には、この信号が管理パケットである旨が格納される。
図5のbおよびcには、図5のaに示す管理パケットにおけるペイロード部224の構成例を示す。具体的には、図5のbには、管理パケットがPREQ(経路要求信号)である場合の構成例を示す。また、図5のcには、管理パケットがPREP(経路応答信号)である場合の構成例を示す。
図5のbに示すPREQ(経路要求信号)は、特定の情報処理装置宛てのメッシュパスの生成を要求する際に用いられる信号である。
図5のbに示すように、PREQには、複数のフィールド(230乃至239)が存在する。
Length230には、ペイロードの長さを示す情報が格納される。
ActionType231には、この信号がPREQであることを示す識別子が格納される。信号を受信した情報処理装置は、ActionType231を参照することにより、その受信した信号がPREQであることを認識することができる。
Flags232には、PREQの属性を示す情報が格納される。
OrigSTA233には、メッシュパス生成の要求元の情報処理装置(送信元局)を示す識別子(アドレス)が格納される。ここで、PREQはマルチホップ・リレーにより遠くまで転送されるが、PREQを受信した情報処理装置は、OrigSTA233を参照することにより、その受信したPREQの送信元局がどの情報処理装置であるのかを認識することができる。
DestSTA234には、メッシュパス生成の要求先の情報処理装置(宛先局)を示す識別子が格納される。DestSTA234に格納されている識別子により特定される情報処理装置(宛先局)は、PREQを受信すると、これに応答してPREPを返送する。これにより、双方向のメッシュパスが生成される。
SeqNum235には、PREQを識別するための識別子が格納される。例えば、PREQが送信元局から送信される毎に、SeqNum235には、インクリメントされた値が格納される。すなわち、PREQは送信元局から複数回送信されることがあるが、PREQを受信した情報処理装置は、SeqNum235を参照することにより、その受信したPREQが、過去に受信したPREQと同一であるか否かを認識することができる。
HopCount236には、PREQが、送信元局(PREQを最初に送信した情報処理装置)から何ホップして届けられているかを示す数値が格納される。PREQを受信した情報処理装置は、その受信したPREQをマルチホップ転送するが、この転送処理毎に、HopCount236には、インクリメントされた値が格納される。
Metric237には、PREQの送信元局(PREQを最初に送信した情報処理装置)からどれだけのメトリック値を要してたどり着いたかを示す値が格納される。PREQを受信した情報処理装置は、その受信したPREQをマルチホップ転送するが、この転送処理毎に、Metric237には、情報処理装置間のリンクのメトリック値が累積加算された値が格納される。
Lifetime238には、メッシュパスの有効期間を示す情報が格納される。すなわち、メッシュパス生成要求が成功すると、有効なメッシュパス(アクティブなメッシュパス)が生成されるが、Lifetime238には、そのメッシュパスの有効期間を特定するための値が格納される。
Etc239には、その他の管理情報が格納される。
図5のcに示すPREP(経路応答信号)は、特定の情報処理装置宛てのメッシュパス生成の要求に応答する際に用いられる信号である。
図5のcに示すように、PREPには、複数のフィールド(240乃至249)が存在する。
Length240には、ペイロードの長さを示す情報が格納される。
ActionType241には、この信号がPREPであることを示す識別子が格納される。信号を受信した情報処理装置は、ActionType241を参照することにより、その受信した信号がPREPであることを認識することができる。
Flags242には、PREPの送信元局(PREPを最初に送信した情報処理装置)の属性が格納される。
OrigSTA243には、メッシュパス生成の要求元の情報処理装置を示す識別子が格納される。ここで、OrigSTA243には、PREQのOrigSTA233に格納されていた情報処理装置(PREQの送信元局)の識別子が転記される。
DestSTA244には、メッシュパス生成の要求先の情報処理装置を示す識別子が格納される。ここで、DestSTA244には、PREQのDestSTA234に格納されていた情報処理装置(PREQの宛先局)の識別子が転記される。
SeqNum245には、PREPを識別するための識別子が格納される。例えば、PREPが、PREPの送信元局から送信される毎に、SeqNum245には、インクリメントされた値が格納される。すなわち、PREPは送信元局から複数回送信されることがあるが、PREPを受信した宛先局は、SeqNum245を参照することにより、その受信したPREPが、過去に受信したPREPと同一であるか否かを認識することができる。
HopCount246には、PREPが、PREPの送信元局から何ホップして届けられているかを示す数値が格納される。PREPを受信した情報処理装置は、その受信したPREPをマルチホップ転送するが、この転送処理毎に、HopCount246には、インクリメントされた値が格納される。
Metric247には、PREPの送信元局からどれだけのメトリック値を要してたどり着いたかを示す値が格納される。PREPを受信した情報処理装置は、その受信したPREPをマルチホップ転送するが、この転送処理毎に、Metric247には、情報処理装置間のリンクのメトリック値が累積加算された値が格納される。
Lifetime248には、メッシュパスの有効期間を示す情報が格納される。すなわち、メッシュパス生成要求が成功すると、有効なメッシュパス(アクティブなメッシュパス)が生成されるが、Lifetime248には、そのメッシュパスの有効期間を指定するための値が格納される。
Etc249には、その他の管理情報が格納される。
通信システム10を構成する各情報処理装置は、PREQ、PREPをやりとりすることにより、マルチホップ通信時に必要となる経路情報(転送情報、メッシュパス情報とも称する)を生成する。例えば、各情報処理装置は、PREQ、PREPをやりとりすることによりマルチホップの通信経路を一定時間間隔または不定期に生成する。また、その経路情報は、宛先の情報処理装置へパケットを届けるためには、次にどの情報処理装置に転送すべきかを特定するための転送情報である。この経路情報は、メッシュパス・テーブルとして、各情報処理装置の内部で保持される。そして、各情報処理装置は、特定の情報処理装置宛てにデータパケットを送信する際に、メッシュパス・テーブルを参照して、どの情報処理装置を受信局として指定してパケットを送信するかを決定する。すなわち、各情報処理装置は、特定の情報処理装置宛てにデータパケットを送信する際に、メッシュパス・テーブルを参照して、RX ADDR222にどの情報処理装置を指定してパケットを送信するかを決定する。このメッシュパス・テーブルについては、図8、図11を参照して詳細に説明する。
[メッシュパス・テーブルの構成例]
図8は、本技術の実施の形態における通信システム10を構成する各情報処理装置が保持するメッシュパス・テーブルの一例(メッシュパス・テーブル250)を模式的に示す図である。
図8のaには、メッシュパス・テーブル250の構成を模式的に示し、図8のbには、メッシュパス・テーブル250の内容例を示す。具体的には、図8のbには、メッシュパス・テーブル250の内容例として、Index256と、データ名257と、意味258とを示す。
図8のaに示すように、メッシュパス・テーブル250は、メモリ150にレコード形式で記録されている。また、メッシュパス・テーブル250は、宛先局のアドレス(Dest251)をキーとして各レコードを抽出することができるようになっている。また、メッシュパス・テーブル250の各レコードとして、NextHop252と、Metric253と、SeqNum254と、ExpTime255とが格納される。なお、図8のbには、Index256に、各レコードを識別するための符号a乃至dを付して示す。
Index256「a」のNextHop252には、宛先局にデータを届けるために、次にどの情報処理装置に転送すればよいかを示す情報処理装置の識別子が格納される。すなわち、NextHop252には、送信局の識別子が格納される。
Index256「b」のMetric253には、自装置からメッシュパスの宛先局までのパスメトリック値が格納される。
Index256「c」のSeqNum254には、メッシュパスの生成に利用されたPREQまたはPREPのSeqNum値(例えば、図5のbおよびcに示すSeqNum235、245)が格納される。
Index256「d」のExpTime255には、メッシュパスの有効期限が格納される。このメッシュパスの有効期限は、そのメッシュパスの生成に利用されたPREQまたはPREPのLifetime238、248(図5のbおよびcに示す)に基づいて決定される。
通信システム10を構成する各情報処理装置は、経路生成の要求やその応答時には、経路情報を生成し、この生成された経路情報をメッシュパス・テーブル250に書き込む。また、通信システム10を構成する各情報処理装置は、データを転送する際には、そのデータを届ける宛先局のアドレス(Dest251)に基づいて、メッシュパス・テーブル250からその宛先局に対応する各レコードを抽出する。そして、情報処理装置は、その抽出された各レコードのNextHop252に対応する送信局にそのデータを転送する転送処理を行う。
[ユニキャスト・メッシュパスの生成例]
図9および図10は、本技術の実施の形態における通信システム10を構成する各情報処理装置により行われるユニキャスト・メッシュパスの生成例を模式的に示す図である。また、図9および図10では、上述したPREQおよびPREPを用いたメッシュパス・テーブルの作成例について説明する。
また、図9および図10では、図1に示すトポロジにおいて、情報処理装置100が、情報処理装置101乃至103との間のメッシュパス生成を要求する場合を例にして説明する。
ここで、IEEE802.11s規格では、メッシュパス生成の手段が複数個定義されているが、ここでは、本技術の実施の形態に最も近いプロアクティブにPREQを送信する場合の例について説明する。また、図9および図10に示すDは、DST ADDRを意味し、Oは、Orig ADDRを意味し、Tは、TX ADDRを意味するものとする。また、情報処理装置100乃至103のそれぞれを0乃至3で簡略化して示す。また、ブロードキャストをAで示す。
最初に、図9のaに示すように、情報処理装置100は、他の全ての情報処理装置とのメッシュパスを生成するため、Dest STA234(図5のbに示す)にブロードキャストアドレスを指定したPREQを送信する。例えば、矢印104、107に示すように、情報処理装置100から情報処理装置101、102にPREQが送信される。
このPREQにおいて、HopCount236およびMetric237(図5のbに示す)には初期値としてゼロを格納し、SeqNum235(図5のbに示す)には前回送信したPREQに記載した値をインクリメントした値を格納する。また、RX ADDR222(図5のaに示す)には、ブロードキャストアドレス(D=A)を設定し、情報処理装置の周囲に存在する各情報処理装置を受信局として指定する。
情報処理装置101、102は、そのPREQを受信すると、そのPREQのOrig STA233(図5のaに示す)に識別子が格納されている情報処理装置宛て(すなわち、情報処理装置100宛て)のメッシュパス情報を作成する。すなわち、メッシュパス・テーブル250(図8に示す)において、情報処理装置100に関するレコードの各情報として記録される。
この場合に、Index256「a」のNextHop252には、そのPREQのTX ADDR223(図5のaに示す)の値を書き込む。また、Index256「b」のMetric253には、そのPREQのMetric237(図5のbに示す)の値に、そのPREQの送信局と自装置との間のリンクのメトリック値を加算した値を「パスメトリック値」として書き込む。なお、そのPREQの送信局は、TX ADDR223(図5のaに示す)で指定される情報処理装置(すなわち、情報処理装置100)である。また、そのPREQの送信局と自装置との間のリンクのメトリック値として、例えば、そのリンクでは何Mbps(Mega bits per second)で伝送が可能かを示す値が用いられる。
また、Index256「c」のSeqNum254には、そのPREQのSeqNum235(図5のbに示す)の値を書き込む。また、Index256「d」のExpTime255には、そのPREQの受信時刻にそのPREQのLifetime238(図5のbに示す)の値を加算した値を書き込む。この有効期限まで、そのメッシュパスは有効なものであるとして参照される。
また、PREQを受信した情報処理装置101、102は、他の情報処理装置にそのPREQを伝達するために、PREQを転送する。この転送の際に、情報処理装置101、102は、HopCount236(図5のbに示す)をインクリメントし、Metric237(図5のbに示す)には、先に計算した「パスメトリック値」を格納する。また、PREQにおける他のフィールドには、受信したPREQの値を転記する。すなわち、RX ADDR222(図5のaに示す)には、ブロードキャストアドレスを設定し、周囲に存在する各情報処理装置を受信局として指定し、TX ADDR223(図5のaに示す)には、自装置のアドレスを記載する。なお、図9のbには、情報処理装置101が送信するPREQのみを示し、情報処理装置102が送信するPREQを省略して示す。
また、情報処理装置103は、その転送されたPREQを受信すると、同様に、そのPREQのOrig STA233(図5のaに示す)に識別子が格納されている情報処理装置宛て(すなわち、情報処理装置100宛て)のメッシュパス情報を作成する。すなわち、メッシュパス・テーブル250(図8に示す)において、情報処理装置100に関するレコードの各情報として記録される。
ここで、情報処理装置101乃至103は、周囲に存在する1または複数の情報処理装置から複数のPREQ信号を受信することが想定される。この場合には、「パスメトリック値」の小さなパスを有効なメッシュパスとして選択し、「パスメトリック値」が大きいPREQを廃棄するようにする。
また、図9および図10では、情報処理装置100が送信したPREQは、Dest STAにブロードキャストアドレスが記載されている例を示す。このため、全ての情報処理装置がPREQの返答(PREPの送信)を行うことが想定される。そこで、以下では、各情報処理装置がPREPを送信する場合の例について説明する。
例えば、情報処理装置102は、情報処理装置100からのPREQを直接受信するとともに、情報処理装置101を経由してPREQを受信する。この場合には、情報処理装置100から直接受信したPREQのパスメトリック(300(図1に示す)と、情報処理装置101を経由して受信したPREQのパスメトリック(200+210(図1に示す)とを比較する。この比較の結果は、情報処理装置100から直接受信したPREQのパスメトリックが小さい。このため、図9のcに示すように、情報処理装置102は、情報処理装置100に対して、PREPを直接送信する。
具体的には、Dest STA244(図5のcに示す)には、自装置のアドレスを記載し、Orig STA243(図5cに示す)には、PREQに記載されていた値を転記する。また、HopCount246およびMetric247(図5のcに示す)には、初期値としてゼロを格納し、SeqNum245(図5のcに示す)には、前回送信したPREQまたはPREPに記載した値をインクリメントした値を格納する。
また、RX ADDR222(図5のaに示す)には、PREQのOrig STA233(図5のbに示す)(情報処理装置100)宛てのNexthopを設定し、TX ADDR223(図5のaに示す)には、自装置のアドレスを記載する。そして、情報処理装置102は、そのPREPをユニキャストで情報処理装置100に送信する。
また、図9のdに示すように、情報処理装置101についても同様にPREPを情報処理装置100に送信する。
このように、情報処理装置100は、PREPを受信することにより、PREPのDest STA244(情報処理装置101、102)宛てのメッシュパス情報を作成することができる。すなわち、メッシュパス・テーブル250(図8に示す)において、情報処理装置101、102に関するレコードの各情報として記録される。なお、情報処理装置100は、その受信したPREPのOrig STA243として自装置が指定されているため、これ以降の転送処理を行わない。
また、図10のaに示すように、情報処理装置103は、情報処理装置101を経由してPREQを受信したため、情報処理装置101を経由したメッシュパスを生成するためのPREPを送信する。具体的には、Dest STA244(図5のcに示す)には、自装置のアドレスを記載し、Orig STA243(図5のcに示す)には、PREQに記載されていた値を転記する。また、HopCount246およびMetric247(図5のcに示す)には、初期値としてゼロを格納し、SeqNum245(図5のcに示す)には、前回送信したPREQまたはPREPに記載した値をインクリメントした値を格納する。また、RX ADDR222(図5のaに示す)には、PREQのOrig STA233(図5のbに示す)(情報処理装置100)宛てのNexthopを設定し、TX ADDR223(図5のaに示す)には、自装置のアドレスを記載する。そして、情報処理装置103は、図10のaに示すように、そのPREPをユニキャストで情報処理装置101に送信する。
情報処理装置101は、そのPREPを受信すると、PREPのDest STA244(情報処理装置103)宛てのメッシュパス情報を作成する。すなわち、メッシュパス・テーブル250(図8に示す)において、情報処理装置103に関するレコードの各情報として記録される。この処理により、情報処理装置101は、情報処理装置103宛てのメッシュパスを作成することができる。
また、図10のbに示すように、情報処理装置101は、自装置がOrig STA243でないため、Orig STA243に宛ててPREPを転送する。この転送の際に、情報処理装置101は、HopCount246をインクリメントし、Metric247には、計算した「パスメトリック値」を格納し、他のPREPのフィールドには、受信したPREPの値を転記する。また、RX ADDR222には、情報処理装置100宛てのメッシュパスのNexthopのアドレス(この場合は、情報処理装置100)を設定し、ユニキャストで送信する。
また、情報処理装置100は、そのPREPを受信すると、PREPのDest STA244(情報処理装置103)宛てのメッシュパス情報を作成する。すなわち、メッシュパス・テーブル250において、情報処理装置103に関するレコードの各情報として記録する。この処理により、情報処理装置100は、情報処理装置103宛てのメッシュパスを作成することができる。
また、情報処理装置100は、そのPREPのOrig STA243として自装置が指定されているため、これ以降の転送処理を行わず、情報処理装置100と各情報処理装置との間の双方向メッシュパス生成処理を終了する。この処理により、情報処理装置100および情報処理装置101、情報処理装置100および情報処理装置102、情報処理装置101を経由した情報処理装置100および情報処理装置103を経路とする3つのメッシュパスが生成される。
また、これ以降は、メッシュパスの有効期限(図8に示すExpTime255)までの間、情報処理装置100と情報処理装置101乃至103との間でデータをやりとりする際に、各情報処理装置内で作成されたメッシュパスレコードを参照することができる。すなわち、情報処理装置100と情報処理装置101乃至103との間でデータをやりとりする際に、各情報処理装置内で作成されたメッシュパスレコードを参照することにより、マルチホップ・リレーの通信を行うことができる。
また、情報処理装置100は、上述したPREQ送信を一定間隔で行うことにより、メッシュパスの有効期限が切れないように更新させることができる。
なお、上述した無線ネットワークシステムを構成するための技術としては、IEEE802.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)が広く知られている。また、IEEE802.11s規格は、IEEE 802.11−2012の一部として取り込まれている。
ここで、IEEE802.11s規格では、不特定多数の情報処理装置間で同一の情報を送受信するマルチキャスト通信用の経路を設定する仕組みが定義されていない。そこで、IEEE802.11s規格でマルチキャスト伝送を行う場合には、次の(1)または(2)を行うことが考えられる。
(1)MAC(Media Access Control)レベルではブロードキャストにて情報伝達を行う
(2)アプリケーションレベルで複数のユニキャスト通信に展開して伝送を行う
ここで、MACレベルのブロードキャストを利用して情報伝達を行う場合には、各情報処理装置においては、単なるブロードキャスト宛てのパケットとして送信処理を行う。このため、ARQ(Automatic repeat-request)(自動再送要求)の仕組みを併用することができず、信号の衝突等が恒常的に発生する無線LANのメディア上では、ロバストな伝送が困難となるおそれがある。また、IEEE802.11s規格のブロードキャスト伝送は、ループ転送への対策は行われているものの、基本的には単純なフラッディングに基づいた転送が行われる。このため、効率的な情報伝送を行うことが困難であることが想定される。
また、アプリケーションレベルで複数のユニキャスト通信に展開して伝送を行う場合には、TCP(Transmission Control Protocol)レイヤのEnd−Endの再送制御等を活用することができる。このため、情報の欠落の観点からみると、比較的高い通信品質を提供し易くなる。しかしながら、情報の配送先が増える場合(特に、複数ホップでの配送が多い場合)には、複数の宛先に対して何度も同一情報を送信する必要がある。このため、帯域の無駄遣いを低減させることが重要となる。
そこで、本技術の実施の形態では、IEEE802.11s規格のHWMP(Hybrid Wireless Mesh Protocol)の一部を簡単に拡張し、マルチホップ・マルチキャスト伝送を行う例を示す。これにより、ロバストで、かつ、効率的にマルチホップ・マルチキャスト伝送を行う仕組みを定義することができる。
具体的には、本技術の実施の形態では、上述した信号(PREQ、PREP)のやりとりをベースにしてマルチキャストのメッシュパスの生成・維持管理を行う例を示す。
また、そのように生成されたマルチキャスト・メッシュパスを用いて、データパケットの送信元の情報処理装置から、メッシュネットワーク内のマルチキャストグループに属する各情報処理装置宛てにデータパケットのマルチキャスト送信を行う。この場合に、ユニキャストパケットフォーマットを用いたARQを併用したロバストな転送ができるようにする。また、効率的なマルチホップ・リレーを行い、直接電波が届かない情報処理装置に対してもマルチキャストの情報を転送することができるようにする。
このようなマルチキャスト送信を実現するため、本技術の実施の形態では、メッシュネットワークを構成する情報処理装置のうち、何れかの情報処理装置をマルチキャスト経路生成のルート局として設定する。
[マルチキャストグループへの参加およびルート局の設定例]
ここでは、マルチキャスト送信を行うためのマルチキャストグループへの参加方法およびルート局の設定例について説明する。
例えば、情報処理装置のマルチキャストグループへの参加は、アプリケーションのコンテクストに大きく依存するため、動的に設定することができるものとする。
例えば、各情報処理装置は、上位レイヤからの指示により、自装置がどのマルチキャストグループに属するかを設定する。この指示がされると、各情報処理装置は、あるマルチキャストグループに参加している状態となり、マルチキャスト・メッシュパスに含まれるように制御される。
また、本技術の実施の形態では、上述したプロアクティブにPREQを送信するメカニズムをベースにしてマルチキャスト・メッシュパスを生成する。すなわち、ネットワーク中に、マルチキャスト・ツリーのルート局となる情報処理装置が1台必要となる。このルート局として、例えば、マルチキャスト配送するコンテンツの送信元となる情報処理装置を設定することができる。このルート局は、上述した上位レイヤからの指示によりアサインされる。また、ルート局は、PREQの定期的送信(または、不定期送信)を行う。ルート局以外のマルチキャストグループに参加する情報処理装置(すなわち、コンテンツの配信先となる情報処理装置)は、メンバ局としての役割を担う。このメンバ局についても、上述した上位レイヤからの指示によりアサインされる。このメンバ局は、PREPの返送処理を行う。
なお、メッシュネットワーク中には、ルート局でもなく、メンバ局でもない情報処理装置が存在することもあり得る。すなわち、マルチキャスト・メッシュパスは、必ずしもメッシュネットワーク内の全ての情報処理装置との間での情報配送を行うとは限らない。しかしながら、対象となるマルチキャストグループに参加していない情報処理装置も、PREQおよびPREPの転送処理を行うようする。
[メッシュパス・テーブルの構成例]
図11は、本技術の実施の形態における通信システム10を構成する各情報処理装置が保持するメッシュパス・テーブルの一例(メッシュパス・テーブル300)を模式的に示す図である。
図11のaには、メッシュパス・テーブル300の構成を模式的に示し、図11のbには、メッシュパス・テーブル300の内容例を示す。なお、メッシュパス・テーブル300は、マルチキャストアドレスを宛先とするメッシュパス・テーブルの一例であり、図8のaおよびbに示すメッシュパス・テーブル250に新たな情報(Index256「e」乃至「g」)を追加したものである。このため、図8のaおよびbに示すメッシュパス・テーブル250と共通する部分には、同一の符号を付して、これらの説明を省略する。
なお、図11では、新たな情報群(Index256「e」乃至「g」)を、図8のaおよびbに示すメッシュパス・テーブル250の情報とともに管理する例を示すが、メッシュパス・テーブル250とは異なるテーブルで管理するようにしてもよい。
Index256「e」のRootFlag301には、このメッシュパスがルート局に宛てての経路を保持していることを示すフラグが格納される。すなわち、このメッシュパスがPREQの受信により作成されたものかを示すフラグが格納される。例えば、PREQの受信により作成されたメッシュパスである場合には、1が格納され、PREQの受信により作成されたメッシュパスでない場合には、0が格納される。
Index256「f」のLink_metric302には、このメッシュパスのNexthopまでのメトリック値が格納される。この1リンク分のメトリックをリンクメトリックと称する。
Index256「g」のProactivePath303には、このメッシュパスがメンバ局に宛てての経路を保持していることを示すフラグが格納される。すなわち、このメッシュパスがPREPの受信により作成されたものかを示すフラグが格納される。例えば、PREPの受信により作成されたメッシュパスである場合には、1が格納され、PREPの受信により作成されたメッシュパスでない場合には、0が格納される。
なお、RootFlag301およびProactivePath303については、何れか一方のみを記録するようにしてもよい。
また、これらの各項目は、PREQの受信時およびPREPの受信時に、該当するレコードを対象に記録され、参照される。
上述したように、ユニキャストの宛先に関しては、宛先局アドレスをキーにしてメッシュパス・テーブル300からレコードを抽出することができる。この場合には、各レコードが保持するNexthop252は、1つである。
一方、マルチキャスト・メッシュパスに関しては、メッシュパス・テーブル300のレコードは、宛先局アドレスとしてマルチキャストアドレスを保持する。ただし、マルチキャストの宛先の情報処理装置が複数存在する場合があるため、そのマルチキャスト・メッシュパスのNexthopは複数存在することがある。この状況を収容するため、メッシュパス・テーブル300には、同一の宛先局アドレスを保持するレコードが複数存在する場合がある。また、マルチキャストの宛先に関しては、宛先がルート局のレコードを抽出する場合と、宛先がメンバ局のレコードを抽出する場合とで、異なるレコードの指定方法が用いられる。
具体的には、ルート局への経路を保持するレコードを抽出する場合には、宛先アドレス「Dest251」と「RootFlag301」との組みをキーにして抽出する。例えば、指定されたマルチキャストアドレスが「Dest251」に格納され、「RootFlag301」に1がセットされているレコードがメッシュパス・テーブル300から抽出される。
また、メンバ局への経路を保持するレコードを抽出する場合には、宛先アドレス「Dest251」と「Nexthop252」との組みをキーにして抽出する。例えば、指定されたマルチキャストアドレスが「Dest251」に格納され、指定されたNexthopアドレスが「Nexthop252」に格納されているレコードがメッシュパス・テーブル300から抽出される。
[マルチキャスト・メッシュパスの作成例]
図12および図13は、本技術の実施の形態における通信システム10を構成する各情報処理装置により行われるマルチキャスト・メッシュパスの生成例を模式的に示す図である。
図14および図15は、本技術の実施の形態における通信システム10を構成する各情報処理装置により生成されるメッシュパス・テーブルの一例を模式的に示す図である。
図12および図13では、上述したように、PREQおよびPREPをやりとりすることにより、マルチキャストアドレス(Addr−A)のマルチキャスト・メッシュパスを生成する場合の例について説明する。
また、図12および図13では、図1に示すトポロジにおいて、情報処理装置100がルート局として設定され、情報処理装置102および情報処理装置103がメンバ局として設定されている場合の例を示す。また、図1に示すトポロジにおいて、各リンク(点線104乃至107で示す)のメトリック値は、点線上の矩形内に示す値であるものとする。また、各図に示すD、O、Tについては、図9および図10に示す例と同様である。
最初に、図12のaおよびbに示すように、プロアクティブPREQが送信される。具体的には、図12のaに示すように、情報処理装置100は、定期的にPREQを送信する。このPREQのDest STA234(図5のbに示す)には、Addr−Aが格納され、Orig STA233(図5のbに示す)には、0が格納され、TX ADDR223(図5のbに示す)には、0が格納される。
また、図12のbに示すように、そのPREQを受信した情報処理装置101は、そのPREQを転送するPREQ転送処理を行う。この転送されるPREQのDest STA234には、Addr−Aが格納され、Orig STA233には、0が格納され、TX ADDR223には、1が格納される。
なお、情報処理装置102および情報処理装置103も同様にPREQの転送処理を行うが、ここでは、メッシュパスの生成には影響を与えないものとして図示を省略する。
ここで、メンバ局(情報処理装置102および情報処理装置103)は、それぞれが独立してルート局(情報処理装置100)との間でパスメトリックが最小となる経路を生成する。このため、図12のc、d、図13のaに示すように、上述したユニキャスト・メッシュパス生成と同様に、受信したPREQに対する応答(PREP)を送信する。
例えば、図12のcに示すように、情報処理装置102は、情報処理装置100にPREPを直接送信し、Addr−Aのマルチキャスト・メッシュパスの一部として情報処理装置100および情報処理装置102間のリンクが確定する。また、例えば、図12のd、図13のaに示すように、情報処理装置103は、中継局(情報処理装置101)を介して情報処理装置100にPREPを送信する。このため、Addr−Aのマルチキャスト・メッシュパスの一部として、情報処理装置101を経由する情報処理装置100および情報処理装置102間のリンクが確定する。
このように、PREQおよびPREPのやりとりを行うことにより、マルチキャスト・メッシュパスが生成される。図13のbでは、生成されたマルチキャスト・メッシュパスを太線の矢印で示す。図13のbに示すように、情報処理装置100、情報処理装置102、情報処理装置103間でAddr−Aを宛先とするフレームの相互送受信が可能となる。
また、図12のa乃至d、図13のaに示すPREQおよびPREPのやりとりが行われた際に、各情報処理装置において生成されるメッシュパス・テーブル300の例を図14および図15に示す。具体的には、図14のaには、情報処理装置100において生成されるメッシュパス・テーブルを示し、図14のbには、情報処理装置101において生成されるメッシュパス・テーブルを示す。また、図15のaには、情報処理装置102において生成されるメッシュパス・テーブルを示し、図15のbには、情報処理装置103において生成されるメッシュパス・テーブルを示す。
次に、各情報処理装置の動作例について説明する。
[プロアクティブPREQの送信例]
図16は、本技術の実施の形態における情報処理装置100による送信処理の処理手順の一例を示すフローチャートである。
図16では、情報処理装置100が、上位レイヤより、マルチキャストグループのルート局として動作するよう指示された場合の例を示す。この場合には、情報処理装置100の制御部140は、定期的にプロアクティブPREQの送信処理を行う(ステップS801、S810)。すなわち、情報処理装置100の制御部140は、定期送信タイマが満了したか否かを判断する(ステップS801)。そして、定期送信タイマが満了した場合には(ステップS801)、PREQ送信処理を行う(ステップS810)。なお、ステップS810は、特許請求の範囲に記載の送信手順の一例である。
このように、プロアクティブPREQは、定期送信タイマが満了する毎に繰り返し送信される。この場合に、プロアクティブPREQのDest STA234(図5のaに示す)には、上位レイヤより指示されたマルチキャストグループのマルチキャストアドレスを格納する。ここで、IEEE802.11S規格では、Dest STAにブロードアドレス以外のマルチキャストアドレスを格納する動作は規定されていない。このため、本技術の実施の形態では、Dest STAにマルチキャストアドレスを格納する新たな動作を起動させる。
また、通常のプロアクティブPREQと同様に、PREQのRX ADDR222(図5のaに示す)には、ブロードキャストアドレスが格納され、ネットワーク全体への伝達が試みられる。
ここで、マルチキャストアドレスに関するアクティブなメッシュパスが存在する場合には、PREQの伝達を確かなものとするため、Nexthopに相当する近隣の情報処理装置にユニキャスト送信を併用することが望まれる。このPREQ送信処理については、図17を参照して詳細に説明する。
なお、図16では、定期的にプロアクティブPREQの送信処理を行う例を示したが、不定期または間欠的にプロアクティブPREQの送信処理を行うようにしてもよい。例えば、何れかの情報処理装置の状態が変化(例えば、移動)したタイミングでプロアクティブPREQの送信処理を行うようにしてもよい。
図17は、本技術の実施の形態における情報処理装置100による送信処理の処理手順のうちのPREQ送信処理手順(図16に示すステップS810の処理手順)の一例を示すフローチャートである。
情報処理装置100の制御部140は、プロアクティブPREQの送信処理が起動されると、メッシュパス・テーブル300の各レコードを走査する(ループL811)。そして、制御部140は、上位レイヤより指示されたマルチキャストグループのマルチキャストアドレスをDest251に格納し、かつ、プロアクティブに作成されたメッシュパスを走査する(ループL811)。ここで、プロアクティブに作成されたメッシュパスか否かについては、レコードのProactivePath303(図11に示す)を参照することにより確認することができる。このProactivePath303については、PREP受信時に設定される。
そして、該当するレコードが存在する場合には(ループL811)、制御部140は、そのレコードのNexthop252(図11に示す)を抽出する(ステップS812)。そして、制御部140は、今回のプロアクティブPREQ送信処理において、そのNexthopにプロアクティブPREQをユニキャスト送信したか否かを判断する(ステップS813)。
そのNexthopにプロアクティブPREQをユニキャスト送信していない場合には(ステップS813)、制御部140は、そのNexthopに向けてプロアクティブPREQをユニキャスト送信する(ステップS814)。
そのNexthopにプロアクティブPREQをユニキャスト送信している場合には(ステップS813)、その走査が終了するまで、上述した各処理を繰り返し行う(ループL811)。
その走査が終了した場合には(ループL811)、制御部140は、プロアクティブPREQをブロードキャスト送信する(ステップS815)。これにより、プロアクティブPREQ信号を必要なだけ安定して送信することが可能となる。
このように、制御部140は、コンテンツ(例えば、画像コンテンツ、音楽コンテンツ)をマルチキャスト送信するルート局として情報処理装置100が設定された場合に、マルチキャスト送信経路生成を要求する経路要求信号(PREQ)を送信する制御を行う。この場合に、制御部140は、経路要求信号(PREQ)の宛先アドレス(Dest STA234(図5のaに示す))に、上位レイヤより指示されたマルチキャストグループのマルチキャストアドレスを格納して送信する。
また、制御部140は、経路要求信号(PREQ)を受信した場合に、経路情報(メッシュパステーブルのレコード)により特定される隣接する情報処理装置にその経路要求信号をユニキャスト送信により転送する。
なお、図17では、ブロードキャスト送信する前に、プロアクティブPREQをユニキャスト送信する例を示したが、ブロードキャスト送信およびユニキャスト送信の順序については、逆にするようにしてもよい。また、隣接する全ての情報処理装置に向けてプロアクティブPREQをユニキャスト送信した場合には、ブロードキャスト送信を行わずにブロードキャスト送信を省略するようにしてもよい。
[プロアクティブPREQの受信例]
図18は、本技術の実施の形態における情報処理装置100による受信処理の処理手順の一例を示すフローチャートである。図18では、情報処理装置100がPREQを受信した場合の動作例を示す。なお、図18に示す処理手順は、特許請求の範囲に記載の受信手順の一例である。
情報処理装置100の制御部140は、受信したPREQの送信局(TX ADDR223(図5のaに示す)に識別子が格納されている情報処理装置)と自装置との間のメトリック値(リンクメトリック値)を算出する(ステップS821)。また、制御部140は、受信したPREQのMetric237(図5のbに示す)に格納されている値に、そのリンクメトリックを加算した値(パスメトリック値)を算出する(ステップS821)。
続いて、制御部140は、受信したPREQのDest STA234(図5のbに示す)に格納されている内容を確認する(ステップS822)。そして、受信したPREQのDest STA234に、ユニキャストアドレスまたはブロードキャストアドレスが格納されている場合には(ステップS822)、制御部140は、通常処理(ユニキャスト・メッシュパスを生成する処理)を行う(ステップS831)。この通常処理については、上述した各処理であるため、ここでの詳細な説明を省略する。
また、受信したPREQのDest STA234に、ブロードキャストではないマルチキャストアドレスが格納されている場合には(ステップS822)、制御部140は、メッシュパス・テーブル300からの抽出処理を行う(ステップS823)。すなわち、制御部140は、そのPREQのDest STA234に格納されているアドレスを宛先局(Dest251)とし、かつ、RootFlag301に1がセットされているレコードをメッシュパス・テーブル300から抽出する(ステップS823)。なお、図18では、その抽出されたレコードを構造体変数TABと表記して説明する。また、そのレコードが存在しない場合には、制御部140は、メッシュパス・テーブル300に新規レコードを作成する。
続いて、制御部140は、受信したPREQのSeqNum235(図5のbに示す)の値が、TABのSeqNumの値よりも小さいか否かを判断する(ステップS824)。または、制御部140は、受信したPREQのSeqNum235の値と、TABのSeqNumの値とが一致し、かつ、算出されたパスメトリック値がTABに記載されているMetric値よりも小さいか否かを判断する(ステップS824)。
これらの何れかを満たす場合には、制御部140は、受信したPREQの送信局が、その抽出されたレコードの宛先局への最小メトリックの経路候補になると判断する(ステップS824)。この場合には、制御部140は、そのレコードのMetric253(図11に示す)に、算出されたパスメトリック値を格納する(ステップS825)。続いて、制御部140は、受信したPREQのMetric237(図5のbに示す)を、算出されたパスメトリック値で更新し、HopCount236(図5のbに示す)をインクリメントして更新し、PREQの転送処理を行う(ステップS826)。この転送処理は、図17に示す処理と同等の処理となる。
また、最小メトリックの経路候補になると判断されなかった場合には(ステップS824)、受信したPREQの転送処理を行わず、ステップS827に進む。
続いて、制御部140は、受信したPREQの送信局が、その抽出されたレコードの宛先局への転送経路候補(マルチキャスト経路候補)になるか否かを判断する(ステップS827)。この判断は、「最小メトリックの経路候補」になるか否かの判断(ステップS824)と同一の基準とするようにしてもよく、異なる基準で判断するようにしてもよい。この異なる基準で判断する場合の処理については、図21を参照して詳細に説明する。
ここで、マルチキャスト経路候補(転送経路候補)にならないと判断した場合には(ステップS827)、PREQ受信処理の動作を終了する。
また、マルチキャスト経路候補(転送経路候補)になると判断した場合には(ステップS827)、制御部140は、TABの値を更新し、経路候補として記録する(ステップS828)。具体的には、その抽出されたレコードのNexthop252(図11に示す)に、受信したPREQのTX ADDR223(図5のbに示す)のアドレスを格納する。また、SeqNum254(図11に示す)に、受信したPREQのSeqNum235(図5のbに示す)の値を格納する。また、ExpTime255(図11に示す)に、受信したPREQのLifetime238(図5のbに示す)に、現在時刻を加算した値を格納する。また、RootFlag301(図11)に1をセットし、Link_metric302(図11に示す)に、算出されたリンクメトリック値を格納し、ProactivePath303(図11に示す)に0をセットする。これらの記録処理(ステップS828)は、経路候補情報を一時的に保持する処理に相当する。この一時的に保持する処理では、レコードの他の項目に一度値を退避させておくことにより、確定情報と候補情報とを分離して記録する等の手段を併用するようにしてもよい。
続いて、制御部140は、自装置が、受信したPREQのDest STA234に格納されているアドレスのマルチキャストグループに属しているか否かを判断する(ステップS829)。情報処理装置100がマルチキャストグループにメンバ局として設定されている場合には(ステップS829)、制御部140は、PREP応答処理を起動する(ステップS830)。ここで、制御部140は、PREP応答処理の起動後には、PREPの応答を即座には行わず、PREPの送信まで時間的猶予を持たせるためのタイマを設定する。そして、このタイマが満了した後に、制御部140は、PREP転送処理を行う。このPREP転送処理については、図19を参照して詳細に説明する。
また、自装置がマルチキャストグループに属していない場合には(ステップS829)、PREP応答処理を行わず、PREP受信処理の動作を終了する。
[PREPの送信例]
図19は、本技術の実施の形態における情報処理装置100によるPREP送信処理の処理手順の一例を示すフローチャートである。
情報処理装置100の制御部140は、送信するPREPを生成する(ステップS841)。このPREPの生成は、上述したように、受信したPREQの各フィールドに格納されている情報をコピーすることにより行う。ただし、マルチキャスト送信を行う場合には、PREPのSeqNum245(図5のcに示す)には、PREPの識別子を格納せずに、PREQのSeqNum235(図5のbに示す)をコピーして格納する点が異なる。
続いて、制御部140は、メッシュパス・テーブル300からの抽出処理を行う(ステップS842)。すなわち、制御部140は、PREPのDest STA244(図5のcに示す)に格納されているアドレスを宛先局(Dest251)とし、かつ、RootFlag301に1がセットされているレコードをメッシュパス・テーブル300から抽出する。このレコードについては、PREQを受信した際に生成されている。また、図19では、そのレコードを構造体変数TABと表記して説明する。
TABの値には、先にPREQを受信した際に経路候補として記録された各情報が記載されている。また、制御部140は、その候補情報を正規の経路情報として確定させる(ステップS843)。この時点で、TABの値は、パケット転送時に参照される経路情報となる(ステップS843)。また、TABの値は、ExpTime255(図11に示す)に格納されている時刻まで(Lifetime満了まで)有効となる。このため、これ以降、ExpTime255に格納されている時刻を過ぎてもそのレコードの更新がない場合には、制御部140は、そのレコードをメッシュパス・テーブル300から廃棄し、メッシュパスを消滅させる。なお、ステップS822乃至S828、S843は、特許請求の範囲に記載の制御手順の一例である。
続いて、制御部140は、生成されたPREPを、TABのNexthop252(図11に示す)に向けて(RX ADDR222(図5のaに示す)にNexthop252のアドレスを格納して)ユニキャスト送信する(ステップS844)。
このように送信されたPREPは、RX ADDR222に識別子が格納されている情報処理装置(隣接する情報処理装置)により受信される。そのPREPを受信した情報処理装置のPREP受信処理については、図20を参照して詳細に説明する。
[PREPの受信例]
図20は、本技術の実施の形態における情報処理装置100によるPREP受信処理の処理手順の一例を示すフローチャートである。
最初に、制御部140は、メッシュパス・テーブル300からの抽出処理を行う(ステップS851)。すなわち、制御部140は、受信したPREPのDest STA244に格納されているアドレスを宛先局とし、かつ、そのPREPのTX ADDR223に格納されているアドレスをNexthop252に格納するレコードを抽出する(ステップS851)。なお、メッシュパス・テーブル300に該当するレコードが存在しない場合には、制御部140は、新規レコードを作成する。また、図20では、その抽出されたレコードを構造体変数TABと表記して説明する。
続いて、制御部140は、TABのレコードを更新する(ステップS852)。すなわち、制御部140は、抽出されたレコードのSeqNum254(図11に示す)に、受信したPREPのSeqNum245(図5のcに示す)の値を格納する。また、制御部140は、抽出されたレコードのExpTime255(図11に示す)に、受信したPREPのLifetime248(図5のcに示す)に、現在時刻を加算した値を格納する。また、制御部140は、抽出されたレコードのRootFlag301(図11に示す)に0をセットし、ProactivePath303(図11に示す)に1をセットする(ステップS852)。この更新処理は、メッシュパスの設定に相当する処理となる。
また、TABの値は、ExpTime255に格納されている時刻まで(Lifetime満了まで)有効となる。これ以降は、ExpTime255に格納されている時刻を過ぎても、そのレコード(TAB)の更新がない場合には、制御部140は、そのレコードをメッシュパス・テーブル300から廃棄し、メッシュパスを消滅させる。
続いて、制御部140は、自装置が、受信したPREPのOrig STA243(図5のcに示す)であるか否かを判断する(ステップS853)。自装置が、受信したPREPのOrig STA243である場合には(ステップS853)、PREP受信処理の動作を終了する。
自装置が、受信したPREPのOrig STA243でない場合には(ステップS853)、制御部140は、PREP転送処理を行う(ステップS854)。すなわち、制御部140は、受信したPREPの各フィールドの情報をコピーしてPREPを生成する。ただし、PREPのMetric247(図5のcに示す)には、リンクメトリック値を加算して更新し、HopCount246(図5のcに示す)をインクリメントして更新してPREPを生成する。そして、図19に示すPREP送信処理により、PREPを送信する。
このように、制御部140は、経路要求信号(PREQ)により特定される通信経路に関する経路情報をマルチキャスト送信の経路情報候補(マルチキャスト経路候補)として保持させる。そして、制御部140は、その経路要求信号(PREQ)に応答するための経路応答信号(PREP)を送信するタイミングでその経路情報候補をマルチキャスト送信の経路情報として決定する。
また、制御部140は、経路要求信号(PREQ)に対応する経路応答信号(PREP)を受信した場合には、その経路応答信号に基づいてマルチキャスト送信をするための経路情報を生成する。
また、制御部140は、経路要求信号(PREQ)の宛先アドレスがマルチキャストアドレスであり、かつ、そのマルチキャストアドレスにより特定されるグループに自装置が属する場合に、経路応答信号(PREP)を送信する。
[マルチキャスト経路候補の判定例]
図21は、本技術の実施の形態における情報処理装置100によるマルチキャスト経路候補の判定処理の処理手順の一例を示すフローチャートである。この処理手順は、図18に示すマルチキャスト経路候補の判定処理(ステップS827)の変形例であり、図18に示すマルチキャスト経路候補の判定処理とは異なる判断基準を用いる場合の例を示す。また、図21では、受信したPREQの情報や、TABに格納されている値は、図18に示す例と同様に設定されている場合を想定して説明する。
最初に、情報処理装置100の制御部140は、受信したPREQのSeqNum235(図5のbに示す)の値が、TABのSeqNum254(図11に示す)の値よりも大きいか否かを判断する(ステップS861)。そして、受信したPREQのSeqNum235の値が、TABのSeqNum254の値よりも大きい場合には(ステップS861)、制御部140は、そのPREQの経路を経路候補として決定する(ステップS865)。
また、受信したPREQのSeqNum235の値が、TABのSeqNum254の値以下である場合には(ステップS861)、制御部140は、それらの値が一致するか否かを判断する(ステップS862)。それらの値が一致しない場合には(ステップS862)、制御部140は、そのPREQの経路を経路候補としない決定をする(ステップS866)。
それらの値が一致する場合には(ステップS862)、制御部140は、受信したPREQのmetric237(図5のbに示す)に格納の値が、TABのmetric253(図11に示す)に格納の値よりも小さいか否かを判断する(ステップS863)。そして、受信したPREQのmetric237に格納されている値が、TABのmetric253に格納されている値以上である場合には(ステップS863)、制御部140は、そのPREQの経路を経路候補としない決定をする(ステップS866)。
受信したPREQのmetric237に格納されている値が、TABのmetric253に格納されている値よりも小さい場合には(ステップS863)、制御部140は、リンクメトリック値の比較を行う(ステップS864)。すなわち、制御部140は、算出されたリンクメトリック値(図18に示すステップS821で算出)が、TABのLink_metric302(図11に示す)に格納されている値よりも小さいか否かを判断する(ステップS864)。
算出されたリンクメトリック値が、TABのLink_metric302に格納されている値以上である場合には(ステップS864)、制御部140は、そのPREQの経路を経路候補としない決定をする(ステップS866)。
算出されたリンクメトリック値が、TABのLink_metric302に格納されている値よりも小さい場合には(ステップS864)、制御部140は、そのPREQの経路を経路候補として決定する(ステップS865)。
このように判断することにより、採用するルート局に向けてのメッシュパス候補を、メトリックの累積値により定めるのではなく、自装置を全体のメッシュパス・ツリーに追加するために必要なリンクメトリックの大きさに応じて決定することができる。
例えば、図12および図13に示す例において、情報処理装置102は、PREQを情報処理装置100から受信するとともに情報処理装置101からも受信する。この場合には、図1に示すように、情報処理装置100へのリンクのメトリック値よりも、情報処理装置101へのリンクのメトリック値の方が小さい。
この場合に、図18に示す例では、情報処理装置102は、ルート局(情報処理装置100)への経路(Nexthop)候補として情報処理装置101を設定する(図18に示すステップS828)。
この場合に、情報処理装置101が同様の判断(ルート局への経路候補として情報処理装置102を設定する)を行わないことを担保することが重要である。このため、図21に示す例では、情報処理装置101の送信するPREQに格納されているメトリック値(点線104で示すリンクのメトリック値)と、点線107で示すリンクのメトリック値とを比較する。そして、情報処理装置101が送信するPREQに格納されているメトリック値の方が、情報処理装置100から受信したPREQの候補メッシュパスのメトリック値よりも小さい場合に限って行う制限を設ける。
このように、制御部140は、経路要求信号(PREQ)を転送するための判断と、その経路要求信号により特定される通信経路に関する経路情報を経路情報候補として保持させるための判断とを異なる基準に基づいて行うようにしてもよい。この場合には、制御部140は、各メトリック値と、各リンクメトリック値との比較結果に基づいて、経路情報候補を保持させるための判断を行うことができる。例えば、経路要求信号に含まれるメトリック値と、経路要求信号の送信局との間のリンクメトリック値と、経路情報候補として保持されているメトリック値と、経路情報候補により特定される隣接局との間のリンクメトリック値とを比較する。そして、制御部140は、その比較結果に基づいて、経路情報候補を保持させるための判断を行うことができる。
[マルチキャスト・メッシュパスの作成例]
ここでは、図21に示すマルチキャスト経路候補の判定処理により、マルチキャストアドレス(Addr−A)のマルチキャスト・メッシュパスを生成する例を示す。
図22は、本技術の実施の形態における通信システム10を構成する各情報処理装置により行われるマルチキャスト・メッシュパスの生成例を模式的に示す図である。
図23および図24は、本技術の実施の形態における通信システム10を構成する各情報処理装置により生成されるメッシュパス・テーブルの一例を模式的に示す図である。
この生成例では、図12および図13と一部が共通するため、図12および図13を参照して説明する。また、図12および図13に示す例と同様に、図1に示すトポロジにおいて、情報処理装置100がルート局として設定され、情報処理装置102および情報処理装置103がメンバ局として設定されている場合の例を示す。また、図1に示すトポロジにおいて、各リンク(点線104乃至107で示す)のメトリック値は、点線上の矩形内に示す値であるものとする。また、各図に示すD、O、Tについては、図12および図13に示す例と同様である。
最初に、図12のaおよびbに示すように、プロアクティブPREQが送信される。すなわち、情報処理装置100が定期的にPREQを送信する。このPREQのDest STA234(図5のbに示す)には、Addr−Aが格納され、Orig STA233(図5のbに示す)には、0が格納され、TX ADDR223(図5のbに示す)には、0が格納される。
また、図12のbに示すように、そのPREQを受信した情報処理装置101は、そのPREQを転送するPREQ転送処理を行う。この転送されるPREQのDest STA234には、Addr−Aが格納され、Orig STA233には、0が格納され、TX ADDR223には、1が格納される。
なお、情報処理装置102および情報処理装置103も同様にPREQの転送処理を行うが、ここでは、メッシュパスの生成には影響を与えないものとして図示を省略する。
続いて、各情報処理装置は、図12のd、図13のaに示すように、上述したユニキャスト・メッシュパス生成と同様に、受信したPREQに対する応答(PREP)を送信する。
例えば、情報処理装置103は、PREQを1つのみ受信する。このため、図12のd、図13のaに示す例と同様に、情報処理装置103は、中継局(情報処理装置101)を介して情報処理装置100にPREPを送信する。このため、Addr−Aのマルチキャスト・メッシュパスの一部として、情報処理装置101を経由する情報処理装置100および情報処理装置102間のリンクが確定する。
ここで、マルチキャスト経路候補の判定処理を用いる場合には、情報処理装置102の動作が、図12および図13に示す例と異なる。すなわち、情報処理装置102は、パスメトリックが最小となる経路ではなく、自装置を全体のメッシュパス・ツリーに追加するために必要なリンクメトリックが小さい経路を採用する。このため、図22のaに示すように、情報処理装置102は、情報処理装置100宛ての経路を経路候補と判断し、情報処理装置101をNexthopとして指定し、PREQに応答するPREPを送信する。
このように、PREQおよびPREPのやりとりを行うことにより、マルチキャスト・メッシュパスが生成される。図22のbでは、生成されたマルチキャスト・メッシュパスを太線の矢印で示す。図22のbに示すように、情報処理装置100、情報処理装置102、情報処理装置103間でAddr−Aを宛先とするフレームの相互送受信が可能となる。
また、図12のa、b、d、図13のa、図22のaに示すPREQおよびPREPのやりとりが行われた際に、各情報処理装置において生成されるメッシュパス・テーブル300の例を図23および図24に示す。具体的には、図23のaには、情報処理装置100において生成されるメッシュパス・テーブルを示し、図23のbには、情報処理装置101において生成されるメッシュパス・テーブルを示す。また、図24のaには、情報処理装置102において生成されるメッシュパス・テーブルを示し、図24のbには、情報処理装置103において生成されるメッシュパス・テーブルを示す。
[マルチキャストアドレス宛てのパケット送信例]
上述した各処理を行うことにより、通信システム10を構成する各情報処理装置は、マルチキャストアドレス宛てのパケットをどの経路でリレーしていくかを決定することができる。そして、各情報処理装置は、メッシュパス・テーブル300にその経路情報を保持することができる。
また、各情報処理装置が、マルチキャストアドレス宛てにデータパケットを送信する際には、メッシュパス・テーブル300を参照することにより、どの情報処理装置を受信局として指定してパケットを送信するかを決定することができる。すなわち、メッシュパス・テーブル300を参照することにより、RX ADDR222(図5のaに示す)にどの情報処理装置を指定してパケットを送信するかを決定することができる。そこで、マルチキャストアドレス宛てのパケット送信例を図25に示す。
図25は、本技術の実施の形態における情報処理装置100によるマルチキャストアドレス宛てのパケット送信処理の処理手順の一例を示すフローチャートである。図25では、情報処理装置100が送信元の情報処理装置であり、情報処理装置100がマルチキャストアドレス宛てのパケットを送信する場合を例にして説明する。
最初に、情報処理装置100の制御部140は、メッシュパス・テーブル300を参照し、Dest251(図11に示す)がマルチキャストアドレスと一致するレコードが存在するか否かを判断する(ステップS871)。
一致するレコードが存在しない場合には(ステップS871)、制御部140は、マルチキャストアドレス宛てのパケットをマルチキャスト用のデータパケットフォーマット(図3のaに示す)に載せて送信する(ステップS876)。
一致するレコードが存在する場合には(ステップS871)、制御部140は、マルチキャストアドレス宛てのパケットを、ユニキャスト用のデータパケットフォーマット(図3のbに示す)に載せて送信する(ループL872、ステップS873乃至S875)。この場合に、制御部140は、Dst ADDR214(図3のbに示す)には、そのマルチキャストアドレスを格納する。
ここで、データパケット転送時に経路情報を参照する目的でメッシュパス・テーブル300のレコードを抽出する場合には、宛先アドレスをキーにレコードを抽出することができる。また、その宛先アドレスを宛先とするレコードが複数存在する場合には、これら全てを抽出することができる(ループL872)。そして、各レコードのNexthop252(図11に示す)で指定されている隣接する情報処理装置に対して、ユニキャストで送信を行う(ステップS875)。
受信パケットを転送する場合についても同様に、ユニキャスト用データパケットフォーマットで受信した場合、Dst ADDR214に格納されているマルチキャストアドレスをキーにメッシュパス・テーブル300を参照する(ループL872)。
この場合に、制御部140は、抽出された各レコードのNexthop252で指定されている情報処理装置に対して、ユニキャスト送信を行う(ステップS875)。ただし、受信パケット転送時には(ステップS873)、パケットの送信元を送信対象から除外するようにする(ステップS874)。
このように、制御部140は、複数の情報処理装置にコンテンツをマルチキャスト送信する場合に、経路情報(メッシュパステーブルのレコード)により特定される隣接する情報処理装置に、コンテンツをユニキャスト送信する。
[マルチキャストアドレス宛てパケット受信例]
次に、マルチキャストアドレス宛てパケットを受信する場合の例について説明する。
例えば、「Dst ADDR=マルチキャストアドレス」であるパケットを受信した場合には、情報処理装置100の制御部140は、同一コンテンツを格納するフレームを既に受信しているか否かをチェックする。この場合には、通常のマルチキャストパケット受信時に行われる重複パケットの受信チェック処理であるRMC(Recent multicast cache)の確認を再利用することができる。
パケットのSrc ADDRおよびメッシュシーケンス番号を参照し、同一のペアのフレームを最近受信した形跡がある場合(すなわち、RMCに格納されている場合)には、受信フレームを廃棄する。この処理により、上位レイヤに重複パケットが渡されることがないよう配慮される。
また、情報処理装置100は、Addr−A宛てのパケット(DST ADDR=Addr−Aに設定されているパケット)を受信すると、自装置がAddr−Aのマルチキャストグループに参加しているかを確認する。そして、情報処理装置100は、自装置がAddr−Aのマルチキャストグループに参加している場合には、そのパケットを上位レイヤに受け渡す対象とする。一方、自装置がAddr−Aのマルチキャストグループに参加していない場合には、そのパケットは上位レイヤに受け渡さない。
このように、本技術の実施の形態によれば、メッシュネットワーク内でマルチキャスト送信(配信)を行う際に、最小限のオーバーヘッドでマルチキャスト用のメッシュパスを生成することができる。また、ARQを併用したロバストな伝送を行うことができる。また、不要なパケットの送信を削除することができ、効率的な伝送を行うことができる。
すなわち、本技術の実施の形態では、メッシュネットワークで、ロバストなマルチキャスト伝送を行うことができる。また、マルチキャスト・メッシュパスを用いることにより、ARQを併用したロバストな転送をすることができる。すなわち、データパケットの送信元の情報処理装置から、メッシュネットワーク内のマルチキャストグループに属する各情報処理装置宛てにユニキャストパケットフォーマットを用いたARQを併用したロバストな転送をすることができる。また、効率的なマルチホップ・リレーを行い、直接電波が届かない情報処理装置に対してもマルチキャストの情報を転送することができる。
<2.応用例>
本開示に係る技術は、様々な製品へ応用可能である。例えば、情報処理装置100乃至103は、スマートフォン、タブレットPC(Personal Computer)、ノートPC、携帯型ゲーム端末若しくはデジタルカメラなどのモバイル端末、テレビジョン受像機、プリンタ、デジタルスキャナ若しくはネットワークストレージなどの固定端末、又はカーナビゲーション装置などの車載端末として実現されてもよい。また、情報処理装置100乃至103は、スマートメータ、自動販売機、遠隔監視装置又はPOS(Point Of Sale)端末などの、M2M(Machine To Machine)通信を行う端末(MTC(Machine Type Communication)端末ともいう)として実現されてもよい。さらに、情報処理装置100乃至103は、これら端末に搭載される無線通信モジュール(例えば、1つのダイで構成される集積回路モジュール)であってもよい。
[2−1.第1の応用例]
図26は、本開示に係る技術が適用され得るスマートフォン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は、アドホックモード又はWi−Fi Direct等のダイレクト通信モードにおいては、他の装置と直接的に通信し得る。なお、Wi−Fi Directでは、アドホックモードとは異なり2つの端末の一方がアクセスポイントとして動作するが、通信はそれら端末間で直接的に行われる。無線通信インタフェース913は、典型的には、ベースバンドプロセッサ、RF(Radio Frequency)回路及びパワーアンプなどを含み得る。無線通信インタフェース913は、通信制御プログラムを記憶するメモリ、当該プログラムを実行するプロセッサ及び関連する回路を集積したワンチップのモジュールであってもよい。無線通信インタフェース913は、無線LAN方式に加えて、近距離無線通信方式、近接無線通信方式又はセルラ通信方式などの他の種類の無線通信方式をサポートしてもよい。アンテナスイッチ914は、無線通信インタフェース913に含まれる複数の回路(例えば、異なる無線通信方式のための回路)の間でアンテナ915の接続先を切り替える。アンテナ915は、単一の又は複数のアンテナ素子(例えば、MIMOアンテナを構成する複数のアンテナ素子)を有し、無線通信インタフェース913による無線信号の送信及び受信のために使用される。
なお、図26の例に限定されず、スマートフォン900は、複数のアンテナ(例えば、無線LAN用のアンテナ及び近接無線通信方式用のアンテナ、など)を備えてもよい。その場合に、アンテナスイッチ914は、スマートフォン900の構成から省略されてもよい。
バス917は、プロセッサ901、メモリ902、ストレージ903、外部接続インタフェース904、カメラ906、センサ907、マイクロフォン908、入力デバイス909、表示デバイス910、スピーカ911、無線通信インタフェース913及び補助コントローラ919を互いに接続する。バッテリー918は、図中に破線で部分的に示した給電ラインを介して、図26に示したスマートフォン900の各ブロックへ電力を供給する。補助コントローラ919は、例えば、スリープモードにおいて、スマートフォン900の必要最低限の機能を動作させる。
図26に示したスマートフォン900において、図2を用いて説明した制御部140は、無線通信インタフェース913において実装されてもよい。また、これら機能の少なくとも一部は、プロセッサ901又は補助コントローラ919において実装されてもよい。
なお、スマートフォン900は、プロセッサ901がアプリケーションレベルでアクセスポイント機能を実行することにより、無線アクセスポイント(ソフトウェアAP)として動作してもよい。また、無線通信インタフェース913が無線アクセスポイント機能を有していてもよい。
[2−2.第2の応用例]
図27は、本開示に係る技術が適用され得るカーナビゲーション装置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は、アドホックモード又はWi−Fi Direct等のダイレクト通信モードにおいては、他の装置と直接的に通信し得る。無線通信インタフェース933は、典型的には、ベースバンドプロセッサ、RF回路及びパワーアンプなどを含み得る。無線通信インタフェース933は、通信制御プログラムを記憶するメモリ、当該プログラムを実行するプロセッサ及び関連する回路を集積したワンチップのモジュールであってもよい。無線通信インタフェース933は、無線LAN方式に加えて、近距離無線通信方式、近接無線通信方式又はセルラ通信方式などの他の種類の無線通信方式をサポートしてもよい。アンテナスイッチ934は、無線通信インタフェース933に含まれる複数の回路の間でアンテナ935の接続先を切り替える。アンテナ935は、単一の又は複数のアンテナ素子を有し、無線通信インタフェース933による無線信号の送信及び受信のために使用される。
なお、図27の例に限定されず、カーナビゲーション装置920は、複数のアンテナを備えてもよい。その場合に、アンテナスイッチ934は、カーナビゲーション装置920の構成から省略されてもよい。
バッテリー938は、図中に破線で部分的に示した給電ラインを介して、図27に示したカーナビゲーション装置920の各ブロックへ電力を供給する。また、バッテリー938は、車両側から給電される電力を蓄積する。
図27に示したカーナビゲーション装置920において、図2を用いて説明した制御部140は、無線通信インタフェース933において実装されてもよい。また、これら機能の少なくとも一部は、プロセッサ921において実装されてもよい。
また、本開示に係る技術は、上述したカーナビゲーション装置920の1つ以上のブロックと、車載ネットワーク941と、車両側モジュール942とを含む車載システム(又は車両)940として実現されてもよい。車両側モジュール942は、車速、エンジン回転数又は故障情報などの車両側データを生成し、生成したデータを車載ネットワーク941へ出力する。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)
複数の情報処理装置が1対1で無線通信を行うことにより前記複数の情報処理装置が相互に接続されるネットワークを構成する他の情報処理装置にコンテンツをマルチキャスト送信する情報処理装置として設定された場合に、マルチキャスト送信経路生成を要求する経路要求信号を前記複数の情報処理装置に送信する制御を行う制御部を具備する情報処理装置。
(2)
前記制御部は、前記経路要求信号の宛先アドレスをマルチキャストアドレスとして前記経路要求信号を送信する前記(1)に記載の情報処理装置。
(3)
前記制御部は、前記経路要求信号に対応する経路応答信号を受信した場合には前記経路応答信号に基づいて前記マルチキャスト送信をするための経路情報を生成する前記(1)または(2)に記載の情報処理装置。
(4)
前記制御部は、前記複数の情報処理装置に前記コンテンツをマルチキャスト送信する場合に前記経路情報により特定される隣接する情報処理装置に前記コンテンツをユニキャスト送信する前記(3)に記載の情報処理装置。
(5)
複数の情報処理装置が1対1で無線通信を行うことにより前記複数の情報処理装置が相互に接続されるネットワークを構成する他の情報処理装置であってコンテンツをマルチキャスト送信する第1情報処理装置からマルチキャスト送信経路生成を要求する経路要求信号を受信する通信部と、
前記経路要求信号により特定される通信経路に関する経路情報を前記マルチキャスト送信の経路情報候補として保持させ、前記経路要求信号に応答するための経路応答信号を送信するタイミングで前記経路情報候補を前記マルチキャスト送信の経路情報として決定する制御部と
を具備する情報処理装置。
(6)
前記第1情報処理装置は、前記複数の情報処理装置のうち所定グループに属する情報処理装置に前記コンテンツをマルチキャスト送信し、
前記制御部は、前記経路要求信号の宛先アドレスがマルチキャストアドレスであり、かつ、前記マルチキャストアドレスにより特定されるグループに自装置が属する場合に前記経路応答信号を送信する
前記(5)に記載の情報処理装置。
(7)
前記制御部は、前記経路応答信号を送信した情報処理装置を、前記コンテンツをマルチキャスト送信するための転送先情報処理装置として指定する前記経路情報を生成する前記(5)に記載の情報処理装置。
(8)
前記制御部は、前記経路要求信号により指定される有効期限情報に基づいて前記経路情報の有効期限を設定する前記(5)から(7)のいずれかに記載の情報処理装置。
(9)
前記制御部は、前記経路要求信号を受信した場合に、前記決定された経路情報により特定される隣接する情報処理装置に前記経路要求信号をユニキャスト送信により転送する前記(5)から(8)のいずれかに記載の情報処理装置。
(10)
前記制御部は、前記経路要求信号を受信した場合に、当該経路要求信号を他の情報処理装置に転送するための判断と、当該経路要求信号により特定される通信経路に関する経路情報を前記経路情報候補として保持させるための判断とを異なる基準に基づいて行う前記(5)から(9)のいずれかに記載の情報処理装置。
(11)
前記制御部は、前記経路要求信号に含まれるメトリック値と、前記経路要求信号を送信した情報処理装置との間のリンクメトリック値と、前記経路情報候補として保持されているメトリック値と、前記経路情報候補により特定される隣接する情報処理装置との間のリンクメトリック値との比較結果に基づいて、前記経路情報候補を保持させるための判断を行う前記(10)に記載の情報処理装置。
(12)
複数の情報処理装置が1対1で無線通信を行うことにより前記複数の情報処理装置が相互に接続されるネットワークを構成する他の情報処理装置にコンテンツをマルチキャスト送信する情報処理装置として設定された場合に、マルチキャスト送信経路生成を要求する経路要求信号を前記複数の情報処理装置に送信する送信手順を具備する情報処理方法。
(13)
複数の情報処理装置が1対1で無線通信を行うことにより前記複数の情報処理装置が相互に接続されるネットワークを構成する他の情報処理装置であってコンテンツをマルチキャスト送信する第1情報処理装置からマルチキャスト送信経路生成を要求する経路要求信号を受信する受信手順と、
前記経路要求信号により特定される通信経路に関する経路情報を前記マルチキャスト送信の経路情報候補として保持させ、前記経路要求信号に応答するための経路応答信号を送信するタイミングで前記経路情報候補を前記マルチキャスト送信の経路情報として決定する制御手順と
を具備する情報処理方法。
(14)
複数の情報処理装置が1対1で無線通信を行うことにより前記複数の情報処理装置が相互に接続されるネットワークを構成する他の情報処理装置にコンテンツをマルチキャスト送信する情報処理装置として設定された場合に、マルチキャスト送信経路生成を要求する経路要求信号を前記複数の情報処理装置に送信する送信手順をコンピュータに実行させるプログラム。
(15)
複数の情報処理装置が1対1で無線通信を行うことにより前記複数の情報処理装置が相互に接続されるネットワークを構成する他の情報処理装置であってコンテンツをマルチキャスト送信する第1情報処理装置からマルチキャスト送信経路生成を要求する経路要求信号を受信する受信手順と、
前記経路要求信号により特定される通信経路に関する経路情報を前記マルチキャスト送信の経路情報候補として保持させ、前記経路要求信号に応答するための経路応答信号を送信するタイミングで前記経路情報候補を前記マルチキャスト送信の経路情報として決定する制御手順と
をコンピュータに実行させるプログラム。