本発明は、通信を開始するデータ種別に適した経路を探索する通信装置及び通信方法に関し、より特定的には、通信を要求する始点装置とその宛先となる終点装置との間で直接通信できない場合に、始点装置から終点装置までマルチホップで通信する経路を探索する通信装置及び通信方法に関する。
従来、始点装置と終点装置との間で直接通信できない場合に、始点装置から終点装置までの経路を探索する方法として、以下のような方法がある。
最初に、始点装置は、終点装置を指定した経路要求パケットをブロードキャストする。他の装置がブロードキャストした経路要求パケットを受信した装置は、受信した経路要求パケットにおいて指定された終点装置が自装置であるか否かを判定する。終点装置が自装置でないと判定した場合、通信装置は、自装置を通過したことを示す情報を経路要求パケットに追加して、ブロードキャストする。
このように、終点装置以外の装置が、受信した経路要求パケットのブロードキャストを繰り返すことにより、経路要求パケットは最終的に終点装置に到達する。このとき終点装置が受信する経路要求パケットには、始点装置から終点装置までに通過した全ての中継装置を示す情報が含まれている。終点装置は、その中継装置を示す情報に基づいて経路を設定する。
しかし、経路要求パケットを受信した装置が、受信した全ての経路要求パケットをブロードキャストする場合、以下のような問題が生じる。
始点装置や中継装置がブロードキャストする経路要求パケットは、通常、当該経路要求パケットを送信した装置と直接通信できる複数の装置により受信される。経路要求パケットを受信した複数の装置は、自装置が終点装置でなければ、それぞれ経路要求パケットをブロードキャストする。そのため、経路要求パケットが1つ送信される度に、当該経路要求パケットを直接受信する中継装置数の経路要求パケットがブロードキャストされる。
このように、経路要求パケットを受信した装置が受信した経路要求パケットを全てブロードキャストする場合、経路要求パケットが送信される度に、次に送信される経路要求パケットの数が増加する。その結果、増加した経路要求パケットがデータ通信に使用する帯域を圧迫し、他の装置間のデータ通信を妨げることになる。
かかる問題を解決することを目的とする技術として、経路要求パケットが通過した経路における経路評価値を経路要求パケットに記載し、この経路評価値に基づいて中継装置がブロードキャストする経路要求パケットを制限するものがある(例えば、特許文献1)。ここで、経路評価値とは、当該経路が接続した状態を保っている時間長や、当該経路で通信する場合に期待されるスループットなどを示す。
以下、特許文献1の技術において、経路探索時に中継装置が経路要求パケットを受信した際に行う処理について説明する。
中継装置は、経路要求パケットを受信する度に、当該経路要求パケットが通過した経路の状態から経路評価値を計算する。中継装置は、経路要求パケットを最初に受信すると、そのパケットをそのままブロードキャストする。一方、最初に受信した経路要求パケットと異なる経路を通過し、2番目以降に受信した経路要求パケット、すなわち重複受信パケットを受信すると、中継装置は、既にブロードキャストした経路要求パケットの経路評価値と重複受信パケットの経路評価値とを比較する。重複受信パケットの経路評価値が既に送信した経路要求パケットの経路評価値よりも高い場合、中継装置は重複受信パケットをブロードキャストする。一方、重複受信パケットの経路評価値が既に送信した経路要求パケットの経路評価値よりも低い場合、中継装置は重複受信パケットをブロードキャストせず、破棄する。
しかし、上記の特許文献1の技術では、以下のような問題が生じていた。
中継装置が重複受信した経路要求パケットが、既にブロードキャストした経路要求パケットよりも経路評価値が高くなる場合、中継装置がブロードキャストする経路要求パケットの数が減少しないという問題があった。
それ故に、本発明の目的は、中継装置が既にブロードキャストした経路要求パケットよりも経路評価値が高くなる経路要求パケットを次々と重複受信する場合でも、中継装置がブロードキャストする経路要求パケット数を一定数以下に制限し、かつ経路評価値が高い経路を探索できる通信装置及び通信方法を提供することである。
上記目的を達成するために、本発明は、以下の特徴を有する。本発明の第1の局面は、通信を要求する始点装置が宛先となる終点装置へマルチホップで通信するにあたり、経路作成のための経路要求パケットを終点装置までの各中継装置へ送信する通信装置であって、始点装置を示す情報、終点装置を示す情報、及び始点装置から自装置に経路要求パケットを直接送信した直前の中継装置までの経路状態を示す経路評価値を含む経路要求パケットを少なくとも1つの直前の中継装置から受信する受信部と、受信した経路要求パケットに記述された始点装置から直前の中継装置までの経路状態と直前の中継装置と自装置との間の経路状態に基づいて、始点装置から自装置までの経路評価値を算出し、経路要求パケットの経路評価値を更新する更新部と、経路要求パケットを受信すると受信時を含む所定の待機時間を設定し、始点装置及び終点装置を示す情報が受信した経路要求パケットと同一で待機時間内に更新した経路要求パケットの中から、経路評価値が高い順に所定数の経路要求パケットを選択し、自装置と直接通信できる隣接装置へ送信する制御部とを具備する。
さらに、本発明の通信装置は、自装置と隣接装置との間の通信に使用可能な帯域を複数のタイミングで測定する測定部をさらに備えるとよい。その場合、経路状態は経路上の各通信装置間の通信に使用可能な帯域を通信装置間毎に含むとよい。また、更新部は経路要求パケットに記述された始点装置から直前の中継装置までの各通信装置間における使用可能な帯域と測定部により測定された直前の中継装置と自装置との間の使用可能な帯域とに基づいて、始点装置から自装置までの経路全体で使用可能な帯域を経路評価値として算出するとよい。そして、更新部は使用可能な帯域が大きいほど経路評価値を高い値として算出するとよい。
また、前述した測定部は、自装置と隣接装置との間の通信に使用可能な帯域を複数のタイミングで測定し、測定された帯域の中から最小値を求めてもよい。その場合、経路状態は経路上の各通信装置間における使用可能な帯域の最小値を含むとよい。また、更新部は経路要求パケットに記述された始点装置から直前の中継装置までの最小値と測定部により測定された直前の中継装置と自装置との間の最小値とを比較して、始点装置から自装置までの経路全体での最小値を経路評価値として算出するとよい。そして、更新部は算出された値が大きいほど経路評価値を高い値として算出するとよい。
また、前述した測定部は、自装置と隣接装置との間で通信不能な状態から通信可能な状態に変化した時点から現在までの経過時間を測定するとよい。その場合、経路状態は経路上の各通信装置間における経過時間の最小値を含むとよい。また、更新部は経路要求パケットに記述された始点装置から直前の中継装置までの各通信装置間における経過時間の最小値と測定部により測定された直前の中継装置と自装置との間の経過時間とを比較して、始点装置から自装置までの経路全体での経過時間の最小値を経路評価値として算出するとよい。そして、更新部は算出された最小値が大きいほど経路評価値を高い値として算出するとよい。
さらに、経路状態は経路のホップ数を含むとよい。その場合、更新部は経路要求パケットに記述された始点装置から直前の中継装置までのホップ数に1を加えることにより、始点装置から自装置までの経路のホップ数を経路評価値として算出するとよい。また、更新部は算出されたホップ数が少ないほど経路評価値を高い値として算出するとよい。
さらに、経路状態は始点装置から直前の中継装置までの経路のホップ数を含むとよい。その場合、算出部は経路状態に含まれたホップ数に1を加えることにより、始点装置から自装置までの経路のホップ数を第2の経路評価値として算出するとよい。また、更新部は算出されたホップ数が少ないほど第2の経路評価値を高い値として算出するとよい。そして、制御部は、更新部により算出された経路評価値が等しい経路要求パケットが所定数以上ある場合、第2の経路評価値が高い順に所定数の経路要求パケットを選択するとよい。
また、制御部は経路要求パケットを受信すると、経路評価値に応じて所定の待機時間を設定するとよい。さらに、制御部はその経路評価値が低いほど所定の待機時間を長く設定するとよい。
さらに、制御部は、これまでに受信した経路要求パケットに基づいて設定した所定の待機時間の終了時刻よりも新たに受信した経路要求パケットに基づいて設定する待機時間の終了時刻が早い場合は、待機時間を短縮して、新たに受信した経路要求パケットに基づいて設定する待機時間の終了時刻で経路要求パケットを送信するとよい。
さらに、制御部は、2番目以降の経路要求パケットを受信すると、これまでに受信した経路要求パケットの数が所定の閾値に達したかどうかを判定し、所定の閾値に達したと判定した時点で経路要求パケットを送信するとよい。
また、経路状態は始点装置から直前の中継装置までの経路のホップ数を含むとよい。その場合、算出部は経路状態に含まれたホップ数に1を加えることにより、始点装置から自装置までの経路のホップ数をさらに算出するとよい。また、制御部は、更新部により算出されたホップ数がこれまでに受信した経路要求パケットから算出されたホップ数よりも多いという第1の条件と、新たに受信した経路要求パケットから算出された経路評価値がこれまでに受信した経路要求パケットから算出された経路評価値よりも低いという第2の条件を満たすか否かを判定し、第1の条件と第2の条件をともに満たすと判定した時点で経路要求パケットを送信するとよい。
さらに、制御部は、第1の条件を満たし、かつ第2の条件を満たさないと判定した場合、待機時間を延長し、新たに受信した経路要求パケットに基づいて設定した待機時間の終了時刻に経路要求パケットを送信するとよい。
また、さらに、制御部は、待機時間を延長する場合は、延長前の待機時間の終了時刻にその時点で選択した経路要求パケットを送信し、さらに延長後の待機時間の終了時刻にその時点で選択した経路要求パケットを送信するとよい。
また、制御部は、最初に受信した経路要求パケットをすぐに隣接装置に送信し、待機時間満了後に、最初に受信した経路要求パケットと始点装置及び終点装置を示す情報が同一である他の経路要求パケットのうち、経路評価値が高い順に所定数の経路要求パケットを選択するとよい。
また、制御部は、選択した経路要求パケットに記述された情報を1つの経路要求パケットにまとめて記述するとよい。
また、始点装置は、経路数を示す情報を経路要求パケットにさらに記述し、所定数が経路数であるとよい。
また、制御部は、所定の待機時間の終了時刻経過後に受信した経路要求パケットを破棄するとよい。
本発明の第2の局面は、通信開始を要求する始点装置が宛先となる終点装置へマルチホップで通信するにあたり、経路作成のための経路要求パケットを終点装置までの各中継装置へ送信する通信方法であって、始点装置を示す情報、終点装置を示す情報、及び始点装置から自装置に経路要求パケットを直接送信した直前の中継装置までの経路状態を記述した経路要求パケットを少なくとも1つの直前の中継装置から受信し、受信した経路要求パケットに記述された始点装置から直前の中継装置までの経路状態と直前の中継装置と自装置との間の経路状態に基づいて、始点装置から自装置までの経路状態を示す経路評価値を算出し、始点装置から自装置までの経路状態を記述して経路要求パケットを更新し、経路要求パケットを受信すると所定の待機時間を設定し、受信した経路要求パケットと始点装置及び終点装置を示す情報が同一で待機時間内に受信した経路要求パケットの中から、経路評価値が高い順に所定数の経路要求パケットを選択し、自装置と直接通信できる隣接装置へ送信する。
本発明によれば、受信した経路要求パケットに基づき所定の待機時間を設定し、受信した経路要求パケットと始点装置及び終点装置を示す情報が同一で待機時間内に受信した経路要求パケットの中から更新部により更新された経路評価値が高い経路要求パケットを所定数選択し、隣接装置へ送信する。したがって、経路作成のために送信される経路要求パケットの数が削減され、帯域の消費を抑えつつ、所定の始点装置と所定の終点装置との間で経路の状態を示す経路評価値が高い経路を作成することができる。
図1は、第1の実施形態における通信装置の機能ブロック図である。
図2は、測定値管理テーブルを表した図である。
図3は、経路要求パケットのフレームフォーマットを示す図である。
図4は、重複管理テーブルを表した図である。
図5は、第1の実施形態における通信装置の経路要求パケット送信処理を示すフローチャート図である。
図6は、始点装置の経路要求パケット生成処理を示すフローチャート図である。
図7は、第1の実施形態における通信装置の経路要求パケット受信処理を示すフローチャート図である。
図8は、第1の実施形態における評価基準値更新、経路評価値算出処理を示すフローチャート図である。
図9は、第1の実施形態におけるネットワーク構成図である。
図10は、第1の実施形態において通信装置901から904にデータ通信を要求して経路探索する場合を表すシーケンス図である。
図11は、第2の実施形態における通信装置の機能ブロック図である。
図12は、第2の実施形態における通信装置の経路要求パケット受信処理を示すフローチャート図である。
図13は、第2の実施形態における評価基準値更新、経路評価値算出処理を示すフローチャート図である。
図14は、通信装置のタイマ変更処理を示すフローチャート図である。
図15は、第2の実施形態におけるネットワーク構成図である。
図16は、第2の実施形態において通信装置901から904にデータ通信を要求して経路探索する場合を表すシーケンス図である。
図17は、第3の実施形態における通信装置の機能ブロック図である。
図18は、第3の実施形態における通信装置の経路要求パケット受信処理を示すフローチャート図である。
図19は、第3の実施形態における通信装置の経路要求パケット送信処理を示すフローチャート図である。
図20は、第3の実施形態におけるネットワーク構成図である。
図21は、第3の実施形態において通信装置901から904にデータ通信を要求して経路探索する場合を表すシーケンス図である。
図22は、通信装置のハード構成を示したハード図である。
(第1の実施形態)
本実施の形態では、通信開始を要求する始点装置が、通信を開始するデータ種別に適した経路を探索する場合に、中継装置において受信した全ての経路要求パケットをブロードキャストするのではなく、経路評価値が高い経路を通過してきた経路要求パケットを、始点装置が設定した数だけブロードキャストする。経路評価値とは、経路要求パケットを選択する際に用いるパラメータであり、始点装置からそれぞれ異なる経路を通って各中継装置に到着した複数の経路要求パケットについて、各経路要求パケットが通過した経路の状態を示す値である。
本発明の第1の実施形態に係る通信装置の機能を説明する前に、説明の便宜上、まず、経路要求パケットのフォーマットについて図3を用いて説明する。
図3は経路要求パケットのデータフォーマット図である。経路要求パケット301は、終点アドレス302、始点アドレス303、経路要求パケット番号304、要求経路数305、条件識別子306、評価基準値307、中継装置アドレス308、評価用測定値309により構成されている。
終点アドレス302は、始点装置が通信を要求する接続先である終点装置のアドレスを示す。始点アドレス303は、始点装置のアドレスを示す。経路要求パケット番号304は、同じ始点装置から送信された経路要求パケットを識別するための値である。
要求経路数305は、始点装置が設定する経路数であり、「1」以上の整数に設定される。ただし、終点装置が始点装置に経路を返信する際は、要求する経路がないため要求経路数は「0」に設定される。
条件識別子306は、経路を探索する条件を特定するパラメータであり、始点装置によって設定される。各通信装置は条件識別子306に基づいて選択する条件を変更する。本実施の形態では、条件識別子の一例として以下の6種類を挙げる。
条件識別子「1」:最新の通信状態に基づき、帯域が最大である経路を探索する条件
条件識別子「2」:過去の通信状態の履歴に基づき、帯域の最小値が一定値以上であることを保証する経路を探索する条件
条件識別子「3」:始点装置から送信されたパケットが終点装置に到達するまでの遅延が最小である経路を探索する条件
条件識別子「4」:ホップ数が最小である経路を探索する条件
条件識別子「5」:最新の通信状態に基づき、当該経路上の各中継装置間の通信継続時間が一定値以上であることを保証する経路を探索する条件
条件識別子「6」:過去の通信状態の履歴に基づき、帯域の最小値が一定値以上であることを保証する経路と、ホップ数が最小である経路とを同時に探索する条件
評価基準値307は、条件識別子306の設定値に基づき計算された値である。この値は経路評価の際に利用される。評価基準値307は、始点アドレス303と経路要求パケット番号304が同一となる経路要求パケットが通過した複数の経路を比較するために利用される。例えば、条件識別子が「1」に設定されている場合、評価基準値307は、経路上の各中継装置間における最新の通信状態をもとに推定される、始点装置から自装置までの通信帯域となる。
条件識別子が「2」に設定されている場合、評価基準値307は、経路上の各中継装置間で過去の一定期間測定した帯域の最小値のうち、経路上での最小値となる。
条件識別子が「3」に設定されている場合、評価基準値307は、始点装置が経路要求パケットを送信する時刻となる。この場合、あらかじめネットワーク内の全装置の時計を同期させておくことで、各装置は、経路要求パケットが到着した時刻と評価基準値307の時刻との時間差に基づいて経路要求パケットを選択することができる。
条件識別子が「4」に設定されている場合、評価基準値307は、始点装置からのホップ数となる。
条件識別子が「5」に設定されている場合、評価基準値307は、経路上の各中継装置間において通信不能な状態から通信可能な状態に変化した最新の時点から現在までの通信継続時間のうち、経路上の最小値となる。
さらに、条件識別子が「6」に設定されている場合のように、それぞれ異なる条件を満たす複数の経路を同時に探索する場合、経路要求パケット301は、複数の評価基準値307を有する。図3では、複数の評価基準値307が評価基準値(1)、評価基準値(2)などと表されている。条件識別子が「6」に設定されている場合は、評価基準値(1)はホップ数となり、評価基準値(2)は経路上の各中継装置間で過去の一定期間測定した帯域の最小値のうち、経路上での最小値となる。これにより、それぞれ異なる複数の条件を満たす複数の経路を、1回の経路探索で同時に設定することができる。
中継装置アドレス308は、当該経路要求パケットが通過した始点装置から自装置までの経路上にある中継装置のアドレスである。評価用測定値309は、各中継装置とその直前(1ホップ前)の中継装置との間で測定された通信の状態を示す情報である。中継装置アドレス308と評価用測定値309は、それぞれ経路要求パケットが各中継装置で中継される度に追加される。この評価用測定値309は、処理の便宜上、評価基準値307に対応して、経路要求パケット301に格納されることが望ましい。図3では、複数の評価基準値307である評価基準値(1)、評価基準値(2)に対応する評価用測定値309が、それぞれ評価用測定値(1)、評価用測定値(2)と表されている。
以上に述べた経路要求パケットは、始点装置が経路探索する際に利用されるが、終点装置が始点装置に対し経路を返信する際にも利用される。以降の説明では、終点装置が始点装置に経路を返信する経路要求パケットのことを返信用経路要求パケットと呼ぶこととする。この返信用経路要求パケットのフォーマットは、経路要求パケットの始点アドレスと終点アドレスが入れ替わっていることと要求経路数が「0」に設定されている以外は、上述したフォーマットと同じである。
つぎに、本発明の第1の実施形態に係る通信装置の機能構成を詳細に説明する。図1は、本発明の第1の実施形態に係る通信装置の機能ブロック図である。図1を参照すると、本実施形態の通信装置は、受信部101、測定部102、更新部103、重複検出部104、比較部105、パケット保存部106、タイマ107、パケット破棄部108、送信部109を備える。
受信部101は、各種通信方式により受信したデータパケットから経路要求パケットを更新部103に出力する。測定部102は、経路評価値の算出のため必要な情報を測定し、測定値管理テーブル201(詳細は後述)を更新する。本実施の形態では、経路評価値の算出のため必要な情報とは、隣接装置(自装置と直接通信できる装置)と自装置との間の通信における帯域と、自装置と隣接装置との間で、通信不能な状態から通信可能な状態に変化した最新の時点から現在までの通信継続時間である。測定部102は、経路要求パケット以外のパケットも含め、自装置から直接通信可能な位置に配置された隣接装置が送信したパケットの受信電力を測定し、当該パケットを送信した隣接装置と自装置との間の通信における帯域を推定する。ここでいう帯域とは、例えばPHY(Physical Layer)レートやMAC(Media Access Control)レート、スループット等のデータの通信速度を表すパラメータのことである。また、送信部109は、一定間隔または任意のタイミングで自装置がネットワーク上に存在することを示すHelloパケットを送信して、それを受信することによって通信継続時間を測定する。以上により、測定された帯域や通信継続時間は測定値管理テーブル201に別々に格納される。
図2は、測定値管理テーブルの一例を表した図である。測定値管理テーブル201は、隣接装置毎に、隣接装置アドレス202、最新測定値203、保存測定値204、平均測定値205、最小測定値206から構成されている。隣接装置アドレス202は、受信したパケットのヘッダに記載されている当該パケットを送信した隣接装置のアドレスである。最新測定値203は、各隣接装置と自装置間において測定部102で測定された測定値のうち、最新となる値である。保存測定値204は、隣接装置と自装置間において測定部102で測定された測定値のうち、新しい順に一定個数保存された値である。なお、保存測定値204として保存されている測定値の個数は、帯域の変動頻度や帯域推定に求められる精度などに基づいて変更することができる。また、保存測定値204として保存されている測定値の個数は、隣接装置毎に異なっていてもよい。平均測定値205は、保存測定値204として保存された一定個数の測定値の平均値である。最小測定値206は、保存測定値204として保存された一定個数の測定値の最小値である。例えば、最小測定値206として帯域の最小値が格納されている場合、その値は通信装置間の伝送路状態が最も悪い時にどの程度帯域を保証できるかの指標となる。なお、最小測定値206は保存測定値204として保存された帯域の最小値とする必要はなく、一定期間中に推定された測定値の最小値としてもよい。
更新部103は、経路要求パケットが当該通信装置から過去に送信されたものである場合、その経路要求パケットをパケット破棄部108に出力した上で破棄する。一方、その経路要求パケットが当該通信装置から過去に送信されたものでない場合、更新部103は、測定部102の測定結果を加えて、経路要求パケットを更新し、経路評価値を算出する。経路要求パケット更新処理と経路評価値算出処理については詳細を後述する。更新部103は、経路要求パケットを更新すると、その経路要求パケットとその経路評価値を重複検知部104へ出力する。
重複検知部104は、更新部103により出力された経路要求パケットが重複受信であるか否かを重複管理テーブル(詳細は後述)に基づいて判定する。判定後、重複検知部104は、重複受信である経路要求パケットとその経路評価値を比較部105に、それ以外の経路要求パケットとその経路評価値をタイマ107に出力する。
図4は、重複管理テーブルを表した図である。重複管理テーブル401には、始点装置毎に、始点アドレス402、経路要求パケット番号403、タイマ状態404が保存されている。始点アドレス402には、受信した経路要求パケットに含まれる始点装置のアドレスが格納される。経路要求パケット番号403には、受信した経路要求パケットに含まれる経路要求パケット番号が格納される。タイマ状態404には、タイマ107(詳細は後述)がタイマを設定中であるか、タイマが満了しているかを示す情報が格納される。重複管理テーブル401を利用した重複検知部104の判定処理の詳細については後述する。
比較部105は、重複検知部104により出力された経路要求パケットの経路評価値と、パケット保存部106(詳細は後述)により保存されている全ての経路要求パケットの経路評価値を参照して、重複検知部104により出力された経路要求パケットとその経路評価値をパケット保存部106に出力するか、パケット破棄部108に出力した上で破棄するか判定する。比較部105の動作の詳細については後述する。
パケット保存部106は、比較部105とタイマ107により出力された経路要求パケットを保存する。また、その経路要求パケットの経路評価値も併せて保存するとよい。保存する経路要求パケットの数が経路要求パケットに含まれる要求経路数305よりも大きい場合は、保存されている経路要求パケットの中から経路評価値が最小のパケットを更新する。また、複数の始点装置から経路要求パケットが送信されている場合は、それぞれの始点アドレスに対して経路要求パケットを保存する領域を確保する。
タイマ107は、重複検知部104により出力された経路要求パケットに含まれる条件識別子306とそのパケットの経路評価値に基づいて、当該経路要求パケットを受信してからパケット保存部106に保存されている経路要求パケットを送信するまでの待機時間を算出する。待機時間は、経路要求パケットの経路評価値が高いほど、短く算出される。また、待機時間は、1ホップ余分に中継装置を通過した経路要求パケットを各装置が受信できるように、1ホップ進むのに必要な時間に、経路評価値に比例した値、反比例した値、または経路評価値に応じた段階的な値を加えた時間としてもよい。
タイマ107は、待機時間算出後、その待機時間をタイマ長とするタイマを開始させる。その後、タイマ107は経路要求パケットをパケット保存部106に出力する。さらに、待機時間が満了すると、タイマ107は、送信部109に経路要求パケットを送信させる。タイマ107の動作の詳細は後述する。
パケット破棄部108は、更新部103、重複検知部104と比較部105により出力された経路要求パケットを破棄する。
送信部109は、各種通信方式によりデータパケットを送信する。ただし、自装置が始点装置、中継装置、終点装置のいずれにあたるかにより、送信部109が行う処理が異なる。自装置が始点装置にあたる場合、送信部109は新しく経路制御パケットを生成してブロードキャストする。自装置が中継装置にあたる場合、送信部109はタイマが満了するとパケット保存部106により保存されているパケットをブロードキャストする。自装置が終点装置にあたる場合、送信部109は、経路要求パケットの終点アドレスと始点アドレスを交換し、要求経路数を「0」に設定した返信用経路要求パケットを生成する。そして、送信部109は、もとの経路要求パケットが中継された逆の経路で、始点装置に、生成した返信用経路要求パケットをユニキャストで返信する。
以上のように構成された通信装置について、図5から図8を用いてその動作を説明する。まず、各装置が経路要求パケットを送信するまでの一連の処理を説明する。図5は、その処理を示したフローチャートである。
まず、通信装置は、自装置が他の装置と通信する必要性が生じたことを示す通信要求があるか否かを判定する(STEP501)。通信装置は、通信要求があると判定すると、経路を探索するために経路要求パケットを生成する(STEP502)。
図6は、STEP502での経路要求パケット生成処理を示したフローチャートである。まず、送信部109は、新たに生成する経路要求パケットの終点アドレスに接続先である終点装置のアドレスを設定し、始点アドレスに自らのアドレスを設定する(STEP601)。つぎに、送信部109は、重複管理テーブル401から始点アドレス402が自らのアドレスとなる経路要求パケット番号403を取得する。そして、送信部109は、取得した番号をインクリメントした値を、新しく生成する経路要求パケットの経路要求パケット番号304に設定する(STEP602)。そして、送信部109は、重複管理テーブル401の経路要求パケット番号403をインクリメントし、重複管理テーブル401を更新する(STEP603)。それから、送信部109は、ネットワークの規模に応じて要求経路数305を設定する(STEP604)。さらに、送信部109は、通信しようとするデータの種類に応じて条件識別子306を設定する(STEP605)。最後に、送信部109は、条件識別子に応じて必要な数の評価基準値307の領域を用意し、STEP601〜STEP605で設定していないパラメータを「0」や経路要求パケットの送信時刻などで初期化する(STEP606)。
STEP502において経路要求パケットを生成すると、送信部109は、その経路要求パケットをブロードキャストして(STEP503)、STEP501の処理を実行する。
つぎに、各装置が経路要求パケットを受信した後の一連の処理を説明する。図7は、その処理を示したフローチャートである。
まず、受信部101は、受信したデータパケットが経路要求パケットであるか否かを判定する(STEP701)。受信部101は、受信したデータパケットが経路要求パケットでない場合(STEP701でNo)、経路要求パケットを受信するまで、STEP701の処理を繰り返す。一方、受信部101が受信したデータパケットが経路要求パケットである場合(STEP701でYes)、以下の処理が順に実行される。
更新部103は、受信した経路要求パケットに含まれる始点アドレス303もしくは中継装置アドレス308に自らのアドレスが存在するか否かを判定する(STEP702)。始点アドレス303もしくは中継装置アドレス308に自らのアドレスが存在する場合(STEP702でYes)、更新部103は、受信した経路要求パケットは以前に自装置を通過あるいは自装置により生成されたものであると判定し、その経路要求パケットをパケット破棄部108に出力することにより、破棄する(STEP713)。一方、始点アドレス303もしくは中継装置アドレス308に自らのアドレスが存在しない場合(STEP702でNo)、更新部103は、受信した経路要求パケットは以前に自装置を通過したものでないと判定して、その経路要求パケットに対して以下の更新処理を行う。
経路要求パケットを受信した後、更新部103は、経路要求パケットに含まれる評価基準値を更新し、経路評価値を算出する(STEP703)。この評価基準値の更新処理と経路評価値の算出処理については後述する。
つぎに、重複検知部104は、更新部103により出力された経路要求パケットに含まれる始点アドレス303に対応する経路要求パケット番号403を重複管理テーブル401から取得する。そして、重複検知部104は、更新部103により出力された経路要求パケットの経路要求パケット番号304が取得された経路要求パケット番号403より小さいか否か判定する(STEP704)。経路要求パケット番号304が経路要求パケット番号403よりも小さい場合(STEP704でYes)、受信した経路要求パケットは過去の経路探索に使用されたものであるので、重複検知部104はその経路要求パケットをパケット破棄部108に出力することにより、破棄する(STEP713)。
経路要求パケット番号304が経路要求パケット番号403よりも小さくない場合(STEP704でNo)、重複検知部104は、経路要求パケット番号304が経路要求パケット番号403と等しいか否か判定する(STEP705)。経路要求パケット番号304が経路要求パケット番号403と等しくない、すなわち経路要求パケット番号304が経路要求パケット番号403よりも大きい場合(STEP705でNo)、重複検知部104は受信した経路要求パケットが初めて受信されたものであると判定する。そして、重複検知部104は、重複管理テーブル401の経路要求パケット番号403を、受信した経路要求パケットに含まれていた経路要求パケット番号304の値に更新する(STEP706)。つぎに、タイマ107は、重複検知部104により出力された経路要求パケットの条件識別子306とその経路評価値より待機時間を算出する(STEP707)。そして、タイマ107は、重複管理テーブル401のタイマ状態を「設定中」に更新し、算出した待機時間を設定したタイマを開始する(STEP708)。その後、パケット保存部106は受信した経路要求パケットを保存する(STEP711)。さらに、パケット保存部106は保存経路数をインクリメントする(STEP712)。STEP712の終了後、STEP701の処理が実行される。
一方、経路要求パケット番号304が経路要求パケット番号403と等しい場合(STEP705でYes)、重複検知部104は受信した経路要求パケットが重複受信されたものであると判定して、さらに重複管理テーブル401に格納されたタイマ状態404が「設定中」か「満了」であるかを判定する(STEP709)。タイマ状態404が「満了」であった場合(STEP709で「タイマ満了」)、重複検知部104は、受信した経路要求パケットをパケット破棄部108に出力することにより破棄する(STEP713)。経路要求パケットが破棄されると、STEP701の処理が実行される。
タイマ状態404が「設定中」であった場合(STEP709で「タイマ設定中」)、比較部105は、受信した経路要求パケットの経路評価値と、パケット保存部106により保存されている経路要求パケットの経路評価値とを比較する(STEP710)。
受信した経路要求パケットに含まれる経路評価値が、パケット保存部106が保存している経路要求パケットの経路評価値のいずれよりも小さいと判定した場合(STEP710でYes)、比較部105は、パケット保存部106が保存している経路要求パケットの数が受信した経路要求パケットに含まれる要求経路数よりも少ないか否かを判定する(STEP714)。パケット保存部106が保存している経路要求パケットの数がその要求経路数と等しいと判定した場合(STEP714でNo)、比較部105は、受信した経路要求パケットをパケット破棄部108に出力することにより破棄する(STEP713)。逆に、パケット保存部106が保存している経路要求パケットの数がその要求経路数よりも少ないと判定した場合(STEP714でYes)、比較部105は、受信した経路要求パケットをパケット保存部106に出力し、パケット保存部106はその経路要求パケットを保存する(STEP711)。さらに、パケット保存部106は保存経路数をインクリメントする(STEP712)。STEP712の終了後、経路要求パケット受信処理(STEP701)に戻る。
一方、受信した経路要求パケットに含まれる経路評価値が、パケット保存部106が保存している経路要求パケットの経路評価値のいずれか1つより大きいと判定した場合(STEP710でNo)、比較部105は、パケット保存部106が保存している経路要求パケットの数が受信した経路要求パケットに含まれる要求経路数よりも少ないか否かを判定する(STEP715)。比較部105は、パケット保存部106が保存している経路要求パケットの数が要求経路数よりも少ないと判定した場合(STEP715でYes)、パケット保存部106は、その経路要求パケットを保存し(STEP711)、保存経路数をインクリメントする(STEP712)。そして、STEP701の処理が実行される。一方、比較部105は、パケット保存部106が保存している経路要求パケットの数が要求経路数と等しいと判定した場合(STEP715でNo)、受信した経路要求パケットをパケット保存部106に出力し、パケット保存部106は、保存している経路要求パケットのうち評価基準値307が最小の経路要求パケットを、受信した経路要求パケットに書き換える(STEP716)。STEP716の終了後、STEP701の処理が実行される。
つぎに、更新部103がSTEP703において実行する評価基準値の更新処理と経路評価値の算出処理の詳細を、図8を用いて、説明する。
まず、更新部103は、受信した経路要求パケットに関する直前の中継装置アドレスを以下のいずれかの方法により取得する(STEP800)。
方法1:経路要求パケット内に記載されている中継装置アドレス308のうち最後尾に記載されている中継装置アドレスを取得する。
方法2:自装置が最初の中継装置である場合は、中継装置アドレス308の替わりに始点アドレス303を取得する。
方法3:パケットヘッダに当該経路要求パケットを送信した装置のアドレスが含まれている場合は、直前の中継装置アドレスとしてそのアドレスを取得する。
つぎに、更新部103は受信した経路要求パケットに含まれる条件識別子306を取得する(STEP801)。そして、更新部103は受信した経路要求パケットに含まれる中継装置アドレス308に自らのアドレスを追加する(STEP802)。それから、更新部103は受信した経路要求パケットに含まれていた条件識別子306の値に応じて、以降の処理を切り替える(STEP803)。
条件識別子が「1」に設定されている場合、更新部103は、直前の中継装置アドレスと同じ隣接装置アドレス202に関する帯域の最新測定値203を、測定値管理テーブル201から取得する(STEP805)。つぎに、更新部103は、受信した経路要求パケットの最後の評価用測定値(1)に、取得した最新の測定値203を追加する(STEP806)。その後、更新部103は、受信した経路要求パケットに含まれている全ての評価値を用いて通過経路全体を通じた帯域を算出する(STEP807)。通過経路全体を通じた帯域は、経路要求パケットに含まれる全ての評価用測定値(1)の逆数を求め、その総和の逆数を求めることにより算出される。そして、更新部103は、受信した経路要求パケットの評価基準値(1)を算出した帯域に更新する(STEP808)。最後に、評価基準値(1)をもとに経路評価値を算出する(STEP809)。この場合、更新部103は、評価基準値307の値、あるいはその値を正規化した値などを経路評価値として算出する。以上によって、評価基準値更新、経路評価値算出処理を終了する。
条件識別子が「2」または「5」に設定されている場合、更新部103は、直前の中継装置アドレスと同じ隣接装置アドレス202に関する最小測定値206を測定値管理テーブル201から取得する(STEP810)。つぎに、更新部103は、受信した経路要求パケットに含まれる評価基準値(1)を取得する(STEP811)。その後、更新部103は、受信した経路要求パケットに含まれる評価基準値(1)と最小測定値206とを比較する(STEP812)。最小測定値206が評価基準値(1)より小さいと判定した場合(STEP812でYes)、更新部103は評価基準値(1)を最小測定値206の値に更新する(STEP808)。一方、最小測定値206が評価基準値307より大きいと判定した場合、評価基準値(1)を更新しない。そして、更新部103は評価基準値(1)の値、あるいはその値を正規化した値などを経路評価値として算出する(STEP809)。以上によって、評価基準値更新、経路評価値算出処理を終了する。
条件識別子が「3」に設定されている場合、更新部103は経路要求パケットが自装置に到達した時刻と評価基準値の時刻との時間差あるいはその時間差を正規化した値などを経路評価値として算出し(STEP809)、処理を終了する。
条件識別子が「4」に設定されている場合、更新部103は受信した経路要求パケットに含まれる評価基準値(1)を取得して、その値をインクリメントする(STEP804)。そして、更新部103は評価基準値(1)をインクリメントした値に更新する(STEP808)。つぎに、更新部103はホップ数が小さくなるほど大きくなる値、例えばホップ数の逆数、あるいはその逆数を正規化した値などを経路評価値として算出し(STEP809)、処理を終了する。
条件識別子が「6」に設定されている場合、更新部103は、受信した経路要求パケットに含まれる評価基準値307のうち評価基準値(1)をインクリメントする(STEP813)。つぎに、更新部103は、直前の中継装置アドレスと同じ隣接装置アドレス202に関する最小測定値206を測定値管理テーブル201から取得する(STEP814)。そして、更新部103は、受信した経路要求パケットに含まれる評価基準値307のうち評価基準値(2)を取得し(STEP815)、最小測定値206と評価基準値(2)とを比較する(STEP816)。最小測定値206が評価基準値(2)よりも小さいと判定した場合(STEP816でYes)、更新部103は、評価基準値(2)を最小測定値206に更新する(STEP808)。そして、更新部103は、更新された評価基準値(1)、評価基準値(2)に対応する経路評価値(1)、経路評価値(2)を算出して(STEP809)、処理を終了する。一方、最小測定値206が前記評価基準値(2)よりも大きいと判定した場合(STEP816でNo)、更新部103は評価基準値(1)に対応する経路評価値(1)、もとの評価基準値(2)に対応する経路評価値(2)を算出して(STEP809)、処理を終了する。
一方、通信装置は、通信要求がないと判定した場合(STEP501でNo)、パケット保存部106により保存されている経路要求パケットのうち、タイマが満了している経路要求パケットがあるか否かを判定する(STEP511)。通信装置は、タイマが満了している経路要求パケットがないと判定した場合(STEP511でNo)、STEP501の処理を実行する。一方、通信装置は、タイマが満了している経路要求パケットがあると判定した場合(STEP511でYes)、STEP512の処理を実行する。
通信装置は、タイマが満了している経路要求パケットがあると判定した場合、その経路要求パケットの終点アドレスが自らのアドレスであるか否かを判定する(STEP512)。その終点アドレスが自らのアドレスであると判定した場合(STEP512でYes)、通信装置は、始点装置に経路を返信するための返信用経路要求パケットを生成する(STEP513)。この返信用経路要求パケットの生成処理は以下の通りである。まず、通信装置は、その終点アドレスが自らのアドレスである経路要求パケットにおいて、終点アドレスと始点アドレスを入れ替える。つぎに、通信装置は、その経路要求パケットの要求経路数を「0」に設定する。
返信用経路要求パケットを生成すると、通信装置は、重複管理テーブル401のタイマ状態404を「満了」に更新する(STEP514)。そして、通信装置は、返信用経路要求パケットをユニキャスト送信し(STEP515)、STEP511の処理を実行する。
一方、その終点アドレスが自らのアドレスでないと判定した場合(STEP512でNo)、通信装置は、重複管理テーブル401のタイマ状態404を「満了」に更新する(STEP516)。つぎに、通信装置は、パケット保存部106において保存されている経路要求パケットをブロードキャスト送信し(STEP517)、STEP511の処理を実行する。
つぎに、本実施形態の具体例として、電力線通信(Power Line Communication、以下、「PLC」という。)ネットワークに適用した例を、図9と図10を用いて説明する。ただし、以下の開示の全てまたは一部は、例えば、無線ネットワーク等、他のネットワーク形式にも適用可能である。
図9は本実施例におけるネットワークの構成を示す図である。本実施の形態のネットワークは、通信装置901〜906で構成されている。説明の便宜上、通信装置901〜906は、符号の順序に合わせて、アルファベット順にノードA〜ノードFと呼ぶことにする。さらに、通信装置901〜906の各アドレスは、符号の順序に合わせて、アルファベット順にA〜Fであるとする。PLCネットワークにおいては、各通信装置はPLCモデムを指し、それぞれ他の装置との間で音声、動画または通常のデータなどを通信する。
PLCネットワークにおいては、全ての通信装置は電力線により互いに物理的に接続されている。このため、電力線上を伝送されるデータ信号は距離減衰やノイズの影響を受け、通信装置の組み合わせによっては直接通信することができない。図9では、直接通信できる装置間を実線で接続して示している。また、実線毎に記載されている数値は、実線で接続されている2つの装置間で通信を行った場合に期待できる最新の帯域を示す。
以下では、ノードAが、直接通信できないノードDとの間でデータ通信を開始する場合を例に挙げて説明する。ここで、ノードAを始点ノード、ノードDを終点ノードと呼ぶことにする。
ノードAは、通信されるデータ種別に応じた条件を指定して経路を探索する。本実施形態では、データ種別に応じた条件の一例として、以下の条件を用いる。音声データの場合は、始点ノードから終点ノード間で遅延が最小、またはホップ数が最小という条件を用いる。動画データの場合は、経路の最小保証帯域が最大という条件を用いる。通常のデータの場合は、経路の帯域が最大、または通信接続時間が長いという条件を用いる。
図10は、本実施の形態において、ノードAからノードDへデータ通信を要求し、ノードAがノードDへの経路を探索する際のシーケンス図である。図10において、送信、受信を枠付きで表示した箇所は、各ノードでの送信、受信処理とその識別番号を示し、その間にある点線矢印はブロードキャストにより経路要求パケットが送信されたことを示す。点線矢印上に四角の枠で囲まれた記号と数字は、送信された経路要求パケットの内容を表し、それぞれ始点ノードから当該ノードまで通過したノードのアドレス(以降、通過ノードアドレスと呼ぶ)とその経路の評価基準値を表す。なお、経路要求パケットの送信先での×印は、そのノードの更新部103、重複検知部104、比較部105のいずれかが受信された経路要求パケットを破棄したことを表す。また、各ノードで経路要求パケットを受信してから送信するまでの太線は、凡例にも示すように、待機時間を表す。さらに、各ノードの受信を示す箇所の左下には、各ノードが受信して更新した経路要求パケットと先に受信してパケット保存部106により保存されていた経路要求パケットの両方の、通過ノードアドレスと、更新後の評価基準値が枠に囲まれて表示されている。そのうち、更新後にパケット保存部106により保存される経路要求パケットは実線枠に囲まれて表示されており、更新後に破棄される経路要求パケットは点線枠に囲まれて表示されている。最後に、終点ノードであるノードDから出た一点鎖線の矢印は、始点ノードに対して返信用経路要求パケットをユニキャストで返信されたことを表す。
ノードAは、通信開始要求が発生した際に、図6に示された処理に基づき経路要求パケットを作成し、他のノードに送信する。以降、ノードAが送信する経路要求パケットは、要求経路数が「1」、条件識別子が「1」、送信する経路要求パケット番号が「120」に設定されているとして、詳細を説明する。
ノードAが経路要求パケットを送信する(送信1)と、ノードB、F、Cは、その経路要求パケットを受信する(受信1、受信2、受信3)。ノードB、F、Cは、受信した経路要求パケットについて、図8に示された方法に基づき、評価基準値を更新し、経路評価値を算出する。まず、ノードB、F、Cは、受信した経路要求パケットの条件識別値が「1」に設定されているので、図2の測定値管理テーブル201より、ノードAのアドレスであるアドレスAと同じ隣接装置アドレス202の帯域に関する最新測定値203を取得する。ここで、各ノード間の最新の帯域は図9に示された通りであるので、ノードBが取得する最新の帯域は100、ノードCが取得する最新の帯域は5、ノードFが取得する最新の帯域は50となる。つぎに、ノードB、F、Cは取得した最新の帯域をもとに、評価基準値と経路評価値を算出する。ここで、受信した経路要求パケットは初めて受信したものであり、かつそのパケットの条件識別値が「1」に設定されているので、算出される評価基準値と経路評価値は、最新測定値203と同じ値となる。それから、ノードBは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「B、100」を追加し、評価基準値を「100」に更新する(「受信1」の左下)。同様に、ノードFは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「F、50」を追加し、評価基準値を「50」に更新する(「受信2」の左下)。ノードCは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「C、5」を追加し、評価基準値を「5」に更新する(「受信3」の左下)。
また、ノードB、F、Cは、重複管理テーブル401に、始点アドレス402として「A」を、経路要求パケット番号403として「120」を記憶する。さらに、ノードB、F、Cは、前記のように算出される経路評価値に応じて経路要求パケットを送信するまでの待機時間を決定し、その待機時間のタイマを設定する。ここで、経路評価値が高いほど短い待機時間が設定されるので、ノードB、F、Cの順に短い待機時間が設定される。
以下では、タイマが満了したノードが経路要求パケットを送信し、他のノードが2番目以降の経路要求パケットを受信する際の処理について述べる。
最初にタイマが満了したノードBは、保存していた経路要求パケットをブロードキャストする(送信2)。ノードBが送信する経路要求パケットは、中継装置アドレスと評価用測定値が「B、100」、評価基準値が「100」に設定されている。
ノードAは、この経路要求パケットを受信する(受信100)が、受信した経路要求パケットに含まれる始点アドレスが自らのアドレスであるため、受信した経路要求パケットを破棄する。この処理により、ループ経路が生成されることを防ぐとともに、無駄な経路要求パケットがブロードキャストされることを防ぐ。また、ノードAは経路評価値の比較等の不要な判定を行わないので、処理負荷が軽減される。
一方、ノードF、C、Eも、この経路要求パケットを受信する(受信4、5、6)が、受信した経路要求パケットの中継装置アドレスに自らのアドレスが含まれていないため、図8に示された方法に基づき、経路要求パケットを更新する。
ノードEは、受信した経路要求パケットが最初の経路要求パケットであるため、前記と同様の処理により、受信した経路要求パケットの中継装置アドレスと評価用測定値に「E、50」を加え、評価基準値を「33」に更新する(「受信6」の左下)。そして、算出される待機時間に応じて、タイマを設定する。
ノードFは、図2の測定値管理テーブル201より、直前の中継装置であるノードBのアドレス(アドレスB)と同じ隣接装置アドレス202の帯域に関する最新測定値203(100)を取得する。さらに、ノードFは、この測定値(100)と、評価用測定値309に記載されているノードAとノードBの間の帯域(100)から、それぞれの逆数の和(1/100+1/100=1/50)を求め、その逆数(50)を新たな評価基準値として算出する。また、そのパケットの条件識別値が「1」に設定されているので、ノードFは、経路評価値も50として算出する。そして、ノードFは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「F、100」を加え、評価基準値を「50」に更新する(「受信4」の左下)。
つぎに、ノードFは、受信した経路要求パケットの経路要求パケット番号304(120)と重複管理テーブル401の経路要求パケット番号403(120)が同じ番号であるので、受信した経路要求パケットが重複受信されたものであることを確認する。この場合、ノードFは、最初に受信して保存されている経路要求パケットの経路評価値(50)と、2番目に受信した経路要求パケットの経路評価値(50)を比較する。要求経路数が「1」に設定されているため、ノードFは、経路評価値が大きい経路要求パケットを保存し、経路評価値が小さい経路要求パケットを破棄する必要があるが、これら2つの経路要求パケットは経路評価値が等しい。そこで、ノードFは、これらの経路要求パケットのうちホップ数がより少ない経路要求パケット、すなわち最初に受信した経路要求パケットをそのまま保存し、2番目に受信した経路要求パケットを破棄する(「受信4」の左下)。このように、経路評価値が同じ経路が複数ある場合、ホップ数の少ない経路を選択することにより、始点ノードから終点ノードへの通信時にパケットを中継する回数を少なくし、始点ノードから送信されたデータが終点ノードに届くまでの遅延時間を小さくすることができる。
同様に、ノードCは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「C、11」を加え、評価基準値を「10」に更新する(「受信5」の左下)。ノードCにおいては、2番目に受信した経路要求パケットの経路評価値(10)が最初に受信して保存されている経路要求パケットの経路評価値(5)より大きい。したがって、ノードCは、中継装置アドレスと評価用測定値が「B、100」、「C、11」、評価基準値が「10」である2番目に受信した経路要求パケットを保存する(「受信5」の左下)。
つぎに、2番目にタイマが満了したノードFが、中継装置アドレスと評価用測定値が「F、50」、評価基準値が「50」である、保存していた経路要求パケットをブロードキャストする(送信3)。ノードAは、その経路要求パケットを受信する(受信101)と、受信した経路要求パケットに自らのアドレスが含まれているため、その経路要求パケットを破棄する。ノードC、Eは、そのパケットを受信する(受信7、受信8)と、保存するパケットを、受信した経路要求パケットに更新する。ノードBはタイマ満了後に経路要求パケットを受信した(受信102)ので、これを破棄する。このように、各ノードはタイマ満了後に受信した経路要求パケットを破棄するので、各装置の処理負荷は軽減される。さらに、次の中継装置は、始点アドレスと終点アドレスが同じ経路要求パケットをタイマ満了後に処理する必要がなくなる。
上記に述べた処理を繰り返すことにより、終点装置であるノードDは、タイマ満了時に、中継装置アドレスと評価値が「F、50」「E、200」「D、200」、経路評価値が「33」である、2番目に受信した経路要求パケットを保存している(「受信10」の左下)。ノードDは、このパケットの終点アドレスと始点アドレスを入れ替え、要求経路数を「0」に設定した返信用経路要求パケットを生成し、もとの経路要求パケットが中継された逆の経路で始点ノードへユニキャスト送信する(送信6)。このように、終点ノードが最終的に決定した経路要求パケットを始点ノードに返信することにより、通信経路が設定される。
以上説明したように、第1の実施形態によれば、タイマ107が最初の経路要求パケットの受信から所定の待機時間を設定し、重複検知部104が待機時間内に受信した経路要求パケットの中で重複して経路要求パケットを受信したかを判定する。重複受信している場合は比較部105で経路評価値が高い経路要求パケットを要求経路数だけ選択する。そして、送信部109が前記選択した経路要求パケットを隣接装置へ送信する。これにより、経路探索のために送信される経路要求パケットの数を削減して帯域の消費を抑えつつ、始点装置と終点装置との間において経路の状態を示す経路評価値が高い経路を作成することができる。
また、タイマ107は、受信した経路要求パケットから算出した経路評価値に応じて待機時間を設定する。これにより、各装置が経路要求パケットを送信するタイミングを分散させることができるので、待機時間を固定した場合と比較して、各装置が送信する経路要求パケットが衝突する可能性を低くすることができる。
さらに、タイマ107は、最初に受信した経路要求パケットから算出した経路評価値が低いほど待機時間を長く設定する。これにより、各装置は、始点装置との間の経路評価値が低い場合に、経路評価値が高い経路を介して他の経路要求パケットを受信する可能性を高くすることができるので、各装置が経路評価値の高い経路をより確実に探索することができる。
また、始点装置が経路要求パケットの要求経路数を設定でき、中継装置は、経路要求数の数だけ経路要求パケットを送信する。これにより、例えば伝送路の状態が頻繁に変化している場合に、始点装置が作成する経路数を増やして全ての経路で通信ができなくなる可能性を低くすることができる。逆に、そうでない場合には、始点装置が作成する経路数を減らして経路作成のために送信されるパケット数を制限することができる。したがって、安定した通信の確保と帯域消費の抑制とを両立することができる。
なお、経路要求パケットのフォーマットは、以下に述べる拡張がされていてもよい。まず、経路上の各中継装置とその直前の中継装置との間で測定された通信の状態を全て保存しなくても、条件識別子306に対応する評価基準値307を算出することができる場合は、経路要求パケット301は評価用測定値309を含まなくてもよい。これにより、経路要求パケットのパケット長が短くなるので、経路要求パケットの送信により消費される帯域をより小さくすることができる。例えば、条件識別子が「2」「5」に設定されている場合、特定の通信の状態に関する経路上での最小値が評価基準値307となり、各中継装置は、自らの測定値とその最小値のうち、小さいものを新たな評価基準値307に置き換えていけばよいので、評価用測定値309として各通信装置間の通信の状態を加える必要はない。条件識別子が「3」に設定されている場合、始点装置が評価基準値307の値を設定した後、中継装置が評価基準値307を更新する必要がないので、評価用測定値309は必要ない。条件識別子が「4」に設定されている場合、始点装置が評価基準値307の値を0に設定した後、各中継装置が評価基準値307に1を加えていくだけなので、評価用測定値309は必要ない。さらに、条件識別子「6」に設定されている場合、条件識別子が「2」「5」に設定されている際に必要な評価基準値307が算出されればよいので、評価用測定値309は必要ない。したがって、条件識別子「1」〜「6」のうち、「1」に設定されている場合にのみ、経路要求パケット301は評価用測定値309を必ず含み、その評価用測定値309は各中継装置とその直前の中継装置との間で測定された最新の通信帯域となる。
ただし、条件識別子306が「2」〜「6」に設定されていても、経路要求パケット301は評価用測定値309を付加的に含んでいてもよい。また、経路要求パケット301は各中継装置間における特定の通信の状態を評価用測定値309として含む代わりに、評価基準値307を含まなくてもよい。この場合、各中継装置は、評価用測定値309の値をもとに評価基準値307を計算する。
また、条件識別子306が「2」、「6」に設定されている場合、経路要求パケット301は評価用測定値309として、最小測定値206ではなく、最新測定値203を含む態様であってもよい。これにより、経路評価値が等しい経路要求パケットが複数受信された場合に、経路全体を通じた最新の帯域を算出して、次の選択基準として使用することもできる。
さらに、条件識別子306は前記に示した6種類にとどまらない。例えば、条件識別子「1」「2」に加えて、過去の通信状態の履歴に基づいて帯域の平均値を加えた態様でも構わない。条件識別子「3」に加えて、各装置の測定部102で自装置と隣接装置との間で送信されるHelloパケットに送信時刻を付加して、定期的に遅延時間を測定し、過去の一定時間内での平均値もしくは最大値を求め、経路要求パケットが通過した経路上の各中継装置間でのそれらの総和を算出し、評価基準値とした態様でも構わない。条件識別子「5」においても、過去の通信状態の履歴に基づいて、通信継続時間の平均値もしくは最小値を利用した態様でも構わない。
さらに、始点装置が複数の条件の組み合わせから最適な経路を探索する態様でもよい。その場合、始点装置は、経路要求パケット301の条件識別子306に複数の条件を表す識別子を、評価基準値307にそれらの条件に対応する複数の経路の状態を示す値を設定する。ただし、各装置が複数の条件の優先順位が識別できること、各装置が評価基準値307に設定される各評価基準値が各条件識別子のどれに対応しているか識別できること、の2つの要件を満たす必要がある。この要件を満たすために、例えば、条件識別子306には、前記複数の条件のうち、優先される条件の順に条件識別子が設定され、評価基準値307には、優先される条件の順に、対応する評価基準値を順に設定されるとよい。この設定方法において、最新の通信状態に基づき帯域が最大となり、かつ複数の経路で帯域の値が同じ場合にホップ数が少ない経路を探索する場合、条件識別子306は、「1」「4」の順に設定される。また、評価基準値307に評価基準値(1)と評価基準値(2)の2つの領域が確保され、評価基準値(1)には経路上の各中継装置間における最新の通信状態をもとに推定される、始点装置から自装置までの通信帯域が格納され、評価基準値(2)にはホップ数が格納される。さらに、評価基準値(1)に対応する評価用測定値309である評価用測定値(1)も合わせて確保され、評価用測定値(1)には各中継装置とその直前の中継装置との間で測定された最新の通信帯域が格納される。
さらに、第1の実施形態では、経路要求パケットの要求経路数が「1」より大きい場合、送信部109は複数の経路要求パケットの内容をまとめて記述して送信してもよい。
(第2の実施形態)
上記第1の実施形態では、各装置が最初に受信した経路要求パケットによって待機時間を設定し、それ以降は待機時間を更新しないとしていた。しかし、最初に受信した経路要求パケットによって設定された待機時間が必ずしも適切ではない場合もある。例えば、設定した待機時間が長すぎる場合、各中継装置が経路要求パケットを送信するまでの待機時間が長くなり、経路が設定されるまで長い時間を要する。その結果、データの通信開始が遅れてしまう。一方、設定した待機時間が短すぎる場合、待機時間経過後により高い経路評価値を有する経路要求パケットを受信しても、破棄してしまう可能性が高まる。
そこで、第2の実施形態では、経路評価値が高い経路を出来るだけ早く設定するため、通信装置は、受信した経路要求パケットの経路評価値がある条件を満たした場合に、最初に設定した待機時間を短縮する。あるいは、タイマの満了を待たずに、経路要求パケットを送信する例について説明する。
図11は、本発明の第2の実施形態に係る通信装置の機能ブロック図である。図11は、図1と構成の数、種類は同じであるが、本実施の形態では、比較部105がタイマ107を更新したり、タイマ107の値を参照したりするため、比較部105とタイマ107が直接接続されている。
つぎに、本実施の形態について各構成の動作を説明する。図11に示す本実施の形態の各構成は、比較部105の動作のみが異なる。比較部105は、第1の実施形態の動作に加えて、新しく受信した経路要求パケットと先に受信した経路要求パケットの待機時間、経路評価値、ホップ数を比較し、所定の条件のもと、タイマ107の待機時間の短縮、延長を実施する。また、比較部105は、始点装置及び終点装置が同一の経路要求パケットが所定の閾値の数だけ受信した場合、タイマ107に設定された待機時間を満了させる。
また、本実施の形態における経路要求パケット301は、評価基準値307にホップ数を記載する領域として、評価基準値(0)が追加される。さらに、経路要求パケット301はタイマの満了時刻が延長されたことを示すフラグを含んでいてもよい。この場合、経路要求パケット内にタイマの満了時刻が延長されたことを示すフラグが立っていることを検知した他の装置のタイマ107は、その経路要求パケットを送信した装置が後から送信されるであろう経路評価値の高い経路要求パケットを受信するため、新たなタイマを設定するとよい。
以上のように構成された通信装置について、図12〜図14を用いてその動作を説明する。図12は、本実施の形態における各装置が実行する、経路要求パケットの受信処理を示すフローチャートである。なお、図12では、で示した第1の実施形態における受信処理と同じ処理については、図7と同じ符号を付けている。ここでは、図7と相違する点について説明する。
STEP1201は、図7のSTEP703に対応する処理である。受信部101が経路要求パケットを受信すると、更新部103が評価基準値更新、経路評価値算出処理を行う(STEP1201)。図13は、STEP1201の処理を示すフローチャートである。なお、図13では、図8で示した第1の実施形態における評価基準値更新、経路評価値算出処理と同じ処理については、図8と同じ符号を付けている。ここでは、図8と相違する点について説明する。
STEP803による条件識別子による処理の分岐の前に、更新部103は評価基準値(0)をインクリメントする(STEP1301)。これは、第2の実施形態では、条件識別子に無関係に、ホップ数を経路探索に利用するためである。つぎに、更新部103は評価基準値の更新の際に、評価基準値(0)も他の評価基準値と併せて更新する(STEP1302)。最後に、更新部103は、他の経路評価値に併せて、評価基準値(0)に関する経路評価値を第2の経路評価値として算出する(STEP1303)。第2の経路評価値はホップ数をもとに算出されるので、更新部103はホップ数が小さくなるほど大きくなる値、例えばホップ数の逆数、あるいはその逆数を正規化した値などを経路評価値として算出する。以降の説明では、第2の経路評価値以外の経路評価値を第1の経路評価値と呼ぶことにする。なお、この第1の経路評価値は、第1の実施形態での経路評価値と同じである。
なお、本実施の形態では、経路要求パケットの評価基準値(0)にホップ数が格納されているため、条件識別子が「4」、「6」のときは、評価基準値(0)の値を評価基準値(1)の代わりに利用してもよい。したがって、図13にも点線で示したように、STEP804やSTEP813の処理は省略し、以降の処理において評価基準値(0)の値を利用してもよい。
以上の評価基準値更新、経路評価値算出処理(図12のSTEP1201)を更新部103が終了すると、重複検知部104が重複受信した経路要求パケットがタイマ満了前に受信されたものであると判定すると(STEP709で「タイマ設定中」)、比較部105がタイマ変更処理を行う(STEP1202)。図14は比較部105が実行するタイマ変更処理を示すフローチャートである。
まず、比較部105は、始点アドレスと経路要求パケット番号が等しい経路要求パケットをいくつ受信したのかを示す受信経路要求パケット数をインクリメントする(STEP1401)。この場合、受信経路要求パケット数を記憶するため、重複管理テーブル401の構成要素に、受信経路要求パケット数が追加されていることが望ましい。
続いて、比較部105は、受信経路要求パケット数が閾値以上であるか否かを判定する(STEP1402)。この所定の閾値は、経路評価値の高い経路を作成するために十分な数の経路要求パケットを受信できる数である。この閾値は、典型的には各装置にあらかじめ格納されている。なお、始点装置が経路要求パケット301内にその閾値を別途格納してもよい。また、要求経路数305に対して閾値がその何倍にあたるかのみが各装置共通に設定されており、始点装置が定めた要求経路数305に応じて、各装置が閾値を算出してもよい。さらには、各装置が自らを中継する経路要求パケットを定常的に測定し、経路要求パケット数の最適な閾値を学習によって定める態様であってもよい。受信経路要求パケット数が閾値以上であると判定した場合(STEP1402でYes)、比較部105は先に設定したタイマを満了させ(STEP1403)、タイマ変更処理を終了する。
一方、受信経路要求パケット数が閾値未満であると判定した場合(STEP1402でNo)、比較部105は受信した経路要求パケットの第1の経路評価値を取得する(STEP1404)。つぎに、比較部105は取得した第1の経路評価値が、パケット保存部106が保存している全ての経路要求パケットにおけるいずれの第1の経路評価値よりも大きいか否かを判定する(STEP1405)。
取得した第1の経路評価値がより大きいと判定した場合(STEP1405でYes)、比較部105は受信した経路要求パケットの第2の経路評価値を取得する(STEP1406)。つぎに、比較部105は、取得した第2の経路評価値が、パケット保存部106が保存している全ての経路要求パケットにおけるいずれの第2の経路評価値よりも小さいか否かを判定する(STEP1407)。
取得した第2の経路評価値がより小さいと判定した場合(STEP1407でYes)、比較部105は、取得した第1の経路評価値に基づいて待機時間を算出する(STEP1408)。つぎに、比較部105は算出した待機時間に基づいて新しいタイマを設定し(STEP1409)、タイマ変更処理を終了する。
取得した第2の経路評価値が、パケット保存部106が保存しているいずれかの経路要求パケットの第2の経路評価値以上であると判定した場合(STEP1407でNo)、比較部105は、取得した第1の経路評価値に基づいて待機時間を算出する(STEP1413)。つぎに、比較部105は、算出した待機時間と、現在設定中のタイマの残り時間とを比較する(STEP1414)。算出した待機時間が現在設定中のタイマの残り時間よりも短い場合、比較部105は、現在設定中のタイマを算出した待機時間に更新して(STEP1415)、タイマ変更処理を終了する。一方、算出した待機時間が現在設定中のタイマの残り時間以上の場合(STEP1414でNo)、比較部105はそのままタイマ変更処理を終了する。
取得した第1の経路評価値が、パケット保存部106が保存しているいずれかの経路要求パケットの第1の経路評価値以下であると判定した場合(STEP1405でNo)、比較部105は取得した経路要求パケットの第1の経路評価値が、パケット保存部106が保存している全ての経路要求パケットにおけるいずれの第1の経路評価値よりも小さいか否かを判定する(STEP1410)。取得した第1の経路評価値が、パケット保存部106が保存しているいずれかの経路要求パケットの第1の経路評価値と等しいと判定した場合(STEP1410でNo)、比較部105はそのままタイマ変更処理を終了する。
取得した第1の経路評価値がより小さいと判定した場合(STEP1410でYes)、比較部105は受信した経路要求パケットの第2の経路評価値を取得する(STEP1411)。つぎに、比較部105は、取得した第2の経路評価値が、パケット保存部106が保存している全ての経路要求パケットにおけるいずれの第2の経路評価値よりも小さいか否かを判定する(STEP1412)。取得した第2の経路評価値がより小さいと判定した場合(STEP1412でYes)、比較部105は、タイマを満了して(STEP1403)、タイマ変更処理を終了する。一方、取得した第2の経路評価値が、パケット保存部106が保存しているいずれかの経路要求パケットの第2の経路評価値以上であると判定した場合(STEP1412でNo)、比較部105はそのままタイマ変更処理を終了する。
つぎに、第2の実施形態における発明を適用した具体例を図15、16を用いて説明する。図15は本実施形態におけるネットワークの構成を示す図である。図15では、図9と同様に、直接通信できる装置間を実線で接続して示している。また、実線毎に記載されている数値は、実線で接続されている2つの装置間で期待できる最新の通信帯域を示す。説明の便宜上、通信装置901〜906は、符号の順序に合わせて、アルファベット順にノードA〜ノードFと呼ぶことにする。さらに、通信装置901〜906の各アドレスは、符号の順序に合わせて、アルファベット順にA〜Fであるとする。本実施例でも、ノードA(始点ノード)が、直接通信できないノードD(終点ノード)との間で通信されるデータ種別に応じた条件を指定して経路を探索する場合を例に挙げて以下説明する。
図16は、本実施の形態において、ノードAからノードDへデータ通信開始要求が発生し、ノードAがノードDへの経路を探索する際のシーケンス図である。図16に示されている記号のうち、図10と同じ形態で記されている記号は図10と同じ内容を指す。図16では、凡例に記された内容が図10と異なる。まず、待機時間Aは、最初に受信した経路要求パケットの経路評価値に基づいて設定された待機時間を指す。待機時間Aの短縮時間は、図14のSTEP1403、もしくはSTEP1415の処理により、待機時間Aが短縮された時間長を指す。待機時間Aの再短縮時間は、一度待機時間Aが短縮された後、図14のSTEP1403、もしくはSTEP1415の処理が再度されることにより、待機時間Aの短縮時間に加えて、さらに待機時間Aが短縮された時間長を指す。つぎに、待機時間Bは、図14のSTEP1409の処理により、新たに設定されたタイマの待機時間を指す。待機時間Bの短縮時間は、待機時間Bのタイマが設定された後、図14のSTEP1403、もしくはSTEP1415の処理がされることにより、待機時間Bが短縮された時間長を指す。
本実施例では、待機時間中に受信する経路要求パケット数の閾値(図14のSTEP1402の閾値)が「4」に設定されており、各中継装置はタイマが満了しなくても4番目の経路要求パケットを受信した時点で、その時点で保存している経路要求パケットを送信するものとする。
ノードAは、データ通信開始要求が発生すると経路要求パケットを作成する。本実施例では、ノードAが送信する経路要求パケット301は、経路要求パケット番号304が「120」、要求経路数305が「1」、条件識別子306が「1」に設定されている。また、評価基準値307の評価基準値(0)は、初期値として「0」が設定されている。評価基準値(1)は各中継装置が条件識別子に基づいて計算した経路評価値を記載する領域であり、初期値として「0」が設定されている。
ノードAは経路要求パケットを送信すると(送信1)、ノードB、F、Cがその経路要求パケットを受信する(受信1、受信2、受信3)。ノードB、F、Cの各々は、受信した経路要求パケットに含まれている評価基準値(0)をインクリメントして「1」に更新する。つぎに、それらのノードは、受信した経路要求パケットの条件識別子が「1」に設定されていると判定すると、受信した経路要求パケットに含まれる中継ノードアドレスに自らのアドレスを、評価用測定値(1)に測定値管理テーブル201より取得したノードAとの間の最新の通信帯域を追加する。さらに、経路要求パケットに含まれる評価基準値(1)を、測定値管理テーブル201から取得したノードAとの間で通信を行う場合の最新の帯域に更新する。その後、評価基準値(1)に基づいて待機時間を算出し、タイマを設定する。このとき、ノードB、F、Cの各々のタイマは、ノードB、F、Cの順で待機時間が満了するように設定される。なお、図16では、待機時間Aと待機時間Aの短縮時間を加えた時間がこの時点で設定される待機時間となる。
以下では、待機時間が満了したノードが経路要求パケットを送信し、他のノードが2番目以降の経路要求パケットを受信する際の処理について述べる。
最初に待機時間が満了したノードBは、保存していた中継装置アドレスと評価用測定値(1)が「B、100」、評価基準値(0)が「1」、評価基準値(1)が「100」に設定された経路要求パケットをブロードキャストする(送信2)。
ノードF、C、Eの各々はこの経路要求パケットを受信する(受信4、受信5、受信6)。そして、それらのノードは、受信した経路要求パケットに含まれている評価基準値(0)をインクリメントして「2」に更新する。つぎに、それらのノードは、受信した経路要求パケットの条件識別子が「1」に設定されていると判定すると、受信した経路要求パケットに含まれる中継装置アドレスに自らのアドレスを、評価用測定値(1)に測定値管理テーブル201より取得したノードBとの間の最新の通信帯域を追加する。また、ノードF、C、Eは、評価用測定値(1)に格納された値に基づいて当該経路で通信を行う場合の帯域を算出し、評価基準値(1)を算出した帯域に更新する。
その結果、ノードFは、受信された経路要求パケットに含まれている評価基準値(0)を「2」に、評価基準値(1)を「33」に、中継装置アドレスと評価用測定値(1)を「B、100」、「F、50」に更新する(「受信4」の左下)。ここで、ノードFが2番目に受信した経路要求パケットは、評価基準値(1)が小さい、すなわち第1の経路評価値が小さいという条件を満たしている。さらに、その経路要求パケットは、ノードFが最初に受信した経路要求パケットよりもホップ数が多い、すなわち第2の経路評価値も小さいという条件も満たしている。この場合、ノードFは、タイマは満了していないが、重複管理テーブル401のタイマ状態404を「満了」に更新し、このタイミングで保存している最初に受信した経路要求パケットを送信する(送信3)。なお、図16では、待機時間Aの短縮時間が、これにより短縮された待機時間を示している。
ノードCは、ノードBが送信した経路要求パケットを受信した(受信5)後、受信した経路要求パケットに含まれる評価基準値(0)を「2」に、評価基準値(1)を「33」に、中継装置アドレス308と評価用測定値(1)を「B、100」、「C、50」に更新する(「受信5」の左下)。ここで、2番目に受信した経路要求パケットは、評価基準値(1)が大きい、すなわち第1の経路評価値が大きいという条件を満たしている。さらに、その経路要求パケットは、ノードCが最初に受信し保存している経路要求パケットよりもホップ数が多い、すなわち第2の経路評価値が小さいという条件を満たしている。この場合、ノードCは、受信した経路パケットについても待機時間を算出し、算出した待機時間に基づいて2つ目のタイマを設定する。このとき、1つ目のタイマの満了時刻より、2つ目のタイマの満了時刻が遅くなるので、待機時間が延長される。なお、図16では、待機時間Bと待機時間Bの短縮時間を加えた時間が2つ目のタイマが定める待機時間を示している。
なお、ノードCは、1つ目のタイマの満了時刻にその時点までに保存されている経路要求パケットを一旦送信し(送信4)、2つ目のタイマの満了時刻に、1つ目のタイマの満了時刻後に受信し、保存されている経路要求パケットを送信する(送信6)。この場合、ノードCは、重複管理テーブル401のタイマ状態404を、1番目のタイマ満了時点では「設定中」のままで更新せず、2番目のタイマ満了時点で「満了」に更新する。
その後、ノードCは、ノードFが送信した(送信3)経路要求パケットを受信し(受信7)、受信した経路要求パケットの評価基準値(0)を「2」に、評価基準値(1)を「9」に更新する(「受信7」の左下)。ノードCは、受信した経路要求パケットの評価基準値(1)が2番目に受信した経路要求パケットの評価基準値(1)より低いため、この経路要求パケットを破棄する。
ノードEは、ノードBが送信した(送信2)経路要求パケットを受信する(受信6)と、その経路要求パケットは最初に受信された経路要求パケットであるため、経路要求パケットを更新して保存し、タイマを設定する。なお、図16では、待機時間Aと待機時間Aの短縮時間と待機時間Aの再短縮時間を加えた時間がこの時点で設定される待機時間となる。
それから、ノードEは、ノードFが送信した(送信3)経路要求パケットを受信し(受信8)、受信した経路要求パケットの評価基準値(0)を「2」に、評価基準値(1)を「55」に更新する(「受信8」の左下)。ノードEは、今回受信した経路要求パケットの第1の経路評価値が最初に受信した経路要求パケットの第1の評価基準値よりも高いため、今回受信した経路要求パケットについても待機時間を算出する。ノードEは、今回算出した待機時間に基づくタイマの満了時刻が、既に設定されているタイマの満了時刻よりも早いため、今回算出した待機時間に基づくタイマの満了時刻にあわせて、タイマを更新する。なお、図16では、待機時間Aの短縮時間が、これにより短縮された待機時間を示している。
この後、ノードEは、ノードCが送信した(送信4)1回目の経路要求パケットを受信する(受信9)。そして、ノードEは受信した経路要求パケットの評価基準値(0)を「3」に、評価基準値(1)を「28」に更新する(「受信9」の左下)。ノードEは、今回受信した経路要求パケットは、2回目に受信した経路要求パケットよりも評価基準値(1)が小さく、ホップ数が多いので、第1と第2の経路評価値がともに小さい。したがって、一度待機時間を短縮して設定したタイマの満了を待たずに、評価基準値(0)を「2」に、評価基準値(1)を「55」に、中継装置アドレスと評価用測定値(1)を「F、75」、「E、200」に設定した経路要求パケットを送信する(送信5)。なお、図16では、待機時間Aの再短縮時間が、これにより短縮された待機時間を示している。
ノードDは、ノードCが送信した(送信4)1回目の経路要求パケットを受信する(受信10)と、受信したパケットが最初の経路要求パケットであるため、経路要求パケットを更新して保存し、タイマを設定する。なお、図16では、待機時間Aと待機時間Aの短縮時間を加えた時間がこの時点で設定される待機時間となる。つぎに、ノードEが送信した(送信5)経路要求パケットを受信する(受信12)と、受信した経路要求パケットの評価基準値(0)を「3」に、評価基準値(1)を「35」に更新する(「受信12」の左下)。後から受信した経路要求パケットの評価基準値(1)は最初に受信した経路要求パケットの評価基準値(1)よりも高いため、後から受信した経路要求パケットの第1の経路評価値は最初に受信した経路要求パケットの第1の経路評価値よりも高くなる。したがって、ノードDは後から受信した経路要求パケットについても待機時間を算出する。しかし、後から算出した待機時間に基づくタイマの満了時間が既に設定されているタイマの満了時間よりも遅いため、ノードDは、タイマを更新せず、保存する経路要求パケットを今回受信した経路要求パケットに更新する。
また、ノードEが送信した(送信5)経路要求パケットを受信した(受信11)ノードCは、受信した経路要求パケットの評価基準値(0)を「3」に、評価基準値(1)を「43」に更新して保存する(「受信11」の左下)。ノードCは、今回受信した経路要求パケットが4つ目の経路要求パケットであるため、2回目のタイマ満了を待たずに、保存している経路要求パケットを送信し(送信6)、重複管理テーブル401のタイマ状態404を「満了」に更新する。なお、図16では、待機時間Bの短縮時間が、これにより2回目のタイマで当初設定していた待機時間より短縮された待機時間を示している。
ノードCが2回目に経路要求パケットを送信する(送信6)と、ノードDはそれを受信し(受信13)、受信した経路要求パケットの評価基準値(0)を「4」に、評価基準値(1)を「30」に更新する(「受信13」の左下)。今回受信した経路要求パケットが2番目に受信した経路要求パケットよりも評価基準値(1)が小さく、ホップ数が多いので、第1と第2の経路評価値がともに小さくなる。したがって、ノードDは、最初に設定したタイマの満了を待たずに、保存しているパケットの終点と始点アドレスを入れ替え、要求経路数を「0」に設定した経路要求パケットを生成し、もとの経路要求パケットが中継された逆の経路で始点ノードAへユニキャスト送信する(送信7)。なお、図16では、待機時間Aの短縮時間がこれにより短縮された待機時間を示している。
以上説明したように、第2の実施形態では、先に受信した経路要求パケットに基づいて設定した待機時間の満了時刻よりも、後に受信した経路要求パケットに基づいて設定した待機時間の満了時刻が早い場合は、通信装置はタイマ長を短縮する。これにより、先に受信した経路要求パケットから算出した経路評価値が低いため、長い待機時間が設定された後に、経路評価値の高い経路要求パケットを受信した場合でも、通信装置は経路評価値の高い経路要求パケットを早く送信できる。このため、自装置からの経路要求パケットの受信が間に合わず、次の中継装置が、他の装置から受信した経路要求パケットのみから選択し、送信してしまうことを防ぐことができる。したがって、経路評価値の高い経路要求パケットが次の中継装置に送信される可能性が高くなり、経路評価値の高い経路をより確実に作成することができる。
また、第2の実施形態では、経路評価値の高い経路を作成するために十分な数である閾値を定め、その閾値以上の経路要求パケットを受信した場合、通信装置はこれまでに受信した経路要求パケットに基づいて設定した待機時間の満了を待たずに経路要求パケットを送信する。これにより、通信装置は、経路評価値の高い経路を作成するために十分な数の要求パケットを受信した時点で次の中継装置へ選択した経路要求パケットを送信することができる。したがって、自装置が経路要求パケットを送信するまでに次の中継装置が他の装置から受信した経路要求パケットのみから選択して送信することを防ぐことができるので、経路評価値の高い経路をより確実に作成することができる。
さらに、2番目以降に受信した経路要求パケットから算出したホップ数がこれまでに受信した経路要求パケットから算出したホップ数よりも多く、かつ2番目以降に受信した経路要求パケットから算出した第1の経路評価値がこれまでに受信した要求パケットから算出した第1の経路評価値よりも低い場合、通信装置はこれまでに設定した待機時間の終了を待たずに経路要求パケットを送信する。このように、ホップ数が増加し、かつ第1の経路評価値が低下する場合、今後受信する経路要求パケットの経路はこれまでに受信した経路要求パケットの経路よりもホップ数が多くなり、第1の経路評価値が悪くなると考えられる。したがって、通信装置は、ホップ数が増加し、かつ第1の経路評価値が低下するとすぐに、経路要求パケットを送信することにより、不必要に待機時間を設定しなくなり、経路要求パケットを早く送信することができる。したがって、自装置が経路要求パケットを送信するまでに次の中継装置が他の装置から受信した経路要求パケットのみから選択して送信することを防ぐことができ、経路評価値の高い経路をより確実に作成することができる。
一方、新たに受信した経路要求パケットから算出したホップ数がこれまでに受信した要求パケットから算出したホップ数よりも多く、かつ新たに受信した経路要求パケットから算出した第1の評価基準値がこれまでに受信した経路要求パケットから算出した第1の評価基準値より大きい場合、通信装置は待機時間を延長して他の要求パケットの受信を待つ。このように、ホップ数が増加し、かつ第1の経路評価値も増加する場合、今後受信する経路要求パケットの経路はこれまでに受信した経路要求パケットの経路よりもホップ数が多いが、経路評価値がよくなる可能性があると考えられる。したがって、通信装置は、延長前に設定した待機時間が満了した後に受信した、より経路評価値の高い経路要求パケットの送信漏れを減らすことができ、経路評価値の高い経路をより確実に作成することができる。したがって、これまでに受信した要求パケットに基づいて設定した待機時間が経過した時点で経路要求パケットを他の中継装置に送信し、その後で受信したさらに経路評価値の高い要求パケットを選択できなくなることを防ぐことができ、経路評価値の高い経路をより確実に作成することができる。
なお、第2の実施形態では、説明の便宜上、経路要求パケット301に評価基準値(0)を新しく設けて、ホップ数を格納する態様で説明したが、他の経路評価値と識別できる態様であれば、どのような態様でも構わない。また、第1の実施形態と第2の実施形態が併用される場合には、それを識別するためのフラグが経路要求パケット301に別途含まれていてもよい。
また、第2の実施形態では、タイマ設定が2回までの例しか挙げていないが、既に2回以上タイマ設定がされた後、新たに受信した経路要求パケットのホップ数が大きく、かつ経路評価値も大きい場合には、タイマ設定が3回以上されることもありうる。
また、第2の実施形態では、条件識別子が「1」の場合のみを説明したため、評価基準値(0)と(1)および評価用測定値309の評価用測定値(1)しか使用していないが、第1の実施の形態で挙げたように、複数の条件の組み合わせから最適な経路を探索する場合にも同様に適用することができる。この場合、評価基準値(2)以降および評価用測定値309の評価用測定値(2)以降が使用され、最も優先される経路評価値とホップ数を用いて同様の処理を行えばよい。ただし、条件識別子が「6」の場合のように、それぞれ異なる条件を満たす最適な経路を複数同時に探索する場合については、第3の実施の形態において詳細を説明する。
また、第2の実施形態においては、タイマ変更処理において以下の処理がなされていてもよい。まず、図14のSTEP1409の処理によって、タイマが複数設定された後に、STEP1403、STEP1415の処理が実行される場合においては、最先に起動したタイマのみを対象としてもよいし、起動している全てのタイマを対象としてもよい。あるいは、最初に設定したタイマが満了した後に起動中のタイマに対しては、STEP1403、STEP1415の処理を実行しなくてもよい。また、タイマが2回起動された後では、STEP1409の処理を実行しなくてもよい。
また、第2の実施形態においては、比較部105は、新たに設定されるタイマの待機時間が満了するまでに受信した経路要求パケットが、先に送信した経路要求パケットよりも第1の経路評価値が高くならない場合は、STEP711において受信した経路要求パケットをパケット保存部106に保存させなくてもよい。その場合、送信部109は、新たに設定されたタイマの待機時間が満了しても、先に送信した経路要求パケットに比べ、第1の経路評価値が同じもしくは低い経路要求パケットを送信しない。
また、第2の実施形態においては、比較部105は、先のタイマ満了時に経路要求パケットを送信した後、後のタイマが満了するまでに受信した経路要求パケットにおいて、その第1の経路評価値がある閾値よりも大きくなった場合や、先に送信した経路要求パケットの第1の経路評価値よりも一定の割合以上向上したときに、タイマを満了させてもよい。逆に、先のタイマ満了時に経路要求パケットを送信した後、後のタイマ満了までに受信した経路要求パケットにおいて、その第1の経路評価値がある閾値よりも小さくなった場合や、先に送信した経路要求パケットの第1の経路評価値よりも一定の割合以上低下したときに、タイマを満了させてもよい。その場合、送信部109は、後のタイマ満了を待たずにその経路要求パケットを送信する。
(第3の実施形態)
つぎに、第3の実施形態について説明する。
本実施形態では、通信装置が、音声と動画データの両方の送信を開始したい場合など、送信遅延が最小となる経路と、最小帯域を保証する経路を同時に設定したい場合に、通信装置が行う処理について説明する。
本実施形態では、各通信装置が、最初に受信した経路要求パケットを更新処理後すぐに送信する。そして、通信装置は、設定したタイマが満了した時点で、2番目以降に受信した経路要求パケットの中で経路評価値の高い経路、すなわち経路上の通信装置が測定した帯域の最小測定値が最大である経路に関する保存中の経路要求パケットを送信する。以下、図面を用いて本実施の形態について説明する。
図17は、本発明の第3の実施形態に係る通信装置の機能ブロック図である。図17は、図1と構成の数、種類は同じであるが、本実施の形態では、タイマ107が重複でない経路要求パケットを受信すると、送信部109に経路要求パケットを送信させるため、タイマ107と送信部109が直接接続されている。
つぎに、本実施の形態について各構成の動作を説明する。図17に示す本実施の形態の各構成は第1の実施の形態と殆ど同じであるが、タイマ107と送信部109の動作が異なる。
タイマ107は、第1の実施形態と同じ処理を終了した後、重複検知部104により出力された経路要求パケットを送信部109に出力する。送信部109は、タイマ107が出力した経路要求パケットをすぐにブロードキャストする。
以上のように構成された通信装置について、図18と図19とを用いてその動作を説明する。図18は、本実施の形態における通信装置が実行する、経路要求パケットの受信処理を示すフローチャートである。なお、図18では、図7に示した第1の実施形態における受信処理と同じ処理については、図7と同じ符号を付している。ここでは、図7と異なる処理を説明する。
図18は、図7と異なり、STEP708とSTEP711との間に、STEP1801が挿入されている。重複検知部104が最初の経路要求パケットであると判定した場合(STEP705でNo)、タイマ107がタイマを設定した(STEP708)後、タイマ107が1番目送信フラグをONにする処理を行う(STEP1801)。
この1番目送信フラグは、受信した最初の経路要求パケットをすぐに送信するように送信部109に対して通知するためのフラグである。1番目送信フラグは、経路要求パケットを最初に受信した際にONにされ、最初に受信した経路要求パケットを隣接装置に送信するとOFFにされる。一番目送信フラグは、重複管理テーブル501の要素として追加されていてもよいし、他のメモリ空間にフラグの領域が確保されていてもよい。
その後、パケット保存部106は、受信した経路要求パケットを保存し(STEP711)、保存経路数をインクリメントして(STEP712)、STEP701の処理が実行される。
図19は、本実施の形態の送信部109が実行する送信処理を示すフローチャートである。なお、図19では、図5に示した第1の実施の形態における送信処理と同じ処理については、図5と同じ符号を付している。ここでは、図5と異なる処理を説明する。
本実施の形態では、送信部109は、保存中の経路要求パケットのうち、タイマが満了している経路要求パケットがないと判定すると(STEP511でNo)、1番目送信フラグが受信処理においてONにされているか否かを判定する(STEP1903)。1番目送信フラグがONでないと判定した場合(STEP1903でNo)は、送信部109はSTEP511の処理を実行する。
一方、1番目送信フラグがONであると判定した場合(STEP1903でYes)、送信部109は経路要求パケットの終点アドレスが自らのアドレスであるか否かを判定する(STEP1904)。経路要求パケットの終点アドレスが自らのアドレスであると判定した場合(STEP1904でYes)、送信部109は、始点装置に経路を返信するため、STEP513と同じ処理によって返信用要求パケットを生成し(STEP1905)、最初に受信した経路要求パケットをユニキャスト送信する(STEP1906)。その後、送信部109は1番目送信フラグをOFFに、送信した経路要求パケットの送信済みフラグをONに変更して(STEP1908)、STEP501の処理を実行する。
この送信済みフラグとは、当該経路要求パケットが隣接装置に送信されたか否かを記憶するためのフラグであり、デフォルトではOFFに設定され、一度送信されるとONに設定される。送信済みフラグは、経路要求パケットを保存する領域に領域が確保されていてもよいし、パケット自体にフラグ領域が確保されていてもよい。
一方、経路要求パケットの終点アドレスが自らのアドレスでないと判定した場合(STEP1904でNo)、送信部109は最初の経路要求パケットをブロードキャスト送信する(STEP1907)。その後、送信部109は1番目送信フラグをOFFに、送信した経路要求パケットの送信済みフラグをONに変更して(STEP1908)、STEP501の処理を実行する。
送信部109は、パケット保存部106が保存している経路要求パケットのうち、タイマが満了している経路要求パケットがあると判定すると(STEP511でYes)、当該経路要求パケットを送信する。その際、送信部109は、図5のSTEP515の替わりにSTEP1901の処理を実行し、図5のSTEP517の替わりにSTEP1902の処理を実行する。STEP1901において、送信部109は、パケット保存部106が保存している経路要求パケットのうち、送信済みフラグがONでない、すなわち未送信の経路要求パケットのみをユニキャスト送信する。また、STEP1902において、送信部109は、パケット保存部106が保存している経路要求パケットのうち、送信済みフラグがONでない、すなわち未送信の経路要求パケットのみをブロードキャスト送信する。このように、送信部109が既に送信済みの経路要求パケットを再度送信しないようにすることで、経路要求パケットの送信により消費される帯域を小さくすることができる。
つぎに、第3の実施形態における発明を適用した具体例を図20、21を用いて説明する。図20は本実施形態におけるネットワークの構成を示す図である。図20では、図9及び図15と同様に、直接通信できる装置間を実線で接続して示している。また、実線毎に記載されている数値は、実線で接続されている2つの装置間で通信帯域を一定期間測定した結果、測定値管理テーブル201に保存されている通信帯域の最小測定値203を示す。説明の便宜上、通信装置901〜906は、符号の順序に合わせて、アルファベット順にノードA〜ノードFと呼ぶことにする。さらに、通信装置901〜906の各アドレスは、符号の順序に合わせて、アルファベット順にA〜Fであるとする。本実施例では、ノードA(始点ノード)が、直接通信できないノードD(終点ノード)との間で通信されるデータ種別に応じた条件を指定して経路を探索する。具体的には、経路要求パケットの条件識別子306が「6」に設定されていることとし、ノードAが、ホップ数最小である経路と、当該経路で通信する場合の帯域の最小値が一定値以上であることを保証する経路を同時に探索する場合を例に挙げて説明する。
図21は、本実施の形態において、ノードAからノードDへデータ通信開始要求が発生し、ノードAがノードDへの経路を探索する際のシーケンス図である。図21に示されている記号や数字は、図10の内容と殆ど同じであるが、以下の点において異なる。
図21には、送信を枠付きで表示した箇所に、「A送信」「B送信」の2種類の送信処理が示されている。また、噴出しで「満了時」と表示した処理も示されている。「A送信」は、タイマの待機時間満了時に、パケット保存部106が保存している経路要求パケットをブロードキャストする処理を指す。したがって、「A送信」は、第1の実施形態での送信処理と同じである。一方、「B送信」は各ノードが経路要求パケットを最初に受信したときに、更新処理をした後、すぐにブロードキャストする処理を指し、本実施形態での特有の処理である。「満了時」と噴出しで表示された箇所は、その時点でタイマは満了するが、「A送信」で経路要求パケットを送信した後、受信した経路要求パケットは、「A送信」で送信した経路要求パケットに比べ、経路評価値が低いため、後で受信した経路要求パケットを送信しなかったことを意味する。
また、図21には、図9にはない太枠で囲まれた記号と数字が存在する。この太枠は、最初に受信した経路要求パケットの内容であることを示す。さらに、全ての枠内の数字は、経路要求パケットの評価基準値(2)を指す。
ノードAは、データ通信開始要求が発生すると、図6に示された処理に基づき経路要求パケットを作成し、送信する。本実施の形態では、ノードAが送信する経路要求パケットは、要求経路パケット数が「1」、条件識別子が「6」、経路要求パケット番号が「120」に設定されている。また、評価基準値(1)はホップ数を記載する領域であり、初期値として「0」が設定されている。評価基準値(2)は各中継装置が当該経路で通信する場合の帯域の最小値に関する経路評価値を記載する領域であり、初期値として「0」が設定されている。
ノードAが経路要求パケットを送信する(A送信1)と、ノードB、F、Cの各々は、その経路要求パケットを受信する(受信1、受信2、受信3)。ノードB、F、Cにおいて、更新部103は、受信した経路要求パケットに含まれている評価基準値(1)をインクリメントして「1」に更新する。また、更新部103は、それぞれ受信した経路要求パケットの最後尾に中継装置アドレスとして自アドレスを格納する。その後、更新部103は、受信した経路要求パケットの条件識別子が「6」に設定されていることを判定すると、経路要求パケットに含まれる評価基準値(2)を、測定値管理テーブル201から取得した最小測定値206の値に更新する。例えば、ノードBの更新部103は、受信した経路要求パケットの中継装置アドレスに「B」を追加し、評価基準値(1)を「1」に、評価基準値(2)を「100」に更新する(「受信1」の左下)。ノードFの更新部103は、受信した経路要求パケットの中継装置アドレスに「F」を追加し、評価基準値(1)を「1」に、評価基準値(2)を「50」に更新する(「受信2」の左下)。ノードCの更新部103は、受信した経路要求パケットの中継装置アドレスに「C」を追加し、評価基準値(1)を「1」に、評価基準値(2)を「5」に更新する(「受信3」の左下)。経路要求パケット更新後、それぞれの更新部103は、評価基準値(1)(2)に関する経路評価値を算出する。
その後、ノードB、F、Cの各々の重複検知部104は、経路要求パケットの重複受信確認を行い、最初の経路要求パケットの受信であることを確認すると、最初に受信した経路要求パケットとその経路評価値をタイマ107に出力する。
タイマ107は、評価基準値(2)に関する経路評価値に基づいて待機時間を算出し、タイマを設定する。このとき、ノードB、F、Cの各々のタイマ107は、評価基準値(2)に関する経路評価値の大きい順、すなわちノードB、F、Cの順にタイマが満了するように設定する。その後、パケット保存部106がその経路要求パケットを保存する。タイマ107は、一番目送信フラグをONにし、最初の経路要求パケットを受信したことを送信部109に通知する。
以下では、各ノードが、受信した経路要求パケットを送受信する時の処理について述べる。まず、ノードBは、中継装置アドレスが「B」、評価基準値(2)が「100」の経路要求パケットをすぐにブロードキャストする(B送信1)。
ノードF、C、Eの各々は、この経路要求パケットを受信する(受信4、受信5、受信6)。その後、ノードF、C、Eの各々の更新部103は、受信した経路要求パケットの中継装置アドレス308に自らのアドレスを追加する。その後、各々の更新部103は、受信した経路要求パケットの条件識別子が「6」に設定されていることを判定すると、評価基準値(1)、評価基準値(2)を更新する。その結果、ノードFは、受信した経路要求パケットの中継装置アドレスに「F」を追加し、評価基準値(2)を「50」へ更新する(「受信4」の左下)。ノードCは、受信した経路要求パケットの中継装置アドレスに「C」を追加し、評価基準値(2)を「20」へ更新する(「受信5」の左下)。ノードEは、受信した経路要求パケットの中継装置アドレスに「E」を追加し、評価基準値(2)を「50」へ更新する(「受信6」の左下)。
ノードEは、経路要求パケットを最初に受信した(受信6)ので、受信した経路要求パケットを保存し、タイマを設定する。さらに、最初に受信した経路要求パケットを送信する(B送信4)。
一方、ノードF、Cは、受信した経路要求パケットが重複受信された(受信4、受信5)ものであるため、最初に受信して保存されている経路要求パケットの評価基準値(2)に関する経路評価値と、2番目に受信した経路要求パケットの評価基準値(2)に関する経路評価値とを比較する。比較の結果、ノードCは、通過ノードアドレスが「A:B:C」、評価基準値(2)が「20」の2番目に受信した経路要求パケットを保存し、最初に受信した経路要求パケットを破棄する(「受信5」の左下)。また、ノードFは、1番目と2番目に受信した経路要求パケットの評価基準値(2)が等しいため、評価基準値(1)が小さい最初に受信した経路要求パケットの保存を継続し、2番目に受信した経路要求パケットを破棄する(「受信4」の左下)。
同様にして、ノードF、Cは、「受信2」「受信3」において、最初に受信した経路要求パケットを送信する(B送信2、B送信3)。
その後、タイマが満了したノードが、保存している経路要求パケットのブロードキャストを行う。ノードBは、タイマが満了した時点で保存している経路要求パケットを送信しようとするが、保存している経路要求パケットは最初に受信した経路要求パケットであり、既に送信しているため、経路要求パケットを送信しない(満了時1)。ノードF、Eも、それぞれタイマが満了した時点で保存している経路要求パケットが最初に受信した経路要求パケットであるため、経路要求パケットを送信しない(満了時2、満了時3)。一方、ノードCは、タイマが満了した時点で3番目に受信した経路要求パケットを保存しているため、この3番目に受信した経路要求パケットを送信する(A送信2)。このときノードCが送信する経路要求パケットは、通過ノードアドレスが「A:F:C」に、評価基準値(2)が「50」に設定されている。
最後に、終点ノードであるノードDも、他の中継装置と同様、最初に受信したホップ数最小の経路要求パケットを送信する(B送信5)。
このように、通信装置は、最初に受信したパケットをタイマの満了を待たずにすぐに送信することで、実施の形態1、2の場合と比較して、最初に経路を設定するまでにかかる時間を短縮することができる。
以上説明したように、第3の実施の形態によれば、通信装置は、最初に受信した経路要求パケットをすぐにブロードキャストする。そして、通信装置は、待機時間中に重複受信した経路要求パケットの中から同一始点装置から自装置までの経路評価値が高い経路要求パケットを経路設定数だけ選択し、ブロードキャストする。最初に受信した経路要求パケットはホップ数の少ない経路を中継されてきた可能性が高いため、通信装置は、最初に受信した経路要求パケットをブロードキャストすることでホップ数の少ない経路を作成することができる。それと同時に、通信装置は、タイマ満了後に経路評価値の高い経路要求パケットをブロードキャストすることで、経路評価値の高い経路を作成することができる。その結果、一度の経路作成処理によって異なる評価基準に基づいた経路が複数作成されるので、通信装置は、性質の異なる複数のデータを同時に送信したい場合などにおいて、経路を効率よく設定することができる。
なお、第3の実施の形態では、各装置が一番目送信フラグを設け、最初に受信した経路要求パケットを送信したか否かを管理する態様で説明したが、一番目送信フラグに代えて最初に受信した経路要求パケットを格納する領域を別途設けて、そこにデータが存在する場合、まだ最初に受信した経路要求パケットを送信していないと判定する態様でも構わない。
また、第3の実施形態は、第2の実施形態の処理を加えた態様でも構わない。例えば、図18のSTEP703の処理に代えて、図12のSTEP1201の処理が実行され、図18のSTEP709と710の処理の間に、図12のSTEP1202の処理が実行されてもよい。
(ハードウエアの構成例)
つぎに、本発明のハードウエア構成例について説明する。図22は、通信装置のハード構成を示したハード図である。図22において、通信装置は、各種の制御プログラムやワークエリアを含むメモリ2201、装置全体を制御するCPU(Central Processing Unit)2202及びデータを通信するネットワークインタフェース2203から構成されている。通信装置は、メモリ2201に格納されているプログラムをCPU2202で実行し、ネットワークインタフェース2203を介してデータの送信を行い、ネットワークインタフェース2203を介して受信したデータをCPU2202で解読することにより受信する。ネットワークインタフェース2203は、PLCを利用する場合、電力線と接続され、電力線を介して各種データを通信する。また、無線通信を利用する場合、Wi−FiやMANETなどの各種無線通信方式を利用して各種データを通信する。
メモリ2201は、図2の測定値管理テーブル201、図4の重複管理テーブル401を格納する。また、第2の実施形態の受信経路要求パケット数、第3の実施形態の一番目送信フラグ、送信済みフラグを格納する。さらに、パケット保存部106で保存する経路要求パケットを一時的に格納する。
CPU2202は、図1に示す機能ブロックを含み、第1の実施形態〜第3の実施形態に示された各種処理を実行する。
なお、本発明の各実施の形態において開示された各機能ブロックは、集積回路であるLSIにより実現されてもよい。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。
このLSIは、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSI、と呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサが利用されてもよい。あるいは、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサが利用されてもよい。また、プロセッサやメモリ等を備えたハードウエア資源においてプロセッサがROMに格納された制御プログラムを実行する構成が用いられてもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術等が適応され得る。
本発明は、経路作成のために送信される経路要求パケットの数を削減して帯域の消費を抑えつつ、始点装置と終点装置との間において経路評価値の高い経路を作成できる。ゆえに、PLCネットワークや無線ネットワーク等、様々な種類のネットワークにおける通信装置及び通信方法に適用可能である。
101 受信部
102 測定部
103 更新部
104 重複検知部
105 タイマ
106 比較部
107 パケット保存部
108 パケット破棄部
109 送信部
901〜906 通信装置
2201 メモリ
2202 CPU
2203 ネットワークインタフェース
本発明は、通信を開始するデータ種別に適した経路を探索する通信装置及び通信方法に関し、より特定的には、通信を要求する始点装置とその宛先となる終点装置との間で直接通信できない場合に、始点装置から終点装置までマルチホップで通信する経路を探索する通信装置及び通信方法に関する。
従来、始点装置と終点装置との間で直接通信できない場合に、始点装置から終点装置までの経路を探索する方法として、以下のような方法がある。
最初に、始点装置は、終点装置を指定した経路要求パケットをブロードキャストする。他の装置がブロードキャストした経路要求パケットを受信した装置は、受信した経路要求パケットにおいて指定された終点装置が自装置であるか否かを判定する。終点装置が自装置でないと判定した場合、通信装置は、自装置を通過したことを示す情報を経路要求パケットに追加して、ブロードキャストする。
このように、終点装置以外の装置が、受信した経路要求パケットのブロードキャストを繰り返すことにより、経路要求パケットは最終的に終点装置に到達する。このとき終点装置が受信する経路要求パケットには、始点装置から終点装置までに通過した全ての中継装置を示す情報が含まれている。終点装置は、その中継装置を示す情報に基づいて経路を設定する。
しかし、経路要求パケットを受信した装置が、受信した全ての経路要求パケットをブロードキャストする場合、以下のような問題が生じる。
始点装置や中継装置がブロードキャストする経路要求パケットは、通常、当該経路要求パケットを送信した装置と直接通信できる複数の装置により受信される。経路要求パケットを受信した複数の装置は、自装置が終点装置でなければ、それぞれ経路要求パケットをブロードキャストする。そのため、経路要求パケットが1つ送信される度に、当該経路要求パケットを直接受信する中継装置数の経路要求パケットがブロードキャストされる。
このように、経路要求パケットを受信した装置が受信した経路要求パケットを全てブロードキャストする場合、経路要求パケットが送信される度に、次に送信される経路要求パケットの数が増加する。その結果、増加した経路要求パケットがデータ通信に使用する帯域を圧迫し、他の装置間のデータ通信を妨げることになる。
かかる問題を解決することを目的とする技術として、経路要求パケットが通過した経路における経路評価値を経路要求パケットに記載し、この経路評価値に基づいて中継装置がブロードキャストする経路要求パケットを制限するものがある(例えば、特許文献1)。ここで、経路評価値とは、当該経路が接続した状態を保っている時間長や、当該経路で通信する場合に期待されるスループットなどを示す。
以下、特許文献1の技術において、経路探索時に中継装置が経路要求パケットを受信した際に行う処理について説明する。
中継装置は、経路要求パケットを受信する度に、当該経路要求パケットが通過した経路の状態から経路評価値を計算する。中継装置は、経路要求パケットを最初に受信すると、そのパケットをそのままブロードキャストする。一方、最初に受信した経路要求パケットと異なる経路を通過し、2番目以降に受信した経路要求パケット、すなわち重複受信パケットを受信すると、中継装置は、既にブロードキャストした経路要求パケットの経路評価値と重複受信パケットの経路評価値とを比較する。重複受信パケットの経路評価値が既に送信した経路要求パケットの経路評価値よりも高い場合、中継装置は重複受信パケットをブロードキャストする。一方、重複受信パケットの経路評価値が既に送信した経路要求パケットの経路評価値よりも低い場合、中継装置は重複受信パケットをブロードキャストせず、破棄する。
しかし、上記の特許文献1の技術では、以下のような問題が生じていた。
中継装置が重複受信した経路要求パケットが、既にブロードキャストした経路要求パケットよりも経路評価値が高くなる場合、中継装置がブロードキャストする経路要求パケットの数が減少しないという問題があった。
それ故に、本発明の目的は、中継装置が既にブロードキャストした経路要求パケットよりも経路評価値が高くなる経路要求パケットを次々と重複受信する場合でも、中継装置がブロードキャストする経路要求パケット数を一定数以下に制限し、かつ経路評価値が高い経路を探索できる通信装置及び通信方法を提供することである。
上記目的を達成するために、本発明は、以下の特徴を有する。本発明の第1の局面は、通信を要求する始点装置が宛先となる終点装置へマルチホップで通信するにあたり、経路作成のための経路要求パケットを終点装置までの各中継装置へ送信する通信装置であって、始点装置を示す情報、終点装置を示す情報、及び始点装置から自装置に経路要求パケットを直接送信した直前の中継装置までの経路状態を示す経路評価値を含む経路要求パケットを少なくとも1つの直前の中継装置から受信する受信部と、受信した経路要求パケットに記述された始点装置から直前の中継装置までの経路状態と直前の中継装置と自装置との間の経路状態に基づいて、始点装置から自装置までの経路評価値を算出し、経路要求パケットの経路評価値を更新する更新部と、経路要求パケットを受信すると受信時を含む所定の待機時間を設定し、始点装置及び終点装置を示す情報が受信した経路要求パケットと同一で待機時間内に更新した経路要求パケットの中から、経路評価値が高い順に所定数の経路要求パケットを選択し、自装置と直接通信できる隣接装置へ送信する制御部とを具備する。
さらに、本発明の通信装置は、自装置と隣接装置との間の通信に使用可能な帯域を複数のタイミングで測定する測定部をさらに備えるとよい。その場合、経路状態は経路上の各通信装置間の通信に使用可能な帯域を通信装置間毎に含むとよい。また、更新部は経路要求パケットに記述された始点装置から直前の中継装置までの各通信装置間における使用可能な帯域と測定部により測定された直前の中継装置と自装置との間の使用可能な帯域とに基づいて、始点装置から自装置までの経路全体で使用可能な帯域を経路評価値として算出するとよい。そして、更新部は使用可能な帯域が大きいほど経路評価値を高い値として算出するとよい。
また、前述した測定部は、自装置と隣接装置との間の通信に使用可能な帯域を複数のタイミングで測定し、測定された帯域の中から最小値を求めてもよい。その場合、経路状態は経路上の各通信装置間における使用可能な帯域の最小値を含むとよい。また、更新部は経路要求パケットに記述された始点装置から直前の中継装置までの最小値と測定部により測定された直前の中継装置と自装置との間の最小値とを比較して、始点装置から自装置までの経路全体での最小値を経路評価値として算出するとよい。そして、更新部は算出された値が大きいほど経路評価値を高い値として算出するとよい。
また、前述した測定部は、自装置と隣接装置との間で通信不能な状態から通信可能な状態に変化した時点から現在までの経過時間を測定するとよい。その場合、経路状態は経路上の各通信装置間における経過時間の最小値を含むとよい。また、更新部は経路要求パケットに記述された始点装置から直前の中継装置までの各通信装置間における経過時間の最小値と測定部により測定された直前の中継装置と自装置との間の経過時間とを比較して、始点装置から自装置までの経路全体での経過時間の最小値を経路評価値として算出するとよい。そして、更新部は算出された最小値が大きいほど経路評価値を高い値として算出するとよい。
さらに、経路状態は経路のホップ数を含むとよい。その場合、更新部は経路要求パケットに記述された始点装置から直前の中継装置までのホップ数に1を加えることにより、始点装置から自装置までの経路のホップ数を経路評価値として算出するとよい。また、更新部は算出されたホップ数が少ないほど経路評価値を高い値として算出するとよい。
さらに、経路状態は始点装置から直前の中継装置までの経路のホップ数を含むとよい。その場合、算出部は経路状態に含まれたホップ数に1を加えることにより、始点装置から自装置までの経路のホップ数を第2の経路評価値として算出するとよい。また、更新部は算出されたホップ数が少ないほど第2の経路評価値を高い値として算出するとよい。そして、制御部は、更新部により算出された経路評価値が等しい経路要求パケットが所定数以上ある場合、第2の経路評価値が高い順に所定数の経路要求パケットを選択するとよい。
また、制御部は経路要求パケットを受信すると、経路評価値に応じて所定の待機時間を設定するとよい。さらに、制御部はその経路評価値が低いほど所定の待機時間を長く設定するとよい。
さらに、制御部は、これまでに受信した経路要求パケットに基づいて設定した所定の待機時間の終了時刻よりも新たに受信した経路要求パケットに基づいて設定する待機時間の終了時刻が早い場合は、待機時間を短縮して、新たに受信した経路要求パケットに基づいて設定する待機時間の終了時刻で経路要求パケットを送信するとよい。
さらに、制御部は、2番目以降の経路要求パケットを受信すると、これまでに受信した経路要求パケットの数が所定の閾値に達したかどうかを判定し、所定の閾値に達したと判定した時点で経路要求パケットを送信するとよい。
また、経路状態は始点装置から直前の中継装置までの経路のホップ数を含むとよい。その場合、算出部は経路状態に含まれたホップ数に1を加えることにより、始点装置から自装置までの経路のホップ数をさらに算出するとよい。また、制御部は、更新部により算出されたホップ数がこれまでに受信した経路要求パケットから算出されたホップ数よりも多いという第1の条件と、新たに受信した経路要求パケットから算出された経路評価値がこれまでに受信した経路要求パケットから算出された経路評価値よりも低いという第2の条件を満たすか否かを判定し、第1の条件と第2の条件をともに満たすと判定した時点で経路要求パケットを送信するとよい。
さらに、制御部は、第1の条件を満たし、かつ第2の条件を満たさないと判定した場合、待機時間を延長し、新たに受信した経路要求パケットに基づいて設定した待機時間の終了時刻に経路要求パケットを送信するとよい。
また、さらに、制御部は、待機時間を延長する場合は、延長前の待機時間の終了時刻にその時点で選択した経路要求パケットを送信し、さらに延長後の待機時間の終了時刻にその時点で選択した経路要求パケットを送信するとよい。
また、制御部は、最初に受信した経路要求パケットをすぐに隣接装置に送信し、待機時間満了後に、最初に受信した経路要求パケットと始点装置及び終点装置を示す情報が同一である他の経路要求パケットのうち、経路評価値が高い順に所定数の経路要求パケットを選択するとよい。
また、制御部は、選択した経路要求パケットに記述された情報を1つの経路要求パケットにまとめて記述するとよい。
また、始点装置は、経路数を示す情報を経路要求パケットにさらに記述し、所定数が経路数であるとよい。
また、制御部は、所定の待機時間の終了時刻経過後に受信した経路要求パケットを破棄するとよい。
本発明の第2の局面は、通信開始を要求する始点装置が宛先となる終点装置へマルチホップで通信するにあたり、経路作成のための経路要求パケットを終点装置までの各中継装置へ送信する通信方法であって、始点装置を示す情報、終点装置を示す情報、及び始点装置から自装置に経路要求パケットを直接送信した直前の中継装置までの経路状態を記述した経路要求パケットを少なくとも1つの直前の中継装置から受信し、受信した経路要求パケットに記述された始点装置から直前の中継装置までの経路状態と直前の中継装置と自装置との間の経路状態に基づいて、始点装置から自装置までの経路状態を示す経路評価値を算出し、始点装置から自装置までの経路状態を記述して経路要求パケットを更新し、経路要求パケットを受信すると所定の待機時間を設定し、受信した経路要求パケットと始点装置及び終点装置を示す情報が同一で待機時間内に受信した経路要求パケットの中から、経路評価値が高い順に所定数の経路要求パケットを選択し、自装置と直接通信できる隣接装置へ送信する。
本発明によれば、受信した経路要求パケットに基づき所定の待機時間を設定し、受信した経路要求パケットと始点装置及び終点装置を示す情報が同一で待機時間内に受信した経路要求パケットの中から更新部により更新された経路評価値が高い経路要求パケットを所定数選択し、隣接装置へ送信する。したがって、経路作成のために送信される経路要求パケットの数が削減され、帯域の消費を抑えつつ、所定の始点装置と所定の終点装置との間で経路の状態を示す経路評価値が高い経路を作成することができる。
第1の実施形態における通信装置の機能ブロック図
測定値管理テーブルを表した図
経路要求パケットのフレームフォーマットを示す図
重複管理テーブルを表した図
第1の実施形態における通信装置の経路要求パケット送信処理を示すフローチャート図
始点装置の経路要求パケット生成処理を示すフローチャート図
第1の実施形態における通信装置の経路要求パケット受信処理を示すフローチャート図
第1の実施形態における評価基準値更新、経路評価値算出処理を示すフローチャート図
第1の実施形態におけるネットワーク構成図
第1の実施形態において通信装置901から904にデータ通信を要求して経路探索する場合を表すシーケンス図
第2の実施形態における通信装置の機能ブロック図
第2の実施形態における通信装置の経路要求パケット受信処理を示すフローチャート図
第2の実施形態における評価基準値更新、経路評価値算出処理を示すフローチャート図
通信装置のタイマ変更処理を示すフローチャート図
第2の実施形態におけるネットワーク構成図
第2の実施形態において通信装置901から904にデータ通信を要求して経路探索する場合を表すシーケンス図
第3の実施形態における通信装置の機能ブロック図
第3の実施形態における通信装置の経路要求パケット受信処理を示すフローチャート図
第3の実施形態における通信装置の経路要求パケット送信処理を示すフローチャート図
第3の実施形態におけるネットワーク構成図
第3の実施形態において通信装置901から904にデータ通信を要求して経路探索する場合を表すシーケンス図
通信装置のハード構成を示したハード図
(第1の実施形態)
本実施の形態では、通信開始を要求する始点装置が、通信を開始するデータ種別に適した経路を探索する場合に、中継装置において受信した全ての経路要求パケットをブロードキャストするのではなく、経路評価値が高い経路を通過してきた経路要求パケットを、始点装置が設定した数だけブロードキャストする。経路評価値とは、経路要求パケットを選択する際に用いるパラメータであり、始点装置からそれぞれ異なる経路を通って各中継装置に到着した複数の経路要求パケットについて、各経路要求パケットが通過した経路の状態を示す値である。
本発明の第1の実施形態に係る通信装置の機能を説明する前に、説明の便宜上、まず、経路要求パケットのフォーマットについて図3を用いて説明する。
図3は経路要求パケットのデータフォーマット図である。経路要求パケット301は、終点アドレス302、始点アドレス303、経路要求パケット番号304、要求経路数305、条件識別子306、評価基準値307、中継装置アドレス308、評価用測定値309により構成されている。
終点アドレス302は、始点装置が通信を要求する接続先である終点装置のアドレスを示す。始点アドレス303は、始点装置のアドレスを示す。経路要求パケット番号304は、同じ始点装置から送信された経路要求パケットを識別するための値である。
要求経路数305は、始点装置が設定する経路数であり、「1」以上の整数に設定される。ただし、終点装置が始点装置に経路を返信する際は、要求する経路がないため要求経路数は「0」に設定される。
条件識別子306は、経路を探索する条件を特定するパラメータであり、始点装置によって設定される。各通信装置は条件識別子306に基づいて選択する条件を変更する。本実施の形態では、条件識別子の一例として以下の6種類を挙げる。
条件識別子「1」:最新の通信状態に基づき、帯域が最大である経路を探索する条件
条件識別子「2」:過去の通信状態の履歴に基づき、帯域の最小値が一定値以上であることを保証する経路を探索する条件
条件識別子「3」:始点装置から送信されたパケットが終点装置に到達するまでの遅延が最小である経路を探索する条件
条件識別子「4」:ホップ数が最小である経路を探索する条件
条件識別子「5」:最新の通信状態に基づき、当該経路上の各中継装置間の通信継続時間が一定値以上であることを保証する経路を探索する条件
条件識別子「6」:過去の通信状態の履歴に基づき、帯域の最小値が一定値以上であることを保証する経路と、ホップ数が最小である経路とを同時に探索する条件
評価基準値307は、条件識別子306の設定値に基づき計算された値である。この値は経路評価の際に利用される。評価基準値307は、始点アドレス303と経路要求パケット番号304が同一となる経路要求パケットが通過した複数の経路を比較するために利用される。例えば、条件識別子が「1」に設定されている場合、評価基準値307は、経路上の各中継装置間における最新の通信状態をもとに推定される、始点装置から自装置までの通信帯域となる。
条件識別子が「2」に設定されている場合、評価基準値307は、経路上の各中継装置間で過去の一定期間測定した帯域の最小値のうち、経路上での最小値となる。
条件識別子が「3」に設定されている場合、評価基準値307は、始点装置が経路要求パケットを送信する時刻となる。この場合、あらかじめネットワーク内の全装置の時計を同期させておくことで、各装置は、経路要求パケットが到着した時刻と評価基準値307の時刻との時間差に基づいて経路要求パケットを選択することができる。
条件識別子が「4」に設定されている場合、評価基準値307は、始点装置からのホップ数となる。
条件識別子が「5」に設定されている場合、評価基準値307は、経路上の各中継装置間において通信不能な状態から通信可能な状態に変化した最新の時点から現在までの通信継続時間のうち、経路上の最小値となる。
さらに、条件識別子が「6」に設定されている場合のように、それぞれ異なる条件を満たす複数の経路を同時に探索する場合、経路要求パケット301は、複数の評価基準値307を有する。図3では、複数の評価基準値307が評価基準値(1)、評価基準値(2)などと表されている。条件識別子が「6」に設定されている場合は、評価基準値(1)はホップ数となり、評価基準値(2)は経路上の各中継装置間で過去の一定期間測定した帯域の最小値のうち、経路上での最小値となる。これにより、それぞれ異なる複数の条件を満たす複数の経路を、1回の経路探索で同時に設定することができる。
中継装置アドレス308は、当該経路要求パケットが通過した始点装置から自装置までの経路上にある中継装置のアドレスである。評価用測定値309は、各中継装置とその直前(1ホップ前)の中継装置との間で測定された通信の状態を示す情報である。中継装置アドレス308と評価用測定値309は、それぞれ経路要求パケットが各中継装置で中継される度に追加される。この評価用測定値309は、処理の便宜上、評価基準値307に対応して、経路要求パケット301に格納されることが望ましい。図3では、複数の評価基準値307である評価基準値(1)、評価基準値(2)に対応する評価用測定値309が、それぞれ評価用測定値(1)、評価用測定値(2)と表されている。
以上に述べた経路要求パケットは、始点装置が経路探索する際に利用されるが、終点装置が始点装置に対し経路を返信する際にも利用される。以降の説明では、終点装置が始点装置に経路を返信する経路要求パケットのことを返信用経路要求パケットと呼ぶこととする。この返信用経路要求パケットのフォーマットは、経路要求パケットの始点アドレスと終点アドレスが入れ替わっていることと要求経路数が「0」に設定されている以外は、上述したフォーマットと同じである。
つぎに、本発明の第1の実施形態に係る通信装置の機能構成を詳細に説明する。図1は、本発明の第1の実施形態に係る通信装置の機能ブロック図である。図1を参照すると、本実施形態の通信装置は、受信部101、測定部102、更新部103、重複検出部104、比較部105、パケット保存部106、タイマ107、パケット破棄部108、送信部109を備える。
受信部101は、各種通信方式により受信したデータパケットから経路要求パケットを更新部103に出力する。測定部102は、経路評価値の算出のため必要な情報を測定し、測定値管理テーブル201(詳細は後述)を更新する。本実施の形態では、経路評価値の算出のため必要な情報とは、隣接装置(自装置と直接通信できる装置)と自装置との間の通信における帯域と、自装置と隣接装置との間で、通信不能な状態から通信可能な状態に変化した最新の時点から現在までの通信継続時間である。測定部102は、経路要求パケット以外のパケットも含め、自装置から直接通信可能な位置に配置された隣接装置が送信したパケットの受信電力を測定し、当該パケットを送信した隣接装置と自装置との間の通信における帯域を推定する。ここでいう帯域とは、例えばPHY(Physical Layer)レートやMAC(Media Access Control)レート、スループット等のデータの通信速度を表すパラメータのことである。また、送信部109は、一定間隔または任意のタイミングで自装置がネットワーク上に存在することを示すHelloパケットを送信して、それを受信することによって通信継続時間を測定する。以上により、測定された帯域や通信継続時間は測定値管理テーブル201に別々に格納される。
図2は、測定値管理テーブルの一例を表した図である。測定値管理テーブル201は、隣接装置毎に、隣接装置アドレス202、最新測定値203、保存測定値204、平均測定値205、最小測定値206から構成されている。隣接装置アドレス202は、受信したパケットのヘッダに記載されている当該パケットを送信した隣接装置のアドレスである。最新測定値203は、各隣接装置と自装置間において測定部102で測定された測定値のうち、最新となる値である。保存測定値204は、隣接装置と自装置間において測定部102で測定された測定値のうち、新しい順に一定個数保存された値である。なお、保存測定値204として保存されている測定値の個数は、帯域の変動頻度や帯域推定に求められる精度などに基づいて変更することができる。また、保存測定値204として保存されている測定値の個数は、隣接装置毎に異なっていてもよい。平均測定値205は、保存測定値204として保存された一定個数の測定値の平均値である。最小測定値206は、保存測定値204として保存された一定個数の測定値の最小値である。例えば、最小測定値206として帯域の最小値が格納されている場合、その値は通信装置間の伝送路状態が最も悪い時にどの程度帯域を保証できるかの指標となる。なお、最小測定値206は保存測定値204として保存された帯域の最小値とする必要はなく、一定期間中に推定された測定値の最小値としてもよい。
更新部103は、経路要求パケットが当該通信装置から過去に送信されたものである場合、その経路要求パケットをパケット破棄部108に出力した上で破棄する。一方、その経路要求パケットが当該通信装置から過去に送信されたものでない場合、更新部103は、測定部102の測定結果を加えて、経路要求パケットを更新し、経路評価値を算出する。経路要求パケット更新処理と経路評価値算出処理については詳細を後述する。更新部103は、経路要求パケットを更新すると、その経路要求パケットとその経路評価値を重複検知部104へ出力する。
重複検知部104は、更新部103により出力された経路要求パケットが重複受信であるか否かを重複管理テーブル(詳細は後述)に基づいて判定する。判定後、重複検知部104は、重複受信である経路要求パケットとその経路評価値を比較部105に、それ以外の経路要求パケットとその経路評価値をタイマ107に出力する。
図4は、重複管理テーブルを表した図である。重複管理テーブル401には、始点装置毎に、始点アドレス402、経路要求パケット番号403、タイマ状態404が保存されている。始点アドレス402には、受信した経路要求パケットに含まれる始点装置のアドレスが格納される。経路要求パケット番号403には、受信した経路要求パケットに含まれる経路要求パケット番号が格納される。タイマ状態404には、タイマ107(詳細は後述)がタイマを設定中であるか、タイマが満了しているかを示す情報が格納される。重複管理テーブル401を利用した重複検知部104の判定処理の詳細については後述する。
比較部105は、重複検知部104により出力された経路要求パケットの経路評価値と、パケット保存部106(詳細は後述)により保存されている全ての経路要求パケットの経路評価値を参照して、重複検知部104により出力された経路要求パケットとその経路評価値をパケット保存部106に出力するか、パケット破棄部108に出力した上で破棄するか判定する。比較部105の動作の詳細については後述する。
パケット保存部106は、比較部105とタイマ107により出力された経路要求パケットを保存する。また、その経路要求パケットの経路評価値も併せて保存するとよい。保存する経路要求パケットの数が経路要求パケットに含まれる要求経路数305よりも大きい場合は、保存されている経路要求パケットの中から経路評価値が最小のパケットを更新する。また、複数の始点装置から経路要求パケットが送信されている場合は、それぞれの始点アドレスに対して経路要求パケットを保存する領域を確保する。
タイマ107は、重複検知部104により出力された経路要求パケットに含まれる条件識別子306とそのパケットの経路評価値に基づいて、当該経路要求パケットを受信してからパケット保存部106に保存されている経路要求パケットを送信するまでの待機時間を算出する。待機時間は、経路要求パケットの経路評価値が高いほど、短く算出される。また、待機時間は、1ホップ余分に中継装置を通過した経路要求パケットを各装置が受信できるように、1ホップ進むのに必要な時間に、経路評価値に比例した値、反比例した値、または経路評価値に応じた段階的な値を加えた時間としてもよい。
タイマ107は、待機時間算出後、その待機時間をタイマ長とするタイマを開始させる。その後、タイマ107は経路要求パケットをパケット保存部106に出力する。さらに、待機時間が満了すると、タイマ107は、送信部109に経路要求パケットを送信させる。タイマ107の動作の詳細は後述する。
パケット破棄部108は、更新部103、重複検知部104と比較部105により出力された経路要求パケットを破棄する。
送信部109は、各種通信方式によりデータパケットを送信する。ただし、自装置が始点装置、中継装置、終点装置のいずれにあたるかにより、送信部109が行う処理が異なる。自装置が始点装置にあたる場合、送信部109は新しく経路要求パケットを生成してブロードキャストする。自装置が中継装置にあたる場合、送信部109はタイマが満了するとパケット保存部106により保存されているパケットをブロードキャストする。自装置が終点装置にあたる場合、送信部109は、経路要求パケットの終点アドレスと始点アドレスを交換し、要求経路数を「0」に設定した返信用経路要求パケットを生成する。そして、送信部109は、もとの経路要求パケットが中継された逆の経路で、始点装置に、生成した返信用経路要求パケットをユニキャストで返信する。
以上のように構成された通信装置について、図5から図8を用いてその動作を説明する。まず、各装置が経路要求パケットを送信するまでの一連の処理を説明する。図5は、その処理を示したフローチャートである。
まず、通信装置は、自装置が他の装置と通信する必要性が生じたことを示す通信要求があるか否かを判定する(STEP501)。通信装置は、通信要求があると判定すると、経路を探索するために経路要求パケットを生成する(STEP502)。
図6は、STEP502での経路要求パケット生成処理を示したフローチャートである。まず、送信部109は、新たに生成する経路要求パケットの終点アドレスに接続先である終点装置のアドレスを設定し、始点アドレスに自らのアドレスを設定する(STEP601)。つぎに、送信部109は、重複管理テーブル401から始点アドレス402が自らのアドレスとなる経路要求パケット番号403を取得する。そして、送信部109は、取得した番号をインクリメントした値を、新しく生成する経路要求パケットの経路要求パケット番号304に設定する(STEP602)。そして、送信部109は、重複管理テーブル401の経路要求パケット番号403をインクリメントし、重複管理テーブル401を更新する(STEP603)。それから、送信部109は、ネットワークの規模に応じて要求経路数305を設定する(STEP604)。さらに、送信部109は、通信しようとするデータの種類に応じて条件識別子306を設定する(STEP605)。最後に、送信部109は、条件識別子に応じて必要な数の評価基準値307の領域を用意し、STEP601〜STEP605で設定していないパラメータを「0」や経路要求パケットの送信時刻などで初期化する(STEP606)。
STEP502において経路要求パケットを生成すると、送信部109は、その経路要求パケットをブロードキャストして(STEP503)、STEP501の処理を実行する。
つぎに、各装置が経路要求パケットを受信した後の一連の処理を説明する。図7は、その処理を示したフローチャートである。
まず、受信部101は、受信したデータパケットが経路要求パケットであるか否かを判定する(STEP701)。受信部101は、受信したデータパケットが経路要求パケットでない場合(STEP701でNo)、経路要求パケットを受信するまで、STEP701の処理を繰り返す。一方、受信部101が受信したデータパケットが経路要求パケットである場合(STEP701でYes)、以下の処理が順に実行される。
更新部103は、受信した経路要求パケットに含まれる始点アドレス303もしくは中継装置アドレス308に自らのアドレスが存在するか否かを判定する(STEP702)。始点アドレス303もしくは中継装置アドレス308に自らのアドレスが存在する場合(STEP702でYes)、更新部103は、受信した経路要求パケットは以前に自装置を通過あるいは自装置により生成されたものであると判定し、その経路要求パケットをパケット破棄部108に出力することにより、破棄する(STEP713)。一方、始点アドレス303もしくは中継装置アドレス308に自らのアドレスが存在しない場合(STEP702でNo)、更新部103は、受信した経路要求パケットは以前に自装置を通過したものでないと判定して、その経路要求パケットに対して以下の更新処理を行う。
経路要求パケットを受信した後、更新部103は、経路要求パケットに含まれる評価基準値を更新し、経路評価値を算出する(STEP703)。この評価基準値の更新処理と経路評価値の算出処理については後述する。
つぎに、重複検知部104は、更新部103により出力された経路要求パケットに含まれる始点アドレス303に対応する経路要求パケット番号403を重複管理テーブル401から取得する。そして、重複検知部104は、更新部103により出力された経路要求パケットの経路要求パケット番号304が取得された経路要求パケット番号403より小さいか否か判定する(STEP704)。経路要求パケット番号304が経路要求パケット番号403よりも小さい場合(STEP704でYes)、受信した経路要求パケットは過去の経路探索に使用されたものであるので、重複検知部104はその経路要求パケットをパケット破棄部108に出力することにより、破棄する(STEP713)。
経路要求パケット番号304が経路要求パケット番号403よりも小さくない場合(STEP704でNo)、重複検知部104は、経路要求パケット番号304が経路要求パケット番号403と等しいか否か判定する(STEP705)。経路要求パケット番号304が経路要求パケット番号403と等しくない、すなわち経路要求パケット番号304が経路要求パケット番号403よりも大きい場合(STEP705でNo)、重複検知部104は受信した経路要求パケットが初めて受信されたものであると判定する。そして、重複検知部104は、重複管理テーブル401の経路要求パケット番号403を、受信した経路要求パケットに含まれていた経路要求パケット番号304の値に更新する(STEP706)。つぎに、タイマ107は、重複検知部104により出力された経路要求パケットの条件識別子306とその経路評価値より待機時間を算出する(STEP707)。そして、タイマ107は、重複管理テーブル401のタイマ状態を「設定中」に更新し、算出した待機時間を設定したタイマを開始する(STEP708)。その後、パケット保存部106は受信した経路要求パケットを保存する(STEP711)。さらに、パケット保存部106は保存経路数をインクリメントする(STEP712)。STEP712の終了後、STEP701の処理が実行される。
一方、経路要求パケット番号304が経路要求パケット番号403と等しい場合(STEP705でYes)、重複検知部104は受信した経路要求パケットが重複受信されたものであると判定して、さらに重複管理テーブル401に格納されたタイマ状態404が「設定中」か「満了」であるかを判定する(STEP709)。タイマ状態404が「満了」であった場合(STEP709で「タイマ満了」)、重複検知部104は、受信した経路要求パケットをパケット破棄部108に出力することにより破棄する(STEP713)。経路要求パケットが破棄されると、STEP701の処理が実行される。
タイマ状態404が「設定中」であった場合(STEP709で「タイマ設定中」)、比較部105は、受信した経路要求パケットの経路評価値と、パケット保存部106により保存されている経路要求パケットの経路評価値とを比較する(STEP710)。
受信した経路要求パケットに含まれる経路評価値が、パケット保存部106が保存している経路要求パケットの経路評価値のいずれよりも小さいと判定した場合(STEP710でYes)、比較部105は、パケット保存部106が保存している経路要求パケットの数が受信した経路要求パケットに含まれる要求経路数よりも少ないか否かを判定する(STEP714)。パケット保存部106が保存している経路要求パケットの数がその要求経路数と等しいと判定した場合(STEP714でNo)、比較部105は、受信した経路要求パケットをパケット破棄部108に出力することにより破棄する(STEP713)。逆に、パケット保存部106が保存している経路要求パケットの数がその要求経路数よりも少ないと判定した場合(STEP714でYes)、比較部105は、受信した経路要求パケットをパケット保存部106に出力し、パケット保存部106はその経路要求パケットを保存する(STEP711)。さらに、パケット保存部106は保存経路数をインクリメントする(STEP712)。STEP712の終了後、経路要求パケット受信処理(STEP701)に戻る。
一方、受信した経路要求パケットに含まれる経路評価値が、パケット保存部106が保存している経路要求パケットの経路評価値のいずれか1つより大きいと判定した場合(STEP710でNo)、比較部105は、パケット保存部106が保存している経路要求パケットの数が受信した経路要求パケットに含まれる要求経路数よりも少ないか否かを判定する(STEP715)。比較部105は、パケット保存部106が保存している経路要求パケットの数が要求経路数よりも少ないと判定した場合(STEP715でYes)、パケット保存部106は、その経路要求パケットを保存し(STEP711)、保存経路数をインクリメントする(STEP712)。そして、STEP701の処理が実行される。一方、比較部105は、パケット保存部106が保存している経路要求パケットの数が要求経路数と等しいと判定した場合(STEP715でNo)、受信した経路要求パケットをパケット保存部106に出力し、パケット保存部106は、保存している経路要求パケットのうち評価基準値307が最小の経路要求パケットを、受信した経路要求パケットに書き換える(STEP716)。STEP716の終了後、STEP701の処理が実行される。
つぎに、更新部103がSTEP703において実行する評価基準値の更新処理と経路評価値の算出処理の詳細を、図8を用いて、説明する。
まず、更新部103は、受信した経路要求パケットに関する直前の中継装置アドレスを以下のいずれかの方法により取得する(STEP800)。
方法1:経路要求パケット内に記載されている中継装置アドレス308のうち最後尾に記載されている中継装置アドレスを取得する。
方法2:自装置が最初の中継装置である場合は、中継装置アドレス308の替わりに始点アドレス303を取得する。
方法3:パケットヘッダに当該経路要求パケットを送信した装置のアドレスが含まれている場合は、直前の中継装置アドレスとしてそのアドレスを取得する。
つぎに、更新部103は受信した経路要求パケットに含まれる条件識別子306を取得する(STEP801)。そして、更新部103は受信した経路要求パケットに含まれる中継装置アドレス308に自らのアドレスを追加する(STEP802)。それから、更新部103は受信した経路要求パケットに含まれていた条件識別子306の値に応じて、以降の処理を切り替える(STEP803)。
条件識別子が「1」に設定されている場合、更新部103は、直前の中継装置アドレスと同じ隣接装置アドレス202に関する帯域の最新測定値203を、測定値管理テーブル201から取得する(STEP805)。つぎに、更新部103は、受信した経路要求パケットの最後の評価用測定値(1)に、取得した最新の測定値203を追加する(STEP806)。その後、更新部103は、受信した経路要求パケットに含まれている全ての評価用測定値を用いて通過経路全体を通じた帯域を算出する(STEP807)。通過経路全体を通じた帯域は、経路要求パケットに含まれる全ての評価用測定値(1)の逆数を求め、その総和の逆数を求めることにより算出される。そして、更新部103は、受信した経路要求パケットの評価基準値(1)を算出した帯域に更新する(STEP808)。最後に、評価基準値(1)をもとに経路評価値を算出する(STEP809)。この場合、更新部103は、評価基準値307の値、あるいはその値を正規化した値などを経路評価値として算出する。以上によって、評価基準値更新、経路評価値算出処理を終了する。
条件識別子が「2」または「5」に設定されている場合、更新部103は、直前の中継装置アドレスと同じ隣接装置アドレス202に関する最小測定値206を測定値管理テーブル201から取得する(STEP810)。つぎに、更新部103は、受信した経路要求パケットに含まれる評価基準値(1)を取得する(STEP811)。その後、更新部103は、受信した経路要求パケットに含まれる評価基準値(1)と最小測定値206とを比較する(STEP812)。最小測定値206が評価基準値(1)より小さいと判定した場合(STEP812でYes)、更新部103は評価基準値(1)を最小測定値206の値に更新する(STEP808)。一方、最小測定値206が評価基準値307より大きいと判定した場合、評価基準値(1)を更新しない。そして、更新部103は評価基準値(1)の値、あるいはその値を正規化した値などを経路評価値として算出する(STEP809)。以上によって、評価基準値更新、経路評価値算出処理を終了する。
条件識別子が「3」に設定されている場合、更新部103は経路要求パケットが自装置に到達した時刻と評価基準値の時刻との時間差あるいはその時間差を正規化した値などを経路評価値として算出し(STEP809)、処理を終了する。
条件識別子が「4」に設定されている場合、更新部103は受信した経路要求パケットに含まれる評価基準値(1)を取得して、その値をインクリメントする(STEP804)。そして、更新部103は評価基準値(1)をインクリメントした値に更新する(STEP808)。つぎに、更新部103はホップ数が小さくなるほど大きくなる値、例えばホップ数の逆数、あるいはその逆数を正規化した値などを経路評価値として算出し(STEP809)、処理を終了する。
条件識別子が「6」に設定されている場合、更新部103は、受信した経路要求パケットに含まれる評価基準値307のうち評価基準値(1)をインクリメントする(STEP813)。つぎに、更新部103は、直前の中継装置アドレスと同じ隣接装置アドレス202に関する最小測定値206を測定値管理テーブル201から取得する(STEP814)。そして、更新部103は、受信した経路要求パケットに含まれる評価基準値307のうち評価基準値(2)を取得し(STEP815)、最小測定値206と評価基準値(2)とを比較する(STEP816)。最小測定値206が評価基準値(2)よりも小さいと判定した場合(STEP816でYes)、更新部103は、評価基準値(2)を最小測定値206に更新する(STEP808)。そして、更新部103は、更新された評価基準値(1)、評価基準値(2)に対応する経路評価値(1)、経路評価値(2)を算出して(STEP809)、処理を終了する。一方、最小測定値206が前記評価基準値(2)よりも大きいと判定した場合(STEP816でNo)、更新部103は評価基準値(1)に対応する経路評価値(1)、もとの評価基準値(2)に対応する経路評価値(2)を算出して(STEP809)、処理を終了する。
一方、通信装置は、通信要求がないと判定した場合(STEP501でNo)、パケット保存部106により保存されている経路要求パケットのうち、タイマが満了している経路要求パケットがあるか否かを判定する(STEP511)。通信装置は、タイマが満了している経路要求パケットがないと判定した場合(STEP511でNo)、STEP501の処理を実行する。一方、通信装置は、タイマが満了している経路要求パケットがあると判定した場合(STEP511でYes)、STEP512の処理を実行する。
通信装置は、タイマが満了している経路要求パケットがあると判定した場合、その経路要求パケットの終点アドレスが自らのアドレスであるか否かを判定する(STEP512)。その終点アドレスが自らのアドレスであると判定した場合(STEP512でYes)、通信装置は、始点装置に経路を返信するための返信用経路要求パケットを生成する(STEP513)。この返信用経路要求パケットの生成処理は以下の通りである。まず、通信装置は、その終点アドレスが自らのアドレスである経路要求パケットにおいて、終点アドレスと始点アドレスを入れ替える。つぎに、通信装置は、その経路要求パケットの要求経路数を「0」に設定する。
返信用経路要求パケットを生成すると、通信装置は、重複管理テーブル401のタイマ状態404を「満了」に更新する(STEP514)。そして、通信装置は、返信用経路要求パケットをユニキャスト送信し(STEP515)、STEP511の処理を実行する。
一方、その終点アドレスが自らのアドレスでないと判定した場合(STEP512でNo)、通信装置は、重複管理テーブル401のタイマ状態404を「満了」に更新する(STEP516)。つぎに、通信装置は、パケット保存部106において保存されている経路要求パケットをブロードキャスト送信し(STEP517)、STEP511の処理を実行する。
つぎに、本実施形態の具体例として、電力線通信(Power Line Communication、以下、「PLC」という。)ネットワークに適用した例を、図9と図10を用いて説明する。ただし、以下の開示の全てまたは一部は、例えば、無線ネットワーク等、他のネットワーク形式にも適用可能である。
図9は本実施例におけるネットワークの構成を示す図である。本実施の形態のネットワークは、通信装置901〜906で構成されている。説明の便宜上、通信装置901〜906は、符号の順序に合わせて、アルファベット順にノードA〜ノードFと呼ぶことにする。さらに、通信装置901〜906の各アドレスは、符号の順序に合わせて、アルファベット順にA〜Fであるとする。PLCネットワークにおいては、各通信装置はPLCモデムを指し、それぞれ他の装置との間で音声、動画または通常のデータなどを通信する。
PLCネットワークにおいては、全ての通信装置は電力線により互いに物理的に接続されている。このため、電力線上を伝送されるデータ信号は距離減衰やノイズの影響を受け、通信装置の組み合わせによっては直接通信することができない。図9では、直接通信できる装置間を実線で接続して示している。また、実線毎に記載されている数値は、実線で接続されている2つの装置間で通信を行った場合に期待できる最新の帯域を示す。
以下では、ノードAが、直接通信できないノードDとの間でデータ通信を開始する場合を例に挙げて説明する。ここで、ノードAを始点ノード、ノードDを終点ノードと呼ぶことにする。
ノードAは、通信されるデータ種別に応じた条件を指定して経路を探索する。本実施形態では、データ種別に応じた条件の一例として、以下の条件を用いる。音声データの場合は、始点ノードから終点ノード間で遅延が最小、またはホップ数が最小という条件を用いる。動画データの場合は、経路の最小保証帯域が最大という条件を用いる。通常のデータの場合は、経路の帯域が最大、または通信接続時間が長いという条件を用いる。
図10は、本実施の形態において、ノードAからノードDへデータ通信を要求し、ノードAがノードDへの経路を探索する際のシーケンス図である。図10において、送信、受信を枠付きで表示した箇所は、各ノードでの送信、受信処理とその識別番号を示し、その間にある点線矢印はブロードキャストにより経路要求パケットが送信されたことを示す。点線矢印上に四角の枠で囲まれた記号と数字は、送信された経路要求パケットの内容を表し、それぞれ始点ノードから当該ノードまで通過したノードのアドレス(以降、通過ノードアドレスと呼ぶ)とその経路の評価基準値を表す。なお、経路要求パケットの送信先での×印は、そのノードの更新部103、重複検知部104、比較部105のいずれかが受信された経路要求パケットを破棄したことを表す。また、各ノードで経路要求パケットを受信してから送信するまでの太線は、凡例にも示すように、待機時間を表す。さらに、各ノードの受信を示す箇所の左下には、各ノードが受信して更新した経路要求パケットと先に受信してパケット保存部106により保存されていた経路要求パケットの両方の、通過ノードアドレスと、更新後の評価基準値が枠に囲まれて表示されている。そのうち、更新後にパケット保存部106により保存される経路要求パケットは実線枠に囲まれて表示されており、更新後に破棄される経路要求パケットは点線枠に囲まれて表示されている。最後に、終点ノードであるノードDから出た一点鎖線の矢印は、始点ノードに対して返信用経路要求パケットをユニキャストで返信されたことを表す。
ノードAは、通信開始要求が発生した際に、図6に示された処理に基づき経路要求パケットを作成し、他のノードに送信する。以降、ノードAが送信する経路要求パケットは、要求経路数が「1」、条件識別子が「1」、送信する経路要求パケット番号が「120」に設定されているとして、詳細を説明する。
ノードAが経路要求パケットを送信する(送信1)と、ノードB、F、Cは、その経路要求パケットを受信する(受信1、受信2、受信3)。ノードB、F、Cは、受信した経路要求パケットについて、図8に示された方法に基づき、評価基準値を更新し、経路評価値を算出する。まず、ノードB、F、Cは、受信した経路要求パケットの条件識別値が「1」に設定されているので、図2の測定値管理テーブル201より、ノードAのアドレスであるアドレスAと同じ隣接装置アドレス202の帯域に関する最新測定値203を取得する。ここで、各ノード間の最新の帯域は図9に示された通りであるので、ノードBが取得する最新の帯域は100、ノードCが取得する最新の帯域は5、ノードFが取得する最新の帯域は50となる。つぎに、ノードB、F、Cは取得した最新の帯域をもとに、評価基準値と経路評価値を算出する。ここで、受信した経路要求パケットは初めて受信したものであり、かつそのパケットの条件識別値が「1」に設定されているので、算出される評価基準値と経路評価値は、最新測定値203と同じ値となる。それから、ノードBは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「B、100」を追加し、評価基準値を「100」に更新する(「受信1」の左下)。同様に、ノードFは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「F、50」を追加し、評価基準値を「50」に更新する(「受信2」の左下)。ノードCは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「C、5」を追加し、評価基準値を「5」に更新する(「受信3」の左下)。
また、ノードB、F、Cは、重複管理テーブル401に、始点アドレス402として「A」を、経路要求パケット番号403として「120」を記憶する。さらに、ノードB、F、Cは、前記のように算出される経路評価値に応じて経路要求パケットを送信するまでの待機時間を決定し、その待機時間のタイマを設定する。ここで、経路評価値が高いほど短い待機時間が設定されるので、ノードB、F、Cの順に短い待機時間が設定される。
以下では、タイマが満了したノードが経路要求パケットを送信し、他のノードが2番目以降の経路要求パケットを受信する際の処理について述べる。
最初にタイマが満了したノードBは、保存していた経路要求パケットをブロードキャストする(送信2)。ノードBが送信する経路要求パケットは、中継装置アドレスと評価用測定値が「B、100」、評価基準値が「100」に設定されている。
ノードAは、この経路要求パケットを受信する(受信100)が、受信した経路要求パケットに含まれる始点アドレスが自らのアドレスであるため、受信した経路要求パケットを破棄する。この処理により、ループ経路が生成されることを防ぐとともに、無駄な経路要求パケットがブロードキャストされることを防ぐ。また、ノードAは経路評価値の比較等の不要な判定を行わないので、処理負荷が軽減される。
一方、ノードF、C、Eも、この経路要求パケットを受信する(受信4、5、6)が、受信した経路要求パケットの中継装置アドレスに自らのアドレスが含まれていないため、図8に示された方法に基づき、経路要求パケットを更新する。
ノードEは、受信した経路要求パケットが最初の経路要求パケットであるため、前記と同様の処理により、受信した経路要求パケットの中継装置アドレスと評価用測定値に「E、50」を加え、評価基準値を「33」に更新する(「受信6」の左下)。そして、算出される待機時間に応じて、タイマを設定する。
ノードFは、図2の測定値管理テーブル201より、直前の中継装置であるノードBのアドレス(アドレスB)と同じ隣接装置アドレス202の帯域に関する最新測定値203(100)を取得する。さらに、ノードFは、この測定値(100)と、評価用測定値309に記載されているノードAとノードBの間の帯域(100)から、それぞれの逆数の和(1/100+1/100=1/50)を求め、その逆数(50)を新たな評価基準値として算出する。また、そのパケットの条件識別値が「1」に設定されているので、ノードFは、経路評価値も50として算出する。そして、ノードFは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「F、100」を加え、評価基準値を「50」に更新する(「受信4」の左下)。
つぎに、ノードFは、受信した経路要求パケットの経路要求パケット番号304(120)と重複管理テーブル401の経路要求パケット番号403(120)が同じ番号であるので、受信した経路要求パケットが重複受信されたものであることを確認する。この場合、ノードFは、最初に受信して保存されている経路要求パケットの経路評価値(50)と、2番目に受信した経路要求パケットの経路評価値(50)を比較する。要求経路数が「1」に設定されているため、ノードFは、経路評価値が大きい経路要求パケットを保存し、経路評価値が小さい経路要求パケットを破棄する必要があるが、これら2つの経路要求パケットは経路評価値が等しい。そこで、ノードFは、これらの経路要求パケットのうちホップ数がより少ない経路要求パケット、すなわち最初に受信した経路要求パケットをそのまま保存し、2番目に受信した経路要求パケットを破棄する(「受信4」の左下)。このように、経路評価値が同じ経路が複数ある場合、ホップ数の少ない経路を選択することにより、始点ノードから終点ノードへの通信時にパケットを中継する回数を少なくし、始点ノードから送信されたデータが終点ノードに届くまでの遅延時間を小さくすることができる。
同様に、ノードCは、受信した経路要求パケットの中継装置アドレスと評価用測定値に「C、11」を加え、評価基準値を「10」に更新する(「受信5」の左下)。ノードCにおいては、2番目に受信した経路要求パケットの経路評価値(10)が最初に受信して保存されている経路要求パケットの経路評価値(5)より大きい。したがって、ノードCは、中継装置アドレスと評価用測定値が「B、100」、「C、11」、評価基準値が「10」である2番目に受信した経路要求パケットを保存する(「受信5」の左下)。
つぎに、2番目にタイマが満了したノードFが、中継装置アドレスと評価用測定値が「F、50」、評価基準値が「50」である、保存していた経路要求パケットをブロードキャストする(送信3)。ノードAは、その経路要求パケットを受信する(受信101)と、受信した経路要求パケットに自らのアドレスが含まれているため、その経路要求パケットを破棄する。ノードC、Eは、そのパケットを受信する(受信7、受信8)と、保存するパケットを、受信した経路要求パケットに更新する。ノードBはタイマ満了後に経路要求パケットを受信した(受信102)ので、これを破棄する。このように、各ノードはタイマ満了後に受信した経路要求パケットを破棄するので、各装置の処理負荷は軽減される。さらに、次の中継装置は、始点アドレスと終点アドレスが同じ経路要求パケットをタイマ満了後に処理する必要がなくなる。
上記に述べた処理を繰り返すことにより、終点装置であるノードDは、タイマ満了時に、中継装置アドレスと評価値が「F、50」「E、200」「D、200」、経路評価値が「33」である、2番目に受信した経路要求パケットを保存している(「受信10」の左下)。ノードDは、このパケットの終点アドレスと始点アドレスを入れ替え、要求経路数を「0」に設定した返信用経路要求パケットを生成し、もとの経路要求パケットが中継された逆の経路で始点ノードへユニキャスト送信する(送信6)。このように、終点ノードが最終的に決定した経路要求パケットを始点ノードに返信することにより、通信経路が設定される。
以上説明したように、第1の実施形態によれば、タイマ107が最初の経路要求パケットの受信から所定の待機時間を設定し、重複検知部104が待機時間内に受信した経路要求パケットの中で重複して経路要求パケットを受信したかを判定する。重複受信している場合は比較部105で経路評価値が高い経路要求パケットを要求経路数だけ選択する。そして、送信部109が前記選択した経路要求パケットを隣接装置へ送信する。これにより、経路探索のために送信される経路要求パケットの数を削減して帯域の消費を抑えつつ、始点装置と終点装置との間において経路の状態を示す経路評価値が高い経路を作成することができる。
また、タイマ107は、受信した経路要求パケットから算出した経路評価値に応じて待機時間を設定する。これにより、各装置が経路要求パケットを送信するタイミングを分散させることができるので、待機時間を固定した場合と比較して、各装置が送信する経路要求パケットが衝突する可能性を低くすることができる。
さらに、タイマ107は、最初に受信した経路要求パケットから算出した経路評価値が低いほど待機時間を長く設定する。これにより、各装置は、始点装置との間の経路評価値が低い場合に、経路評価値が高い経路を介して他の経路要求パケットを受信する可能性を高くすることができるので、各装置が経路評価値の高い経路をより確実に探索することができる。
また、始点装置が経路要求パケットの要求経路数を設定でき、中継装置は、経路要求数の数だけ経路要求パケットを送信する。これにより、例えば伝送路の状態が頻繁に変化している場合に、始点装置が作成する経路数を増やして全ての経路で通信ができなくなる可能性を低くすることができる。逆に、そうでない場合には、始点装置が作成する経路数を減らして経路作成のために送信されるパケット数を制限することができる。したがって、安定した通信の確保と帯域消費の抑制とを両立することができる。
なお、経路要求パケットのフォーマットは、以下に述べる拡張がされていてもよい。まず、経路上の各中継装置とその直前の中継装置との間で測定された通信の状態を全て保存しなくても、条件識別子306に対応する評価基準値307を算出することができる場合は、経路要求パケット301は評価用測定値309を含まなくてもよい。これにより、経路要求パケットのパケット長が短くなるので、経路要求パケットの送信により消費される帯域をより小さくすることができる。例えば、条件識別子が「2」「5」に設定されている場合、特定の通信の状態に関する経路上での最小値が評価基準値307となり、各中継装置は、自らの測定値とその最小値のうち、小さいものを新たな評価基準値307に置き換えていけばよいので、評価用測定値309として各通信装置間の通信の状態を加える必要はない。条件識別子が「3」に設定されている場合、始点装置が評価基準値307の値を設定した後、中継装置が評価基準値307を更新する必要がないので、評価用測定値309は必要ない。条件識別子が「4」に設定されている場合、始点装置が評価基準値307の値を0に設定した後、各中継装置が評価基準値307に1を加えていくだけなので、評価用測定値309は必要ない。さらに、条件識別子「6」に設定されている場合、条件識別子が「2」「5」に設定されている際に必要な評価基準値307が算出されればよいので、評価用測定値309は必要ない。したがって、条件識別子「1」〜「6」のうち、「1」に設定されている場合にのみ、経路要求パケット301は評価用測定値309を必ず含み、その評価用測定値309は各中継装置とその直前の中継装置との間で測定された最新の通信帯域となる。
ただし、条件識別子306が「2」〜「6」に設定されていても、経路要求パケット301は評価用測定値309を付加的に含んでいてもよい。また、経路要求パケット301は各中継装置間における特定の通信の状態を評価用測定値309として含む代わりに、評価基準値307を含まなくてもよい。この場合、各中継装置は、評価用測定値309の値をもとに評価基準値307を計算する。
また、条件識別子306が「2」、「6」に設定されている場合、経路要求パケット301は評価用測定値309として、最小測定値206ではなく、最新測定値203を含む態様であってもよい。これにより、経路評価値が等しい経路要求パケットが複数受信された場合に、経路全体を通じた最新の帯域を算出して、次の選択基準として使用することもできる。
さらに、条件識別子306は前記に示した6種類にとどまらない。例えば、条件識別子「1」「2」の場合において、過去の通信状態の履歴に基づいて帯域の平均値を用いた態様を加えても構わない。条件識別子「3」に加えて、各装置の測定部102で自装置と隣接装置との間で送信されるHelloパケットに送信時刻を付加して、定期的に遅延時間を測定し、過去の一定時間内での平均値もしくは最大値を求め、経路要求パケットが通過した経路上の各中継装置間でのそれらの総和を算出し、評価基準値とした態様でも構わない。条件識別子「5」においても、過去の通信状態の履歴に基づいて、通信継続時間の平均値もしくは最小値を利用した態様でも構わない。
さらに、始点装置が複数の条件の組み合わせから最適な経路を探索する態様でもよい。その場合、始点装置は、経路要求パケット301の条件識別子306に複数の条件を表す識別子を、評価基準値307にそれらの条件に対応する複数の経路の状態を示す値を設定する。ただし、各装置が複数の条件の優先順位が識別できること、各装置が評価基準値307に設定される各評価基準値が各条件識別子のどれに対応しているか識別できること、の2つの要件を満たす必要がある。この要件を満たすために、例えば、条件識別子306には、前記複数の条件のうち、優先される条件の順に条件識別子が設定され、評価基準値307には、優先される条件の順に、対応する評価基準値を順に設定されるとよい。この設定方法において、最新の通信状態に基づき帯域が最大となり、かつ複数の経路で帯域の値が同じ場合にホップ数が少ない経路を探索する場合、条件識別子306は、「1」「4」の順に設定される。また、評価基準値307に評価基準値(1)と評価基準値(2)の2つの領域が確保され、評価基準値(1)には経路上の各中継装置間における最新の通信状態をもとに推定される、始点装置から自装置までの通信帯域が格納され、評価基準値(2)にはホップ数が格納される。さらに、評価基準値(1)に対応する評価用測定値309である評価用測定値(1)も合わせて確保され、評価用測定値(1)には各中継装置とその直前の中継装置との間で測定された最新の通信帯域が格納される。
さらに、第1の実施形態では、経路要求パケットの要求経路数が「1」より大きい場合、送信部109は複数の経路要求パケットの内容をまとめて記述して送信してもよい。
(第2の実施形態)
上記第1の実施形態では、各装置が最初に受信した経路要求パケットによって待機時間を設定し、それ以降は待機時間を更新しないとしていた。しかし、最初に受信した経路要求パケットによって設定された待機時間が必ずしも適切ではない場合もある。例えば、設定した待機時間が長すぎる場合、各中継装置が経路要求パケットを送信するまでの待機時間が長くなり、経路が設定されるまで長い時間を要する。その結果、データの通信開始が遅れてしまう。一方、設定した待機時間が短すぎる場合、待機時間経過後により高い経路評価値を有する経路要求パケットを受信しても、破棄してしまう可能性が高まる。
そこで、第2の実施形態では、経路評価値が高い経路を出来るだけ早く設定するため、通信装置は、受信した経路要求パケットの経路評価値がある条件を満たした場合に、最初に設定した待機時間を短縮する。あるいは、タイマの満了を待たずに、経路要求パケットを送信する例について説明する。
図11は、本発明の第2の実施形態に係る通信装置の機能ブロック図である。図11は、図1と構成の数、種類は同じであるが、本実施の形態では、比較部105がタイマ107を更新したり、タイマ107の値を参照したりするため、比較部105とタイマ107が直接接続されている。
つぎに、本実施の形態について各構成の動作を説明する。図11に示す本実施の形態の各構成は、比較部105の動作のみが異なる。比較部105は、第1の実施形態の動作に加えて、新しく受信した経路要求パケットと先に受信した経路要求パケットの待機時間、経路評価値、ホップ数を比較し、所定の条件のもと、タイマ107の待機時間の短縮、延長を実施する。また、比較部105は、始点装置及び終点装置が同一の経路要求パケットが所定の閾値の数だけ受信した場合、タイマ107に設定された待機時間を満了させる。
また、本実施の形態における経路要求パケット301は、評価基準値307にホップ数を記載する領域として、評価基準値(0)が追加される。さらに、経路要求パケット301はタイマの満了時刻が延長されたことを示すフラグを含んでいてもよい。この場合、経路要求パケット内にタイマの満了時刻が延長されたことを示すフラグが立っていることを検知した他の装置のタイマ107は、その経路要求パケットを送信した装置が後から送信されるであろう経路評価値の高い経路要求パケットを受信するため、新たなタイマを設定するとよい。
以上のように構成された通信装置について、図12〜図14を用いてその動作を説明する。図12は、本実施の形態における各装置が実行する、経路要求パケットの受信処理を示すフローチャートである。なお、図12では、で示した第1の実施形態における受信処理と同じ処理については、図7と同じ符号を付けている。ここでは、図7と相違する点について説明する。
STEP1201は、図7のSTEP703に対応する処理である。受信部101が経路要求パケットを受信すると、更新部103が評価基準値更新、経路評価値算出処理を行う(STEP1201)。図13は、STEP1201の処理を示すフローチャートである。なお、図13では、図8で示した第1の実施形態における評価基準値更新、経路評価値算出処理と同じ処理については、図8と同じ符号を付けている。ここでは、図8と相違する点について説明する。
STEP803による条件識別子による処理の分岐の前に、更新部103は評価基準値(0)をインクリメントする(STEP1301)。これは、第2の実施形態では、条件識別子に無関係に、ホップ数を経路探索に利用するためである。つぎに、更新部103は評価基準値の更新の際に、評価基準値(0)も他の評価基準値と併せて更新する(STEP1302)。最後に、更新部103は、他の経路評価値に併せて、評価基準値(0)に関する経路評価値を第2の経路評価値として算出する(STEP1303)。第2の経路評価値はホップ数をもとに算出されるので、更新部103はホップ数が小さくなるほど大きくなる値、例えばホップ数の逆数、あるいはその逆数を正規化した値などを経路評価値として算出する。以降の説明では、第2の経路評価値以外の経路評価値を第1の経路評価値と呼ぶことにする。なお、この第1の経路評価値は、第1の実施形態での経路評価値と同じである。
なお、本実施の形態では、経路要求パケットの評価基準値(0)にホップ数が格納されているため、条件識別子が「4」、「6」のときは、評価基準値(0)の値を評価基準値(1)の代わりに利用してもよい。したがって、図13にも点線で示したように、STEP804やSTEP813の処理は省略し、以降の処理において評価基準値(0)の値を利用してもよい。
以上の評価基準値更新、経路評価値算出処理(図12のSTEP1201)を更新部103が終了すると、重複検知部104が重複受信した経路要求パケットがタイマ満了前に受信されたものであると判定すると(STEP709で「タイマ設定中」)、比較部105がタイマ変更処理を行う(STEP1202)。図14は比較部105が実行するタイマ変更処理を示すフローチャートである。
まず、比較部105は、始点アドレスと経路要求パケット番号が等しい経路要求パケットをいくつ受信したのかを示す受信経路要求パケット数をインクリメントする(STEP1401)。この場合、受信経路要求パケット数を記憶するため、重複管理テーブル401の構成要素に、受信経路要求パケット数が追加されていることが望ましい。
続いて、比較部105は、受信経路要求パケット数が閾値以上であるか否かを判定する(STEP1402)。この所定の閾値は、経路評価値の高い経路を作成するために十分な数の経路要求パケットを受信できる数である。この閾値は、典型的には各装置にあらかじめ格納されている。なお、始点装置が経路要求パケット301内にその閾値を別途格納してもよい。また、要求経路数305に対して閾値がその何倍にあたるかのみが各装置共通に設定されており、始点装置が定めた要求経路数305に応じて、各装置が閾値を算出してもよい。さらには、各装置が自らを中継する経路要求パケットを定常的に測定し、経路要求パケット数の最適な閾値を学習によって定める態様であってもよい。受信経路要求パケット数が閾値以上であると判定した場合(STEP1402でYes)、比較部105は先に設定したタイマを満了させ(STEP1403)、タイマ変更処理を終了する。
一方、受信経路要求パケット数が閾値未満であると判定した場合(STEP1402でNo)、比較部105は受信した経路要求パケットの第1の経路評価値を取得する(STEP1404)。つぎに、比較部105は取得した第1の経路評価値が、パケット保存部106が保存している全ての経路要求パケットにおけるいずれの第1の経路評価値よりも大きいか否かを判定する(STEP1405)。
取得した第1の経路評価値がより大きいと判定した場合(STEP1405でYes)、比較部105は受信した経路要求パケットの第2の経路評価値を取得する(STEP1406)。つぎに、比較部105は、取得した第2の経路評価値が、パケット保存部106が保存している全ての経路要求パケットにおけるいずれの第2の経路評価値よりも小さいか否かを判定する(STEP1407)。
取得した第2の経路評価値がより小さいと判定した場合(STEP1407でYes)、比較部105は、取得した第1の経路評価値に基づいて待機時間を算出する(STEP1408)。つぎに、比較部105は算出した待機時間に基づいて新しいタイマを設定し(STEP1409)、タイマ変更処理を終了する。
取得した第2の経路評価値が、パケット保存部106が保存しているいずれかの経路要求パケットの第2の経路評価値以上であると判定した場合(STEP1407でNo)、比較部105は、取得した第1の経路評価値に基づいて待機時間を算出する(STEP1413)。つぎに、比較部105は、算出した待機時間と、現在設定中のタイマの残り時間とを比較する(STEP1414)。算出した待機時間が現在設定中のタイマの残り時間よりも短い場合、比較部105は、現在設定中のタイマを算出した待機時間に更新して(STEP1415)、タイマ変更処理を終了する。一方、算出した待機時間が現在設定中のタイマの残り時間以上の場合(STEP1414でNo)、比較部105はそのままタイマ変更処理を終了する。
取得した第1の経路評価値が、パケット保存部106が保存しているいずれかの経路要求パケットの第1の経路評価値以下であると判定した場合(STEP1405でNo)、比較部105は取得した経路要求パケットの第1の経路評価値が、パケット保存部106が保存している全ての経路要求パケットにおけるいずれの第1の経路評価値よりも小さいか否かを判定する(STEP1410)。取得した第1の経路評価値が、パケット保存部106が保存しているいずれかの経路要求パケットの第1の経路評価値と等しいと判定した場合(STEP1410でNo)、比較部105はそのままタイマ変更処理を終了する。
取得した第1の経路評価値がより小さいと判定した場合(STEP1410でYes)、比較部105は受信した経路要求パケットの第2の経路評価値を取得する(STEP1411)。つぎに、比較部105は、取得した第2の経路評価値が、パケット保存部106が保存している全ての経路要求パケットにおけるいずれの第2の経路評価値よりも小さいか否かを判定する(STEP1412)。取得した第2の経路評価値がより小さいと判定した場合(STEP1412でYes)、比較部105は、タイマを満了して(STEP1403)、タイマ変更処理を終了する。一方、取得した第2の経路評価値が、パケット保存部106が保存しているいずれかの経路要求パケットの第2の経路評価値以上であると判定した場合(STEP1412でNo)、比較部105はそのままタイマ変更処理を終了する。
つぎに、第2の実施形態における発明を適用した具体例を図15、16を用いて説明する。図15は本実施形態におけるネットワークの構成を示す図である。図15では、図9と同様に、直接通信できる装置間を実線で接続して示している。また、実線毎に記載されている数値は、実線で接続されている2つの装置間で期待できる最新の通信帯域を示す。説明の便宜上、通信装置901〜906は、符号の順序に合わせて、アルファベット順にノードA〜ノードFと呼ぶことにする。さらに、通信装置901〜906の各アドレスは、符号の順序に合わせて、アルファベット順にA〜Fであるとする。本実施例でも、ノードA(始点ノード)が、直接通信できないノードD(終点ノード)との間で通信されるデータ種別に応じた条件を指定して経路を探索する場合を例に挙げて以下説明する。
図16は、本実施の形態において、ノードAからノードDへデータ通信開始要求が発生し、ノードAがノードDへの経路を探索する際のシーケンス図である。図16に示されている記号のうち、図10と同じ形態で記されている記号は図10と同じ内容を指す。図16では、凡例に記された内容が図10と異なる。まず、待機時間Aは、最初に受信した経路要求パケットの経路評価値に基づいて設定された待機時間を指す。待機時間Aの短縮時間は、図14のSTEP1403、もしくはSTEP1415の処理により、待機時間Aが短縮された時間長を指す。待機時間Aの再短縮時間は、一度待機時間Aが短縮された後、図14のSTEP1403、もしくはSTEP1415の処理が再度されることにより、待機時間Aの短縮時間に加えて、さらに待機時間Aが短縮された時間長を指す。つぎに、待機時間Bは、図14のSTEP1409の処理により、新たに設定されたタイマの待機時間を指す。待機時間Bの短縮時間は、待機時間Bのタイマが設定された後、図14のSTEP1403、もしくはSTEP1415の処理がされることにより、待機時間Bが短縮された時間長を指す。
本実施例では、待機時間中に受信する経路要求パケット数の閾値(図14のSTEP1402の閾値)が「4」に設定されており、各中継装置はタイマが満了しなくても4番目の経路要求パケットを受信した時点で、その時点で保存している経路要求パケットを送信するものとする。
ノードAは、データ通信開始要求が発生すると経路要求パケットを作成する。本実施例では、ノードAが送信する経路要求パケット301は、経路要求パケット番号304が「120」、要求経路数305が「1」、条件識別子306が「1」に設定されている。また、評価基準値307の評価基準値(0)は、初期値として「0」が設定されている。評価基準値(1)は各中継装置が条件識別子に基づいて計算した経路評価値を記載する領域であり、初期値として「0」が設定されている。
ノードAは経路要求パケットを送信すると(送信1)、ノードB、F、Cがその経路要求パケットを受信する(受信1、受信2、受信3)。ノードB、F、Cの各々は、受信した経路要求パケットに含まれている評価基準値(0)をインクリメントして「1」に更新する。つぎに、それらのノードは、受信した経路要求パケットの条件識別子が「1」に設定されていると判定すると、受信した経路要求パケットに含まれる中継ノードアドレスに自らのアドレスを、評価用測定値(1)に測定値管理テーブル201より取得したノードAとの間の最新の通信帯域を追加する。さらに、経路要求パケットに含まれる評価基準値(1)を、測定値管理テーブル201から取得したノードAとの間で通信を行う場合の最新の帯域に更新する。その後、評価基準値(1)に基づいて待機時間を算出し、タイマを設定する。このとき、ノードB、F、Cの各々のタイマは、ノードB、F、Cの順で待機時間が満了するように設定される。なお、図16では、待機時間Aと待機時間Aの短縮時間を加えた時間がこの時点で設定される待機時間となる。
以下では、待機時間が満了したノードが経路要求パケットを送信し、他のノードが2番目以降の経路要求パケットを受信する際の処理について述べる。
最初に待機時間が満了したノードBは、保存していた中継装置アドレスと評価用測定値(1)が「B、100」、評価基準値(0)が「1」、評価基準値(1)が「100」に設定された経路要求パケットをブロードキャストする(送信2)。
ノードF、C、Eの各々はこの経路要求パケットを受信する(受信4、受信5、受信6)。そして、それらのノードは、受信した経路要求パケットに含まれている評価基準値(0)をインクリメントして「2」に更新する。つぎに、それらのノードは、受信した経路要求パケットの条件識別子が「1」に設定されていると判定すると、受信した経路要求パケットに含まれる中継装置アドレスに自らのアドレスを、評価用測定値(1)に測定値管理テーブル201より取得したノードBとの間の最新の通信帯域を追加する。また、ノードF、C、Eは、評価用測定値(1)に格納された値に基づいて当該経路で通信を行う場合の帯域を算出し、評価基準値(1)を算出した帯域に更新する。
その結果、ノードFは、受信された経路要求パケットに含まれている評価基準値(0)を「2」に、評価基準値(1)を「33」に、中継装置アドレスと評価用測定値(1)を「B、100」、「F、50」に更新する(「受信4」の左下)。ここで、ノードFが2番目に受信した経路要求パケットは、評価基準値(1)が小さい、すなわち第1の経路評価値が小さいという条件を満たしている。さらに、その経路要求パケットは、ノードFが最初に受信した経路要求パケットよりもホップ数が多い、すなわち第2の経路評価値も小さいという条件も満たしている。この場合、ノードFは、タイマは満了していないが、重複管理テーブル401のタイマ状態404を「満了」に更新し、このタイミングで保存している最初に受信した経路要求パケットを送信する(送信3)。なお、図16では、待機時間Aの短縮時間が、これにより短縮された待機時間を示している。
ノードCは、ノードBが送信した経路要求パケットを受信した(受信5)後、受信した経路要求パケットに含まれる評価基準値(0)を「2」に、評価基準値(1)を「33」に、中継装置アドレス308と評価用測定値(1)を「B、100」、「C、50」に更新する(「受信5」の左下)。ここで、2番目に受信した経路要求パケットは、評価基準値(1)が大きい、すなわち第1の経路評価値が大きいという条件を満たしている。さらに、その経路要求パケットは、ノードCが最初に受信し保存している経路要求パケットよりもホップ数が多い、すなわち第2の経路評価値が小さいという条件を満たしている。この場合、ノードCは、受信した経路要求パケットについても待機時間を算出し、算出した待機時間に基づいて2つ目のタイマを設定する。このとき、1つ目のタイマの満了時刻より、2つ目のタイマの満了時刻が遅くなるので、待機時間が延長される。なお、図16では、待機時間Bと待機時間Bの短縮時間を加えた時間が2つ目のタイマが定める待機時間を示している。
なお、ノードCは、1つ目のタイマの満了時刻にその時点までに保存されている経路要求パケットを一旦送信し(送信4)、2つ目のタイマの満了時刻に、1つ目のタイマの満了時刻後に受信し、保存されている経路要求パケットを送信する(送信6)。この場合、ノードCは、重複管理テーブル401のタイマ状態404を、1番目のタイマ満了時点では「設定中」のままで更新せず、2番目のタイマ満了時点で「満了」に更新する。
その後、ノードCは、ノードFが送信した(送信3)経路要求パケットを受信し(受信7)、受信した経路要求パケットの評価基準値(0)を「2」に、評価基準値(1)を「9」に更新する(「受信7」の左下)。ノードCは、受信した経路要求パケットの評価基準値(1)が2番目に受信した経路要求パケットの評価基準値(1)より低いため、この経路要求パケットを破棄する。
ノードEは、ノードBが送信した(送信2)経路要求パケットを受信する(受信6)と、その経路要求パケットは最初に受信された経路要求パケットであるため、経路要求パケットを更新して保存し、タイマを設定する。なお、図16では、待機時間Aと待機時間Aの短縮時間と待機時間Aの再短縮時間を加えた時間がこの時点で設定される待機時間となる。
それから、ノードEは、ノードFが送信した(送信3)経路要求パケットを受信し(受信8)、受信した経路要求パケットの評価基準値(0)を「2」に、評価基準値(1)を「55」に更新する(「受信8」の左下)。ノードEは、今回受信した経路要求パケットの第1の経路評価値が最初に受信した経路要求パケットの第1の評価基準値よりも高いため、今回受信した経路要求パケットについても待機時間を算出する。ノードEは、今回算出した待機時間に基づくタイマの満了時刻が、既に設定されているタイマの満了時刻よりも早いため、今回算出した待機時間に基づくタイマの満了時刻にあわせて、タイマを更新する。なお、図16では、待機時間Aの短縮時間が、これにより短縮された待機時間を示している。
この後、ノードEは、ノードCが送信した(送信4)1回目の経路要求パケットを受信する(受信9)。そして、ノードEは受信した経路要求パケットの評価基準値(0)を「3」に、評価基準値(1)を「28」に更新する(「受信9」の左下)。ノードEは、今回受信した経路要求パケットは、2回目に受信した経路要求パケットよりも評価基準値(1)が小さく、ホップ数が多いので、第1と第2の経路評価値がともに小さい。したがって、一度待機時間を短縮して設定したタイマの満了を待たずに、評価基準値(0)を「2」に、評価基準値(1)を「55」に、中継装置アドレスと評価用測定値(1)を「F、75」、「E、200」に設定した経路要求パケットを送信する(送信5)。なお、図16では、待機時間Aの再短縮時間が、これにより短縮された待機時間を示している。
ノードDは、ノードCが送信した(送信4)1回目の経路要求パケットを受信する(受信10)と、受信したパケットが最初の経路要求パケットであるため、経路要求パケットを更新して保存し、タイマを設定する。なお、図16では、待機時間Aと待機時間Aの短縮時間を加えた時間がこの時点で設定される待機時間となる。つぎに、ノードEが送信した(送信5)経路要求パケットを受信する(受信12)と、受信した経路要求パケットの評価基準値(0)を「3」に、評価基準値(1)を「35」に更新する(「受信12」の左下)。後から受信した経路要求パケットの評価基準値(1)は最初に受信した経路要求パケットの評価基準値(1)よりも高いため、後から受信した経路要求パケットの第1の経路評価値は最初に受信した経路要求パケットの第1の経路評価値よりも高くなる。したがって、ノードDは後から受信した経路要求パケットについても待機時間を算出する。しかし、後から算出した待機時間に基づくタイマの満了時間が既に設定されているタイマの満了時間よりも遅いため、ノードDは、タイマを更新せず、保存する経路要求パケットを今回受信した経路要求パケットに更新する。
また、ノードEが送信した(送信5)経路要求パケットを受信した(受信11)ノードCは、受信した経路要求パケットの評価基準値(0)を「3」に、評価基準値(1)を「43」に更新して保存する(「受信11」の左下)。ノードCは、今回受信した経路要求パケットが4つ目の経路要求パケットであるため、2回目のタイマ満了を待たずに、保存している経路要求パケットを送信し(送信6)、重複管理テーブル401のタイマ状態404を「満了」に更新する。なお、図16では、待機時間Bの短縮時間が、これにより2回目のタイマで当初設定していた待機時間より短縮された待機時間を示している。
ノードCが2回目に経路要求パケットを送信する(送信6)と、ノードDはそれを受信し(受信13)、受信した経路要求パケットの評価基準値(0)を「4」に、評価基準値(1)を「30」に更新する(「受信13」の左下)。今回受信した経路要求パケットが2番目に受信した経路要求パケットよりも評価基準値(1)が小さく、ホップ数が多いので、第1と第2の経路評価値がともに小さくなる。したがって、ノードDは、最初に設定したタイマの満了を待たずに、保存しているパケットの終点と始点アドレスを入れ替え、要求経路数を「0」に設定した経路要求パケットを生成し、もとの経路要求パケットが中継された逆の経路で始点ノードAへユニキャスト送信する(送信7)。なお、図16では、待機時間Aの短縮時間がこれにより短縮された待機時間を示している。
以上説明したように、第2の実施形態では、先に受信した経路要求パケットに基づいて設定した待機時間の満了時刻よりも、後に受信した経路要求パケットに基づいて設定した待機時間の満了時刻が早い場合は、通信装置はタイマ長を短縮する。これにより、先に受信した経路要求パケットから算出した経路評価値が低いため、長い待機時間が設定された後に、経路評価値の高い経路要求パケットを受信した場合でも、通信装置は経路評価値の高い経路要求パケットを早く送信できる。このため、自装置からの経路要求パケットの受信が間に合わず、次の中継装置が、他の装置から受信した経路要求パケットのみから選択し、送信してしまうことを防ぐことができる。したがって、経路評価値の高い経路要求パケットが次の中継装置に送信される可能性が高くなり、経路評価値の高い経路をより確実に作成することができる。
また、第2の実施形態では、経路評価値の高い経路を作成するために十分な数である閾値を定め、その閾値以上の経路要求パケットを受信した場合、通信装置はこれまでに受信した経路要求パケットに基づいて設定した待機時間の満了を待たずに経路要求パケットを送信する。これにより、通信装置は、経路評価値の高い経路を作成するために十分な数の要求パケットを受信した時点で次の中継装置へ選択した経路要求パケットを送信することができる。したがって、自装置が経路要求パケットを送信するまでに次の中継装置が他の装置から受信した経路要求パケットのみから選択して送信することを防ぐことができるので、経路評価値の高い経路をより確実に作成することができる。
さらに、2番目以降に受信した経路要求パケットから算出したホップ数がこれまでに受信した経路要求パケットから算出したホップ数よりも多く、かつ2番目以降に受信した経路要求パケットから算出した第1の経路評価値がこれまでに受信した要求パケットから算出した第1の経路評価値よりも低い場合、通信装置はこれまでに設定した待機時間の終了を待たずに経路要求パケットを送信する。このように、ホップ数が増加し、かつ第1の経路評価値が低下する場合、今後受信する経路要求パケットの経路はこれまでに受信した経路要求パケットの経路よりもホップ数が多くなり、第1の経路評価値が悪くなると考えられる。したがって、通信装置は、ホップ数が増加し、かつ第1の経路評価値が低下するとすぐに、経路要求パケットを送信することにより、不必要に待機時間を設定しなくなり、経路要求パケットを早く送信することができる。したがって、自装置が経路要求パケットを送信するまでに次の中継装置が他の装置から受信した経路要求パケットのみから選択して送信することを防ぐことができ、経路評価値の高い経路をより確実に作成することができる。
一方、新たに受信した経路要求パケットから算出したホップ数がこれまでに受信した要求パケットから算出したホップ数よりも多く、かつ新たに受信した経路要求パケットから算出した第1の評価基準値がこれまでに受信した経路要求パケットから算出した第1の評価基準値より大きい場合、通信装置は待機時間を延長して他の要求パケットの受信を待つ。このように、ホップ数が増加し、かつ第1の経路評価値も増加する場合、今後受信する経路要求パケットの経路はこれまでに受信した経路要求パケットの経路よりもホップ数が多いが、経路評価値がよくなる可能性があると考えられる。したがって、通信装置は、延長前に設定した待機時間が満了した後に受信した、より経路評価値の高い経路要求パケットの送信漏れを減らすことができ、経路評価値の高い経路をより確実に作成することができる。したがって、これまでに受信した経路要求パケットに基づいて設定した待機時間が経過した時点で経路要求パケットを他の中継装置に送信し、その後で受信したさらに経路評価値の高い経路要求パケットを選択できなくなることを防ぐことができ、経路評価値の高い経路をより確実に作成することができる。
なお、第2の実施形態では、説明の便宜上、経路要求パケット301に評価基準値(0)を新しく設けて、ホップ数を格納する態様で説明したが、他の経路評価値と識別できる態様であれば、どのような態様でも構わない。また、第1の実施形態と第2の実施形態が併用される場合には、それを識別するためのフラグが経路要求パケット301に別途含まれていてもよい。
また、第2の実施形態では、タイマ設定が2回までの例しか挙げていないが、既に2回以上タイマ設定がされた後、新たに受信した経路要求パケットのホップ数が大きく、かつ経路評価値も大きい場合には、タイマ設定が3回以上されることもありうる。
また、第2の実施形態では、条件識別子が「1」の場合のみを説明したため、評価基準値(0)と(1)および評価用測定値309の評価用測定値(1)しか使用していないが、第1の実施の形態で挙げたように、複数の条件の組み合わせから最適な経路を探索する場合にも同様に適用することができる。この場合、評価基準値(2)以降および評価用測定値309の評価用測定値(2)以降が使用され、最も優先される経路評価値とホップ数を用いて同様の処理を行えばよい。ただし、条件識別子が「6」の場合のように、それぞれ異なる条件を満たす最適な経路を複数同時に探索する場合については、第3の実施の形態において詳細を説明する。
また、第2の実施形態においては、タイマ変更処理において以下の処理がなされていてもよい。まず、図14のSTEP1409の処理によって、タイマが複数設定された後に、STEP1403、STEP1415の処理が実行される場合においては、最先に起動したタイマのみを対象としてもよいし、起動している全てのタイマを対象としてもよい。あるいは、最初に設定したタイマが満了した後に起動中のタイマに対しては、STEP1403、STEP1415の処理を実行しなくてもよい。また、タイマが2回起動された後では、STEP1409の処理を実行しなくてもよい。
また、第2の実施形態においては、比較部105は、新たに設定されるタイマの待機時間が満了するまでに受信した経路要求パケットが、先に送信した経路要求パケットよりも第1の経路評価値が高くならない場合は、STEP711において受信した経路要求パケットをパケット保存部106に保存させなくてもよい。その場合、送信部109は、新たに設定されたタイマの待機時間が満了しても、先に送信した経路要求パケットに比べ、第1の経路評価値が同じもしくは低い経路要求パケットを送信しない。
また、第2の実施形態においては、比較部105は、先のタイマ満了時に経路要求パケットを送信した後、後のタイマが満了するまでに受信した経路要求パケットにおいて、その第1の経路評価値がある閾値よりも大きくなった場合や、先に送信した経路要求パケットの第1の経路評価値よりも一定の割合以上向上したときに、タイマを満了させてもよい。逆に、先のタイマ満了時に経路要求パケットを送信した後、後のタイマ満了までに受信した経路要求パケットにおいて、その第1の経路評価値がある閾値よりも小さくなった場合や、先に送信した経路要求パケットの第1の経路評価値よりも一定の割合以上低下したときに、タイマを満了させてもよい。その場合、送信部109は、後のタイマ満了を待たずにその経路要求パケットを送信する。
(第3の実施形態)
つぎに、第3の実施形態について説明する。
本実施形態では、通信装置が、音声と動画データの両方の送信を開始したい場合など、送信遅延が最小となる経路と、最小帯域を保証する経路を同時に設定したい場合に、通信装置が行う処理について説明する。
本実施形態では、各通信装置が、最初に受信した経路要求パケットを更新処理後すぐに送信する。そして、通信装置は、設定したタイマが満了した時点で、2番目以降に受信した経路要求パケットの中で経路評価値の高い経路、すなわち経路上の通信装置が測定した帯域の最小測定値が最大である経路に関する保存中の経路要求パケットを送信する。以下、図面を用いて本実施の形態について説明する。
図17は、本発明の第3の実施形態に係る通信装置の機能ブロック図である。図17は、図1と構成の数、種類は同じであるが、本実施の形態では、タイマ107が重複でない経路要求パケットを受信すると、送信部109に経路要求パケットを送信させるため、タイマ107と送信部109が直接接続されている。
つぎに、本実施の形態について各構成の動作を説明する。図17に示す本実施の形態の各構成は第1の実施の形態と殆ど同じであるが、タイマ107と送信部109の動作が異なる。
タイマ107は、第1の実施形態と同じ処理を終了した後、重複検知部104により出力された経路要求パケットを送信部109に出力する。送信部109は、タイマ107が出力した経路要求パケットをすぐにブロードキャストする。
以上のように構成された通信装置について、図18と図19とを用いてその動作を説明する。図18は、本実施の形態における通信装置が実行する、経路要求パケットの受信処理を示すフローチャートである。なお、図18では、図7に示した第1の実施形態における受信処理と同じ処理については、図7と同じ符号を付している。ここでは、図7と異なる処理を説明する。
図18は、図7と異なり、STEP708とSTEP711との間に、STEP1801が挿入されている。重複検知部104が最初の経路要求パケットであると判定した場合(STEP705でNo)、タイマ107がタイマを設定した(STEP708)後、タイマ107が1番目送信フラグをONにする処理を行う(STEP1801)。
この1番目送信フラグは、受信した最初の経路要求パケットをすぐに送信するように送信部109に対して通知するためのフラグである。1番目送信フラグは、経路要求パケットを最初に受信した際にONにされ、最初に受信した経路要求パケットを隣接装置に送信するとOFFにされる。一番目送信フラグは、重複管理テーブル501の要素として追加されていてもよいし、他のメモリ空間にフラグの領域が確保されていてもよい。
その後、パケット保存部106は、受信した経路要求パケットを保存し(STEP711)、保存経路数をインクリメントして(STEP712)、STEP701の処理が実行される。
図19は、本実施の形態の送信部109が実行する送信処理を示すフローチャートである。なお、図19では、図5に示した第1の実施の形態における送信処理と同じ処理については、図5と同じ符号を付している。ここでは、図5と異なる処理を説明する。
本実施の形態では、送信部109は、保存中の経路要求パケットのうち、タイマが満了している経路要求パケットがないと判定すると(STEP511でNo)、1番目送信フラグが受信処理においてONにされているか否かを判定する(STEP1903)。1番目送信フラグがONでないと判定した場合(STEP1903でNo)は、送信部109はSTEP511の処理を実行する。
一方、1番目送信フラグがONであると判定した場合(STEP1903でYes)、送信部109は経路要求パケットの終点アドレスが自らのアドレスであるか否かを判定する(STEP1904)。経路要求パケットの終点アドレスが自らのアドレスであると判定した場合(STEP1904でYes)、送信部109は、始点装置に経路を返信するため、STEP513と同じ処理によって返信用要求パケットを生成し(STEP1905)、生成した返信用経路要求パケットをユニキャスト送信する(STEP1906)。その後、送信部109は1番目送信フラグをOFFに、送信した経路要求パケットの送信済みフラグをONに変更して(STEP1908)、STEP501の処理を実行する。
この送信済みフラグとは、当該経路要求パケットが隣接装置に送信されたか否かを記憶するためのフラグであり、デフォルトではOFFに設定され、一度送信されるとONに設定される。送信済みフラグは、経路要求パケットを保存する領域に領域が確保されていてもよいし、パケット自体にフラグ領域が確保されていてもよい。
一方、経路要求パケットの終点アドレスが自らのアドレスでないと判定した場合(STEP1904でNo)、送信部109は最初に受信した経路要求パケットをブロードキャスト送信する(STEP1907)。その後、送信部109は1番目送信フラグをOFFに、送信した経路要求パケットの送信済みフラグをONに変更して(STEP1908)、STEP501の処理を実行する。
送信部109は、パケット保存部106が保存している経路要求パケットのうち、タイマが満了している経路要求パケットがあると判定すると(STEP511でYes)、当該経路要求パケットを送信する。その際、送信部109は、図5のSTEP515の替わりにSTEP1901の処理を実行し、図5のSTEP517の替わりにSTEP1902の処理を実行する。STEP1901において、送信部109は、パケット保存部106が保存している経路要求パケットのうち、送信済みフラグがONでない、すなわち未送信の経路要求パケットのみをユニキャスト送信する。また、STEP1902において、送信部109は、パケット保存部106が保存している経路要求パケットのうち、送信済みフラグがONでない、すなわち未送信の経路要求パケットのみをブロードキャスト送信する。このように、送信部109が既に送信済みの経路要求パケットを再度送信しないようにすることで、経路要求パケットの送信により消費される帯域を小さくすることができる。
つぎに、第3の実施形態における発明を適用した具体例を図20、21を用いて説明する。図20は本実施形態におけるネットワークの構成を示す図である。図20では、図9及び図15と同様に、直接通信できる装置間を実線で接続して示している。また、実線毎に記載されている数値は、実線で接続されている2つの装置間で通信帯域を一定期間測定した結果、測定値管理テーブル201に保存されている通信帯域の最小測定値203を示す。説明の便宜上、通信装置901〜906は、符号の順序に合わせて、アルファベット順にノードA〜ノードFと呼ぶことにする。さらに、通信装置901〜906の各アドレスは、符号の順序に合わせて、アルファベット順にA〜Fであるとする。本実施例では、ノードA(始点ノード)が、直接通信できないノードD(終点ノード)との間で通信されるデータ種別に応じた条件を指定して経路を探索する。具体的には、経路要求パケットの条件識別子306が「6」に設定されていることとし、ノードAが、ホップ数最小である経路と、当該経路で通信する場合の帯域の最小値が一定値以上であることを保証する経路を同時に探索する場合を例に挙げて説明する。
図21は、本実施の形態において、ノードAからノードDへデータ通信開始要求が発生し、ノードAがノードDへの経路を探索する際のシーケンス図である。図21に示されている記号や数字は、図10の内容と殆ど同じであるが、以下の点において異なる。
図21には、送信を枠付きで表示した箇所に、「A送信」「B送信」の2種類の送信処理が示されている。また、噴出しで「満了時」と表示した処理も示されている。「A送信」は、タイマの待機時間満了時に、パケット保存部106が保存している経路要求パケットをブロードキャストする処理を指す。したがって、「A送信」は、第1の実施形態での送信処理と同じである。一方、「B送信」は各ノードが経路要求パケットを最初に受信したときに、更新処理をした後、すぐにブロードキャストする処理を指し、本実施形態での特有の処理である。「満了時」と噴出しで表示された箇所は、その時点でタイマは満了するが、「A送信」で経路要求パケットを送信した後、受信した経路要求パケットは、「A送信」で送信した経路要求パケットに比べ、経路評価値が低いため、後で受信した経路要求パケットを送信しなかったことを意味する。
また、図21には、図10にはない太枠で囲まれた記号と数字が存在する。この太枠は、最初に受信した経路要求パケットの内容であることを示す。さらに、全ての枠内の数字は、経路要求パケットの評価基準値(2)を指す。
ノードAは、データ通信開始要求が発生すると、図6に示された処理に基づき経路要求パケットを作成し、送信する。本実施の形態では、ノードAが送信する経路要求パケットは、要求経路数が「1」、条件識別子が「6」、経路要求パケット番号が「120」に設定されている。また、評価基準値(1)はホップ数を記載する領域であり、初期値として「0」が設定されている。評価基準値(2)は各中継装置が当該経路で通信する場合の帯域の最小値に関する経路評価値を記載する領域であり、初期値として「0」が設定されている。
ノードAが経路要求パケットを送信する(A送信1)と、ノードB、F、Cの各々は、その経路要求パケットを受信する(受信1、受信2、受信3)。ノードB、F、Cにおいて、更新部103は、受信した経路要求パケットに含まれている評価基準値(1)をインクリメントして「1」に更新する。また、更新部103は、それぞれ受信した経路要求パケットの最後尾に中継装置アドレスとして自アドレスを格納する。その後、更新部103は、受信した経路要求パケットの条件識別子が「6」に設定されていることを判定すると、経路要求パケットに含まれる評価基準値(2)を、測定値管理テーブル201から取得した最小測定値206の値に更新する。例えば、ノードBの更新部103は、受信した経路要求パケットの中継装置アドレスに「B」を追加し、評価基準値(1)を「1」に、評価基準値(2)を「100」に更新する(「受信1」の左下)。ノードFの更新部103は、受信した経路要求パケットの中継装置アドレスに「F」を追加し、評価基準値(1)を「1」に、評価基準値(2)を「50」に更新する(「受信2」の左下)。ノードCの更新部103は、受信した経路要求パケットの中継装置アドレスに「C」を追加し、評価基準値(1)を「1」に、評価基準値(2)を「5」に更新する(「受信3」の左下)。経路要求パケット更新後、それぞれの更新部103は、評価基準値(1)(2)に関する経路評価値を算出する。
その後、ノードB、F、Cの各々の重複検知部104は、経路要求パケットの重複受信確認を行い、最初の経路要求パケットの受信であることを確認すると、最初に受信した経路要求パケットとその経路評価値をタイマ107に出力する。
タイマ107は、評価基準値(2)に関する経路評価値に基づいて待機時間を算出し、タイマを設定する。このとき、ノードB、F、Cの各々のタイマ107は、評価基準値(2)に関する経路評価値の大きい順、すなわちノードB、F、Cの順にタイマが満了するように設定する。その後、パケット保存部106がその経路要求パケットを保存する。タイマ107は、一番目送信フラグをONにし、最初の経路要求パケットを受信したことを送信部109に通知する。
以下では、各ノードが、受信した経路要求パケットを送受信する時の処理について述べる。まず、ノードBは、中継装置アドレスが「B」、評価基準値(2)が「100」の経路要求パケットをすぐにブロードキャストする(B送信1)。
ノードF、C、Eの各々は、この経路要求パケットを受信する(受信4、受信5、受信6)。その後、ノードF、C、Eの各々の更新部103は、受信した経路要求パケットの中継装置アドレス308に自らのアドレスを追加する。その後、各々の更新部103は、受信した経路要求パケットの条件識別子が「6」に設定されていることを判定すると、評価基準値(1)、評価基準値(2)を更新する。その結果、ノードFは、受信した経路要求パケットの中継装置アドレスに「F」を追加し、評価基準値(2)を「50」へ更新する(「受信4」の左下)。ノードCは、受信した経路要求パケットの中継装置アドレスに「C」を追加し、評価基準値(2)を「20」へ更新する(「受信5」の左下)。ノードEは、受信した経路要求パケットの中継装置アドレスに「E」を追加し、評価基準値(2)を「50」へ更新する(「受信6」の左下)。
ノードEは、経路要求パケットを最初に受信した(受信6)ので、受信した経路要求パケットを保存し、タイマを設定する。さらに、最初に受信した経路要求パケットを送信する(B送信4)。
一方、ノードF、Cは、受信した経路要求パケットが重複受信された(受信4、受信5)ものであるため、最初に受信して保存されている経路要求パケットの評価基準値(2)に関する経路評価値と、2番目に受信した経路要求パケットの評価基準値(2)に関する経路評価値とを比較する。比較の結果、ノードCは、通過ノードアドレスが「A:B:C」、評価基準値(2)が「20」の2番目に受信した経路要求パケットを保存し、最初に受信した経路要求パケットを破棄する(「受信5」の左下)。また、ノードFは、1番目と2番目に受信した経路要求パケットの評価基準値(2)が等しいため、評価基準値(1)が小さい最初に受信した経路要求パケットの保存を継続し、2番目に受信した経路要求パケットを破棄する(「受信4」の左下)。
同様にして、ノードF、Cは、「受信2」「受信3」において、最初に受信した経路要求パケットを送信する(B送信2、B送信3)。
その後、タイマが満了したノードが、保存している経路要求パケットのブロードキャストを行う。ノードBは、タイマが満了した時点で保存している経路要求パケットを送信しようとするが、保存している経路要求パケットは最初に受信した経路要求パケットであり、既に送信しているため、経路要求パケットを送信しない(満了時1)。ノードF、Eも、それぞれタイマが満了した時点で保存している経路要求パケットが最初に受信した経路要求パケットであるため、経路要求パケットを送信しない(満了時2、満了時3)。一方、ノードCは、タイマが満了した時点で3番目に受信した経路要求パケットを保存しているため、この3番目に受信した経路要求パケットを送信する(A送信2)。このときノードCが送信する経路要求パケットは、通過ノードアドレスが「A:F:C」に、評価基準値(2)が「50」に設定されている。
最後に、終点ノードであるノードDも、他の中継装置と同様、最初に受信したホップ数最小の経路要求パケットを送信する(B送信5)。
このように、通信装置は、最初に受信したパケットをタイマの満了を待たずにすぐに送信することで、実施の形態1、2の場合と比較して、最初に経路を設定するまでにかかる時間を短縮することができる。
以上説明したように、第3の実施の形態によれば、通信装置は、最初に受信した経路要求パケットをすぐにブロードキャストする。そして、通信装置は、待機時間中に重複受信した経路要求パケットの中から同一始点装置から自装置までの経路評価値が高い経路要求パケットを経路設定数だけ選択し、ブロードキャストする。最初に受信した経路要求パケットはホップ数の少ない経路を中継されてきた可能性が高いため、通信装置は、最初に受信した経路要求パケットをブロードキャストすることでホップ数の少ない経路を作成することができる。それと同時に、通信装置は、タイマ満了後に経路評価値の高い経路要求パケットをブロードキャストすることで、経路評価値の高い経路を作成することができる。その結果、一度の経路作成処理によって異なる評価基準に基づいた経路が複数作成されるので、通信装置は、性質の異なる複数のデータを同時に送信したい場合などにおいて、経路を効率よく設定することができる。
なお、第3の実施の形態では、各装置が一番目送信フラグを設け、最初に受信した経路要求パケットを送信したか否かを管理する態様で説明したが、一番目送信フラグに代えて最初に受信した経路要求パケットを格納する領域を別途設けて、そこにデータが存在する場合、まだ最初に受信した経路要求パケットを送信していないと判定する態様でも構わない。
また、第3の実施形態は、第2の実施形態の処理を加えた態様でも構わない。例えば、図18のSTEP703の処理に代えて、図12のSTEP1201の処理が実行され、図18のSTEP709と710の処理の間に、図12のSTEP1202の処理が実行されてもよい。
(ハードウエアの構成例)
つぎに、本発明のハードウエア構成例について説明する。図22は、通信装置のハード構成を示したハード図である。図22において、通信装置は、各種の制御プログラムやワークエリアを含むメモリ2201、装置全体を制御するCPU(Central Processing Unit)2202及びデータを通信するネットワークインタフェース2203から構成されている。通信装置は、メモリ2201に格納されているプログラムをCPU2202で実行し、ネットワークインタフェース2203を介してデータの送信を行い、ネットワークインタフェース2203を介して受信したデータをCPU2202で解読することにより受信する。ネットワークインタフェース2203は、PLCを利用する場合、電力線と接続され、電力線を介して各種データを通信する。また、無線通信を利用する場合、Wi−FiやMANETなどの各種無線通信方式を利用して各種データを通信する。
メモリ2201は、図2の測定値管理テーブル201、図4の重複管理テーブル401を格納する。また、第2の実施形態の受信経路要求パケット数、第3の実施形態の一番目送信フラグ、送信済みフラグを格納する。さらに、パケット保存部106で保存する経路要求パケットを一時的に格納する。
CPU2202は、図1に示す機能ブロックを含み、第1の実施形態〜第3の実施形態に示された各種処理を実行する。
なお、本発明の各実施の形態において開示された各機能ブロックは、集積回路であるLSIにより実現されてもよい。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。
このLSIは、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSI、と呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサが利用されてもよい。あるいは、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサが利用されてもよい。また、プロセッサやメモリ等を備えたハードウエア資源においてプロセッサがROMに格納された制御プログラムを実行する構成が用いられてもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術等が適応され得る。
本発明は、経路作成のために送信される経路要求パケットの数を削減して帯域の消費を抑えつつ、始点装置と終点装置との間において経路評価値の高い経路を作成できる。ゆえに、PLCネットワークや無線ネットワーク等、様々な種類のネットワークにおける通信装置及び通信方法に適用可能である。
101 受信部
102 測定部
103 更新部
104 重複検知部
105 比較部
106 パケット保存部
107 タイマ
108 パケット破棄部
109 送信部
901〜906 通信装置
2201 メモリ
2202 CPU
2203 ネットワークインタフェース