以下、本発明を実施するための形態について説明する。最初に本実施の形態における処理装置の構成例について説明し、次に処理装置において行われるベクタデータ作成処理の例について説明する。
[第1の実施の形態]
第1の実施の形態について説明する。図1は第1の実施の形態におけるアドホックネットワークシステム10の構成例を示す図である。アドホックネットワークシステム10は、中継装置300と通信装置600を備える。
図1に示すアドホックネットワークシステム10においては、通信装置600宛てのパケットデータが中継装置300において中継され、通信装置600へ送信される例を示している。アドホックネットワークシステム10においては、中継装置300や通信装置600は、例えば、基地局やアクセスポイントを介すことなく、無線通信が可能となっている。
中継装置300は、受信したパケットデータを該パケットデータの送信先である通信装置600へ送信(又は中継)する。中継装置300は、送信部350とパケット制御部351を備える。
送信部350は、ブロードキャストで送信された複数のパケットデータを受信し、該受信した複数のパケットデータのうち応答要求が付加されたパケットデータをブロードキャストで送信する。
パケット制御部351は、応答要求に対する通信装置600から送信された応答の有無を判定した結果に応じて、応答の有無を判定した後に受信したパケットデータをブロードキャストで送信することなく破棄する。
例えば、パケット制御部351は、応答要求に対する応答を通信装置600から受信しないと判定したとき、判定後に受信したパケットデータをブロードキャストで送信することなく、該パケットデータを破棄する。
このように、中継装置300は応答要求に対する通信装置600から送信された応答の有無を判定した結果に応じて、応答の有無を判定した後に受信したパケットデータをブロードキャストで送信することなく破棄している。これにより、例えば、中継装置300が受信したパケットデータをブロードキャストで送信する場合と比較して、パケットデータの送信数が少なくなり、通信帯域の占有度合を低減させることができる。
一方、パケット制御部351は、例えば、通信装置600から応答を受信したときは、判定後に受信したパケットデータをブロードキャストで送信するようにしている。
[第2の実施の形態]
次に第2の実施の形態について説明する。最初にアドホックネットワークシステムの構成例について説明する。
<アドホックネットワークシステムの構成例>
図2は本第2の実施の形態におけるアドホックネットワークシステム10の構成例を示す図である。
アドホックネットワークシステム10は、サーバ装置(以下、「サーバ」と称する場合がある)100、ゲートウェイ装置(以下、「ゲートウェイ」と称する場合がある)200、複数の中継装置300−1〜300−4を備える。
図2に示すアドホックネットワークシステム10では、例えば、各家庭において各中継装置300−1〜300−4が備えられている例を表わしている。この場合、各中継装置300−1〜300−4は、各家庭において電気やガスの使用量などのデータを測定し、測定したデータを他の中継装置300−1〜300−4などを介してゲートウェイ200に送信する。図2の例では、中継装置300−4は、自局で測定したデータを、中継装置300−3,300−1を介してゲートウェイ200に送信する。また、中継装置300−3は、例えば、中継装置300−4から送信されたデータを中継し、更に、自局で測定したデータを、中継装置300−1を介してゲートウェイ200に送信する。
また、図2に示すアドホックネットワークシステム10の例では、ゲートウェイ200と中継装置300−1,300−2との間では無線通信が行われる。また、中継装置300−1と中継装置300−3との間、中継装置300−3と中継装置300−4との間も無線通信が行われる。ただし、ゲートウェイ200とサーバ100との間は有線通信となっている。
なお、図2に示すアドホックネットワークシステム10の例では、サーバ100に接続されるゲートウェイ200の個数は1つの例を表わしているが、複数のゲートウェイ200がサーバ100に接続されてもよい。ゲートウェイ200の詳細については後述する。また、中継装置300−1〜300−4の数も、1個でもよいし、複数でもよい。
サーバ100は、各中継装置300−1〜300−4から送信されたデータを、ゲートウェイ200を介して受信する。サーバ100は、例えば、受信したデータを画面に表示したり、受信したデータに基づいて各家庭の電気料金の計算をしたり、統計情報などを算出することができる。また、サーバ100は、例えば、電気料金の値段の上げ方など、各種設定情報を生成し、ゲートウェイ200に対して設定情報を各中継装置300−1〜300−4に送信するよう指示することができる。サーバ100の詳細については後述する。
ゲートウェイ200は、各中継装置300−1〜300−4から送信されたデータを受信し、受信したデータをサーバ100に送信する。また、ゲートウェイ200は、サーバ100から送信された設定情報などの送信指示を受け取ると、設定情報などを含むブロードキャストパケットを生成し、生成したブロードキャストパケットをブロードキャストで送信する。
中継装置300−1〜300−4は、電気やガスの使用量などのデータを測定できることから、例えば、メータと称する場合がある。また、中継装置300−1〜300−4は、各家庭で測定されたデータをゲートウェイ200に送信することができるため、例えば、通信装置としての機能も有している。例えば、メータは中継装置300−1〜300−4とは別個の装置として各家庭に配置されてもよい。この場合、各中継装置300−1〜300−4は、メータで測定されたデータをメータから受け取り、これをゲートウェイ200へ送信することもできる。中継装置300−1〜300−4の詳細は後述する。なお、各中継装置300−1〜300−4の構成はいずれも同一であるため、とくに断らない限り中継装置300と称する場合がある。
<サーバ100の構成例>
次にサーバ100の構成例を説明する。図3はサーバ100の構成例を表わす図である。
サーバ100は、制御部110と記憶部120を備える。制御部110は、GW(Gateway)通信送信部111、GW通信受信部112、及びパケット制御部113を備える。
GW通信送信部111は、例えば、パケット制御部113から設定情報などと送信指示を受け取ると、送信指示に従って設定情報などをゲートウェイ200へ送信する。この場合、GW通信送信部111は、例えば、設定情報などを含むパケットデータを生成してゲートウェイ200へ送信する。
GW通信受信部112は、例えば、ゲートウェイ200から送信されたパケットデータを受信し、受信したパケットデータからデータを抽出し、抽出したデータをパケット制御部113に出力する。
パケット制御部113は、例えば、設定情報などを生成し、生成した設定情報などをGW通信送信部111へ出力するとともに、当該情報を送信するようGW通信送信部111に指示する。また、パケット制御部113は、例えば、GW通信受信部112からデータを受信すると図示しないモニタに表示したり、各種統計情報の計算を行ってモニタに表示することもできる。
記憶部120は、制御部110において行われる各処理などにおいてデータや設定情報などなどを記憶する。例えば、GW通信送信部111やGW通信受信部112の制御によって、データや設定情報などが記憶部120に適宜記憶され、記憶されたデータや指示などが適宜読み出される。
<ゲートウェイ200の構成例>
次にゲートウェイ200の構成例を説明する。図4はゲートウェイ200の構成例を表わす図である。
ゲートウェイ200は、制御部210と記憶部220を備える。制御部210は、サーバ通信受信部211、サーバ通信送信部212、無線送信部213、及び無線受信部214を備える。
サーバ通信受信部211は、例えば、サーバ100から送信されたパケットデータを受信し、受信したパケットデータから設定情報などを抽出する。サーバ通信受信部211は、抽出した設定情報などをパケット制御部215へ出力する。
サーバ通信送信部212は、パケット制御部215からの指示に従って、パケット制御部215から受け取ったデータをサーバ100へ送信する。この場合、サーバ通信送信部212は、例えば、データを含むパケットデータを生成し、生成したパケットデータをサーバ100へ送信する。
無線送信部213は、パケット制御部215で生成されたパケットデータに対して、パケット制御部215からの指示に従って、誤り訂正符号化処理や変調処理、周波数変換処理などを施して無線信号に変換する。無線送信部213は、変換した無線信号を中継装置300へ送信する。
無線受信部214は、中継装置300から無線で送信された無線信号を受信し、受信した無線信号に対して周波数変換処理、復調処理、誤り訂正復号化処理などを施すことで、無線信号からパケットデータを抽出する。無線受信部214は、抽出したパケットデータをパケット制御部215へ出力する。
パケット制御部215は、サーバ通信受信部211から設定情報を受け取ると、設定情報を含むブロードキャストパケットを生成し、生成したブロードキャストパケットをブロードキャストで送信するよう無線送信部213に指示する。
なお、ブロードキャストで送信されるパケットデータを、例えば、ブロードキャストパケットと称する場合がある。ブロードキャストパケットの詳細は後述する。
また、パケット制御部215は、無線受信部214からパケットデータを受け取ると、パケットデータからデータを抽出する。そして、パケット制御部215は、抽出したデータをサーバ100へ送信するようサーバ通信送信部212に指示する。
なお、パケット制御部215は、サーバ通信受信部211からの設定情報の受け取りの有無に拘わらず、ネットワークの状態を確認したり維持したりするためにブロードキャストパケットを生成することもできる。パケット制御部215は、このように生成したブロードキャストパケットを定期的に無線送信部213へ出力することで、ゲートウェイ装置200からブロードキャストパケットが定期的に送信される。
さらに、パケット制御部215は、例えば、サーバ通信受信部211から設定情報以外の情報を受け取ると、ブロードキャストパケットではない通常のパケットデータを生成し、無線送信部213を介して、中継装置300へ送信することも可能である。
記憶部220は、制御部210による制御により、データなどを適宜記憶し、記憶したデータなどを適宜読み出すことが可能である。
<中継装置300の構成例>
次に中継装置300の構成例について説明する。図5は中継装置300の構成例を表わす図である。
中継装置300は、制御部310と記憶部320を備える。また、制御部310は、無線受信部311、無線送信部312、及びパケット制御部313を備える。
なお、第1の実施の形態における送信部350とパケット制御部351は、例えば、無線送信部312とパケット制御部313にそれぞれ対応する。また、第1の実施の形態における通信装置600は、例えば、ゲートウェイ200や他の中継装置に対応する。
無線受信部311は、ゲートウェイ200や他の中継装置から送信された無線信号を受信する。無線受信部311は、受信した無線信号に対して、例えば、周波数変換処理、復調処理、誤り訂正復号化処理などを施すことで、無線信号からパケットデータを抽出する。無線受信部311は、抽出したパケットデータをパケット制御部313へ出力する。
また、無線受信部311は、ゲートウェイ200や他の中継装置から送信されたブロードキャストで送信された無線信号を受信することもできる。これにより、例えば、中継装置300は、ゲートウェイ200や他の中継装置から送信されたブロードキャストパケットを受信することができる。この場合でも、無線受信部311は、無線信号からブロードキャストパケットを抽出し、抽出したブロードキャストパケットをパケット制御部313へ出力する。
無線送信部312は、パケット制御部313からの指示に従って、パケット制御部313から受け取ったパケットデータをゲートウェイ200や他の中継装置へ送信する。この場合、無線送信部312は、例えば、パケットデータに対して、誤り訂正符号化処理、変調処理、及び周波数変換処理などを施すことで無線信号に変換し、無線信号をゲートウェイ200や他の中継装置へ送信する。
また、無線送信部312は、例えば、パケット制御部313からの指示に従って、ブロードキャストで無線信号を送信することができる。この場合でも、無線送信部312は、パケット制御部313から受け取ったブロードキャストパケットを無線信号に変換し、変換した無線信号を送信する。
パケット制御部313は、例えば、無線受信部311からパケットデータ(又はブロードキャストパケット)を受け取ると、パケットデータに含まれる宛先(又は送信先)を確認する。そして、パケット制御部313は、宛先が自局の場合はパケットデータを中継装置300内の他の処理部へ出力し、自局以外の場合はパケットデータを無線送信部312に出力する。これにより、例えば、中継装置300は、自局宛て以外のパケットデータを他の中継装置やゲートウェイ200へ送信することができ、パケットデータの中継が可能となる。
また、パケット制御部313は、自局宛てのブロードキャストパケットに設定情報が含まれていると、当該パケットから設定情報を抽出し、抽出した設定情報を設定制御部314へ出力する。パケット制御部313は、設定情報を設定制御部314へ出力後、例えば、受信したブロードキャストパケットを終端する。
さらに、パケット制御部313は、設定制御部314において測定された電気やガスの使用量などのデータを受け取ると、当該データを含むパケットデータを生成する。そして、パケット制御部313は、生成したパケットデータをゲートウェイ200へ送信するよう無線送信部312に指示する。これにより、例えば、中継装置300は、測定したデータを他の中継装置を介してゲートウェイ200へ、或いは直接ゲートウェイ200へ送信することが可能となる。
設定制御部314は、例えば、パケット制御部313から設定情報を受け取ると、設定情報に従って各種設定を行う。また、設定制御部314は、設定情報に従って、電気やガスの使用量などを測定する。設定制御部314は、測定した使用量などをデータとしてパケット制御部313に出力する。
<動作例>
次に、本アドホックネットワークシステム10における動作例について説明する。本動作例については、ゲートウェイ200における動作例と、中継装置300における動作例の2つの動作例がある。ゲートウェイ200における動作例としては、例えば、ブロードキャストパケットの生成処理と、生成されたブロードキャストパケットの中継装置300へ送信処理などがある。一方、中継装置300における動作例としては、例えば、ブロードキャストパケットの中継処理などがある。
最初に中継装置300における動作例について説明し、次にゲートウェイ200における動作例を説明することにする。
<中継装置300における動作例>
図6及び図7は中継装置300における中継処理の動作例を表わすフローチャートである。
中継装置300は中継処理を開始すると(S10)、ブロードキャストパケットを受信する(S11)。例えば、中継装置300は、ゲートウェイ200から送信された、又は他の中継装置において中継されたブロードキャストパケットを受信する。
次に、中継装置300はブロードキャストパケットの受信カウンタを「1」つ加算する(S12)。
例えば、パケット制御部313は無線受信部311からブロードキャストパケットを受け取ると、記憶部320からカウント値を読み出して、それに「1」加算し、加算したカウント値を記憶部320へ記憶する。受信カウンタは、例えば、パケット制御部313と記憶部320に対応する。
次に、中継装置300はブロードキャストパケットにACKフラグが付加されているか否かを判別する(S13)。
本第2の実施の形態においては、中継装置300又はゲートウェイ200は、例えば、ブロードキャストパケットについて、数回に1回(例えば、n(nは2以上の整数)回に1回)、ACKフラグを付加したブロードキャストパケットを送信することができる。
中継装置300やゲートウェイ200では、ACKフラグが付加されたブロードキャストパケットを用いて、ブロードキャストパケットを中継するか否かを決定することができる。詳細は後述する。
なお、ACKフラグが付加されたブロードキャストパケットを、例えば、ACK要求付きブロードキャストパケットと称する場合がある。
上述した受信カウンタは、例えば、ACK要求付きのブロードキャストパケットを送信するタイミングをカウントしており、カウント値が「n」のとき、中継装置300やゲートウェイ200では、ACK要求付きブロードキャストパケットを生成し、送信することができる。詳細は後述する。
ここで、ACK要求付きのブロードキャストパケットの構成例について説明する。図8(A)はACK要求付きブロードキャストパケットの構成例を表わしている。ただし、ACK要求付きブロードキャストパケットは、例えば、パケットデータの一種であって、宛先がブロードキャスト、ACK要求を表わす情報が含まれるパケットデータがACK要求付きブロードキャストパケットとなる。
図8(A)に示すようにパケットデータ400は、ヘッダ領域410とペイロード領域420を備える。ヘッダ領域410は、種別領域411、識別子領域412、宛先領域413、送信元領域414、制御フラグ領域415を含む。
種別領域411には、例えば、パケットデータ400の種別を示す情報が含まれる。図8(A)の例では、種別領域411にはパケットデータ400がデータであることを示す種別情報が含まれている。
識別子領域412には、例えば、パケットデータの識別子が含まれる。識別子は、例えば、他のパケットデータとを識別するものであり、図8(A)の例では識別子領域412には識別子として「0001」が含まれている。
宛先領域413は、例えば、パケットデータ400の宛先情報が含まれる。図8(A)の例では、宛先領域413には、ブロードキャストであることを示す宛先情報が含まれている。この情報が挿入されることで、パケットデータ400はブロードキャストパケットとなる。宛先情報として用いられるのは、例えば、送信先の中継装置300やゲートウェイ200のアドレス情報である。
送信元領域414には、例えば、パケットデータ400の送信元情報が含まれる。図8(A)の例では、送信元領域414にはある中継装置300が送信元であることを表わす「A」が挿入されている。送信元情報として用いられるのは、例えば、送信元の中継装置300やゲートウェイ200のアドレス情報である。
制御フラグ領域415には、例えば、ACKフラグのオン又はオフを示す情報が含まれる。ACKフラグがオンのとき、当該パケットデータ400はACK要求付きのパケットデータ400となる。また、ACKフラグがオフのとき、当該パケットデータ400はACKフラグのないパケットデータ400となる。
ACK要求は、例えば、応答要求であり、ACK要求付きのパケットデータ400を受信した中継装置300は所定の判別基準に基づいてACK信号(又は肯定応答)の送信するか否かを決定し、ACK信号を送信することを決定すると、送信先の決定も行う。詳細は後述する。
ペイロード領域420には、例えば、データなどが挿入される。
本第2の実施の形態においては、パケットデータ400は、例えば、ゲートウェイ200で生成される。また、ACKフラグをオンにして、ACKフラグ要求付きパケットデータを生成することは、例えば、ゲートウェイ200で行われてよいし、中継装置300で行われてもよい。詳細については後述する。
図6に戻り、中継装置300はACKフラグの有無を判別する(S13)。例えば、パケット制御部313は、ブロードキャストパケットの制御フラグ領域415にアクセスし、ACKフラグがオンとなっているか否かにより判別する。
中継装置300は、ACKフラグ有りと判別したとき(S13でYes)、ACK信号を送信するか否かを判別する(S14)。
中継装置300は、ACK要求付きのブロードキャストパケットを受信したことで、ACK信号を送信するか否かを判別基準に従って判別する。この判別基準としては種々の基準があるが、例えば、受信強度でもよいし、ACK要求付きのブロードキャストパケットの受信順を基準としてもよい。
受信強度による判別基準の例について以下説明する。図9はアドホックネットワークシステム10の構成例を示しているが、これを用いて受信強度による判別基準の例について説明する。
例えば、中継装置(#B)300−Bは、中継装置(#A)300−Aからブロードキャスト送信されたACK要求付きブロードキャストパケットを受信する(例えば図6のS11)。中継装置300−Bは、ACK要求付きブロードキャストパケットを受信すると、受信した当該パケットをブロードキャストで送信(又は中継)する(後述する図7のS19)。他の中継装置(#C〜#E)300−C〜300−Eは、中継装置300−Bから送信されたACK要求付きのブロードキャストパケットを受信すると、受信した当該パケットをブロードキャストで送信する。
従って、中継装置300−Bは、例えば、自局が送信(又は中継)したACK要求付きブロードキャストパケットと同一識別子を有するACK要求付きブロードキャストを他の中継装置300−A,300−C〜300−Eから受信する場合がある。
そして、中継装置300−Bは、同一識別子を有する複数のACK要求付きブロードキャストパケットの受信強度をそれぞれ測定し、その中から最も受信強度の最も高いACK要求付きブロードキャストパケットを選択する。中継装置300−Bは、当該パケットを送信した送信元の中継装置をACK信号の送信先として決定することができる。
なお、図9の例では、中継装置300−Bは複数の中継装置300−A,300−C〜300−EからACK要求付きのブロードキャストパケットを受信しているが、1つの中継装置から送信された当該パケットを受信する場合もある。このような場合は、例えば、中継装置300−Bは受信した当該パケットの受信強度が閾値以下のときは、ACK信号の送信を行わないことを決定することもできるし、当該パケットを受信したことで、当該パケットの送信元へACK信号を送信することを決定するとこともできる。
また、図9の例では、中継装置300−Bの送信元としては、中継装置300−A,300−C〜300−Eとなっているが、例えば、ゲートウェイ200であってもよい。
なお、受信強度としては、例えば、SIR(Signal to Interference Ratio)やSINR(Signal to Interference Noise Ratio)などの指標を用いてもよい。
判別基準として、ACK要求付きのブロードキャストパケットに対する受信順の場合は、例えば、以下のようにして判別することができる。
すなわち、図9の例においては、中継装置300−Bは、ACK要求付きのブロードキャストパケットを中継装置300−Aから受信すると、受信した当該パケットをブロードキャストで送信する。当該パケットを受信した中継装置300−A,300−C〜300−Eは、当該パケットをブロードキャストで送信(又は中継)する。従って、中継装置300−Bでは、中継装置300−Aから受信したACK要求付きブロードキャストパケットと同一識別子の複数のブロードキャストパケットを他の中継装置300−A,300−C〜300−Eから受信できる。
例えば、中継装置300−Bは一定期間において同一識別子のACK要求付きブロードキャストパケットを複数受信すると、その中で最も早くACK要求付きのブロードキャストパケットを選択する。そして、中継装置300−Bは、選択したACK要求付きブロードキャストパケットを送信した送信元(図9の例では中継装置300−A)へACK信号を送信することを決定する。
この場合、中継装置300−Bは、最初に中継装置300−Aから送信されたACK要求付きブロードキャストパケット(例えば図6のS11)しか受信できなかったときは、ACK信号を送信しないことを決定することもできる。或いは、このような場合、中継装置300−Bは、中継装置300−Aに対してACK信号を送信することを決定してもよい。
受信強度や受信順の判断は、例えば、パケット制御部313により行われる。例えば、パケット制御部313は、ACK要求付きブロードキャストパケットの識別子について、同一識別子の複数の当該パケットの受信強度を測定したり、同一識別子の複数の当該パケットの受信順を記憶部320に記憶するなどにより、判別することが可能となる。受信強度の測定は、例えば、無線受信部311で行われ、パケット制御部313はその結果を受け取って判別してもよい。
図6に戻り、中継装置300はACK信号を送信することを決定すると(S14でYes)、ACK信号を生成し、ブロードキャストパケットを送信した送信元へ生成したACK信号を送信する(S15)。
図8(B)はACK信号の構成例を示し、図8(A)に示すブロードキャストパケットに対するACK信号の構成例を表わしている。
図8(B)に示すように、例えば、ACK信号もパケットデータ400の一種である。パケットデータ400の種別領域411にはACK信号であることを示す情報が含まれ、受信したブロードキャストパケットと同一の識別子(「0001」)が識別子領域412に含まれている。また、ACK信号では、受信したブロードキャストパケットの送信元(「A」)を宛先とし、送信元を自局の情報(「B」)としている。このようなACK信号の生成は、例えば、パケット制御部313において行われる。
図6に戻り、一方、中継装置300はACK信号を送信しないことを決定すると(S14でNo)、ACK信号を送信することなく、S16の処理へ移行する。
また、中継装置300は、受信したブロードキャストパケットにACKフラグが付加されてないときも(S13)、とくに処理を行うことなく、S16の処理へ移行する。
中継装置300は、ACK信号を送信後(S15)、又はACK信号を送信しないことを決定した後(S14でNo)、或いは、ACKフラグが付加されていないとき(S13でNo)、ブロードキャスト受信カウンタがACK要求間隔と同じか否かを判別する(S16)。
ACK要求間隔は、例えば、ACK要求付きブロードキャストパケットを送信するタイミングのことである。例えば、このようなACK要求間隔は、ゲートウェイ200と中継装置300において予め保持することでその間隔が互いに共有されているものとする。例えば、パケット制御部313が、無線受信部311から受け取るブロードキャストパケットの受信数が「n」回目となっているときはACK要求間隔と同じと判別し、「n」回目でないときはACK要求間隔と同じではないと判別できる。
中継装置300は、ブロードキャスト受信カウンタがACK要求間隔と同じとき(S16でYes)、ブロードキャスト受信カウンタのカウント値を「0」にクリアする(S17)。例えば、パケット制御部313は記憶部320に記憶したカウント値を「0」に上書きする。
次に、中継装置300は、S11で受信した受信パケットのACK要求をオンにする(図7のS18)。例えば、パケット制御部313は、ACKフラグをオンにした情報が挿入されたブロードキャストパケット(例えば図8(A))を生成する。
なお、中継装置300は、S11で受信したブロードキャストパケットについてACKフラグが付加されている場合もあるが(S13でYes)、その場合でも、本処理(S18)において、受信したACK要求付きブロードキャストパケットに対してACKフラグを付加する。従って、中継装置300は、受信したブロードキャストパケット(S11)についてACKフラグが付加されていないときでも、ACK要求付きブロードキャストパケットを送信するタイミングのときは当該パケットを生成し、送信することができる。
次に、中継装置300は、S11で受信したブロードキャストパケットを中継する(S19)。すなわち、中継装置300は、S11で受信したブロードキャストパケットに対して、ACKフラグを付加したブロードキャストパケット(S18)をブロードキャストで送信する。
次に、中継装置300は、待ちタイマを起動する(S20)。例えば、パケット制御部313は、タイマを起動させ、タイマ期間をカウントする。
次に、中継装置300は、送信したACK要求付きブロードキャストパケット(S19)に対して、一定期間内において他の中継装置からACK信号を受信したか否かを判別する(S21)。
例えば、図9の例では、中継装置300−Bは、中継したACK要求付きブロードキャストパケットに対して、他の中継装置300−A,300−C〜300−EからのACK信号を一定期間内に受信したか否かを判別している。
図7に戻り、中継装置300は、ACK信号を他の中継装置から受信したとき(S21でYes)、中継あり状態へ遷移する(S22)。そして、中継装置300は一連の処理を終了する(S23)。
一方、中継装置300は、ACK信号を他の中継装置から受信しないとき(S21でNo)、中継なし状態へ遷移して(S24)、一連の処理を終了する(S23)。
例えば、図9の例において、中継装置300−Bは、中継装置300−EからACK信号を受信したとする。この場合、中継装置300−Eは、中継装置300−Bに対して受信強度が良い(又は受信順が最も早い)などの理由により、中継装置300−Bからその後パケットデータが送信されることを期待している、と考えることができる。
従って、中継装置300−Bは、このような場合、その後に受信したブロードキャストパケットの中継を継続することで、例えば、中継装置300−Eにおけるパケットデータ送信の期待に答えることが可能となる。
一方、中継装置300−Bは、中継したACK要求付きブロードキャストパケットに対して、いずれの中継装置300−A,300−C〜300−EからもACK信号を受信しなかったとき、いずれの中継装置からもパケットデータの受信が期待されてない、と考えることができる。
従って、中継装置300−Bは、このような場合、その後に受信したブロードキャストパケットの中継を行わないようにすることが可能となる。
本中継装置300では、中継あり状態へ遷移したか(S22)、中継なし状態へ遷移したか(S24)に従って、その後に受信するブロードキャストパケットの中継の有無を判別するようにしている。
例えば、ACK信号の受信の有無(S21)については、パケット制御部313において、無線受信部311からACK信号を受け取ったか否かにより判別することが可能である。パケット制御部313は、ACK信号を受け取ったとき(S21でYes)、中継あり状態への遷移し(S22)、ACK信号を受け取らなかったとき(S21でNo)、中継なし状態へ遷移する(S24)。例えば、パケット制御部313は、遷移後の情報を記憶部320に記憶する。
図7に戻り、中継装置300は、中継状態の遷移(S22,S24)を決定した後、ブロードキャストパケットを受信すると(図6のS11)、再び上述した処理を行う。
この場合、受信したブロードキャストパケットの受信タイミングは、ACK要求間隔と同じでないため(S16でNo)、例えば、中継装置300で受信したブロードキャストパケット(S11)はACKフラグが付加されていないブロードキャストパケットとなっている。
中継装置300は、ACKフラグが付加されていないブロードキャストパケットを受信すると以下の処理を行う。
すなわち、中継装置300は、中継あり状態か否か判別する(図7のS30)。例えば、パケット制御部313は記憶部320に記憶された中継装置300の状態に関する情報を読み出して、中継あり状態となっているか(S22)、中継なし状態となっているか(S24)により判別する。
中継装置300は、中継あり状態と判別すると(S30でYes)、受信パケット(S11)のACK要求がオフとなっていることを確認する(S31)。例えば、パケット制御部313は無線受信部311から受け取ったブロードキャストパケットの制御フラグ領域415にアクセスして、ACKフラグがオフとなっていることを確認する。
次に、中継装置300は、受信したブロードキャストパケットをブロードキャストで送信(又は中継)する(S32)。
上述したように、中継あり状態では、例えば、いずれかの他の中継装置からパケットデータの送信が期待されているため、中継装置300は受信したブロードキャストパケットを中継する。
パケット制御部313は、例えば、ACKフラグがオフになっていることを確認すると、受信したブロードキャストパケットの送信元を自局のアドレス情報に書き換えて、無線送信部312に出力する。これにより、例えば、受信したブロードキャストパケットがブロードキャストで送信される。
そして、中継装置300は一連の処理を終了する(S23)。
一方、中継装置300は、中継なし状態のとき(S30でNo)、受信したブロードキャストパケットを中継することなく破棄し(S33)、一連の処理を終了する(S23)。
上述したように、中継なし状態では、例えば、いずれの他の中継装置においてもブロードキャストパケットの送信が期待されていないため、中継装置300は受信したブロードキャストパケットを中継しない。
例えば、パケット制御部313は、無線受信部311から受け取ったブロードキャストパケットを無線送信部312に出力することなく破棄(又は終端)する。
このように本第2の実施の形態において、中継装置300は、例えば、中継したACK要求付きブロードキャストパケットに対して他の中継装置からACK信号を受信しないとき、その後に受信したブロードキャストパケットを送信(又は中継)することなく破棄する。これにより、例えば、中継装置300はブロードキャストパケットを送信しないため、ブロードキャストパケットを送信する場合と比較して、ブロードキャストパケットの送信量が少なくなり、通信帯域の占有度合を低減させることができる。
なお、中継装置300は、例えば、ACK要求付きブロードキャストパケットをゲートウェイ200に中継する場合もある。従って、中継装置300は、ゲートウェイ200からACK信号を受信する場合もある。この場合でも、中継装置300は、ゲートウェイ200を含むいずれの他の中継装置からもACK信号を受信できなかったときは、その後に受信したブロードキャストパケットの中継は行わないようにする。また、中継装置30は、ゲートウェイ200を含むいずれかの他の中継装置からACK信号を受信したときは、その後に受信したブロードキャストパケットの中継を行うようにする。
<ゲートウェイ200の動作例>
次に、ゲートウェイ200における動作例について説明する。図10及び図11はゲートウェイ200における動作例を表わすフローチャートである。ゲートウェイ200では、例えば、ブロードキャストパケットの生成処理と送信処理、更に、ブロードキャストパケットを受信したときの中継処理を行う。
ゲートウェイ200は、処理を開始すると(S40)、ブロードキャストパケットを生成する(S41)。例えば、パケット制御部215が送信先を「ブロードキャスト」とするパケットデータ(例えば図8(A))を生成する。
次に、ゲートウェイ200は、ブロードキャスト送信カウンタを「1」加算する(S42)。例えば、パケット制御部215は、記憶部220に記憶されたカウンタ値を読み出してカウンタ値を「1」加算し、加算したカウンタ値を記憶部220に記憶する。
次に、ゲートウェイ200は、ブロードキャスト送信カウンタがACK要求間隔と同じか否かを判別する(S43)。
例えば、中継装置300における処理(例えば図6のS16)と同様に、ゲートウェイ200は、ブロードキャスト送信カウンタにより、ACK要求付きブロードキャストパケットを送信するタイミングを計測している。例えば、パケット制御部215は記憶部220からカウンタ値を読み出して、ACK要求付きブロードキャストパケットを送信するタイミング(例えば、n回)となっているか否かに判別する。
ゲートウェイ200は、ブロードキャスト送信カウンタがACK要求間隔を同一のとき(S43でYes)、生成したブロードキャストパケットのACK要求フラグをオンにする(S44)。例えば、パケット制御部215は、生成したパケットデータの制御フラグ領域415(例えば図8(A))にACKフラグオンを示す情報を挿入する。
次に、ゲートウェイ200は、ブロードキャスト送信カウンタの値を「0」にクリアする。例えば、パケット制御部215は、記憶部220に記憶されたブロードキャストカウンタ値を「0」に上書きする。
そして、ゲートウェイ200はACK要求付きのブロードキャストパケットをブロードキャストで送信する(S45)。
一方、ゲートウェイ200は、ブロードキャスト送信カウンタがACK要求間隔と同一ではないとき(S43でNo)、ACK要求をオンにすることなく、生成したブロードキャストパケットをブロードキャストで送信する(S45)。例えば、パケット制御部215は、生成したパケットデータの制御フラグ領域415にACKフラグオフを示す情報を挿入し、無線送信部213へ出力する。
次に、ゲートウェイ200は、中継装置300からブロードキャストパケットを受信すると(S50)、中継装置300における中継動作とほぼ同様の処理を行う。このような処理は、例えば、パケット制御部215において行われる。
すなわち、ゲートウェイ200は、ブロードキャストパケットを受信すると(S50)、ACKフラグが付加されているか否かを確認し(S51)、ACKフラグが付加されているときは(S51でYes)、判別基準に基づいて、ACK信号の送信有無と送信先を判別する(図11のS52)。判別基準は、例えば、中継装置300の場合(図6のS14)と同様に、信号強度でもよいし、ACK要求付きブロードキャストパケットの受信順でもよい。
ゲートウェイ200は、ACK信号を送信することを決定すると(S52でYes)、ACK信号を生成し、生成したACK信号を、ACK要求付きブロードキャストパケットを送信した送信元の中継装置300へ送信する(S53)。
一方、ゲートウェイ200は、ACK信号を送信しないことを決定したとき(S52でNo)、ACK信号を送信することなく、S54へ移行する。
ゲートウェイ200は、ACK信号を送信後(S53)、又はACK信号を送信しないことを決定後(S52でNo)、S50で受信したACK要求付きブロードキャストパケットをブロードキャストで送信(又は中継)する(S54)。
次に、ゲートウェイ200は、ACK待ちタイマを起動し(S55)、一定のタイマ期間内において、中継したACK要求付きブロードキャストパケット(S54)に対するACK信号を受信したか否かを判別する(S56)。
ゲートウェイ200は、一定期間内においてACK信号を受信したとき(S56でYes)、中継あり状態へ遷移し(S57)、一連の処理を終了する(S58)。
一方、ゲートウェイ200は、一定期間内においてACK信号を受信しなかったとき(S56でNo)、中継なし状態へ遷移し(S59)、一連の処理を終了させる(S58)。
その後、ゲートウェイ200は、ACKフラグが付加されていないブロードキャストパケットを受信すると(図10のS51でNo)、中継あり状態か否かを判別し(図11のS60)、その状態に従って、受信したブロードキャストパケットを中継したり、中継することなく破棄する(S61,S62)。
従って、ゲートウェイ200においても、中継したACK要求付きブロードキャストパケットに対するACK信号を中継装置300から受信しない場合もあり、そのような場合は、その後に中継装置300から受信したブロードキャストパケットを中継しないで破棄する。
よって、ゲートウェイ装置200においても、ブロードキャストパケットを送信しない場合もあるため、ブロードキャストパケットを送信する場合と比較して、ブロードキャストパケットの送信量が少なくなり、通信帯域の占有度合を低減させることができる。
[その他の実施の形態]
次にその他の実施の形態について説明する。
上記した第2の実施の形態において、中継装置300やゲートウェイ200において、受信するACK信号が1つのとき、ブロードキャストパケットの中継(例えば図7のS32、図11のS61)はブロードキャストで送信するのではなく、ユニキャストで送信してもよい。
例えば、パケット制御部313,215は、ACK信号の個数をカウントし、1つしか受信しなかったとき、受信したブロードキャストパケットの宛先を、ACK信号に含まれる送信元(中継装置300やゲートウェイ200)とし、送信元を自局とするパケットデータを生成する。そして、パケット制御部313,215は生成したパケットデータを無線送信部312,213に出力することで、受信したブロードキャストパケットをユニキャストのパケットデータとして送信することができる。
これにより、例えば、中継装置300又はゲートウェイ200は、ブロードキャストパケットを中継する場合よりも、送信データ量が少なくなり、第2の実施の形態よりも更に通信帯域の占有度合を低減させることが可能となる。
また、上記した第2の実施の形態においては、中継装置300又はゲートウェイ200は、ACK信号については、ある1つの中継装置300又はゲートウェイ200に送信するものとして説明した(例えば図6のS14)。
例えば、中継装置300又はゲートウェイ200は、複数の送信元にACK信号を送信してもよい。第2の実施の形態で説明した判別基準については、いずれか1つの送信元を決定するのではなく、中継装置300又はゲートウェイ200では、上位から複数の送信元を選択するなどしてACK信号を送信する複数の送信先を決定してもよい。
これにより、例えば、パケットデータを送信するときに複数の経路があることで冗長経路が確保され、1つの経路の場合と比較して、確実に送信先へパケットデータを送信できる。
さらに、上記した第2の実施の形態においては、中継装置300又はゲートウェイ200は、ACK信号を受信したときは中継あり状態に遷移するものとして説明した(例えば図7のS21でYes、S22)。
例えば、中継装置300又はゲートウェイ200は、一定期間内においてACK信号を受信した受信数をカウントし、ACK要求付きブロードキャストパケットを次回中継するときに(例えば図7のS19)、受信数を含めて中継してもよい。
例えば、図9の例において、中継装置300−Bは、中継装置300−Aと中継装置300−CからACK信号を受信すると、次回のACK要求付きブロードキャストパケットに受信数「2」を含めて送信(又は中継)する(例えば図7のS19)。また、中継装置300−Dが中継装置300−AからACK信号を受信したときは、受信数「1」を次回のACK要求付きブロードキャストパケットに含めて送信する。
このとき、中継装置300−Eでは、受信数を含むACK要求付きブロードキャストパケットを受信すると、受信数に基づいてACK信号の送信有無や送信先を判別する(例えば図6のS14)。
例えば、中継装置300−Eは、中継装置300−Bからの受信数「2」を含むACK要求付きブロードキャストパケットと、中継装置300−Dからの受信数「1」を含むACK要求付きブロードキャストパケットを受信する場合を考える。
この場合、中継装置300−Eは、受信数の多い中継装置300−Bに対してACK信号を送信する。例えば、中継装置300−Eは、パケットデータの送信が期待される数が多い方の中継装置300−BへACK信号を送信して、通信経路を確保することができる。
或いは、中継装置300−Eは、受信数の少ない中継装置300−Dに対してACK信号を送信してもよい。この場合、中継装置300−Eはなるべく通信経路を分散させて通信経路を確保することも可能である。
中継装置300−Eが受信数に基づいてどのようにACK信号の送信先を決定するかは、例えば、アドホックネットワークシステム10の設計ポリシーなどに基づいて決定すればよい。このように受信数に基づくACK信号の送信先の決定は、上記したACK信号の送信先を決定する判別基準(例えば図6のS14)の一つでもある。
なお、ACK信号の受信数のカウント(例えば図7のS21)、次回のACK要求付きブロードキャストパケットに受信数を含ませる処理(例えば図7のS19)、受信数の基づくACK信号の送信先の決定(例えば図7のS14)は、例えば、パケット制御部313において行われる。
さらに、上記した第2の実施の形態において、ACK信号の送信先を判断する判別基準の例として、電波強度や受信順の例を説明した。判別基準としては、例えば、ACK要求付きブロードキャストパケットにおける送信元のアドレス情報に基づいて、ACK信号の送信先が決定されてもよい。例えば、中継装置300は、送信元のアドレス情報が最も小さい(又は最も大きい)アドレス情報を含む中継装置をACK信号の送信先として決定する(例えば図6のS14)。
さらに、ACK信号の送信先の判別基準は、例えば、アドホックネットワークシステム10の特性に応じて、上記した例のうちいずれかが適宜選択されてもよい。例えば、中継装置300は、例えば、電波強度、受信順、ACK信号の受信数、ACK要求付きブロードキャストパケットの送信元、のうちいずれかの判別基準を適宜選択して、ACK信号の送信の有無、或いはACK信号の送信先を決定してもよい。
また、上記した第2の実施の形態において、サーバ100、ゲートウェイ200、及び中継装置300の構成例について、例えば、図3から図5を用いてそれぞれ説明した。サーバ100、ゲートウェイ200、及び中継装置300の構成例としては、例えば、図12(A)から図13にそれぞれ示す構成例であってもよい。
サーバ100は、CPU(Central Processing Unit)130、ROM(Read Only Memory)131、RAM(Random Access Memory)132、メモリ133、内部バス134、及びIF(Interface)135を備える。
CPU130は、ROM131に記憶されたプログラムを適宜読み出して、RAM132にロードし、ロードしたプログラムを実行することで、例えば、第2の実施の形態におけるパケット制御部113の機能を実現することができる。従って、CPU130は、例えば、第2の実施の形態におけるパケット制御部113に対応する。
また、メモリ133は、例えば、第2の実施の形態における記憶部120に対応する。
さらに、IF135は、例えば、CPU130の制御により、データなどをゲートウェイ200へ送信できるパケット形式のパケットデータに変換して送信する。また、IF135は、ゲートウェイ200から受信したパケットデータからデータを抽出し、CPU130に出力する。従って、IF135は、例えば、第2の実施の形態におけるGW通信送信部111とGW通信受信部112に対応する。
ゲートウェイ200は、CPU230、ROM231、RAM232、メモリ233、内部バス234、無線送信部235、送信アンテナ236、受信アンテナ237、無線受信部238、及びIF239を備える。
CPU230は、ROM231に記憶されたプログラムを読み出して、RAM232にロードし、ロードしたプログラムを実行することで、第2の実施の形態におけるパケット制御部215の機能を実現できる。従って、CPU230は、例えば、第2の実施の形態におけるパケット制御部215に対応する。
また、メモリ233は、例えば、第2の実施の形態における記憶部220に対応する。
さらに、無線送信部235は、CPU230から出力されたデータなどに対して変調処理や周波数変換処理などを施して無線信号に変換し、送信アンテナ236へ出力する。送信アンテナ236は無線信号を中継装置300へ送信する。従って、無線送信部235と送信アンテナ236は、例えば、第2の実施の形態における無線送信部213に対応する。
また、受信アンテナ237は、中継装置300から送信された無線信号を受信して無線受信部238へ出力する。無線受信部238は、無線信号に対して、周波数変換処理や復調処理などを施してデータを抽出し、CPU230へ出力する。従って、受信アンテナ237と無線受信部238は、例えば、第2の実施の形態における無線受信部214に対応する。
さらに、IF239は、サーバ100から受信したパケットデータに対してデータなどを抽出してCPU230へ出力する。また、IF239は、CPU230から出力されたデータなどに対してパケットデータに変換してサーバ100へ送信する。従って、IF239は、例えば、第2の実施の形態におけるサーバ通信受信部211とサーバ通信送信部212に対応する。
中継装置300は、CPU330、ROM331、RAM332、メモリ333、内部バス334、無線送信部335、送信アンテナ336、受信アンテナ337、及び無線受信部338を備える。
CPU330は、ROM331に記憶されたプログラムを読み出してRAM332にロードし、ロードしたプログラムを実行することで、例えば、第2の実施の形態におけるパケット制御部313と設定制御部314の機能を実現できる。従って、CPU330は、例えば、第2の実施の形態におけるパケット制御部313と設定制御部314に対応する。
また、無線送信部335は、CPU330から出力されたデータなどに対して、変調処理や周波数変換処理を施して無線信号に変換し、送信アンテナ336へ出力する。送信アンテナ336は無線信号をゲートウェイ200や他の中継装置に送信する。従って、無線送信部335と送信アンテナ336は、例えば、第2の実施の形態における無線送信部312に対応する。
さらに、受信アンテナ337は、ゲートウェイ200や他の中継装置から送信された無線信号を受信し、無線受信部338へ出力する。無線受信部338は、例えば、無線信号に対して周波数変換処理や復調処理などを施してデータなどを抽出し、CPU330へ出力する。従って、受信アンテナ337と無線受信部338は、例えば、無線受信部311に対応する。
また、メモリ333は、例えば、第2の実施の形態における記憶部320に対応する。
さらに、上記した実施の形態のいずれについても、例えば、ゲートウェイ200と中継装置300の通信、中継装置300間の通信は、無線通信の例で説明した。例えば、ゲートウェイ200と中継装置300との間、及び中継装置300間においては、有線通信が行われてもよい。例えば、かかる有線通信において、ブロードキャストによる通信と、ACK信号の送受信などが行われことで、第2の実施の形態と同一の動作を行うことも可能である。
以上まとめると付記のようになる。
(付記1)
受信したパケットデータを該パケットデータの送信先である通信装置へ送信する中継装置であって、
ブロードキャストで送信された複数のパケットデータを受信し、該受信した複数のパケットデータのうち応答要求が付加されたパケットデータをブロードキャストで送信する送信部と、
前記応答要求に対する前記通信装置から送信された応答の有無を判定した結果に応じて、前記応答の有無を判定した後に受信したパケットデータをブロードキャストで送信することなく破棄するパケット制御部と
を備えることを特徴とする中継装置。
(付記2)
前記パケット制御部は、前記通信装置から前記応答要求に対する応答が無いときは、前記応答の有無を判定した後に受信したパケットデータをブロードキャストで送信することなく破棄することを特徴とする付記1記載の中継装置。
(付記3)
前記パケット制御部は、前記通信装置から前記応答要求に対する応答を受信したときは、前記応答の有無を判定した後に受信したパケットデータをブロードキャストで送信することを特徴とする付記1記載の中継装置。
(付記4)
前記パケット制御部は、前記応答要求が付加されたパケットデータを受信したとき、判別基準に基づいて、前記応答要求に対する応答を前記応答要求が付加されたパケットデータを送信した送信元の前記通信装置へ送信することを決定し、
前記送信部は、前記決定に従って前記応答を送信することを特徴とする付記1記載の中継装置。
(付記5)
前記判別基準は、前記応答要求が付加されたパケットデータの受信強度、該パケットデータの受信順、又は該パケットデータの送信元であることを特徴とする付記1記載の中継装置。
(付記6)
前記送信部は、前記パケット制御部において前記応答を受信したとき、該受信した応答の受信数を前記応答要求が付加されたパケットデータに含めてブロードキャストで送信し、
前記パケット制御部は、前記受信数を含む応答要求が付加されたパケットデータを受信したとき、該受信数に基づいて、前記応答要求に対する応答を送信することを決定することを特徴とする付記4記載の中継装置。
(付記7)
前記送信部は、前記応答要求が付加されたパケットデータを所定のタイミングで送信することを特徴とする付記1記載の中継装置。
(付記8)
前記パケット制御部は、前記受信した複数のパケットデータのうち応答要求を付加したパケットデータを生成し、
前記送信部は、前記生成された応答要求を付加したパケットデータを送信することを特徴とする付記1記載の中継装置。
(付記9)
前記送信部は、前記通信装置から送信された前記応答要求が付加されたパケットデータを受信し、該受信した応答要求が付加されたパケットデータをブロードキャストで送信することを特徴とする付記1記載の中継装置。
(付記10)
前記パケット制御部は、前記応答要求に対して前記通信装置から送信された応答が1つのときは、該応答を送信した前記通信装置へ前記応答の有無を判定した後に受信したパケットデータを送信することを特徴とする付記1記載の中継装置。
(付記11)
前記パケット制御部は、前記応答要求が付加されたパケットデータを複数受信したとき、判別基準に基づいて、前記応答要求が付加されたパケットデータを送信したいずれか一つ又は複数の送信元の前記通信装置へ前記応答要求に対する応答を送信することを決定することを特徴とする付記4記載の中継装置。
(付記12)
受信したパケットデータを当該パケットデータの送信先である通信装置へ送信する中継装置における中継方法であって、
送信部により、ブロードキャストで送信された複数のパケットデータを受信し、該受信した複数のパケットデータのうち応答要求が付加されたパケットデータをブロードキャストで送信し、
パケット制御により、前記応答要求に対する前記通信装置から送信された応答の有無を判定した結果に応じて、前記応答の有無を判定した後に受信したパケットデータをブロードキャストで送信することなく破棄する
ことを特徴とする中継方法。
(付記13)
受信したパケットデータを当該パケットデータの送信先である通信装置へ送信するコンピュータに対する中継プログラムであって、
ブロードキャストで送信された複数のパケットデータを受信し、該受信した複数のパケットデータのうち応答要求が付加されたパケットデータをブロードキャストで送信する処理と、
前記応答要求に対する前記通信装置から送信された応答の有無を判定した結果に応じて、前記応答の有無を判定した後に受信したパケットデータをブロードキャストで送信することなく破棄する処理と
を前記コンピュータに行わせる中継プログラム。