以下、本発明の実施例について図面を参照しつつ詳細に説明する。
図1は、本発明に係るマルチホップ無線通信ネットワークの実施例を示している。マルチホップ無線通信ネットワークには、複数の無線通信端末1a〜1iが含まれている。無線通信端末1a〜1iの各々は、無線通信によりパケットの送受信及び中継を行う。また、無線通信端末1iは、IPネットワーク等の有線ネットワーク2を介した通信も行う。無線通信端末1aの無線通信の到達範囲3aは、無線通信端末1aを中心とする半径Rの円である。他の無線通信端末1b〜1iの各々の無線通信の到達範囲も、自身を中心とする円である。無線通信端末1a〜1iの各々の無線通信の到達範囲の半径は、無線通信端末1a〜1iの各々が無線通信で使用する無線の周波数や出力等によって決まる。尚、この無線通信の到達範囲の半径を無線到達距離という。無線通信端末1a〜1iの各々が、自身の無線通信の到達範囲を越えた位置に存在する無線通信端末にパケットを送信する場合は、自身とパケットの宛先の無線通信端末の間に存在する無線通信端末がパケットの中継を行う。これにより、マルチホップ無線通信ネットワークを構成する全ての無線通信端末1a〜1iの間でパケットの送受信を行うことが出来る。
無線通信端末1a〜1iの各々は、自身の存在位置(地理上の位置)に基づく位置情報をGPS等により取得する。無線通信端末1a〜1iの各々は、自身の存在位置に基づく位置情報を取得することが可能な状態にある場合は、移動することが出来る。尚、自身の存在位置に基づく位置情報の取得は、基点となる無線通信端末に予め位置情報を設定しておき、他の無線通信端末は超音波や無線強度等により基点の無線通信端末からの位置を測定する方法等により行うこともできる。
図2に、無線通信端末1aの構成を示す。無線通信端末1aは、無線通信によりパケットの送受信及び中継を行うものである。無線通信部11は、無線による通信を行うものである。無線通信部11は、固有の通信アドレスを有している。通信アドレスは、無線通信端末の製造時にユニークな値を付与する方法等により設定される。記憶部12には、パケットの送受信及び中継に必要なデータが記憶される。記憶部12に記憶されるデータとしては、送信するパケットや受信したパケット等がある。また、記憶部12には、無線通信端末1aを表す識別子が記憶されている。無線通信端末1aを表す識別子は、人為的に付与する方法やDHCPのように自動で付与する方法等により設定される。パケット生成送信手段13は、パケットの生成及び送信を行う。宛先判断手段14は、他の無線通信端末からのパケットを受信した際に、受信したパケットの宛先が自身宛であるか否かを判断する。パケット取得手段15は、受信したパケットの宛先が自身宛であると宛先判断手段14が判断した場合に、受信したパケットを取得する。距離算出手段16は、パケット送信距離及びパケット中継距離を算出する。パケット送信距離は、受信したパケットの送信元の無線通信端末の存在位置と、そのパケットの宛先の位置との間の距離である。パケット中継距離は、自身の存在位置と受信したパケットの宛先の位置との間の距離である。尚、距離算出手段16が、パケット送信距離算出手段及びパケット中継距離算出手段を構成する。パケット中継判断手段17は、受信したパケットの宛先が自身宛でないと宛先判断手段14が判断した場合で、受信したパケットのパケット送信距離がパケット中継距離を越える場合に、受信したパケットを中継すると判断する。パケット中継手段18は、受信したパケットを中継するとパケット中継判断手段17が判断した場合に、そのパケットを中継する。尚、他の無線通信端末1b〜1hも無線通信端末1aと同様の構成である。
図3に、有線ネットワーク2と接続する無線通信端末1iの構成を示す。無線通信端末1iは、無線通信によりパケットの送受信及び中継を行うものである。また、無線通信端末1iは、有線ネットワーク2を介した通信も行う。無線通信部11は、無線による通信を行うものである。無線通信部11は、固有の通信アドレスを有している。通信アドレスは、無線通信端末の製造時にユニークな値を付与する方法等により設定される。記憶部12には、パケットの送受信及び中継に必要なデータが記憶される。記憶部12に記憶されるデータとしては、送信するパケットや受信したパケット等がある。また、記憶部12には、無線通信端末1iを表す識別子が記憶されている。無線通信端末1iを表す識別子は、人為的に付与する方法やDHCPのように自動で付与する方法等により設定される。パケット生成送信手段13は、パケットの生成及び送信を行う。宛先判断手段14は、他の無線通信端末からのパケットを受信した際に、受信したパケットの宛先が自身宛であるか否かを判断する。パケット取得手段15は、受信したパケットの宛先が自身宛であると宛先判断手段14が判断した場合に、受信したパケットを取得する。距離算出手段16は、パケット送信距離及びパケット中継距離を算出する。パケット送信距離は、受信したパケットの送信元の無線通信端末の存在位置と、そのパケットの宛先の位置との間の距離である。パケット中継距離は、自身の存在位置と受信したパケットの宛先の位置との間の距離である。尚、距離算出手段16が、パケット送信距離算出手段及びパケット中継距離算出手段を構成する。パケット中継判断手段17は、受信したパケットの宛先が自身宛でないと宛先判断手段14が判断した場合で、受信したパケットのパケット送信距離がパケット中継距離を越える場合に、受信したパケットを中継すると判断する。パケット中継手段18は、受信したパケットを中継するとパケット中継判断手段17が判断した場合に、そのパケットを中継する。有線通信部19は、有線ネットワーク2を介した通信を行う。
無線通信端末1a〜1iの各々から送信されるパケットは、伝送フレームの形態で無線通信部11から送信される。図4に伝送フレームの構成を示す。伝送フレーム400は、フレームヘッダ410とパケット420から構成される。フレームヘッダ410は、送信元の無線通信端末の無線通信部11が有する通信アドレスが記述される「Source Address」の項目と、宛先の無線通信端末の無線通信部11が有する通信アドレスが記述される「Destination Address」の項目から構成される。パケット420は、パケットヘッダ421と、送信するデータが記述されるパケットペイロード422から構成される。パケットヘッダ421は、「Packet Type」、「Packet Number」、「Life Time」、「Radius」、「Source Name」、「Source Location」、「Destination Name」、「Destination Location」の項目から構成される。「Packet Type」の項目には、送信するパケットの種別が記述される。パケットには、ユニキャストパケット、地理的ユニキャストパケット、地理的ブロードキャストパケット、完了通知パケットの4つの種別がある。ユニキャストパケットは、1つの無線通信端末に向けたパケットである。地理的ユニキャストパケットは、指定の位置を中心とした送信範囲内に存在する1つの無線通信端末に向けたパケットである。地理的ブロードキャストパケットは、指定の位置を中心とした送信範囲内に存在する全ての無線通信端末に向けたパケットである。「Packet Number」の項目には、無線通信端末がパケットの送信毎に付与するユニークな番号が記述される。「Life Time」の項目には、パケットの中継回数が記述される。「Radius」の項目には、送信範囲を表す半径が記述される。ここでは、送信範囲は、「Radius」の項目に記述された半径を持つ円であるとする。「Source Name」の項目には、送信元の無線通信端末を表す識別子が記述される。識別子として、IPアドレスを用いる場合は、「Source Name」の項目には、32ビットのビット数が必要となる。「Source Location」の項目には、送信元の無線通信端末の存在位置に基づく位置情報が記述される。位置情報として、GPSの緯度・経度情報を用いる場合は、「Source Location」の項目には、128ビットのビット数が必要となる。「Destination Name」の項目には、宛先の無線通信端末を表す識別子が記述される。識別子として、IPアドレスを用いる場合は、「Destination Name」の項目には、32ビットのビット数が必要となる。「Destination Location」の項目には、宛先の位置を表す位置情報が記述される。位置情報として、GPSの緯度・経度情報を用いる場合は、「Destination Location」の項目には、128ビットのビット数が必要となる。
尚、「Source Location」の項目が送信元位置情報に、「Destination Location」の項目が宛先位置情報に該当する。また、Destination Name」の項目が宛先識別子に、「Radius」の項目が送信範囲情報に、「Life Time」の項目が中継回数情報に該当する。
図5及び図6に、無線通信端末1aから無線通信端末1iに向けてユニキャストパケットを送信するときのマルチホップ無線通信ネットワークの動作を示す。図5に示すように、無線通信端末1iは、無線通信端末1aの無線通信の到達範囲3aの外に存在する。この場合、無線通信端末1aから送信されたユニキャストパケットは、無線通信端末1aと無線通信端末1iの間に存在する無線通信端末により中継されて無線通信端末1iに到達する。図6は、このときの無線通信端末の各々の動作を示している。
無線通信端末1aは、送信するユニキャストパケットを生成して、記憶部12に記憶する(ステップS601)。そして、無線通信端末1aは、記憶部12に記憶されているユニキャストパケットを送信する(ステップS602〜S603)。無線通信端末1aから送信されたユニキャストパケットは、無線通信端末1aの無線通信の到達範囲内に存在する無線通信端末によって受信される。
無線通信端末1cは、無線通信端末1aからのユニキャストパケットを受信すると(ステップS602)、受信したユニキャストパケットの宛先の確認及びユニキャストパケットを中継するか否かの判断を行う(ステップS604)。ここでは、受信したユニキャストパケットの宛先が自身宛でなく、受信したユニキャストパケットを中継すると判断したとする。この場合、無線通信端末1cは、ユニキャストパケットの中継回数を表す「Life Time」の項目の値を1減算する(ステップS605)。そして、無線通信端末1cは、受信したユニキャストパケットの宛先の位置、送信元の無線通信端末1aの存在位置及び自身の存在位置に基づいた待機時間を設定する(ステップS606)。そして、無線通信端末1cは、待機時間が経過するまで待機する。
無線通信端末1eは、無線通信端末1aからのユニキャストパケットを受信すると(ステップS603)、受信したユニキャストパケットの宛先の確認及びユニキャストパケットを中継するか否かの判断を行う(ステップS607)。ここでは、受信したユニキャストパケットの宛先が自身宛でなく、受信したユニキャストパケットを中継すると判断したとする。この場合、無線通信端末1eは、ユニキャストパケットの中継回数を表す「Life Time」の項目の値を1減算する(ステップS608)。そして、無線通信端末1eは、受信したユニキャストパケットの宛先の位置、送信元の無線通信端末1aの存在位置及び自身の存在位置に基づいた待機時間を設定する(ステップS609)。そして、無線通信端末1eは、待機時間が経過するまで待機する。
尚、図示しないが、無線通信端末1aの無線通信の到達範囲内に存在する他の無線通信端末も無線通信端末1c及び無線通信端末1eと同様の動作を行う。尚、待機時間は、無線通信端末1aから送信されたユニキャストパケットを受信した無線通信端末毎に異なる値が設定される。ここでは、無線通信端末1eに設定された待機時間が最も短いとする。
ここで、無線通信端末1eで設定された待機時間が経過したとする(ステップS610)。この場合、無線通信端末1eは、受信したユニキャストパケットの中継を行う(ステップS611)。ユニキャストパケットを中継した後、無線通信端末1eは、完了通知パケットを送信する(ステップS612〜S613)。
無線通信端末1iは、無線通信端末1eによって中継されたユニキャストパケットを受信すると(ステップS611)、受信したユニキャストパケットの宛先が自身宛であるか否かを判断する(ステップS614)。ここでは、受信したユニキャストパケットの宛先が自身宛であると判断したとする。この場合、無線通信端末1iは、受信したユニキャストパケットを取得する(ステップS615)。
無線通信端末1cは、設定した待機時間が経過する前に無線通信端末1eからの完了通知パケットを受信すると(ステップS612)、ユニキャストパケットの中継の動作を取り消す(ステップS616)。尚、図示しないが、無線通信端末1aから送信されたユニキャストパケットを受信して中継を待機している他の無線通信端末も、無線通信端末1cと同様の動作を行う。
ユニキャストパケットを送信した無線通信端末1aは、無線通信端末1eからの完了通知パケットを受信すると(ステップS613)、記憶部12に記憶しているユニキャストパケットを削除する(ステップS617)。
図7に、無線通信端末1a〜1iの各々のパケット生成送信手段13で実行されるユニキャストパケット送信ルーチンの動作を示す。ユニキャストパケット送信ルーチンは、ユニキャストパケットを送信するタイミング、例えば、他の無線通信端末から要求があったときや予め設定されたタイミング等で実行される。尚、ユニキャストパケットの宛先の無線通信端末を表す識別子及び位置情報は予め記憶部12に記憶されているとする。
パケット生成送信手段13は、図示しないセンサが測定したデータを読み取り、ユニキャストパケットによって送信するデータとして記憶部12に記憶する(ステップS701)。このデータがユニキャストパケットのパケットペイロードに記述される。そして、パケット生成送信手段13は、ユニキャストパケットの送信距離を算出する(ステップS702)。送信距離は、自身の存在位置と宛先の無線通信端末の存在位置の間の距離である。送信距離を算出した後、パケット生成送信手段13は、ユニキャストパケットの中継回数を算出する(ステップS703)。中継回数は次の式で算出される。
中継回数 = ( 送信距離 / 自身の無線到達距離 )− 1
尚、中継回数の小数点以下は切り上げる。算出された中継回数は、ユニキャストパケットの「Life Time」の項目に記述される。
中継回数を算出した後、パケット生成送信手段13は、ユニキャストパケットの生成及び記憶を行う(ステップS704)。ユニキャストパケットの「Radius」の項目には「0」が、「Source Name」及び「Source Location」の項目には、自身を表す識別子と位置情報が記述される。「Destination Name」及び「Destination Location」の項目には、宛先の無線通信端末を表す識別子と位置情報が記述される。「Packet Type」は、ユニキャストパケットに設定される。「Packet Number」の項目には、ユニークな番号が記述される。生成したユニキャストパケットは、記憶部12に記憶される。
ユニキャストパケットの生成及び記憶を行った後、パケット生成送信手段13は、リトライ回数を「0」に設定する(ステップS705)。そして、パケット生成送信手段13は、タイムアウト時間を設定する(ステップS706)。タイムアウト時間は、自身の無線到達距離に応じて設定される。例えば、無線到達距離にある係数を掛けたものがタイムアウト時間として設定される。タイムアウト時間を設定した後、パケット生成送信手段13は、記憶部12に記憶されているユニキャストパケットを送信するように無線通信部11に指令を出す(ステップS707)。無線通信部11は、ユニキャストパケットを送信する指令を受けると、記憶部12に記憶されているユニキャストパケットにフレームヘッダを付加した伝送フレームを生成して送信する。フレームヘッダの「Source Address」の項目には、無線通信部11の通信アドレスが記述される。フレームヘッダの「Destination Address」の項目には、ブロードキャストアドレスが記述される。
ユニキャストパケットが送信された後、パケット生成送信手段13は、送信したユニキャストパケットに対応する完了通知パケットを、他の無線通信端末から受信したかどうかを確認する(ステップS708)。受信した完了通知パケットが、送信したユニキャストパケットに対応するか否かの判断は、完了通知パケットの「Packet Number」と「Source Name」に基づいて行う。受信した完了通知パケットの「Packet Number」と「Source Name」が、送信したユニキャストパケットの「Packet Number」と「Source Name」に一致する場合は、受信した完了通知パケットが送信したユニキャストパケットに対応すると判断する。一致しない場合は、受信した完了通知パケットが送信したユニキャストパケットに対応しないと判断する。
ユニキャストパケットが送信されてからタイムアウト時間が経過する前に完了通知パケットの受信が確認された場合、パケット生成送信手段13は、記憶部12に記憶されているユニキャストパケットを削除する(ステップS709)。
一方、完了通知パケットの受信が確認できない状態で、ユニキャストパケットが送信されてからタイムアウト時間が経過した場合、パケット生成送信手段13は、リトライ回数に1を加算する(ステップS710)。そして、パケット生成送信手段13は、リトライ回数が所定値を越えたかどうかを確認する(ステップS711)。リトライ回数が所定値を越えた場合は、送信エラーとする(ステップS712)。一方、リトライ回数が所定値を越えない場合は、S706の処理から実行する。
図8に、無線通信端末1a〜1iの各々のコントローラ(図示せず)で実行されるユニキャストパケット受信ルーチンの動作を示す。ユニキャストパケット受信ルーチンは、ユニキャストパケットを受信した場合に実行される。受信したパケットがユニキャストパケットであるかどうかの判断は、受信したパケットの「Packet Type」に基づいて、無線通信部11が行う。また、伝送フレームの形態で受信されたユニキャストパケットは、無線通信部11により、フレームヘッダが削除されて記憶部12に記憶される。無線通信部11は、ユニキャストパケットを記憶部12に記憶した後、ユニキャストパケットを受信したことをコントローラに通知する。
ユニキャストパケットを受信すると、コントローラは、宛先判断手段14に受信したユニキャストパケットの宛先が自身宛であるか否かを判断するように指令を出す(ステップS801)。宛先判断手段14は、コントローラからの指令を受けると、受信したユニキャストパケットの「Destination Name」と「Destination Location」の項目に記述されている宛先識別子と宛先位置情報が、自身を表す識別子と自身の位置情報に一致するかどうかを確認する。一致する場合は、受信したユニキャストパケットの宛先が自身宛であると判断する。一致しない場合は、受信したユニキャストパケットの宛先が自身宛でないと判断する。そして、宛先判断手段14は、判断結果をコントローラに通知する。
コントローラは、宛先判断手段14の判断結果を確認する(ステップS802)。判断結果が自身宛である場合、コントローラは、パケット取得手段15に受信したユニキャストパケットを取得するように指令を出す(ステップS807)。パケット取得手段15は、コントローラからの指令を受けると、受信したユニキャストパケットを取得する。
一方、宛先判断手段14の判断結果が自身宛でない場合、コントローラは、受信したユニキャストパケットのパケット送信距離及びパケット中継距離を算出するように距離算出手段16に指令を出す(ステップS803)。距離算出手段16は、コントローラからの指令を受けると、パケット送信距離及びパケット中継距離を算出する。パケット送信距離及びパケット中継距離が算出された後、コントローラは、パケット中継判断手段17に受信したユニキャストパケットを中継するか否か判断するように指令を出す(ステップS804)。パケット中継判断手段17は、コントローラからの指令を受けると受信したユニキャストパケットの中継回数が2以上で、パケット送信距離がパケット中継距離よりも長いか否かを確認する。受信したユニキャストパケットの中継回数が2以上で、パケット送信距離がパケット中継距離よりも長い場合は、ユニキャストパケットを中継すると判断する。中継回数が2以上でない場合、若しくは、パケット送信距離がパケット中継距離よりも長くない場合は、ユニキャストパケットを中継しないと判断する。そして、パケット中継判断手段17は、ユニキャストパケットを中継するか否かの判断結果をコントローラに通知する。
コントローラは、パケット中継判断手段17の判断結果を確認する(ステップS805)。判断結果が中継するである場合、コントローラは、受信したユニキャストパケットを中継するようにパケット中継手段18に指令を出す(ステップS806)。パケット中継手段18は、コントローラからの指令を受けると、後述するユニキャストパケット中継ルーチンを実行してユニキャストパケットの中継を行う。一方、パケット中継判断手段17の判断結果が中継しないである場合、コントローラは、受信したユニキャストパケットを破棄する(ステップS808)。
図9に、無線通信端末1a〜1iの各々のパケット中継手段18で実行されるユニキャストパケット中継ルーチンの動作を示す。ユニキャストパケット中継ルーチンは、コントローラからユニキャストパケットを中継するように指令を受けると実行される。
パケット中継手段18は、待機時間を設定する(ステップS901)。待機時間は次の式で算出される。
待機時間 = 係数 ×( 距離条件値 + 最短経路条件値 ) + 乱数
ここで、係数は、無線通信の通信方式や通信速度等に応じて設定される値である。乱数には、0〜0.9までの小数点以下一桁の数値がランダムに設定される。距離条件値は、送信元の無線通信端末の存在位置と自身の存在位置との間の距離を、自身の無線到達距離で割った余りである。最短経路条件値は、送信元の無線通信端末の存在位置と自身の存在位置との間の距離にパケット中継距離を加えた値を、パケット送信距離で割った値である。このように、パケットの宛先の位置と送信元の無線通信端末の存在位置と自身の存在位置に基づいて距離条件値及び最短経路条件値を算出することで、ユニキャストパケットを受信した無線通信端末毎に異なる待機時間を設定することが出来る。また、距離条件値及び最短経路条件値の値が同一になった無線通信端末が存在しても、乱数を加算することにより待機時間を異なる値にすることが出来る。
待機時間を設定した後、パケット中継手段18は、受信したユニキャストパケットの「Life Time」の項目の値を1減算したユニキャストパケットを記憶部12に記憶する(ステップS902)。そして、パケット中継手段18は、中継するユニキャストパケットに対応する完了通知パケットを受信したか否かを確認する(ステップS903)。受信した完了通知パケットが、中継するユニキャストパケットに対応するか否かの判断は、完了通知パケットの「Packet Number」と「Source Name」に基づいて行う。受信した完了通知パケットの「Packet Number」と「Source Name」が、中継するユニキャストパケットの「Packet Number」と「Source Name」に一致する場合は、受信した完了通知パケットが中継するユニキャストパケットに対応すると判断する。一致しない場合は、受信した完了通知パケットが中継するユニキャストパケットに対応しないと判断する。
完了通知パケットを受信した場合、パケット中継手段18は、ユニキャストパケットの中継の動作を取り消す(ステップS908)。一方、完了通知パケットを受信していない場合、パケット中継手段18は、ユニキャストパケットを受信してからS901の処理で設定した待機時間が経過したか否かを確認する(ステップS904)。待機時間が経過していない場合、パケット中継手段18は、S903の処理から実行する。待機時間が経過した場合、パケット中継手段18は、記憶部12に記憶されているユニキャストパケットを中継するように無線通信部11に指令を出す(ステップS905)。無線通信部11は、ユニキャストパケットを中継する指令を受けると、記憶部12に記憶されているユニキャストパケットにフレームヘッダを付加した伝送フレームを生成して送信する。
ユニキャストパケットが中継されたあと、パケット中継手段18は、中継されたユニキャストパケットに対応する完了通知パケットを生成して、記憶部12に記憶する(ステップS906)。完了通知パケットの「Packet Number」の項目には、中継したユニキャストパケットの「Packet Number」の項目と同じ値が設定される。完了通知パケットの「Source Name」の項目には、中継したユニキャストパケットの「Source Name」と同じ識別子が設定される。
完了通知パケットの生成及び記憶を行った後、パケット中継手段18は、完了通知パケットを送信するように無線通信部11に指令を出す(ステップS907)。無線通信部11は、パケット中継手段18から完了通知パケットを送信するように指令を受けると、記憶部12に記憶されている完了通知パケットにフレームヘッダを付加した伝送フレームを生成して送信する。フレームヘッダの「Source Address」の項目には、無線通信部11の通信アドレスが記述される。フレームヘッダの「Destination Address」の項目には、ブロードキャストアドレスが記述される。
このように、ユニキャストパケットを受信した場合、パケット送信距離とパケット中継距離に基づいてユニキャストパケットを中継するか否かを判断しているので、無線通信端末の各々は、全ての無線通信端末に対する経路情報を記憶する必要がない。それ故、マルチホップ無線通信ネットワークに含まれる無線通信端末が多くなっても、必要となる記憶容量は増加せず、無線通信端末の追加や削除等が生じた場合でも経路情報を修正する必要はない。また、ユニキャストパケットを送信する前に経路を構築する必要がないので、ユニキャストパケットを送信するときの遅延を削減することが出来る。
無線通信端末は、ユニキャストパケットを受信してから待機時間が経過した後で、ユニキャストパケットの中継を行っている。待機時間が経過する前に、他の無線通信端末からユニキャストパケットを中継したことを表す完了通知パケットを受信した場合は、ユニキャストパケットの中継を取り消している。待機時間は、無線通信端末によって異なる値が設定されるので、ユニキャストパケットを受信した無線通信端末の中で待機時間の短い無線通信端末からユニキャストパケットの中継が行われる。ある無線通信端末によってユニキャストパケットが中継されると、他の無線通信端末は、ユニキャストパケットの中継を行わないので、実際に中継を行う無線通信端末の台数を少なくすることができる。
また、ユニキャストパケットには、中継回数が含まれており、中継回数で指定された回数までしかユニキャストパケットの中継は行われない。それ故、ユニキャストパケットが無限に中継されることを防ぐことが出来る。
図10及び図11に、無線通信端末1aから宛先の位置Zを中心とした半径Xの送信範囲内の全ての無線通信端末に向けて地理的ブロードキャストパケットを送信するときのマルチホップ無線通信ネットワークの動作を示す。図10に示すように、宛先の位置Zを中心とした半径Xの送信範囲は、無線通信端末1aの無線通信の到達範囲3aの外に存在する。この場合、無線通信端末1aから送信された地理的ブロードキャストパケットは、無線通信端末1aと宛先の位置Zを中心とした半径Xの送信範囲の間に存在する無線通信端末により中継される。図11は、このときの無線通信端末の各々の動作を示している。
無線通信端末1aは、送信する地理的ブロードキャストパケットを生成して、記憶部12に記憶する(ステップS1101)。そして、無線通信端末1aは、記憶部12に記憶されている地理的ブロードキャストパケットを送信する(ステップS1102〜S1103)。無線通信端末1aから送信された地理的ブロードキャストパケットは、無線通信端末1aの無線通信の到達範囲内に存在する無線通信端末によって受信される。
無線通信端末1cは、無線通信端末1aからの地理的ブロードキャストパケットを受信すると(ステップS1102)、受信した地理的ブロードキャストパケットの宛先の確認及び地理的ブロードキャストパケットを中継するか否かの判断を行う(ステップS1104)。ここでは、受信した地理的ブロードキャストパケットの宛先が自身宛でなく、受信した地理的ブロードキャストパケットを中継すると判断したとする。この場合、無線通信端末1cは、地理的ブロードキャストパケットの中継回数を表す「Life Time」の項目の値を1減算する(ステップS1105)。そして、無線通信端末1cは、受信した地理的ブロードキャストパケットの宛先の位置、送信元の無線通信端末1aの存在位置及び自身の存在位置に基づいた待機時間を設定する(ステップS1106)。そして、無線通信端末1cは、待機時間が経過するまで待機する。
無線通信端末1eは、無線通信端末1aからの地理的ブロードキャストパケットを受信すると(ステップS1103)、受信した地理的ブロードキャストパケットの宛先の確認及び地理的ブロードキャストパケットを中継するか否かの判断を行う(ステップS1107)。ここでは、受信した地理的ブロードキャストパケットの宛先が自身宛でなく、受信した地理的ブロードキャストパケットを中継すると判断したとする。この場合、無線通信端末1eは、地理的ブロードキャストパケットの中継回数を表す「Life Time」の項目の値を1減算する(ステップS1108)。そして、無線通信端末1eは、受信した地理的ブロードキャストパケットの宛先の位置、送信元の無線通信端末1aの存在位置及び自身の存在位置に基づいた待機時間を設定する(ステップS1109)。そして、無線通信端末1eは、待機時間が経過するまで待機する。
尚、図示しないが、無線通信端末1aの無線通信の到達範囲内に存在する他の無線通信端末も無線通信端末1c及び無線通信端末1eと同様の動作を行う。尚、待機時間は、無線通信端末1aから送信された地理的ブロードキャストパケットを受信した無線通信端末毎に異なる値が設定される。ここでは、無線通信端末1eに設定された待機時間が最も短いとする。
ここで、無線通信端末1eで設定された待機時間が経過したとする(ステップS1110)。この場合、無線通信端末1eは、受信した地理的ブロードキャストパケットの中継を行う(ステップS1111)。地理的ブロードキャストパケットを中継した後、無線通信端末1eは、完了通知パケットを送信する(ステップS1112〜S1113)。
無線通信端末1iは、無線通信端末1eによって中継された地理的ブロードキャストパケットを受信すると(ステップS1111)、受信した地理的ブロードキャストパケットの宛先が自身宛であるか否かを判断する(ステップS1114)。ここでは、受信した地理的ブロードキャストパケットの宛先が自身宛であると判断したとする。この場合、無線通信端末1iは、受信した地理的ブロードキャストパケットを取得する(ステップS1115)。
無線通信端末1cは、設定した待機時間が経過する前に無線通信端末1eからの完了通知パケットを受信すると(ステップS1112)、地理的ブロードキャストパケットの中継の動作を取り消す(ステップS1116)。尚、図示しないが、無線通信端末1aから送信された地理的ブロードキャストパケットを受信して中継を待機している他の無線通信端末も、無線通信端末1cと同様の動作を行う。
地理的ブロードキャストパケットを送信した無線通信端末1aは、無線通信端末1eからの完了通知パケットを受信すると(ステップS1113)、記憶部12に記憶している地理的ブロードキャストパケットを削除する(ステップS1117)。
図12に、無線通信端末1a〜1iの各々のパケット生成送信手段13で実行される地理的ブロードキャストパケット送信ルーチンの動作を示す。地理的ブロードキャストパケット送信ルーチンは、地理的ブロードキャストパケットを送信するタイミング、例えば、他の無線通信端末から要求があったときや予め設定されたタイミング等で実行される。尚、地理的ブロードキャストパケットの宛先の位置Z及び送信範囲を表す半径Xは予め記憶部12に記憶されているとする。
パケット生成送信手段13は、図示しないセンサが測定したデータを読み取り、地理的ブロードキャストパケットによって送信するデータとして記憶部12に記憶する(ステップS1201)。このデータが地理的ブロードキャストパケットのパケットペイロードに記述される。そして、パケット生成送信手段13は、地理的ブロードキャストパケットの送信距離を算出する(ステップS1202)。送信距離は、自身の存在位置と宛先の位置Zの間の距離に半径Xを加算したものである。送信距離を算出した後、パケット生成送信手段13は、地理的ブロードキャストパケットの中継回数を算出する(ステップS1203)。中継回数は次の式で算出される。
中継回数 = ( 送信距離 / 自身の無線到達距離 )− 1
尚、中継回数の小数点以下は切り上げる。算出された中継回数は、地理的ブロードキャストパケットの「Life Time」の項目に記述される。
中継回数を算出した後、パケット生成送信手段13は、地理的ブロードキャストパケットの生成及び記憶を行う(ステップS1204)。地理的ブロードキャストパケットの「Radius」の項目には「X」が、「Source Name」及び「Source Location」の項目には、自身を表す識別子と位置情報が記述される。「Destination Name」の項目には、ブロードキャストアドレスが記述される。「Destination Location」の項目には、宛先の位置Zを表す位置情報が記述される。「Packet Type」は、地理的ブロードキャストパケットに設定される。「Packet Number」の項目には、ユニークな番号が記述される。生成した地理的ブロードキャストパケットは、記憶部12に記憶される。
地理的ブロードキャストパケットの生成及び記憶を行った後、パケット生成送信手段13は、リトライ回数を「0」に設定する(ステップS1205)。そして、パケット生成送信手段13は、タイムアウト時間を設定する(ステップS1206)。タイムアウト時間は、自身の無線到達距離に応じて設定される。例えば、無線到達距離にある係数を掛けたものがタイムアウト時間として設定される。タイムアウト時間を設定した後、パケット生成送信手段13は、記憶部12に記憶されている地理的ブロードキャストパケットを送信するように無線通信部11に指令を出す(ステップS1207)。無線通信部11は、地理的ブロードキャストパケットを送信する指令を受けると、記憶部12に記憶されている地理的ブロードキャストパケットにフレームヘッダを付加した伝送フレームを生成して送信する。フレームヘッダの「Source Address」の項目には、無線通信部11の通信アドレスが記述される。フレームヘッダの「Destination Address」の項目には、ブロードキャストアドレスが記述される。
地理的ブロードキャストパケットが送信された後、パケット生成送信手段13は、送信した地理的ブロードキャストパケットに対応する完了通知パケットを、他の無線通信端末から受信したかどうかを確認する(ステップS1208)。受信した完了通知パケットが、送信した地理的ブロードキャストパケットに対応するか否かの判断は、完了通知パケットの「Packet Number」と「Source Name」に基づいて行う。受信した完了通知パケットの「Packet Number」と「Source Name」が、送信した地理的ブロードキャストパケットの「Packet Number」と「Source Name」に一致する場合は、受信した完了通知パケットが送信した地理的ブロードキャストパケットに対応すると判断する。一致しない場合は、受信した完了通知パケットが送信した地理的ブロードキャストパケットに対応しないと判断する。
地理的ブロードキャストパケットが送信されてからタイムアウト時間が経過する前に完了通知パケットの受信が確認された場合、パケット生成送信手段13は、記憶部12に記憶されている地理的ブロードキャストパケットを削除する(ステップS1209)。
一方、完了通知パケットの受信が確認できない状態で、地理的ブロードキャストパケットが送信されてからタイムアウト時間が経過した場合、パケット生成送信手段13は、リトライ回数に1を加算する(ステップS1210)。そして、パケット生成送信手段13は、リトライ回数が所定値を越えたかどうかを確認する(ステップS1211)。リトライ回数が所定値を越えた場合は、送信エラーとする(ステップS1212)。一方、リトライ回数が所定値を越えない場合は、S1206の処理から実行する。
図13に、無線通信端末1a〜1iの各々のコントローラ(図示せず)で実行される地理的ブロードキャストパケット受信ルーチンの動作を示す。地理的ブロードキャストパケット受信ルーチンは、地理的ブロードキャストパケットを受信した場合に実行される。受信したパケットが地理的ブロードキャストパケットであるかどうかの判断は、受信したパケットの「Packet Type」に基づいて、無線通信部11が行う。また、伝送フレームの形態で受信された地理的ブロードキャストパケットは、無線通信部11により、フレームヘッダが削除されて記憶部12に記憶される。無線通信部11は、地理的ブロードキャストパケットを記憶部12に記憶した後、地理的ブロードキャストパケットを受信したことをコントローラに通知する。
地理的ブロードキャストパケットを受信すると、コントローラは、宛先判断手段14に受信した地理的ブロードキャストパケットの宛先が自身宛であるか否かを判断するように指令を出す(ステップS1301)。宛先判断手段14は、コントローラからの指令を受けると、受信した地理的ブロードキャストパケットの「Destination Location」の項目に記述されている宛先位置情報によって表される宛先の位置Zと、「Radius」の項目に記述されている送信範囲を表す半径Xを取得する。そして、宛先判断手段14は、宛先の位置Zを中心とする半径Xの送信範囲内に自身が存在するかどうかを確認する。送信範囲内に自身が存在する場合は、受信した地理的ブロードキャストパケットの宛先が自身宛であると判断する。送信範囲内に自身が存在しない場合は、受信した地理的ブロードキャストパケットの宛先が自身宛でないと判断する。そして、宛先判断手段14は、判断結果をコントローラに通知する。
コントローラは、宛先判断手段14の判断結果を確認する(ステップS1302)。判断結果が自身宛である場合、コントローラは、パケット取得手段15に受信した地理的ブロードキャストパケットを取得するように指令を出す(ステップS1307)。パケット取得手段15は、コントローラからの指令を受けると、受信した地理的ブロードキャストパケットを取得する。
一方、宛先判断手段14の判断結果が自身宛でない場合、コントローラは、受信した地理的ブロードキャストパケットのパケット送信距離及びパケット中継距離を算出するように距離算出手段16に指令を出す(ステップS1303)。距離算出手段16は、コントローラからの指令を受けると、パケット送信距離及びパケット中継距離を算出する。パケット送信距離及びパケット中継距離が算出された後、コントローラは、パケット中継判断手段17に受信した地理的ブロードキャストパケットを中継するか否か判断するように指令を出す(ステップS1304)。パケット中継判断手段17は、コントローラからの指令を受けると受信した地理的ブロードキャストパケットの中継回数が2以上で、パケット送信距離がパケット中継距離よりも長いか否かを確認する。受信した地理的ブロードキャストパケットの中継回数が2以上で、パケット送信距離がパケット中継距離よりも長い場合は、地理的ブロードキャストパケットを中継すると判断する。中継回数が2以上でない場合、若しくは、パケット送信距離がパケット中継距離よりも長くない場合は、地理的ブロードキャストパケットを中継しないと判断する。そして、パケット中継判断手段17は、地理的ブロードキャストパケットを中継するか否かの判断結果をコントローラに通知する。
コントローラは、パケット中継判断手段17の判断結果を確認する(ステップS1305)。判断結果が中継するである場合、コントローラは、受信した地理的ブロードキャストパケットを中継するようにパケット中継手段18に指令を出す(ステップS1306)。パケット中継手段18は、コントローラからの指令を受けると、後述する地理的ブロードキャストパケット中継ルーチンを実行して地理的ブロードキャストパケットの中継を行う。一方、パケット中継判断手段17の判断結果が中継しないである場合、コントローラは、受信した地理的ブロードキャストパケットを破棄する(ステップS1308)。
図14に、無線通信端末1a〜1iの各々のパケット中継手段18で実行される地理的ブロードキャストパケット中継ルーチンの動作を示す。地理的ブロードキャストパケット中継ルーチンは、コントローラから地理的ブロードキャストパケットを中継するように指令を受けると実行される。
パケット中継手段18は、待機時間を設定する(ステップS1401)。待機時間は次の式で算出される。
待機時間 = 係数 ×( 距離条件値 + 最短経路条件値 ) + 乱数
ここで、係数は、無線通信の通信方式や通信速度等に応じて設定される値である。乱数には、0〜0.9までの小数点以下一桁の数値がランダムに設定される。距離条件値は、送信元の無線通信端末の存在位置と自身の存在位置との間の距離を、自身の無線到達距離で割った余りである。最短経路条件値は、送信元の無線通信端末の存在位置と自身の存在位置との間の距離にパケット中継距離を加えた値を、パケット送信距離で割った値である。このように、地理的ブロードキャストパケットの宛先の位置と送信元の無線通信端末の存在位置と自身の存在位置に基づいて距離条件値及び最短経路条件値を算出することで、地理的ブロードキャストパケットを受信した無線通信端末毎に異なる待機時間を設定することが出来る。また、距離条件値及び最短経路条件値の値が同一になった無線通信端末が存在しても、乱数を加算することにより待機時間を異なる値にすることが出来る。
待機時間を設定した後、パケット中継手段18は、受信した地理的ブロードキャストパケットの「Life Time」の項目の値を1減算した地理的ブロードキャストパケットを記憶部12に記憶する(ステップS1402)。そして、パケット中継手段18は、中継する地理的ブロードキャストパケットに対応する完了通知パケットを受信したか否かを確認する(ステップS1403)。受信した完了通知パケットが、中継する地理的ブロードキャストパケットに対応するか否かの判断は、完了通知パケットの「Packet Number」と「Source Name」に基づいて行う。受信した完了通知パケットの「Packet Number」と「Source Name」が、中継する地理的ブロードキャストパケットの「Packet Number」と「Source Name」に一致する場合は、受信した完了通知パケットが中継する地理的ブロードキャストパケットに対応すると判断する。一致しない場合は、受信した完了通知パケットが中継する地理的ブロードキャストパケットに対応しないと判断する。
完了通知パケットを受信した場合、パケット中継手段18は、地理的ブロードキャストパケットの中継の動作を取り消す(ステップS1408)。一方、完了通知パケットを受信していない場合、パケット中継手段18は、地理的ブロードキャストパケットを受信してからS1401の処理で設定した待機時間が経過したか否かを確認する(ステップS1404)。待機時間が経過していない場合、パケット中継手段18は、S1403の処理から実行する。待機時間が経過した場合、パケット中継手段18は、記憶部12に記憶されている地理的ブロードキャストパケットを中継するように無線通信部11に指令を出す(ステップS1405)。無線通信部11は、地理的ブロードキャストパケットを中継する指令を受けると、記憶部12に記憶されている地理的ブロードキャストパケットにフレームヘッダを付加した伝送フレームを生成して送信する。
地理的ブロードキャストパケットが中継されたあと、パケット中継手段18は、中継された地理的ブロードキャストパケットに対応する完了通知パケットを生成して、記憶部12に記憶する(ステップS1406)。完了通知パケットの「Packet Number」の項目には、中継した地理的ブロードキャストパケットの「Packet Number」の項目と同じ値が設定される。完了通知パケットの「Source Name」の項目には、中継した地理的ブロードキャストパケットの「Source Name」と同じ識別子が設定される。
完了通知パケットの生成及び記憶を行った後、パケット中継手段18は、完了通知パケットを送信するように無線通信部11に指令を出す(ステップS1407)。無線通信部11は、パケット中継手段18から完了通知パケットを送信するように指令を受けると、記憶部12に記憶されている完了通知パケットにフレームヘッダを付加した伝送フレームを生成して送信する。フレームヘッダの「Source Address」の項目には、無線通信部11の通信アドレスが記述される。フレームヘッダの「Destination Address」の項目には、ブロードキャストアドレスが記述される。
このように、地理的ブロードキャストパケットを受信した場合、パケット送信距離とパケット中継距離に基づいて地理的ブロードキャストパケットを中継するか否かを判断しているので、無線通信端末の各々は、全ての無線通信端末に対する経路情報を記憶する必要がない。それ故、マルチホップ無線通信ネットワークに含まれる無線通信端末が多くなっても、必要となる記憶容量は増加せず、無線通信端末の追加や削除等が生じた場合でも経路情報を修正する必要はない。また、地理的ブロードキャストパケットを送信する前に経路を構築する必要がないので、地理的ブロードキャストパケットを送信するときの遅延を削減することが出来る。
無線通信端末は、地理的ブロードキャストパケットを受信してから待機時間が経過した後で、地理的ブロードキャストパケットの中継を行っている。待機時間が経過する前に、他の無線通信端末から地理的ブロードキャストパケットを中継したことを表す完了通知パケットを受信した場合は、地理的ブロードキャストパケットの中継を取り消している。待機時間は、無線通信端末によって異なる値が設定されるので、地理的ブロードキャストパケットを受信した無線通信端末の中で待機時間の短い無線通信端末から地理的ブロードキャストパケットの中継が行われる。ある無線通信端末によって地理的ブロードキャストパケットが中継されると、他の無線通信端末は、地理的ブロードキャストパケットの中継を行わないので、実際に中継を行う無線通信端末の台数を少なくすることができる。
また、地理的ブロードキャストパケットには、中継回数が含まれており、中継回数で指定された回数までしか地理的ブロードキャストパケットの中継は行われない。それ故、地理的ブロードキャストパケットが無限に中継されることを防ぐことが出来る。
図15及び図16に、無線通信端末1aから宛先の位置Zを中心とした半径Xの送信範囲内に存在する無線通信端末1iに向けて地理的ユニキャストパケットを送信するときのマルチホップ無線通信ネットワークの動作を示す。図15に示すように、宛先の位置Zを中心とした半径Xの送信範囲は、無線通信端末1aの無線通信の到達範囲3aの外に存在する。この場合、無線通信端末1aから送信された地理的ユニキャストパケットは、無線通信端末1aと宛先の位置Zを中心とした半径Xの送信範囲の間に存在する無線通信端末により中継され無線通信端末1iに到達する。図16は、このときの無線通信端末の各々の動作を示している。
無線通信端末1aは、送信する地理的ユニキャストパケットを生成して、記憶部12に記憶する(ステップS1601)。そして、無線通信端末1aは、記憶部12に記憶されている地理的ユニキャストパケットを送信する(ステップS1602〜S1603)。無線通信端末1aから送信された地理的ユニキャストパケットは、無線通信端末1aの無線通信の到達範囲内に存在する無線通信端末によって受信される。
無線通信端末1cは、無線通信端末1aからの地理的ユニキャストパケットを受信すると(ステップS1602)、受信した地理的ユニキャストパケットの宛先の確認及び地理的ユニキャストパケットを中継するか否かの判断を行う(ステップS1604)。ここでは、受信した地理的ユニキャストパケットの宛先が自身宛でなく、受信した地理的ユニキャストパケットを中継すると判断したとする。この場合、無線通信端末1cは、地理的ユニキャストパケットの中継回数を表す「Life Time」の項目の値を1減算する(ステップS1605)。そして、無線通信端末1cは、受信した地理的ユニキャストパケットの宛先の位置、送信元の無線通信端末1aの存在位置及び自身の存在位置に基づいた待機時間を設定する(ステップS1606)。そして、無線通信端末1cは、待機時間が経過するまで待機する。
無線通信端末1eは、無線通信端末1aからの地理的ユニキャストパケットを受信すると(ステップS1603)、受信した地理的ユニキャストパケットの宛先の確認及び地理的ユニキャストパケットを中継するか否かの判断を行う(ステップS1607)。ここでは、受信した地理的ユニキャストパケットの宛先が自身宛でなく、受信した地理的ユニキャストパケットを中継すると判断したとする。この場合、無線通信端末1eは、地理的ユニキャストパケットの中継回数を表す「Life Time」の項目の値を1減算する(ステップS1608)。そして、無線通信端末1eは、受信した地理的ユニキャストパケットの宛先の位置、送信元の無線通信端末1aの存在位置及び自身の存在位置に基づいた待機時間を設定する(ステップS1609)。そして、無線通信端末1eは、待機時間が経過するまで待機する。
尚、図示しないが、無線通信端末1aの無線通信の到達範囲内に存在する他の無線通信端末も無線通信端末1c及び無線通信端末1eと同様の動作を行う。尚、待機時間は、無線通信端末1aから送信された地理的ユニキャストパケットを受信した無線通信端末毎に異なる値が設定される。ここでは、無線通信端末1eに設定された待機時間が最も短いとする。
ここで、無線通信端末1eで設定された待機時間が経過したとする(ステップS1610)。この場合、無線通信端末1eは、受信した地理的ユニキャストパケットの中継を行う(ステップS1611)。地理的ユニキャストパケットを中継した後、無線通信端末1eは、完了通知パケットを送信する(ステップS1612〜S1613)。
無線通信端末1iは、無線通信端末1eによって中継された地理的ユニキャストパケットを受信すると(ステップS1611)、受信した地理的ユニキャストパケットの宛先が自身宛であるか否かを判断する(ステップS1614)。ここでは、受信した地理的ユニキャストパケットの宛先が自身宛であると判断したとする。この場合、無線通信端末1iは、受信した地理的ユニキャストパケットを取得する(ステップS1615)。
無線通信端末1cは、設定した待機時間が経過する前に無線通信端末1eからの完了通知パケットを受信すると(ステップS1612)、地理的ユニキャストパケットの中継の動作を取り消す(ステップS1616)。尚、図示しないが、無線通信端末1aから送信された地理的ユニキャストパケットを受信して中継を待機している他の無線通信端末も、無線通信端末1cと同様の動作を行う。
地理的ユニキャストパケットを送信した無線通信端末1aは、無線通信端末1eからの完了通知パケットを受信すると(ステップS1613)、記憶部12に記憶している地理的ユニキャストパケットを削除する(ステップS1617)。
図17に、無線通信端末1a〜1iの各々のパケット生成送信手段13で実行される地理的ユニキャストパケット送信ルーチンの動作を示す。地理的ユニキャストパケット送信ルーチンは、地理的ユニキャストパケットを送信するタイミング、例えば、他の無線通信端末から要求があったときや予め設定されたタイミング等で実行される。尚、地理的ユニキャストパケットの宛先の位置Z、送信範囲を表す半径X及び宛先の無線通信端末を表す識別子は予め記憶部12に記憶されているとする。
パケット生成送信手段13は、図示しないセンサが測定したデータを読み取り、地理的ユニキャストパケットによって送信するデータとして記憶部12に記憶する(ステップS1701)。このデータが地理的ユニキャストパケットのパケットペイロードに記述される。そして、パケット生成送信手段13は、地理的ユニキャストパケットの送信距離を算出する(ステップS1702)。送信距離は、自身の存在位置と宛先の位置Zの間の距離に半径Xを加算したものである。送信距離を算出した後、パケット生成送信手段13は、地理的ユニキャストパケットの中継回数を算出する(ステップS1703)。中継回数は次の式で算出される。
中継回数 = ( 送信距離 / 自身の無線到達距離 )− 1
尚、中継回数の小数点以下は切り上げる。算出された中継回数は、地理的ユニキャストパケットの「Life Time」の項目に記述される。
中継回数を算出した後、パケット生成送信手段13は、地理的ユニキャストパケットの生成及び記憶を行う(ステップS1704)。地理的ユニキャストパケットの「Radius」の項目には「X」が、「Source Name」及び「Source Location」の項目には、自身を表す識別子と位置情報が記述される。「Destination Name」の項目には、宛先の無線通信端末を表す識別子が記述される。「Destination Location」の項目には、宛先の位置Zを表す位置情報が記述される。「Packet Type」は、地理的ユニキャストパケットに設定される。「Packet Number」の項目には、ユニークな番号が記述される。生成した地理的ユニキャストパケットは、記憶部12に記憶される。
地理的ユニキャストパケットの生成及び記憶を行った後、パケット生成送信手段13は、リトライ回数を「0」に設定する(ステップS1705)。そして、パケット生成送信手段13は、タイムアウト時間を設定する(ステップS1706)。タイムアウト時間は、自身の無線到達距離に応じて設定される。例えば、無線到達距離にある係数を掛けたものがタイムアウト時間として設定される。タイムアウト時間を設定した後、パケット生成送信手段13は、記憶部12に記憶されている地理的ユニキャストパケットを送信するように無線通信部11に指令を出す(ステップS1707)。無線通信部11は、地理的ユニキャストパケットを送信する指令を受けると、記憶部12に記憶されている地理的ユニキャストパケットにフレームヘッダを付加した伝送フレームを生成して送信する。フレームヘッダの「Source Address」の項目には、無線通信部11の通信アドレスが記述される。フレームヘッダの「Destination Address」の項目には、ブロードキャストアドレスが記述される。
地理的ユニキャストパケットが送信された後、パケット生成送信手段13は、送信した地理的ユニキャストパケットに対応する完了通知パケットを、他の無線通信端末から受信したかどうかを確認する(ステップS1708)。受信した完了通知パケットが、送信した地理的ユニキャストパケットに対応するか否かの判断は、完了通知パケットの「Packet Number」と「Source Name」に基づいて行う。受信した完了通知パケットの「Packet Number」と「Source Name」が、送信した地理的ユニキャストパケットの「Packet Number」と「Source Name」に一致する場合は、受信した完了通知パケットが送信した地理的ユニキャストパケットに対応すると判断する。一致しない場合は、受信した完了通知パケットが送信した地理的ユニキャストパケットに対応しないと判断する。
地理的ユニキャストパケットが送信されてからタイムアウト時間が経過する前に完了通知パケットの受信が確認された場合、パケット生成送信手段13は、記憶部12に記憶されている地理的ユニキャストパケットを削除する(ステップS1709)。
一方、完了通知パケットの受信が確認できない状態で、地理的ユニキャストパケットが送信されてからタイムアウト時間が経過した場合、パケット生成送信手段13は、リトライ回数に1を加算する(ステップS1710)。そして、パケット生成送信手段13は、リトライ回数が所定値を越えたかどうかを確認する(ステップS1711)。リトライ回数が所定値を越えた場合は、送信エラーとする(ステップS1712)。一方、リトライ回数が所定値を越えない場合は、S1706の処理から実行する。
図18に、無線通信端末1a〜1iの各々のコントローラ(図示せず)で実行される地理的ユニキャストパケット受信ルーチンの動作を示す。地理的ユニキャストパケット受信ルーチンは、地理的ユニキャストパケットを受信した場合に実行される。受信したパケットが地理的ユニキャストパケットであるかどうかの判断は、受信したパケットの「Packet Type」に基づいて、無線通信部11が行う。また、伝送フレームの形態で受信された地理的ユニキャストパケットは、無線通信部11により、フレームヘッダが削除されて記憶部12に記憶される。無線通信部11は、地理的ユニキャストパケットを記憶部12に記憶した後、地理的ユニキャストパケットを受信したことをコントローラに通知する。
地理的ユニキャストパケットを受信すると、コントローラは、宛先判断手段14に受信した地理的ユニキャストパケットの宛先が自身宛であるか否かを判断するように指令を出す(ステップS1801)。宛先判断手段14は、コントローラからの指令を受けると、受信した地理的ユニキャストパケットの「Destination Name」の項目に記述されている宛先識別子が、自身を表す識別子に一致するかどうかを確認する。一致する場合は、受信した地理的ユニキャストパケットの宛先が自身宛であると判断する。一致しない場合は、受信した地理的ユニキャストパケットの宛先が自身宛でないと判断する。そして、宛先判断手段14は、判断結果をコントローラに通知する。
コントローラは、宛先判断手段14の判断結果を確認する(ステップS1802)。判断結果が自身宛である場合、コントローラは、パケット取得手段15に受信した地理的ユニキャストパケットを取得するように指令を出す(ステップS1807)。パケット取得手段15は、コントローラからの指令を受けると、受信した地理的ユニキャストパケットを取得する。
一方、宛先判断手段14の判断結果が自身宛でない場合、コントローラは、受信した地理的ユニキャストパケットのパケット送信距離及びパケット中継距離を算出するように距離算出手段16に指令を出す(ステップS1803)。距離算出手段16は、コントローラからの指令を受けると、パケット送信距離及びパケット中継距離を算出する。パケット送信距離及びパケット中継距離が算出された後、コントローラは、パケット中継判断手段17に受信した地理的ユニキャストパケットを中継するか否か判断するように指令を出す(ステップS1804)。パケット中継判断手段17は、コントローラからの指令を受けると受信した地理的ユニキャストパケットの中継回数が2以上で、パケット送信距離がパケット中継距離よりも長いか否かを確認する。受信した地理的ユニキャストパケットの中継回数が2以上で、パケット送信距離がパケット中継距離よりも長い場合は、地理的ユニキャストパケットを中継すると判断する。中継回数が2以上でない場合、若しくは、パケット送信距離がパケット中継距離よりも長くない場合は、地理的ユニキャストパケットを中継しないと判断する。そして、パケット中継判断手段17は、地理的ユニキャストパケットを中継するか否かの判断結果をコントローラに通知する。
コントローラは、パケット中継判断手段17の判断結果を確認する(ステップS1805)。判断結果が中継するである場合、コントローラは、受信した地理的ユニキャストパケットを中継するようにパケット中継手段18に指令を出す(ステップS1806)。パケット中継手段18は、コントローラからの指令を受けると、後述する地理的ユニキャストパケット中継ルーチンを実行して地理的ユニキャストパケットの中継を行う。一方、パケット中継判断手段17の判断結果が中継しないである場合、コントローラは、受信した地理的ユニキャストパケットを破棄する(ステップS1808)。
図19に、無線通信端末1a〜1iの各々のパケット中継手段18で実行される地理的ユニキャストパケット中継ルーチンの動作を示す。地理的ユニキャストパケット中継ルーチンは、コントローラから地理的ユニキャストパケットを中継するように指令を受けると実行される。
パケット中継手段18は、待機時間を設定する(ステップS1901)。待機時間は次の式で算出される。
待機時間 = 係数 ×( 距離条件値 + 最短経路条件値 ) + 乱数
ここで、係数は、無線通信の通信方式や通信速度等に応じて設定される値である。乱数には、0〜0.9までの小数点以下一桁の数値がランダムに設定される。距離条件値は、送信元の無線通信端末の存在位置と自身の存在位置との間の距離を、自身の無線到達距離で割った余りである。最短経路条件値は、送信元の無線通信端末の存在位置と自身の存在位置との間の距離にパケット中継距離を加えた値を、パケット送信距離で割った値である。このように、地理的ユニキャストパケットの宛先の位置と送信元の無線通信端末の存在位置と自身の存在位置に基づいて距離条件値及び最短経路条件値を算出することで、地理的ユニキャストパケットを受信した無線通信端末毎に異なる待機時間を設定することが出来る。また、距離条件値及び最短経路条件値の値が同一になった無線通信端末が存在しても、乱数を加算することにより待機時間を異なる値にすることが出来る。
待機時間を設定した後、パケット中継手段18は、受信した地理的ユニキャストパケットの「Life Time」の項目の値を1減算した地理的ユニキャストパケットを記憶部12に記憶する(ステップS1902)。そして、パケット中継手段18は、中継する地理的ユニキャストパケットに対応する完了通知パケットを受信したか否かを確認する(ステップS1903)。受信した完了通知パケットが、中継する地理的ユニキャストパケットに対応するか否かの判断は、完了通知パケットの「Packet Number」と「Source Name」に基づいて行う。受信した完了通知パケットの「Packet Number」と「Source Name」が、中継する地理的ユニキャストパケットの「Packet Number」と「Source Name」に一致する場合は、受信した完了通知パケットが中継する地理的ユニキャストパケットに対応すると判断する。一致しない場合は、受信した完了通知パケットが中継する地理的ユニキャストパケットに対応しないと判断する。
完了通知パケットを受信した場合、パケット中継手段18は、地理的ユニキャストパケットの中継の動作を取り消す(ステップS1908)。一方、完了通知パケットを受信していない場合、パケット中継手段18は、地理的ユニキャストパケットを受信してからS1901の処理で設定した待機時間が経過したか否かを確認する(ステップS1904)。待機時間が経過していない場合、パケット中継手段18は、S1903の処理から実行する。待機時間が経過した場合、パケット中継手段18は、記憶部12に記憶されている地理的ユニキャストパケットを中継するように無線通信部11に指令を出す(ステップS1905)。無線通信部11は、地理的ユニキャストパケットを中継する指令を受けると、記憶部12に記憶されている地理的ユニキャストパケットにフレームヘッダを付加した伝送フレームを生成して送信する。
地理的ユニキャストパケットが中継されたあと、パケット中継手段18は、中継された地理的ユニキャストパケットに対応する完了通知パケットを生成して、記憶部12に記憶する(ステップS1906)。完了通知パケットの「Packet Number」の項目には、中継した地理的ユニキャストパケットの「Packet Number」の項目と同じ値が設定される。完了通知パケットの「Source Name」の項目には、中継した地理的ユニキャストパケットの「Source Name」と同じ識別子が設定される。
完了通知パケットの生成及び記憶を行った後、パケット中継手段18は、完了通知パケットを送信するように無線通信部11に指令を出す(ステップS1907)。無線通信部11は、パケット中継手段18から完了通知パケットを送信するように指令を受けると、記憶部12に記憶されている完了通知パケットにフレームヘッダを付加した伝送フレームを生成して送信する。フレームヘッダの「Source Address」の項目には、無線通信部11の通信アドレスが記述される。フレームヘッダの「Destination Address」の項目には、ブロードキャストアドレスが記述される。
このように、地理的ユニキャストパケットを受信した場合、パケット送信距離とパケット中継距離に基づいて地理的ユニキャストパケットを中継するか否かを判断しているので、無線通信端末の各々は、全ての無線通信端末に対する経路情報を記憶する必要がない。それ故、マルチホップ無線通信ネットワークに含まれる無線通信端末が多くなっても、必要となる記憶容量は増加せず、無線通信端末の追加や削除等が生じた場合でも経路情報を修正する必要はない。また、地理的ユニキャストパケットを送信する前に経路を構築する必要がないので、地理的ユニキャストパケットを送信するときの遅延を削減することが出来る。
無線通信端末は、地理的ユニキャストパケットを受信してから待機時間が経過した後で、地理的ユニキャストパケットの中継を行っている。待機時間が経過する前に、他の無線通信端末から地理的ユニキャストパケットを中継したことを表す完了通知パケットを受信した場合は、地理的ユニキャストパケットの中継を取り消している。待機時間は、無線通信端末によって異なる値が設定されるので、地理的ユニキャストパケットを受信した無線通信端末の中で待機時間の短い無線通信端末から地理的ユニキャストパケットの中継が行われる。ある無線通信端末によって地理的ユニキャストパケットが中継されると、他の無線通信端末は、地理的ユニキャストパケットの中継を行わないので、実際に中継を行う無線通信端末の台数を少なくすることができる。
また、地理的ユニキャストパケットには、中継回数が含まれており、中継回数で指定された回数までしか地理的ユニキャストパケットの中継は行われない。それ故、地理的ユニキャストパケットが無限に中継されることを防ぐことが出来る。
上記説明したように、本発明のマルチホップ無線通信ネットワークによれば、無線通信端末がパケットを受信した場合に、パケット送信距離とパケット中継距離に基づいてパケットを中継するか否かを判断しているので、無線通信端末の各々は、全ての無線通信端末に対する経路情報を記憶する必要がない。それ故、マルチホップ無線通信ネットワークに含まれる無線通信端末が多くなっても、必要となる記憶容量は増加せず、無線通信端末の追加や削除等が生じた場合でも経路情報を修正する必要はない。また、パケットを送信する前に経路を構築する必要がないので、パケットを送信するときの遅延を削減することが出来る。