説明

通信方法および通信装置

【課題】フレームの送信に失敗する可能性を低くする。
【解決手段】通信装置は、受信部、経路情報テーブル、登録部、取得部、送信部を備える。受信部は、ネットワークの経路情報を通知する経路情報フレームと、経路情報フレームではない第1のフレームを受信する。経路情報テーブルは、経路情報フレームに含まれている経路情報を記録している。登録部は、第1のフレームの送信元アドレスが経路情報テーブルに含まれていない場合、送信元アドレスを、受信部に第1のフレームを転送した転送元装置のアドレスと対応付けて登録テーブルに登録する。取得部は、経路情報テーブルに記録されていない宛先装置を宛先とした第2のフレームを送信するときに、登録テーブルから宛先装置のアドレスに対応付けて登録されている転送元装置のアドレスを取得する。送信部は、取得部で取得されたアドレスに第2のフレームを送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介した通信方法と、その方法が用いられる通信装置に関する。
【背景技術】
【0002】
アドホックネットワークは、ネットワークを形成する通信装置が追加もしくは削除された場合でも、動的にネットワークが形成されるため、利便性が高い。アドホックネットワークのルーティング方法には、リアクティブ型、プロアクティブ型などの複数の種類があり、様々なルーティングプロトコルが開発されている。例えば、Adhoc On Demand Distance Vector Algorithm(AODV)は、リアクティブ型のルーティングプロトコルの例である。
【0003】
リアクティブ型のルーティングプロトコルが用いられるネットワークでは、送信要求が発生した後にルーティングテーブルが作成される。例えば、送信元装置から宛先装置までの経路を探すとき、送信元装置から宛先装置に向かう方向にリクエストをフラッディングし、宛先装置はリクエストに応答するリプライを、送信元装置に向かう方向にフラッディングする経路制御方法が考案されている。この方法では、経路制御装置は、隣接ノードからリクエストもしくはリプライを受信したとき、その隣接ノードを含む経路の情報を記憶する。
【0004】
一方、プロアクティブ型のルーティングプロトコルが用いられるネットワークでは、経路は通信を行なう前に確定されている。プロアクティブ型のルーティングプロトコルの例として、例えば、Optimized Link State Routing(OLSR)が挙げられる。プロアクティブ型のプロトコルが用いられる場合、アドホックネットワークに参加する装置は、定期的にハローフレーム(Helloフレーム)を送信する。ハローフレームにはハローフレームの送信元の通信装置の情報と、送信元の通信装置が記憶している経路情報の一部が含まれる。アドホックネットワークに参加する装置は、ハローフレームを用いて、ネットワークの経路情報を交換することにより、経路を確定する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−193543号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
背景技術で述べたように、プロアクティブ型のルーティングプロトコルが用いられるネットワークでは、通信の前にルーティングテーブルが作成され、ルーティングテーブルに記録されている経路にフレームが転送される。つまり、通信装置は、ルーティングテーブルに記録されていない通信装置にフレームを転送することができないので、宛先装置がルーティングテーブルに記録されていないと転送に失敗してしまう。
【0007】
ルーティングテーブルは、ハローフレームに基づいて生成されるが、各通信装置のハローフレームの送信時間は限定されている上、個々のハローフレームによって通知される経路の情報の量も限られている。このため、個々の通信装置において、ネットワーク全体の通信装置について記録したルーティングテーブルが生成されるまでに、時間がかかってしまう。ルーティングテーブルの生成に時間がかかれば、宛先装置がルーティングテーブルに記録されていないことに起因して、フレームの転送や送信に失敗する可能性は高くなるという問題がある。
【0008】
本発明は、フレームの送信に失敗する可能性を低くすることを目的とする。
【課題を解決するための手段】
【0009】
ある実施形態に係る通信装置は、受信部、経路情報テーブル、登録部、取得部、送信部を備える。受信部は、ネットワークの経路情報を通知する経路情報フレームと、経路情報フレームではない第1のフレームを受信する。経路情報テーブルは、前記経路情報フレームに含まれている経路情報を記録している。登録部は、前記第1のフレームの送信元アドレスが前記経路情報テーブルに含まれていない場合、前記送信元アドレスを、前記受信部に前記第1のフレームを転送した転送元装置のアドレスと対応付けて登録テーブルに登録する。取得部は、前記経路情報テーブルに記録されていない宛先装置を宛先とした第2のフレームを送信するときに、前記登録テーブルから前記宛先装置のアドレスに対応付けて登録されている転送元装置のアドレスを取得する。送信部は、前記取得部で取得されたアドレスに前記第2のフレームを送信する。
【発明の効果】
【0010】
通信装置は、経路情報テーブルに登録の無い装置からフレームを受信したときにそのフレームの転送元と送信元を登録テーブルに登録して、経路情報として使用する。このため、経路情報テーブルに経路の登録が無い装置へのフレームの送信に失敗する可能性が低くなる。
【図面の簡単な説明】
【0011】
【図1】ある実施形態で行われる通信の例を説明する図である。
【図2】通信装置の構成の例を示す図である。
【図3】ルーティングテーブルの例を示す図である。
【図4】ハローフレームの構成の例を示す図である。
【図5】データフレームの例を示す図である。
【図6】登録テーブルの例を示す図である。
【図7】通信装置のハードウェア構成の例を示す図である。
【図8】ハローフレームを受信する通信装置の例とルーティングテーブルの例を示す図である。
【図9】ハローフレームを受信する通信装置の例とルーティングテーブルの例を示す図である。
【図10】ハローフレームを受信する通信装置の例とルーティングテーブルの例を示す図である。
【図11】通信装置の間でデータフレームを送受信する場合の例を示す図である。
【図12】通信装置で行われるフレームの処理の例を説明するフローチャートである。
【図13】登録テーブルに経路情報が登録される際の通信装置の動作の例を示すフローチャートである。
【図14】データフレームを他の通信装置に転送する場合の動作の例を示すフローチャートである。
【図15】ルーティングテーブルの更新が行われる場合の動作の例を説明するフローチャートである。
【図16】ルーティングテーブルの例とルーティングテーブルの更新方法の例を示す図である。
【図17】ネットワーク中の通信装置の間でのデータの送受信とルーティングテーブルの例を表す図である。
【図18】ルーティングテーブルの変更の際に更新部が行う動作の例を説明するフローチャートである。
【発明を実施するための形態】
【0012】
図1は、ある実施形態で行われる通信の例を説明する図である。図1(a)は、7つの通信装置a〜gが含まれるアドホックネットワークの例を示す。通信装置a〜gの各々では、プロアクティブ型のルーティングプロトコルが用いられる。以下、通信装置a〜gがアドホックネットワークに参加してネットワークを形成する際の動作について説明する。通信装置a〜gは、各々の通信装置に割り当てられたタイミングで、ネットワークの経路情報を通知するフレームをブロードキャスト送信する。
【0013】
以下の説明では、ネットワークの経路情報を通知するフレームのことを「経路情報フレーム」と記載することがある。経路情報フレームは、複数の通信装置の間でネットワークの経路情報を共有するために使用される任意のフレームとすることができる。例えば、ハローフレームは、経路情報フレームの例である。経路情報フレームを受信した通信装置は、経路情報フレームに含まれている経路の情報や経路情報フレームの送信元の通信装置の情報を経路情報テーブルに記憶する。経路情報テーブルは、ネットワークの経路情報が記録されるテーブルであり、以下の説明では、「ルーティングテーブル」と記載されることがある。
【0014】
また、ある装置に「隣接する通信装置」とは、ある通信装置から送信されたフレームや信号が届く範囲に位置する通信装置のことを指すものとする。例えば、図1(a)の例では、通信装置a〜cは通信装置gから送信されたフレームを受信することができるが、通信装置d〜fは通信装置gから送信されたフレームを受信することができないものとする。この場合、通信装置a〜cは通信装置gに隣接しているが、通信装置d〜fは通信装置gに隣接していない。
【0015】
図1(b)は、通信装置b、f、gの間で行われる通信の例をシーケンス図である。なお、図1(b)は、シーケンスの例であり、例えば、手順(6)、(7)の処理が手順(3)〜(5)の処理よりも前に行われるように変形される場合がある。ただし、その場合は通信装置fから送信される経路情報フレームには通信装置b、gの情報は含まれない。
【0016】
(1)通信装置gは、経路情報フレームをブロードキャスト送信する。経路情報フレームは、通信装置gの情報を含む。このとき、通信装置gは、アドホックネットワークに含まれるいずれの通信装置の情報も取得していないので、経路情報フレームには、通信装置g以外の通信装置の情報は含まれていないものとする。
【0017】
(2)通信装置bは、経路情報フレームを受信し、経路情報フレームに基づいて、通信装置gが通信装置bに隣接していることを認識する。通信装置bは、通信装置bのルーティングテーブルに通信装置gの情報を記録する。
【0018】
(3)通信装置bは、経路情報フレームをブロードキャスト送信する。通信装置bが送信する経路情報フレームには、通信装置bの情報と、通信装置bは通信装置gにフレームを転送できることが記録されているものとする。
【0019】
(4)通信装置fは、手順(3)で送信された経路情報フレームを受信する。通信装置fは、通信装置b、gの情報を経路情報フレームから取得して、ルーティングテーブルに記録する。
【0020】
(5)通信装置gは、手順(3)で送信された経路情報フレームを受信する。通信装置gは、通信装置bの情報を経路情報フレームから取得して、ルーティングテーブルに記録する。
【0021】
(6)通信装置fは、経路情報フレームをブロードキャスト送信する。このとき、通信装置fは、通信装置fの情報と、通信装置fを介して通信装置b、gへのフレームの送信が可能であることが記録されているものとする。
【0022】
(7)通信装置bは、手順(6)で送信された経路情報フレームを受信し、通信装置fの情報を取得する。さらに、通信装置bは、通信装置fの情報をルーティングテーブルに記録する。
【0023】
(8)次に、通信装置fは、通信装置gに向けたデータを含むデータフレームを生成したとする。通信装置fは、ルーティングテーブルを確認して、通信装置gへは通信装置bを経由してフレームを送信できることを認識する。通信装置fは、生成したデータフレームを通信装置bに送信する。
【0024】
(9)通信装置bは、手順(8)で送信されたデータフレームを受信すると、ルーティングテーブルに基づいて、通信装置gに転送する。
【0025】
(10)通信装置gは、通信装置bからデータフレームを受信する。
【0026】
(11)通信装置gは、手順(10)で受信したデータフレームの送信元アドレスを確認し、データフレームの送信元アドレスが通信装置fであることを認識する。通信装置gは、通信装置fに至るまでの経路情報がルーティングテーブルに記録されているかを確認する。ここでは、通信装置gのルーティングテーブルには、通信装置fに至るまでの経路情報は記録されていない。そこで、通信装置gは、通信装置fから送信されたフレームを通信装置bから受信したことを、登録テーブルに登録する。
【0027】
(12)その後、通信装置gは、通信装置fにデータフレームを送信することになったとする。通信装置gは、ルーティングテーブルを確認して、通信装置fへの経路を検索するが、通信装置fへの経路はルーティングテーブルに記録されていない。通信装置gは、次に、通信装置fを送信元とするフレームの受信の記録が登録テーブルに含まれているかを確認する。登録テーブルには、手順(11)で、通信装置fを送信元とするフレームを通信装置bから受信していることが記録されている。そこで、通信装置gは、通信装置bを経由すれば、通信装置fにフレームを送信できると判断し、データフレームを通信装置bに送信する。
【0028】
(13)通信装置bは、手順(12)で送信されたデータフレームを通信装置gから受信する。通信装置bは受信したフレームの宛先が通信装置fであることを認識すると、ルーティングテーブルを参照して、通信装置fへの経路を取得する。この例では、通信装置bは、通信装置fにフレームを送信する。
【0029】
(14)通信装置fは、通信装置bからデータフレームを受信する。
このように、実施形態にかかる通信装置は、経路情報フレーム以外の第1のフレームを受信すると、第1のフレームの送信元までの経路が経路情報テーブルに記録されているかを確認する。第1のフレームの送信元が経路情報テーブルに記録されていない場合、通信装置は、第1のフレームの送信元アドレスと、第1のフレームの転送元アドレスを対応付けて、登録テーブルに登録する。さらに、通信装置は、経路情報テーブルに経路情報が記録されていない通信装置を宛先とした第2のフレームを送信しようとするときに、第2のフレームの宛先が送信元であるフレームの転送元を、登録テーブルから特定しようとする。転送元の特定に成功すると、通信装置は、第2のフレームを転送元に送信する。第2のフレームを受信した装置は、その装置が保持している経路情報テーブルもしくは登録テーブルに従って、第2のフレームの宛先に向けて第2のフレームを転送する。
【0030】
従って、実施形態に係る通信装置は、宛先装置が経路情報テーブルに記録されていなくても、過去に受信したフレームの送信元となった装置には、フレームを送信することができる。このため、実施形態に係る通信装置は、経路情報テーブルに経路が記録されていないことに起因してフレームの転送や送信に失敗する可能性を、低くすることができる。
【0031】
<装置構成>
図2は、通信装置10の構成の例を示す。通信装置10は、インタフェース部20、制御部30、記憶部50、タイマ55を備える。インタフェース部20は、受信部21と送信部22を有する。制御部30は、フレーム受信処理部31、アプリケーション処理部32、通知部33、フレーム送信処理部34、ルーティング部40を有する。ルーティング部40は、振り分け部41、更新部42、登録部43、取得部44を有する。記憶部50は、ルーティングテーブル51と登録テーブル52を記憶する。
【0032】
受信部21は、通信装置10に送信されてきたフレームの信号を受信する。受信部21は、受信した信号をフレーム受信処理部31に出力する。フレーム受信処理部31は、受信部21から入力された信号を、ルーティング部40で処理できるようにフレームに変換する。フレーム受信処理部31の変換で得られるフレームには、経路情報フレーム、経路情報フレーム以外の制御フレーム、ユーザデータを格納したデータフレームなどが含まれる。フレーム受信処理部31は、得られたフレームを振り分け部41に出力する。アプリケーション処理部32は、通信装置10宛のフレームがルーティング部40から入力されると、入力されたフレームをアプリケーションにより処理する。また、アプリケーション処理部32は、アプリケーションの処理によって他の通信装置10に送信するデータフレームを生成することもできる。アプリケーション処理部32は、生成したデータフレームを振り分け部41に出力する。なお、アプリケーション処理部32は、データフレームを取得部44に出力することもできる。
【0033】
振り分け部41は、入力されたフレームに含まれているアドホックヘッダ中のフレームタイプフィールドを確認する。フレームタイプフィールドの値は、フレームの種類によって異なり、例えば、ハローフレームとデータフレームでは、異なる値となっている。振り分け部41は、予め、通信装置10が受信する可能性があるフレームの種類の各々に対応するフレームタイプフィールドの値を記憶することができ、また、適宜、記憶部50から取得することもできる。振り分け部41は、ハローフレームを更新部42に出力する。
【0034】
データフレームについては、振り分け部41はグローバル宛先(Global Destination、GD)アドレスを確認する。以下の説明では、「グローバル宛先」は、フレームの最終的な宛先の通信装置10を示すものとする。データフレームのグローバル宛先アドレスが振り分け部41を含む通信装置10に割り当てられているアドレスと一致する場合、振り分け部41は、データフレームを登録部43に出力する。一方、データフレームのグローバル宛先アドレスが振り分け部41を含む通信装置10に割り当てられているアドレスと一致しない場合、振り分け部41は、データフレームを取得部44に出力する。
【0035】
更新部42は、振り分け部41から入力されたハローフレームを用いて、ルーティングテーブル51を更新する。すなわち、更新部42は、ハローフレームに含まれているグローバル宛先アドレス、ハローフレームの送信元のアドレス、通信品質などのデータをルーティングテーブル51に格納する。さらに、更新部42は、ハローフレームによって通知されたGDまでの経路を新たにルーティングテーブル51に登録したとき、登録したGDまでの経路が登録テーブル52に登録されているかを確認する。ルーティングテーブル51に登録されたGDまでの経路が登録テーブル52に含まれている場合、更新部42は、登録テーブル52からそのGDまでの経路を登録テーブル52から削除する。
【0036】
図3は、ルーティングテーブル51の例を示す図である。ルーティングテーブル51は、グローバル宛先アドレス、ローカル宛先(Local Destination、LD)アドレス、品質情報を含む。一方、「ローカル宛先」は、フレームをグローバル宛先に送信するために行われる1ホップの転送の際に、宛先として指定される通信装置10を示す。例えば、図1の通信装置fが、通信装置bを経由して通信装置gにデータフレームを送信する場合、通信装置gはグローバル宛先である。このとき、通信装置fは、通信装置gに送信するデータフレームを通信装置bに送信し、通信装置bが通信装置gにデータフレームを転送する。従って、通信装置fから通信装置bへのデータフレームの送信の際には、ローカル宛先は通信装置b、グローバル宛先はgとなる。一方、通信装置bがデータフレームを通信装置gに転送する際には、通信装置bは、ローカル宛先とグローバル宛先のいずれも通信装置gに設定する。
【0037】
通知部33は、ハローフレームを生成し、フレーム送信処理部34に出力する。通知部33は、ルーティングテーブル51に含まれている経路に関する情報を含むハローフレームを生成することができる。なお、登録テーブル52に含まれている経路については、ホップ数などの通信品質を特定できないため、通知部33は、ハローフレームに含めないものとする。
【0038】
図4は、ハローフレームの構成の例を示す図である。ハローフレームは、アドホックヘッダとペイロードを含む。ペイロードには、ハローメッセージヘッダとハローヘッダ、署名が含まれる。アドホックヘッダは、ローカル宛先アドレス、ローカル送信元(Local Source、LS)アドレス、フレームタイプ、予約領域(reserve)、フレームサイズを含む。「ローカル送信元」(LS)は、フレームが1ホップ転送される場合の転送元の通信装置10を指す。ハローメッセージヘッダには、サービスタイプ、分割情報、ハローヘッダ数、バイアス、装置起動経過時間、アクセスキーが含まれる。ハローヘッダには、グローバル宛先アドレス、ホップ数、GWパス情報、経路品質重み、復路品質重みが含まれる。更新部42は、ハローヘッダ中のグローバル宛先アドレスの各々を、グローバル宛先アドレス(GD)として、ルーティングテーブル51に登録する。さらに、更新部42は、ハローフレームのローカル送信元アドレスを、同じハローフレームに含まれているグローバル宛先アドレスに対応するローカル宛先アドレス(LD)として、ルーティングテーブル51に登録する。
【0039】
ルーティングテーブル51は、1つのグローバル宛先に対して、1つ以上の任意の数のローカル宛先を記録することができる。例えば、図3に示すように、ルーティングテーブル51は、1つのグローバル宛先に対して、3つ以下のローカル宛先を対応付けて記憶することができる。さらに、ルーティングテーブル51は、例えば、ホップ数や受信電波強度などのパスの品質を表す情報を、グローバル宛先とローカル宛先の組合せごとに記録することができる。品質情報に含まれる情報の数や種類は、実装に応じて選択される。
【0040】
図5は、データフレームの例を示す。データフレームは、アドホックヘッダ、データヘッダ、ペイロードを含む。アドホックヘッダは、ハローフレームのアドホックヘッダと同様の情報要素を含む。データヘッダは、フレームのグローバル宛先アドレス、グローバル送信元アドレス(Global Source、GS)、フレームタイプなどの情報要素を含む。グローバル送信元アドレスは、データフレームを生成した通信装置10のアドレス(送信元アドレス)である。フレームタイプは、ペイロードに含まれるデータの種類を示す。
【0041】
登録部43は、振り分け部41から入力されたデータフレームのグローバル送信元アドレスが、ルーティングテーブル51のGDとして登録されているかを確認する。グローバル送信元アドレスがGDとして登録されていない場合、登録部43は、そのグローバル送信元アドレスをGDとして登録テーブル52に登録する。さらに、登録部43は、データフレームのアドホックヘッダから取得したローカル送信元アドレスを、グローバル送信元アドレスに対応するローカル宛先アドレス(LD)として、登録テーブル52に登録する。登録テーブル52の例を図6に示す。登録テーブル52への登録が終わると、登録部43は、データフレームをアプリケーション処理部32に出力する。登録部43がデータフレームをアプリケーション処理部32に出力することにより、データフレームがグローバル宛先に指定された通信装置10で処理される。
【0042】
一方、他の通信装置宛のデータフレームは、取得部44に入力される。取得部44は、ルーティングテーブル51を参照して、振り分け部41から入力されたデータフレームの転送先を検索する。すなわち、取得部44は、データフレームのグローバル宛先アドレスをキーとして、ルーティングテーブル51のGDの欄を検索し、データフレームのグローバル宛先アドレスに対応付けられたLDを検索する。ルーティングテーブル51にGDが登録されている場合、取得部44は、データフレームのアドホックヘッダのローカル宛先アドレスに、GDに対応付けられているアドレスを記録する。一つのGDに対応づけて複数のLDが記録されている場合、取得部44は、予め設定された方法により転送先の通信装置10を選択して、選択した通信装置10のアドレスをローカル宛先アドレスに登録する。
【0043】
一方、ルーティングテーブル51にGDが登録されていない場合、取得部44は、登録テーブル52にGDが登録されているかを確認する。登録テーブル52にGDが登録されている場合、取得部44は、GDに対応付けられているLDを転送先とする。そこで、転送先とするLDのアドレスをアドホックヘッダのローカル宛先アドレスに設定する。さらに、取得部44は、アドホックヘッダのローカル送信元アドレスには、取得部44を含む通信装置10に割り当てられているアドレスを記録する。アドホックヘッダを設定した後、取得部44は、データフレームをフレーム送信処理部34に出力する。
【0044】
フレーム送信処理部34は、取得部44から入力されたフレームを送信部22から送信することができる信号に変換する。送信部22は、フレーム送信処理部34から入力された信号を、フレームの宛先に向けて送信する。例えば、送信部22は、経路情報フレームをブロードキャスト送信する。タイマ55は、ルーティングテーブル51や登録テーブル52に含まれる経路の各々について、経路が最後に使用されてから経過した時間を計測するために用いられる。
【0045】
図7は、通信装置のハードウェア構成の例を示す図である。通信装置10は、MicroProcessingUnit(MPU)100、バス101(101a〜101c)、PHYsical layer(PHY)チップ102、タイマIC(Integrated Circuit)104、Dynamic Random access Memory(DRAM)106、フラッシュメモリ107、無線モジュール108を備える。バス101a〜101cは、MPU100、PHYチップ102、タイマIC104、DRAM106、フラッシュメモリ107、無線モジュール108の間でデータの入出力が可能になるように接続する。
【0046】
MPU100は、フラッシュメモリ107に格納されたファームウェアなどのプログラムを読み込んで処理を行う。このとき、MPU100は、DRAM106をワーキングメモリとして使用できる。MPU100は、制御部30として動作する。DRAM106は、記憶部50として動作する。PHYチップ102や無線モジュール108は、インタフェース部20として動作する。ここで、PHYチップ102はオプションであり、通信装置10は、PHYチップ102を介して回線による通信を行うことができる。例えば、L3ネットワークとアドホックネットワークとの間のゲートウェイとして動作する通信装置10は、L3ネットワーク中の通信装置とPHYチップ102を用いて通信することができる。タイマIC104は、タイマ55として動作する。
【0047】
なお、ファームウェアなどのプログラムは、コンピュータ読み取り可能な記憶媒体に格納されて提供され、通信装置10にインストールされてもよい。または、プログラムは、ネットワークからPHYチップ102や無線モジュール108を介してダウンロードされることにより通信装置10にインストールされてもよい。また、実施形態に応じて、DRAM106やフラッシュメモリ107以外の他の種類の記憶装置が利用されてもよい。
【0048】
<第1の実施形態>
以下の説明では、説明を簡略化するために、通信装置10は、ハローフレームかユーザデータを含むフレーム(データフレーム)のいずれかを受信するものとする。また、経路情報フレームはハローフレームであるものとする。
【0049】
図8(a)は、第1の実施形態を適用することができるネットワークの例を示す。図8(a)に示すネットワークには、ネットワークサーバ61、L3ネットワーク62、アドホックネットワークに参加しようとする通信装置10が含まれる。図8(a)に示すアドホックネットワークには、GW(gateway)、N1〜N6の7つの通信装置10が参加するものとする。なお、図8(a)の例では、7つの通信装置10を含むアドホックネットワークが示されているが、アドホックネットワークに含まれる通信装置10の数は任意である。以下、図8(a)のネットワークにおいてGW、N2、N6がハローフレームを送信した後でN6からGW宛てのデータフレームが送信される場合を例として通信装置10の動作を説明する。
【0050】
まず、GWがハローフレームをブロードキャスト送信したときの動作について説明する。GWの通知部33は、ハローフレームを生成し、フレーム送信処理部34、送信部22を介して、ハローフレームをブロードキャスト送信する。このとき、GWは、GWの隣接ノードに関する情報を記憶していないため、通知部33は、ハローヘッダを含まないハローフレームを生成する。送信されたハローフレームは、図8(b)に示すように、GWの隣接ノードであるN1〜N3で受信される。
【0051】
N1でハローフレームが受信されると、N1の振り分け部41は、受信部21、フレーム受信処理部31を介してハローフレームを取得する。振り分け部41は、ハローフレームのアドホックヘッダに含まれているフレームタイプフィールドを参照して、受信フレームがハローフレームであることを認識する。振り分け部41は、ハローフレームを更新部42に出力する。
【0052】
N1の更新部42は、入力されたハローフレームのローカル送信元アドレスを参照し、ハローフレームのローカル送信元アドレスがGWであることを認識する。また、ハローフレームにはハローヘッダが含まれていないことも認識する。そこで、更新部42は、GWには1ホップでフレームを転送できることが通知され、アドホックネットワーク中の他の通信装置10についての情報は通知されていないと判断する。すると、更新部42は、GDとLDの両方がGWのときのホップ数が1であることをルーティングテーブル51に記録する。すなわち、更新部42は、N1のルーティングテーブル51を図8(c)のように更新する。更新部42の処理により、N1は、GWを宛先としたフレームをGWに送信することができるようになる。
【0053】
N2とN3においても、N1と同様の処理が行われ、ルーティングテーブル51が図8(c)のように更新される。この処理により、N2とN3も、GWを宛先としたフレームをGWに送信することができるようになる。
【0054】
図9は、N2がハローフレームを送信したときにハローフレームを受信する通信装置の例とルーティングテーブルの例を示す図である。ここでは、図9(a)に示すように、N2から送信されたハローフレームは、N1、N3〜N6、GWに受信されるものとする。なお、図9(a)の破線で示す矢印は、図8を参照しながら説明したハローフレームの送受信で生成された経路を示す。また、生成された経路は矢印の方向に向かう経路である。
【0055】
N2の通知部33がハローフレームを生成する際には、図8を参照しながら説明した手順によって、N2が備えるルーティングテーブル51は、図8(c)に示すように更新されている。このため、N2の通知部33は、グローバル宛先アドレスフィールドにGWのアドレス、ホップ数フィールドに1を指定したハローヘッダを含むハローフレームを生成する。
【0056】
N1でハローフレームが受信されると、N1の振り分け部41は、ハローフレームを更新部42に出力する。更新部42は、ハローフレームのローカル送信元アドレスがN2であり、ハローフレームにはGWをグローバル宛先としたハローヘッダが含まれていることを認識する。そこで、更新部42は、N2には1ホップでフレームを転送でき、さらに、N2を経由してGWにフレームを送信できると判断する。また、更新部42は、GWをグローバル宛先に設定したハローヘッダではホップ数が1であるので、N2からGWまでが1ホップであることも認識する。従って、N1から送信されたフレームがN2を経由してGWに送信される場合は、2ホップで送信されることになる。そこで、更新部42は、GDがGWでLDがN2のときのホップ数が2であることと、GDがN2でLDがN2のときのホップ数が1であることをルーティングテーブル51に記録する。従って、N1のルーティングテーブル51は、図9(b)に示すように更新される。N3も同様の処理を行い、N3のルーティングテーブル51も図9(b)に示すように更新される。
【0057】
N4〜N6の更新部42も、N2から送信されたハローフレームを受信すると、N1の更新部42と同様に、GDがGWでLDがN2のときのホップ数が2であることと、GDがN2でLDがN2のときのホップ数が1であることをルーティングテーブル51に記録する。そこで、N4〜N6のルーティングテーブル51は、図9(c)に示すとおりになる。
【0058】
GWの更新部42も、N2から送信されたハローフレームを受信すると、GDがN2でLDがN2のときのホップ数が1であることを認識して、ルーティングテーブル51を図9(d)のように更新する。
【0059】
図10は、N6がブロードキャスト送信したハローフレームを受信する通信装置の例とルーティングテーブルの例を示す図である。なお、図10(a)の破線の矢印は、図8と図9のハローフレームによって生成された経路を示す。
【0060】
N6がブロードキャスト送信するハローフレームは、N6からGWまでの経路の情報を示すハローヘッダと、N6からN2までの経路の情報を示すハローヘッダを備えているとする。また、図10(a)に示すように、N2、N4、N5が、N6から送信されたハローヘッダを受信したとする。この場合、N2のルーティングテーブル51は図10(b)の通りになり、N4およびN5のルーティングテーブル51は、図10(c)の通りになる。
【0061】
図11は、通信装置10の間でデータフレームを送受信する場合の例を示す。図11を参照しながら、図8〜図10を参照して説明したハローフレームの送受信が行われた後にN6とGWの間でデータフレームを送受信する場合について説明する。以下の手順(1)〜(8)は、図11の(1)〜(8)に対応するものとする。
【0062】
(1)まず、N6のアプリケーション処理部32がGW向けのデータフレームD1を生成する。このデータフレームのグローバル宛先アドレスにGWのアドレス、グローバル送信元アドレスにN6のアドレスが設定されている。ここでは、アプリケーション処理部32は、生成したデータフレームを取得部44に出力するものとする。N6の取得部44は、データフレームD1のデータヘッダに含まれているグローバル宛先アドレスに対応付けられているLDを、ルーティングテーブル51から検出する。N6のルーティングテーブル51は、図9(c)のとおりであるので、取得部44は、N2を介してデータフレームD1をGWに送信することができると認識する。そこで、N6の取得部44は、データフレームD1のアドホックヘッダのLDにN2のアドレス、LSにN6のアドレスを設定する。
【0063】
(2)N2でデータフレームD1が受信されると、N2の振り分け部41にデータフレームD1が入力される。振り分け部41は、データフレームD1のアドホックヘッダとデータヘッダを参照することにより、データフレームD1がデータフレームであることと、データフレームD1のグローバル宛先はN2ではないことを認識する。そこで、振り分け部41は、データフレームD1を取得部44に出力する。N2の取得部44は、ルーティングテーブル51(図10(b))を参照してデータフレームD1の転送先を決定する。ここでは、取得部44が転送先としてGWを選択したことにより、データフレームD1がN2からGWに向けて送信されたものとする。
【0064】
(3)GWでデータフレームD1が受信されると、そのデータフレームはGWの振り分け部41に入力される。振り分け部41は、アドホックヘッダとデータヘッダを参照することにより、データフレームD1がGW宛てのデータフレームであることを認識する。そこで、振り分け部41は、データフレームD1を登録部43に出力する。
登録部43は、データフレームD1のグローバル送信元(N6)のアドレスがルーティングテーブル51(図9(d))に登録されているかを確認する。図9(d)に示すように、GWのルーティングテーブルには、N6のアドレスが記録されていない。そこで、登録部43は、GWの登録テーブル52に、N6のアドレスを転送元であるN2のアドレスに対応付けて登録する。図11(a)に、取得部44の処理により更新されたGWの登録テーブル52の例を示す。
【0065】
(4)次に、GWがN6に対してデータフレームD2を送信するものとする。GWのアプリケーション処理部32で生成されたデータフレームD2は、GWの取得部44に入力される。ここで、データフレームD2のグローバル宛先はN6、グローバル送信元はGWに設定されているものとする。
取得部44は、データフレームD2のデータヘッダを参照することにより、グローバル宛先がN6であることを認識する。取得部44は、N6への経路がルーティングテーブル51に記録されているかを確認する。図9(d)に示すとおり、GWに備えられているルーティングテーブル51には、N6への経路が記録されていない。そこで、取得部44は、登録テーブル52にN6への経路が登録されているかを確認する。GWに備えられている登録テーブル52は、図11(a)に示すように、GDがN6のときはLDをN2にすることが記録されている。そこで、取得部44は、データフレームD2のローカル宛先をN2に設定した上で、データフレームD2をN2に送信する。
【0066】
(5)N2はデータフレームD2を受信する。データフレームD2は、N2の振り分け部41において、N6宛てのデータフレームであると判断される。そこで、振り分け部41は、取得部44にデータフレームD2を出力する。N2の取得部44は、ルーティングテーブル51(図10(b))を参照してデータフレームD2をN6に向けて送信する。
【0067】
(6)N6は、N2からデータフレームD2を受信する。
【0068】
(7)次に、N5が、N5からN6への経路を含むハローフレームをブロードキャストし、N3がN5から送信されたハローフレームを受信したとする。N3は、図8〜図10を参照しながら述べた方法と同様にして、N6への経路情報を取得する。さらに、N3は、N3からN6までの経路を示すハローヘッダを含むハローフレームをブロードキャストし、GWは、N3から送信されたハローフレームを受信したとする。
【0069】
(8)GWの振り分け部41は、N3から送信されたハローフレームを更新部42に出力する。更新部42は、N3から受信したハローフレームに基づいて、N3までの経路とN6までの経路をルーティングテーブル51に記録する。図11(b)に、変更後のGWのルーティングテーブル51を示す。さらに、更新部42は、登録テーブル52に登録されている経路のうち、新たにルーティングテーブル51に登録したGDまでの経路を削除する。
【0070】
図12は、通信装置10で行われるフレームの処理の例を説明するフローチャートである。振り分け部41は、通信装置10で受信されたフレームの種類と宛先に応じてフレームの出力先を変更することにより、フレームを振り分ける(ステップS1)。振り分け部41は、振り分け部41を含む通信装置10に宛てられたデータフレームを、登録テーブル52への登録の対象であると判断して、登録部43に出力する。登録部43は、振り分け部41から入力されたデータフレームに含まれているグローバル送信元アドレスとローカル送信元アドレスを対応付けて登録テーブル52に登録する(ステップS2)。さらに、登録部43は、登録後のデータフレームに含まれているデータをアプリケーション処理部32に出力する(ステップS3)。アプリケーション処理部32は、ステップS3で通知されたデータに基づいて処理を行う。
【0071】
また、他の通信装置10に宛てられているデータフレームであると振り分け部41が判断したフレームは、転送の対象とされる。そこで、登録部43は、転送対象のフレームを取得部44に出力し、取得部44は、転送処理を行う(ステップS4)。
【0072】
通信装置10で受信されたフレームがハローフレームであると判断された場合、振り分け部41は、そのフレームを更新部42に出力する。更新部42は、ハローフレームに含まれているグローバルアドレスまでの経路とハローフレームの送信元の情報に基づいて、ルーティングテーブル51を更新する(ステップS5)。
【0073】
図13は、登録テーブルに経路情報が登録される際の通信装置10の動作の例を示すフローチャートである。図13は、ステップS2の処理を詳しく示している。登録部43は、登録部43が含まれている通信装置10が最終宛先となっているデータフレームを、振り分け部41から入力される(ステップS11)。登録部43は、データフレームのグローバル送信元アドレスをGDとする経路がルーティングテーブル51に記録されているかを調べる(ステップS12)。データフレームのグローバル送信元アドレスをGDとする経路がルーティングテーブル51に記録されていない場合、登録部43は、グローバル送信元アドレスが割り当てられた通信装置への経路を登録テーブル52に登録する(ステップS13)。このとき、登録テーブル52のGDはデータフレームのグローバル送信元(データフレームのGS)となり、LDはデータフレームのローカル送信元となる。一方、データフレームのグローバル送信元アドレスをGDとする経路がルーティングテーブル51に記録されている場合、登録部43はそのフレームについての処理を終了する(ステップS12でYes)。
【0074】
図14は、データフレームを他の通信装置に転送する場合の通信装置10の動作の例を示すフローチャートである。図14は、ステップS4の処理を詳しく示している。取得部44は、振り分け部41から入力されたフレームのグローバル宛先がルーティングテーブル51に登録されているかを確認する(ステップS21)。グローバル宛先がルーティングテーブル51に登録されていない場合、取得部44は、グローバル宛先が登録テーブル52に登録されているかを確認する(ステップS21でNo、ステップS22)。グローバル宛先が登録テーブル52に登録されている場合、取得部44は、データフレームの送信が可能であると判断して、登録テーブル52に登録されているLDにデータフレームを転送する(ステップS23)。グローバル宛先がルーティングテーブル51に登録されている場合も、取得部44は、データフレームの送信が可能であると判断して、フレームの宛先に対応付けて登録されているLDにデータフレームを転送する(ステップS21でYes、ステップS23)。一方、ルーティングテーブル51と登録テーブル52のいずれにも、フレームのグローバル宛先が登録されていない場合、取得部44は、データの送信ができないと判断して、フレームを廃棄する(ステップS22でNo)。
【0075】
図15は、ルーティングテーブルの更新が行われる場合の通信装置10の動作の例を説明するフローチャートである。ハローフレームを受信すると、振り分け部41は、ハローフレームを更新部42に出力する(ステップS31)。更新部42は、受信したハローフレームに含まれている経路情報が登録テーブル52に登録されているかを確認する(ステップS32)。ハローフレームに含まれている経路情報が登録テーブル52に含まれている場合、更新部42は、ハローフレームに記録されている経路情報を用いてルーティングテーブル51を更新する(ステップS33)。すなわち、更新部42は、ハローフレームの送信元(ハローフレームのLS)を、ルーティングテーブル51のLDに設定し、ハローヘッダに含まれているグローバル宛先をルーティングテーブル51のGDに設定する。さらに、更新部42は、ハローヘッダに含まれている品質情報も、ルーティングテーブル51に登録する。次に、更新部42は、ルーティングテーブル51に含まれているGDへの経路に関する情報を、登録テーブル52から削除する(ステップS34)。一方、ハローフレームに含まれている経路情報が登録テーブル52に含まれていない場合も、更新部42は、ハローフレームに記録されている経路情報を用いてルーティングテーブル51を更新する(ステップS35)。
【0076】
このように、本実施形態に係る通信装置10は、ルーティングテーブル51に登録されていない宛先であっても、データフレームの送信元(GS)と転送元(LS)の情報を記録する登録テーブル52に基づいて、フレームを転送することができる。すなわち、通信装置10は、通信装置10に一度でもデータフレームを送信したことのあるGSへは、GSとなっていた装置までの経路情報が通信装置10に通知されていなくても、フレームを送信することができる。このため、通信装置10では、フレームの転送に失敗する可能性が小さくなっている。
【0077】
回線が細い特小無線などでは、一度に送受信できるデータ量が小さいため、ハローフレームの長さも短くなる。このため、ハローフレームに含めることができるハローヘッダの数が制限されてしまうことがある。すると、アドホックネットワークに参加する各々の通信装置がハローフレームからネットワークの全体の経路情報を取得するためには、時間がかかってしまう。しかし、通信装置10を含むアドホックネットワークでは、ハローフレームによる経路の構築が完了する前でも、過去に通信装置10が受信したデータフレームの送信元に対しては、通信装置10がフレームを送信できる。このため、通信装置10を含むアドホックネットワークでは、フレームの送信に失敗する可能性が低くなる。受信したデータフレームの送信元に対して通信装置10がフレームを送信することができると、データフレームに対する応答フレーム等の送信が可能になる。このため、データフレームの再送が繰り返されることなどによる、ネットワーク中のトラフィックの増大も防ぐことができる。
【0078】
<第2の実施形態>
第2の実施形態に係る通信装置10では、ルーティングテーブル51と登録テーブル52を統合したルーティングテーブル70を備えることができる。
【0079】
図16は、ルーティングテーブル70の例とルーティングテーブル70の更新方法の例を示す図である。ルーティングテーブル70は、グローバル宛先アドレス、ローカル宛先アドレス、品質情報、仮登録フラグを含む。仮登録フラグは、あるエントリがデータフレームの送信元アドレス等に基づいて登録されたかを表す。例えば、登録部43は、データフレームに含まれているアドレスの情報をルーティングテーブル70に登録する際には、仮登録フラグを1に設定する。一方、更新部42がハローフレームに含まれている経路情報をルーティングテーブル70に登録する際には、仮登録フラグを0に設定する。
【0080】
図16(a)のシーケンスに示すように、N6からN2を経由して送信されたGW宛てのデータフレームD3が、GWで受信されたとする。データフレームD3は、第1の実施形態で説明した方法と同様にして登録部43に出力される。登録部43は、ルーティングテーブル70に、データフレームD3のグローバル送信元であるN6までの経路が記録されているかを確認する。ルーティングテーブル70にN6までの経路が含まれていない場合、登録部43はデータフレームD3のGSをルーティングテーブル70のGDとし、データフレームD3のLSをLDに登録する。このとき、データフレームD3には品質情報が含まれないので品質情報はルーティングテーブル70に記録されない。また、登録部43は、データフレームD3に基づいて登録した情報に対応する仮登録フラグの値を「1」に設定する。更新後のルーティングテーブル70を図16(b)に示す。
【0081】
次に、GWがN6にデータフレームD4を送信するとする。このときアプリケーション処理部32で生成されたデータフレームD4は、第1の実施形態で説明したように、取得部44に出力される。取得部44はルーティングテーブル70に含まれているGDとLDの組合せに応じて、データフレームの転送先(LD)を決定する。ここでは、図16(a)のシーケンスに示すように、データフレームD4のGDはN6、LDはN2に設定される。
【0082】
その後、N3からブロードキャスト送信されたハローフレームをGWが受信したとする。また、ハローフレームには、N3からN6までの経路の情報が含まれているとする。すると、ハローフレームは、第1の実施形態と同様にして更新部42に出力される。更新部42は、ハローヘッダのGDにN6が含まれていることを認識すると、ルーティングテーブル70中のN6の経路を更新する。N6の経路情報に対応する仮登録フラグが「1」に設定されていることから、更新部42は、N6への経路情報は登録部43によって登録されていることを認識する。すると、更新部42は、N6をGDとする経路として登録されているLDの情報をハローフレームの送信元であるN3に変更する。また、更新部42は、仮登録フラグを「1」から「0」に変更する。図15(c)に、更新後のルーティングテーブル70の例を示す。
【0083】
このように、本実施形態では、ルーティングテーブル51と登録テーブル52を1つのルーティングテーブル70にまとめることにより、経路情報が一括して管理される。
【0084】
<第3の実施形態>
図17(a)は、ネットワーク中の通信装置の間でのデータの送受信の例を表す。以下、図17(a)を参照しながら、新たな通信装置10がネットワークに加わった場合を例として第3の実施形態について説明する。なお、以下の例に使用する通信装置A〜C、GW、Zのいずれも通信装置10であるとする。
【0085】
(1)通信装置A〜CとGWを含むネットワークが形成されているとする。通信装置A〜CとGWを含むネットワークの経路が記録されており、通信装置GWのルーティングテーブル51は、記憶可能な経路の最大数の経路が既に記憶されているものとする。すなわち、通信装置GWのルーティングテーブル51に割り当てることができるメモリが使い切られており、これ以上、経路を記憶することができないとする。以下、GWは図3に示すルーティングテーブル51を記憶しているものとする。
【0086】
(2)通信装置Zは、通信装置Bがブロードキャスト送信したハローフレームを受信する。ここでハローフレームには、通信装置BからGWに至るまでの経路を特定する情報が含まれているとする。すると、通信装置Zの更新部42は、ハローフレームを取得し、通信装置BおよびGWまでの経路を通信装置Zのルーティングテーブル51に記録する。さらに、通信装置Zは、ハローフレームをブロードキャスト送信する。通信装置Bの更新部42は、通信装置Zから送信されたハローフレームから経路情報を取得して、通信装置Zまでの経路を通信装置Bのルーティングテーブル51に記録する。
【0087】
(3)通信装置ZがGWに送信するデータフレームD5を生成すると、通信装置Zの取得部44は、ルーティングテーブル51を参照して通信装置BにデータフレームD5を送信する。
【0088】
(4)通信装置BがデータフレームD5を受信すると、第1の実施形態で説明したようにデータフレームD5が取得部44に入力される。取得部44は、データフレームD5のグローバル宛先に指定されているGWまでの経路をルーティングテーブル51から取得し、データフレームD5のアドホックヘッダを変更する。その後、データフレームD5は、通信装置BからGWに送信される。
【0089】
(5)GWは、データフレームD5を受信する。GWでデータフレームD5が受信されると、GWの登録部43は、ルーティングテーブル51を参照して、グローバル送信元に至る経路が記録されているかを確認する。ここでは、図3に示すように、ルーティングテーブル51には通信装置Zまでの経路は登録されていない。そこで、登録部43は、図6に示すように、通信装置ZをGD、通信装置BをLDとしてGWの登録テーブル52に登録する。この手順での取得部44などの動作は、第1の実施形態と同様である。
【0090】
(6)GWが通信装置Zに送信するデータフレームD6を生成する。GWの取得部44は、登録テーブル52を用いて、データフレームD6を通信装置Bに送信する。この手順での動作も第1の実施形態と同様である。
【0091】
(7)通信装置Bは、データフレームD6を受信する。通信装置Bの取得部44にデータフレームD6が入力され、取得部44は、ルーティングテーブル51を用いて、データフレームD6を通信装置Zに送信する。この手順での動作も第1の実施形態と同様である。
【0092】
(8)通信装置Zは、データフレームD6を受信する。
第3の実施形態によると、第1および第2の実施形態よりもフレームの送信の失敗を防ぐことができる。
【0093】
本実施形態によると、GWのルーティングテーブル51に割り当てられたメモリに新たに加わった通信装置への経路を記憶させることができない場合でも、登録テーブル52に経路を登録することによって新たに加わった通信装置との通信が可能になる。アドホックネットワークに参加している通信装置10がネットワークサーバ61にアクセスするためのゲートウェイ(GW)には、アドホックネットワーク中の多くの通信装置がアクセスする。このため、GWでは、ルーティングテーブル51のメモリ不足が他の通信装置10よりも起こりやすい。本実施形態によると、ルーティングテーブル51のメモリ不足が発生した後に新たに加わった通信装置とも通信を行うことができる。図17(b)は、ルーティングテーブル51の例を示す。図17(b)の例では、ルーティングテーブル51は、GD、LDの他に、Time To Live(TTL)値、リンク間到達重み、ホップ数、経路品質重み、評価値、受信電波強度などの品質情報が含まれる。これらの品質情報については、後述する。一方、登録テーブル52は、図6に示すように、品質情報が含まれていない。このため、登録テーブル52とルーティングテーブル51で同数の経路情報を記憶したとしても、登録テーブル52がルーティングテーブル51よりもメモリ容量を小さくなる。
【0094】
さらに、既にルーティングテーブル51に記憶されている経路の中から選択した経路を削除して、登録テーブル52に登録されている経路をルーティングテーブル51に記録するように、更新部42の動作を変形することもできる。登録テーブル52に登録されている経路を通知するハローフレームを受信すると、ハローフレームのアドレスをルーティングテーブル51に登録する。
【0095】
図18は、ルーティングテーブル51の変更の際に更新部42が行う動作の例を説明するフローチャートである。ルーティングテーブル51に新たな経路を記録できないとき、更新部42は、振り分け部41からハローフレームを入力されると、ハローフレームに含まれている経路情報が登録テーブル52に含まれているかを検索する(ステップS41)。ハローフレーム中のアドレスの情報が登録テーブル52に含まれている場合、振り分け部41は、ルーティングテーブル51の中から削除対象の経路情報を検索する(ステップS42)。ここで、削除対象の経路情報は、品質情報に基づいて決定される。TTLは、経路の有効期限を表す。TTLの値は、時間経路が使用されるたびに初期値に戻され、時間の経過と共に小さな値に変更されていく。リンク間到達重みは、経路の通信実績値である。経路品質重みは、ハローフレームに含まれているリンク間到達重みを、その経路の全領域に渡って加算して得られる値である。評価値は、リンク間到達重みと経路品質重みに基づいて計算される値であり、経路の通信品質を表す。例えば、評価値が小さな経路や使用頻度の小さい経路がルーティングテーブル51から削除対象として検索される。また、TTL値が一定の値以下となったエントリも削除対象となる。削除の対象となるエントリがルーティングテーブル51に含まれている場合、更新部42は、削除対象のエントリを削除する(ステップS43)。さらに、ハローフレームに含まれている経路情報をルーティングテーブル51に登録する(ステップS44)。さらに、更新部42は、ルーティングテーブル51に登録した経路に関する情報を登録テーブル52から削除する(ステップS45)。
【0096】
このように、ルーティングテーブル51に含まれる経路を、適宜、入れ替えることにより、使用頻度の高い経路がルーティングテーブル51に含まれるようになる。
【0097】
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【0098】
また、通信装置10は、他の通信装置などとの間でハローフレーム以外の制御フレームを送受信することもできる。この場合、振り分け部41は、ハローフレームを更新部42に出力し、ハローフレーム以外のフレームを登録部43に出力するものとする。登録部43は、送信元アドレスの情報を含むフレームが入力された場合は、フレームの送信元アドレスと転送もとのアドレスを対応付けて登録テーブル52に登録する。なお、振り分け部41は、ハローフレームのアドホックヘッダに含まれているフレームタイプの値によって、ハローフレームとハローフレーム以外のフレームを区別するものとする。
【0099】
なお、第1の実施形態などの登録テーブル52を用いるいずれの実施形態においても、第3の実施形態と同様に、メモリ不足が発生した後に新たに加わった通信装置とも通信を行うことができる。
【0100】
さらに、登録テーブル52に登録された情報についても、エントリごとにTTLを記録し、TTLの値に応じてエントリの入れ替えをするように登録部43の動作を変形することもできる。
【0101】
上述の第1〜第3の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
ネットワークの経路情報を通知する経路情報フレームと、経路情報フレームではない第1のフレームを受信する受信部と、
前記経路情報フレームに含まれている経路情報を記録した経路情報テーブルと、
前記第1のフレームの送信元アドレスが前記経路情報テーブルに含まれていない場合、前記送信元アドレスを、前記受信部に前記第1のフレームを転送した転送元装置のアドレスと対応付けて登録テーブルに登録する登録部と、
前記経路情報テーブルに記録されていない宛先装置を宛先とした第2のフレームを送信するときに、前記登録テーブルから前記宛先装置のアドレスに対応付けて登録されている転送元装置のアドレスを取得する取得部と、
前記取得部で取得されたアドレスに前記第2のフレームを送信する送信部
を備えることを特徴とする通信装置。
(付記2)
前記送信元アドレスと同一のアドレスが前記経路情報テーブルに登録されるまでの期間、前記取得部は、前記送信元アドレスが割り当てられた通信装置に前記第2のフレームが送信される際に、前記第2のフレームを前記宛先装置に転送できる通信装置を、前記登録テーブルから検索する
ことを特徴とする付記1に記載の通信装置。
(付記3)
前記経路情報フレームに基づいて前記経路情報テーブルを更新する更新部
をさらに備え、
前記経路情報フレームは、前記経路情報フレームを生成した通信装置が前記第2のフレームを転送することができる通信装置である転送先装置のアドレスを通知し、
前記更新部は、前記経路情報フレームを生成した通信装置のアドレスに対応付けて、前記転送先装置のアドレスを前記経路情報テーブルに登録し、
前記転送先装置のアドレスが前記登録テーブルに登録されている場合、前記更新部は、前記転送先装置のアドレスと前記転送先装置のアドレスに対応付けられたアドレスを前記登録テーブルから削除する
ことを特徴とする付記1もしくは2に記載の通信装置。
(付記4)
前記登録テーブルは、前記送信元アドレスが登録されてから経過した時刻を表す情報を記録し、
前記送信元アドレスが記録された時刻から所定の時間が経過すると、前記登録部は、前記送信元アドレスと、前記送信元アドレスに対応付けられた情報を前記登録テーブルから削除する
ことを特徴とする付記1〜3のいずれかに記載の通信装置。
(付記5)
第1の通信装置は、ネットワークの経路情報を記録した経路情報テーブルを備え、
受信したデータフレームの送信元アドレスが前記経路情報テーブルに記録されているかを確認し、
前記送信元アドレスが記録されていない場合、前記送信元アドレスを、前記第1の通信装置に前記データフレームを転送した転送元装置のアドレスと対応付けて登録テーブルに登録し、
前記第1の通信装置は、前記経路情報テーブルに記録されていない第2の通信装置を宛先とした送信フレームを送信するときに、前記第2の通信装置のアドレスが前記登録テーブルに登録されているかを確認し、
前記第2の通信装置のアドレスが前記登録テーブルに登録されている場合、前記第1の装置は、前記第2の通信装置のアドレスに対応付けられている転送元装置に向けて前記送信フレームを送信する
ことを特徴とする通信方法。
【符号の説明】
【0102】
10 通信装置
20 インタフェース部
21 受信部
22 送信部
30 制御部
31 フレーム受信処理部
32 アプリケーション処理部
33 通知部
34 フレーム送信処理部
40 ルーティング部
41 振り分け部
42 更新部
43 登録部
44 取得部
50 記憶部
51、70 ルーティングテーブル
52 登録テーブル
55 タイマ
61 ネットワークサーバ
62 L3ネットワーク
100 MPU
101 バス
102 PHYチップ
104 タイマIC
106 DRAM
107 フラッシュメモリ
108 無線モジュール

【特許請求の範囲】
【請求項1】
ネットワークの経路情報を通知する経路情報フレームと、経路情報フレームではない第1のフレームを受信する受信部と、
前記経路情報フレームに含まれている経路情報を記録した経路情報テーブルと、
前記第1のフレームの送信元アドレスが前記経路情報テーブルに含まれていない場合、前記送信元アドレスを、前記受信部に前記第1のフレームを転送した転送元装置のアドレスと対応付けて登録テーブルに登録する登録部と、
前記経路情報テーブルに記録されていない宛先装置を宛先とした第2のフレームを送信するときに、前記登録テーブルから前記宛先装置のアドレスに対応付けて登録されている転送元装置のアドレスを取得する取得部と、
前記取得部で取得されたアドレスに前記第2のフレームを送信する送信部
を備えることを特徴とする通信装置。
【請求項2】
前記送信元アドレスと同一のアドレスが前記経路情報テーブルに登録されるまでの期間、前記取得部は、前記送信元アドレスが割り当てられた通信装置に前記第2のフレームが送信される際に、前記第2のフレームを前記宛先装置に転送できる通信装置を、前記登録テーブルから検索する
ことを特徴とする請求項1に記載の通信装置。
【請求項3】
前記経路情報フレームに基づいて前記経路情報テーブルを更新する更新部をさらに備え、
前記経路情報フレームは、前記経路情報フレームを生成した通信装置が前記第2のフレームを転送することができる通信装置である転送先装置のアドレスを通知し、
前記更新部は、前記経路情報フレームを生成した通信装置のアドレスに対応付けて、前記転送先装置のアドレスを前記経路情報テーブルに登録し、
前記転送先装置のアドレスが前記登録テーブルに登録されている場合、前記更新部は、前記転送先装置のアドレスと前記転送先装置のアドレスに対応付けられたアドレスを前記登録テーブルから削除する
ことを特徴とする請求項1もしくは2に記載の通信装置。
【請求項4】
第1の通信装置は、ネットワークの経路情報を記録した経路情報テーブルを備え、
受信したデータフレームの送信元アドレスが前記経路情報テーブルに記録されているかを確認し、
前記送信元アドレスが記録されていない場合、前記送信元アドレスを、前記第1の通信装置に前記データフレームを転送した転送元装置のアドレスと対応付けて登録テーブルに登録し、
前記第1の通信装置は、前記経路情報テーブルに記録されていない第2の通信装置を宛先とした送信フレームを送信するときに、前記第2の通信装置のアドレスが前記登録テーブルに登録されているかを確認し、
前記第2の通信装置のアドレスが前記登録テーブルに登録されている場合、前記第1の装置は、前記第2の通信装置のアドレスに対応付けられている転送元装置に向けて前記送信フレームを送信する
ことを特徴とする通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−209741(P2012−209741A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−73471(P2011−73471)
【出願日】平成23年3月29日(2011.3.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】