(57)【要約】【課題】  パケットの投げ合いに基づくパケットロスまたは遅延を防止可能な無線装置を提供する。【解決手段】  無線ネットワークシステム１００は、無線装置３１〜４３を備える。無線装置３１〜４３の各々は、他の無線装置におけるタイムカウンタ値Ｔｃｎｔ２を含むＨｅｌｌｏパケットを他の無線装置から受信し、Ｈｅｌｌｏパケットに含まれるタイムカウンタ値Ｔｃｎｔ２を読み出す。そして、無線装置３１〜４３の各々は、自己におけるタイムカウンタ値Ｔｃｎｔ１をタイムカウンタ値Ｔｃｎｔ２と比較し、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２よりも小さいとき、自己におけるタイムカウンタ値Ｔｃｎｔ１をタイムカウンタ値Ｔｃｎｔ２に合うように自己におけるタイムカウンタを調整する。【選択図】        図１
2006279826.tif 000002
【特許請求の範囲】
【請求項１】
自律的に確立され、かつ、送信元と送信先との間で無線通信が行なわれる無線ネットワークを構成する無線装置であって、
前記無線ネットワーク内で共通に使用される計時装置に基づいて当該無線装置における第１の時刻を計測する計測手段と、
前記第１の時刻が他の無線装置における前記計時装置に基づく第２の時刻と異なるとき、前記第１の時刻が前記第２の時刻に合うように前記計時装置を調整する調整手段と、
前記第１の時刻が前記第２の時刻と略同一であるとき前記第１の時刻に同期してルーティングテーブルを更新し、前記第１の時刻が他の無線装置における第２の時刻と異なるとき前記調整された計時装置からの時刻に同期してルーティングテーブルを更新するテーブル更新手段とを備える無線装置。
【請求項２】
前記調整手段は、前記第１の時刻が前記第２の時刻よりも遅れているとき、前記第１の時刻が前記第２の時刻に合うように前記計時装置を調整する、請求項１に記載の無線装置。
【請求項３】
前記調整手段は、
前記第２の時刻を含むパケットを前記他の無線装置から受信する受信手段と、
前記受信手段が前記パケットを受信すると、前記受信されたパケットから前記第２の時刻を抽出するとともに、その抽出した第２の時刻を前記第１の時刻と比較し、前記第２の時刻が前記第１の時刻と異なるとき、前記第２の時刻を前記計時装置に設定する設定手段とを含む、請求項１または請求項２に記載の無線装置。
【請求項４】
前記第１および第２の時刻は、それぞれ、第１および第２のタイムカウンタ値からなる、請求項３に記載の無線装置。
【請求項５】
前記パケットは、当該無線装置に隣接する無線装置に関する情報を含み、定期的に送信されるパケットである、請求項３または請求項４に記載の無線装置。
【請求項６】
前記テーブル更新手段は、前記設定された時刻に同期して前記ルーティングテーブルを更新する、請求項１から請求項５のいずれか１項に記載の無線装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、無線装置に関し、特に、複数の無線装置によって、自律的、かつ、即時的に構築されるアドホックネットワークを構成する無線装置に関するものである。
【背景技術】
【０００２】
アドホックネットワークは、複数の無線装置が相互に通信を行なうことによって自律的、かつ、即時的に構築されるネットワークである。アドホックネットワークでは、通信する２つの無線装置が互いの通信エリアに存在しない場合、２つの無線装置の中間に位置する無線装置がルータとして機能し、データパケットを中継するので、広範囲のマルチホップネットワークを形成することができる。
【０００３】
このようなアドホックネットワークは、被災地での無線通信網やＩＴＳ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｔｒａｎｓｐｏｒｔ  Ｓｙｓｔｅｍｓ）車車間通信でのストリーミングなど、様々な方面に応用されようとしている（非特許文献１）。
【０００４】
マルチホップ通信をサポートする動的なルーティングプロトコルとしては、テーブル駆動型プロトコルとオンデマンド型プロトコルとがある。テーブル駆動型プロトコルは、定期的に経路に関する制御情報の交換を行ない、予め経路表を構築しておくものであり、ＦＳＲ（Ｆｉｓｈ−ｅｙｅ  Ｓｔａｔｅ  Ｒｏｕｔｉｎｇ）、ＯＬＳＲ（Ｏｐｔｉｍｉｚｅｄ  Ｌｉｎｋ  Ｓｔａｔｅ  Ｒｏｕｔｉｎｇ）およびＴＢＲＰＦ（Ｔｏｐｏｌｏｇｙ  Ｄｉｓｓｅｍｉｎａｔｉｏｎ  Ｂａｓｅｄ  ｏｎ  Ｒｅｖｅｒｓｅ−Ｐａｔｈ  Ｆｏｒｗａｒｄｉｎｇ）等が知られている。
【０００５】
また、オンデマンド型プロトコルは、データ送信の要求が発生した時点で、初めて宛先までの経路を構築するものであり、ＤＳＲ（Ｄｙｎａｍｉｃ  Ｓｏｕｒｃｅ  Ｒｏｕｔｉｎｇ）およびＡＯＤＶ（Ａｄ  Ｈｏｃ  Ｏｎ−Ｄｅｍａｎｄ  Ｄｉｓｔａｎｃｅ  Ｖｅｃｔｏｒ  Ｒｏｕｔｉｎｇ）等が知られている。
【０００６】
そして、従来のアドホックネットワークにおいては、送信元から送信先へデータ通信を行なう場合、送信元から送信先までのホップ数ができる限り少なくなるように通信経路が決定される（非特許文献２）。
【非特許文献１】渡辺正浩“無線アドホックネットワーク”，自動車技術会春季大会ヒューマトロニクスフォーラム，ｐｐ１８−２３，横浜，５月２００３年．
【非特許文献２】Guangyu Pei, at al, “Fisheye state routing: a routing scheme for ad hoc wireless networks”, ICC2000. Commun., Volume 1, pp70-74, L.A., June 2000.
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、プロアクティブ型のルーティングプロトコルにおいては、各無線装置は、ルーティングテーブルを周期的に更新するが、複数の無線装置間においてルーティングテーブルの更新タイミングがずれると、局所的に正しくないネットワークトポロジー情報を持つ無線装置が出現し、それが原因となってパケットロスおよび遅延が発生するという問題がある。
【０００８】
図１２は、パケットの投げ合いの概念図である。無線装置１が無線装置２，３を介して無線装置４へデータを送信しているとき、無線装置３と無線装置４との間の経路が切断されても、無線装置２，３間においてルーティングテーブルの更新タイミングが異なると、無線装置２は、経路Ａを使用してデータを無線装置４へ送信しようとし、無線装置３は、無線装置４との間の経路が切断されたことを知っているので経路Ｂを用いてデータを無線装置４へ送信しようとしてデータを無線装置２へ送信する。
【０００９】
その結果、無線装置２，３間でパケットがぶつかる、所謂、パケットの投げ合いが生じる。
【００１０】
図１３は、パケットの投げ合いの実験結果を示す図である。図１３において、縦軸は、ホップ数を表し、横軸は、パケット数を表す。なお、図１３に示す実験結果は、９ホップ以上をカウントできない系で実験された結果であるため、図１３においては、９ホップ以上の場合も、９ホップとして表示されている。
【００１１】
殆どのパケットは、２〜３ホップで到達しているが、９ホップと表示されているところでは、パケットの投げ合いが生じている。
【００１２】
このように、無線ネットワーク内に存在する複数の無線装置が異なるタイミングでルーティングテーブルを更新すると、パケットの投げ合いが実際に生じ、パケットロスおよび遅延が発生するという問題がある。
【００１３】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、パケットの投げ合いに基づくパケットロスまたは遅延を防止可能な無線装置を提供することである。
【課題を解決するための手段】
【００１４】
この発明によれば、無線装置は、自律的に確立され、かつ、送信元と送信先との間で無線通信が行なわれる無線ネットワークを構成する無線装置であって、計測手段と、調整手段と、テーブル更新手段とを備える。計測手段は、無線ネットワーク内で共通に使用される計時装置に基づいて当該無線装置における第１の時刻を計測する。調整手段は、第１の時刻が他の無線装置における計時装置に基づく第２の時刻と異なるとき、第１の時刻が第２の時刻に合うように計時装置を調整する。テーブル更新手段は、第１の時刻が第２の時刻と略同一であるとき第１の時刻に同期してルーティングテーブルを更新し、第１の時刻が他の無線装置における第２の時刻と異なるとき、調整された計時装置からの時刻に同期してルーティングテーブルを更新する。
【００１５】
好ましくは、調整手段は、第１の時刻が第２の時刻よりも遅れているとき、第１の時刻が第２の時刻に合うように計時装置を調整する。
【００１６】
好ましくは、調整手段は、受信手段と、設定手段とを含む。受信手段は、第２の時刻を含むパケットを他の無線装置から受信する。設定手段は、受信手段がパケットを受信すると、受信されたパケットから第２の時刻を抽出するとともに、その抽出した第２の時刻を第１の時刻と比較し、第２の時刻が第１の時刻と異なるとき、第２の時刻を計時装置に設定する。
【００１７】
好ましくは、第１および第２の時刻は、それぞれ、第１および第２のタイムカウンタ値からなる。
【００１８】
好ましくは、パケットは、当該無線装置に隣接する無線装置に関する情報を含み、定期的に送信されるパケットである。
【００１９】
好ましくは、テーブル更新手段は、設定された時刻に同期してルーティングテーブルを更新する。
【発明の効果】
【００２０】
この発明による無線装置においては、当該無線装置における第１の時刻が他の無線装置における第２の時刻と異なるとき、第１の時刻を第２の時刻に合うように計時装置を調整し、その調整した時刻に同期してルーティングテーブルを更新する。そして、各無線装置において上記の調整を繰り返すことにより、各無線装置における時刻は、ほぼ同じになり、無線ネットワーク内に存在する各無線装置は、ほぼ同じタイミングでルーティングテーブルを更新する。
【００２１】
従って、この発明によれば、パケットの投げ合いに基づくパケットロスまたは遅延を防止できる。
【発明を実施するための最良の形態】
【００２２】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【００２３】
図１は、この発明の実施の形態による無線装置を用いた無線ネットワークシステムの概略図である。無線ネットワークシステム１００は、無線装置３１〜４３を備える。無線装置３１〜４３は、無線通信空間に配置され、自律的にネットワークを構成している。アンテナＡ５１〜Ａ６３は、それぞれ、無線装置３１〜４３に装着される。
【００２４】
例えば、無線ネットワークシステム１００において、無線装置３１から無線装置４２へデータを送信する場合、無線装置３２，３５，３６，３７，３８，３９，４０，４１は、無線装置３１からのデータを中継して無線装置４２へ届ける。
【００２５】
この場合、無線装置３１は、各種の経路を介して無線装置４２との間で無線通信を行なうことができる。即ち、無線装置３１は、無線装置３７，４１を介して無線装置４２との間で無線通信を行なうことができ、無線装置３２，３６，３９を介して無線装置４２との間で無線通信を行なうこともでき、無線装置３２，３５，３８，４０を介して無線装置４２との間で無線通信を行なうこともできる。
【００２６】
無線装置３７，４１を介して無線通信を行なう場合、ホップ数が“３”と最も少なく、無線装置３２，３６，３９を介して無線通信を行なう場合、ホップ数が“４”であり、無線装置３２，３５，３８，４０を介して無線通信を行なう場合、ホップ数が“５”と最も多い。
【００２７】
従って、無線装置３７，４１を介して無線通信を行なう経路を選択すると、ホップ数が“３”と最も少なくなる。
【００２８】
このように、無線ネットワークシステム１００においては、送信元である無線装置３１と送信先である無線装置４２との間で無線通信を行なう場合、ルーティングテーブルを参照して、ホップ数が最小になるように無線装置３１から無線装置４２までの経路が決定される。
【００２９】
しかし、無線装置３１−無線装置３７−無線装置４１−無線装置４２の経路において、無線装置３１，３７，４１，４２が相互に異なるタイミングでルーティングテーブルを更新すると、パケットの投げ合いが発生し、パケットロスおよび遅延が発生する。
【００３０】
そこで、以下においては、無線ネットワークシステム１００において、各無線装置３１〜４３がほぼ同期してルーティングテーブルを更新する方法について説明する。
【００３１】
なお、送信元と送信先との間で通信経路を確立するプロトコルの例としてＯＬＳＲプロトコルを用いる。このＯＬＳＲプロトコルは、テーブル駆動型のルーティングプロトコルであり、ＨｅｌｌｏメッセージおよびＴＣ（Ｔｏｐｏｌｏｇｙ  Ｃｏｎｔｒｏｌ）メッセージを用いて経路情報を交換し、ルーティングテーブルを作成するプロトコルである。
【００３２】
図２は、図１に示す無線装置３１の構成を示す概略ブロック図である。無線装置３１は、アンテナ１１と、入力部１２と、出力部１３と、ユーザアプリケーション１４と、通信制御部１５とを含む。
【００３３】
アンテナ１１は、図１に示すアンテナＡ５１〜Ａ６３の各々を構成する。そして、アンテナ１１は、無線通信空間を介して他の無線装置からデータを受信し、その受信したデータを通信制御部１５へ出力するとともに、通信制御部１５からのデータを無線通信空間を介して他の無線装置へ送信する。
【００３４】
入力部１２は、無線装置１の操作者が入力したメッセージおよびデータの宛先を受付け、その受付けたメッセージおよび宛先をユーザアプリケーション１４へ出力する。出力部１３は、ユーザアプリケーション１４からの制御に従ってメッセージを表示する。
【００３５】
ユーザアプリケーション１４は、入力部１２からのメッセージおよび宛先に基づいてデータを生成して通信制御部１５へ出力する。
【００３６】
通信制御部１５は、ＡＲＰＡ（Ａｄｖａｎｃｅｄ  Ｒｅｓｅａｒｃｈ  Ｐｒｏｊｅｃｔｓ  Ａｇｅｎｃｙ）インターネット階層構造に従って、通信制御を行なう複数のモジュールからなる。即ち、通信制御部１５は、無線インターフェースモジュール１６と、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）モジュール１７と、バッファ１８と、ＬＬＣ（Ｌｏｇｉｃａｌ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ）モジュール１９と、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）モジュール２０と、ルーティングテーブル２１と、ＴＣＰモジュール２２と、ＵＤＰモジュール２３と、ルーティングデーモン２４と、タイムカウンタ２５とからなる。
【００３７】
無線インターフェースモジュール１６は、物理層に属し、所定の規定に従って送信信号または受信信号の変復調を行なうとともに、アンテナ１１を介して信号を送受信する。そして、無線インターフェースモジュール１６は、アンテナ１１が他の無線装置から受信したＨｅｌｌｏパケットの受信信号強度を検出し、その検出した受信信号強度をルーティングデーモン２４へ出力する。
【００３８】
ＭＡＣモジュール１７は、ＭＡＣ層に属し、ＭＡＣプロトコルを実行して、以下に述べる各種の機能を実行する。
【００３９】
即ち、ＭＡＣモジュール１７は、ルーティングデーモン２４から受けたＨｅｌｌｏパケットを無線インターフェースモジュール１６を介してブロードキャストする。
【００４０】
また、ＭＡＣモジュール１７は、データ（パケット）の再送制御等を行なう。
【００４１】
バッファ１８は、データリンク層に属し、パケットを一時的に格納する。
【００４２】
ＬＬＣモジュール１９は、データリンク層に属し、ＬＬＣプロトコルを実行して隣接する無線装置との間でリンクの接続および解放を行なう。
【００４３】
ＩＰモジュール２０は、インターネット層に属し、ＩＰパケットを生成する。ＩＰパケットは、ＩＰヘッダと、上位のプロトコルのパケットを格納するためのＩＰデータ部とからなる。そして、ＩＰモジュール２０は、ＴＣＰモジュール２２からデータを受けると、その受けたデータをＩＰデータ部に格納してＩＰパケットを生成する。
【００４４】
そうすると、ＩＰモジュール２０は、テーブル駆動型のルーティングプロトコルであるＯＬＳＲプロトコルに従ってルーティングテーブル２１を検索し、生成したＩＰパケットを送信するための経路を決定する。そして、ＩＰモジュール２０は、ＩＰパケットをＬＬＣモジュール１９へ送信し、決定した経路に沿ってＩＰパケットを送信先へ送信する。
【００４５】
ルーティングテーブル２１は、インターネット層に属し、後述するように、各送信先に対応付けて経路情報を格納する。
【００４６】
ＴＣＰモジュール２２は、トランスポート層に属し、ＴＣＰパケットを生成する。ＴＣＰパケットは、ＴＣＰヘッダと、上位のプロトコルのデータを格納するためのＴＣＰデータ部とからなる。そして、ＴＣＰモジュール２２は、生成したＴＣＰパケットをＩＰモジュール２０へ送信する。
【００４７】
ＵＤＰモジュール２３は、トランスポート層に属し、ルーティングデーモン２４によって作成されたＵｐｄａｔｅパケットをブロードキャストし、他の無線装置からブロードキャストされたＵｐｄａｔｅパケットを受信してルーティングデーモン２４へ出力する。
【００４８】
ルーティングデーモン２４は、プロセス／アプリケーション層に属し、他の通信制御モジュールの実行状態を監視するとともに、他の通信制御モジュールからのリクエストを処理する。
【００４９】
また、ルーティングデーモン２４は、無線ネットワークシステム１００における経路情報を他の無線装置へ送信するとき、隣接する無線装置に関する情報等の各種のメッセージを含むＨｅｌｌｏパケットを作成し、その作成したＨｅｌｌｏパケットをＭＡＣモジュール１７へ出力する。
【００５０】
更に、ルーティングデーモン２４は、他の無線装置から受信したＨｅｌｌｏパケットの経路情報に基づいて、最適な経路を算出してルーティングテーブル２１をインターネット層に動的に作成する。
更に、ルーティングデーモン２４は、タイムカウンタ２５から無線装置１における時刻を示すタイムカウンタ値Ｔｃｎｔ１を取得し、他の無線装置から受信したＨｅｌｌｏパケットに含まれるタイムカウンタ値Ｔｃｎｔ２を検出する。そして、ルーティングデーモン２４は、タイムカウンタ値Ｔｃｎｔ１をタイムカウンタ値Ｔｃｎｔ２と比較し、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２よりも小さいとき、タイムカウンタ値Ｔｃｎｔ２を無線装置１における時刻としてタイムカウンタ２５に設定する。一方、ルーティングデーモン２４は、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２以上であるとき、タイムカウンタ２５のタイムカウンタ値Ｔｃｎｔ１をそのまま維持する。
【００５１】
更に、ルーティングデーモン２４は、タイムカウンタ２５からのタイムカウンタ値Ｔｃｎｔ１に同期してルーティングテーブル２１を所定のタイミングで更新する。
【００５２】
タイムカウンタ２５は、例えば、１０ｍｓｅｃごとにカウントアップし、無線装置１における時刻をルーティングデーモン２４へ出力する。
【００５３】
なお、図１に示す無線装置３２〜４３の各々も、図２に示す無線装置３１の構成と同じ構成からなる。
【００５４】
図３は、ＩＰヘッダの構成図である。ＩＰヘッダは、バージョン、ヘッダ長、サービスタイプ、パケット長、識別番号、フラグ、フラグメントオフセット、生存時間、プロトコル、ヘッダチェックサム、送信元ＩＰアドレス、送信先ＩＰアドレス、およびオプションからなる。
【００５５】
図４は、ＴＣＰヘッダの構成図である。ＴＣＰヘッダは、送信元ポート番号、送信先ポート番号、シーケンス番号、確認応答（ＡＣＫ）番号、データオフセット、予約、フラグ、ウィンドサイズ、ヘッダチェックサムおよびアージェントポインタからなる。
【００５６】
送信元ポート番号は、送信元の無線装置で複数のアプリケーションが動作しているときに、ＴＣＰパケットを出力したアプリケーションを特定する番号である。また、送信先ポート番号は、送信先の無線装置で複数のアプリケーションが動作しているときに、ＴＣＰパケットを届けるアプリケーションを特定する番号である。
【００５７】
ＴＣＰ通信は、エンド・ツー・エンドのコネクション型通信プロトコルである。ＴＣＰ通信のコネクション接続を要求する無線装置（以下、「ＴＣＰ通信接続要求装置」という。）のＴＣＰモジュール２２は、コネクションの確立時に、ＴＣＰヘッダ内のＣｏｄｅ  ＢｉｔにＳＹＮ（Ｓｙｎｃｈｒｏｎｉｚｅ  Ｆｌａｇ）を設定したコネクションの接続要求を示す第１パケットをＴＣＰ通信のコネクション接続を受理する端末（以下、「ＴＣＰ通信接続受理装置」という。）のＴＣＰモジュール２２へ送信する。これを受けて、ＴＣＰ通信接続受理装置のＴＣＰモジュール２２は、ＴＣＰヘッダ内のＣｏｄｅ  ＢｉｔにＳＹＮおよびＡＣＫ（確認応答）を設定したコネクションの接続要求受理および接続完了を示す第２パケットをＴＣＰ通信接続要求装置のＴＣＰモジュール２２へ送信する。更に、これを受けて、ＴＣＰ通信接続要求装置のＴＣＰモジュール２２は、ＴＣＰヘッダ内のＣｏｄｅ  ＢｉｔをＡＣＫ（確認応答）に設定したコネクションの接続完了を示す第３パケットをＴＣＰ通信接続受理装置のＴＣＰモジュール２２へ送信する。
【００５８】
コネクションの切断要求は、ＴＣＰ通信要求装置およびＴＣＰ通信受理装置のいずれの側からでも行なうことができる。ＴＣＰ通信のコネクション切断を要求する無線装置（以下、「ＴＣＰ通信切断要求装置」という。）のＴＣＰモジュール２２は、コネクションの切断時に、ＴＣＰヘッダ内のＣｏｄｅ  ＢｉｔをＦＩＮ（Ｆｉｎｉｓｈ  Ｆｌａｇ）に設定したコネクションの切断要求を示す第１パケットをＴＣＰ通信のコネクション切断を受理する無線装置（以下、「ＴＣＰ通信切断受理装置」という。）へ送信する。これを受けて、ＴＣＰ通信切断受理装置のＴＣＰモジュール２２は、ＴＣＰヘッダ内のＣｏｄｅ  ＢｉｔをＡＣＫ(確認応答)に設定したコネクションの切断要求受理を示す第２パケットと、ＴＣＰヘッダ内のＣｏｄｅ  ＢｉｔをＦＩＮに設定したコネクションの切断完了を示す第３パケットをＴＣＰ通信切断要求装置のＴＣＰモジュール２２へ送信する。更に、これを受けて、ＴＣＰ通信切断要求装置のＴＣＰモジュール２２は、ＴＣＰヘッダ内のＣｏｄｅ  ＢｉｔをＡＣＫ(確認応答)に設定したコネクションの切断完了を示す第４パケットをＴＣＰ通信切断受理装置のＴＣＰモジュール２２へ送信する。
【００５９】
図５は、ＯＬＳＲプロトコルにおけるパケットＰＫＴの構成図である。パケットＰＫＴは、パケットヘッダＰＨＤと、メッセージヘッダＭＨＤ１，ＭＨＤ２，・・・とからなる。なお、パケットＰＫＴは、ＵＤＰモジュール２３のポート番号６９８番を使用して送受信される。
【００６０】
パケットヘッダＰＨＤは、パケット長と、パケットシーケンス番号とからなる。パケット長は、１６ビットのデータからなり、パケットのバイト数を表す。また、パケットシーケンス番号は、１６ビットのデータからなり、どのパケットが新しいかを区別するために用いられる。そして、パケットシーケンス番号は、新しいパケットが生成される度に”１”づつ増加される。従って、パケットシーケンス番号が大きい程、そのパケットＰＫＴが新しいことを示す。
【００６１】
メッセージヘッダＭＨＤ１，ＭＨＤ２，・・・の各々は、メッセージタイプと、有効時間と、メッセージサイズと、発信元アドレスと、ＴＴＬと、ホップ数と、メッセージシーケンス番号と、メッセージとからなる。
【００６２】
メッセータイプは、８ビットのデータからなり、メッセージ本体に書かれたメッセージの種類を表し、０〜１２７は、予約済みである。有効時間は、８ビットのデータからなり、受信後に、このメッセージを管理しなければならない時間を表す。そして、有効時間は、仮数部と、指数部とからなる。
【００６３】
メッセージサイズは、１６ビットのデータからなり、メッセージの長さを表す。発信元アドレスは、３２ビットのデータからなり、メッセージを生成した無線装置を表す。ＴＴＬは、８ビットのデータからなり、メッセージが転送される最大ホップ数を指定する。そして、ＴＴＬは、メッセージが転送される時に”１”づつ減少される。そして、ＴＴＬが“０”か“１”である場合、メッセージは、転送されない。ホップ数は、８ビットのデータからなり、メッセージの生成元からのホップ数を表す。そして、ホップ数は、最初、“０”に設定され、転送される毎に“１”づつ増加される。メッセージシーケンス番号は、１６ビットのデータからなり、各メッセージに割当てられる識別番号を表す。そして、メッセージシーケンス番号は、メッセージが作成される毎に、“１”づつ増加される。メッセージは、送信対象のメッセージである。
【００６４】
ＯＬＳＲプロトコルにおいては、各種のメッセージが図５に示す構成のパケットＰＫＴを用いて送受信される。
【００６５】
図６は、パケットの他の構成図である。パケットＰＫＴ＿Ｔは、無線装置３１〜４３におけるタイムカウンタ値をほぼ同期化するときに無線装置３１〜４３間で相互に送受信されるパケットである。
【００６６】
パケットＰＫＴ＿Ｔは、ヘッダ部ＨＤと、時刻情報部ＴＩＦＯと、データ部ＤＡＴＡとからなる。ヘッダ部ＨＤは、パケットＰＫＴ＿Ｔを送信した無線装置のアドレスを格納する。時刻情報部ＴＩＦＯは、タイムカウンタ２５によってカウントされたタイムカウンタ値を格納する。データ部ＤＡＴＡは、ルーティングテーブル情報を格納する。
【００６７】
そして、パケットＰＫＴ＿Ｔは、ＯＬＳＲプロトコルのＨｅｌｌｏパケットとして定期的に送信される。
【００６８】
図７は、図２に示すルーティングテーブル２１の構成図である。ルーティングテーブル２１は、送信先、次の無線装置およびホップ数からなる。送信先、次の無線装置およびホップ数は、相互に対応付けられている。“送信先”は、送信先の無線装置のＩＰアドレスを表す。“次の無線装置”は、送信先にパケットＰＫＴを送信するときに、次に送信すべき無線装置のＩＰアドレスを表す。“ホップ数”は、送信先までのホップ数を表す。例えば、図１において、無線装置３１−無線装置３２−無線装置３６−無線装置３９−無線装置４２の経路によって無線装置３１と無線装置４２との間で無線通信が行なわれる場合、無線装置３２のルーティングテーブル２１のホップ数には、“３”が格納される。
【００６９】
ＯＬＳＲプロトコルに従ったルーティングテーブル２１の作成について詳細に説明する。無線装置３１〜４３は、ルーティングテーブル２１を作成する場合、ＨｅｌｌｏメッセージおよびＴＣメッセージを送受信する。
【００７０】
Ｈｅｌｌｏメッセージは、各無線装置３１〜４３が有する情報の配信を目的として、定期的に送信される。このＨｅｌｌｏメッセージを受信することによって、各無線装置３１〜４３は、周辺の無線装置に関する情報を収集でき、自己の周辺にどのような無線装置が存在するのかを認識する。
【００７１】
ＯＬＳＲプロトコルにおいては、各無線装置３１〜４３は、ローカルリンク情報を管理する。そして、Ｈｅｌｌｏメッセージは、このローカルリンク情報の構築および送信を行なうためのメッセージである。ローカルリンク情報は、「リンク集合」、「隣接無線装置集合」、「２ホップ隣接無線装置集合とそれらの無線装置へのリンク集合」、「ＭＰＲ（Ｍｕｌｔｉｐｏｉｎｔ  Ｒｅｌａｙ）集合」、および「ＭＰＲセレクタ集合」を含む。
【００７２】
リンク集合は、直接的に電波が届く無線装置（隣接無線装置）の集合へのリンクのことであり、各リンクは２つの無線装置間のアドレスの組の有効時間によって表現される。なお、有効時間は、そのリンクが単方向なのか双方向なのかを表すためにも利用される。
【００７３】
隣接無線装置集合は、各隣接無線装置のアドレス、およびその無線装置の再送信の積極度（Ｗｉｌｌｉｎｇｎｅｓｓ）等によって構成される。２ホップ隣接無線装置集合は、隣接無線装置に隣接する無線装置の集合を表す。
【００７４】
ＭＰＲ集合は、ＭＰＲとして選択された無線装置の集合である。なお、ＭＰＲとは、各パケットＰＫＴを無線ネットワークシステム１００の全ての無線装置３１〜４３へ送信する場合、各無線装置３１〜４３が１つのパケットＰＫＴを１回だけ送受信することによってパケットＰＫＴを全ての無線装置３１〜４３へ送信できるように中継無線装置を選択することである。
【００７５】
ＭＰＲセレクタ集合は、自己をＭＰＲとして選択した無線装置の集合を表す。
【００７６】
ローカルリンク情報が確立される過程は、概ね、次のようになる。Ｈｅｌｌｏメッセージは、初期の段階では、各無線装置３１〜４３が自己の存在を知らせるために、自己のアドレスが入ったＨｅｌｌｏメッセージを隣接する無線装置へ送信する。これを、無線装置３１〜４３の全てが行ない、各無線装置３１〜４３は、自己の周りにどのようなアドレスを持った無線装置が存在するのかを把握する。このようにして、リンク集合および隣接無線装置集合が構築される。
【００７７】
そして、構築されたローカルリンク情報は、再び、Ｈｅｌｌｏメッセージによって定期的に送り続けられる。これを繰返すことによって、各リンクが双方向であるのか、隣接無線装置の先にどのような無線装置が存在するのかが徐々に明らかになって行く。各無線装置３１〜４３は、このように徐々に構築されたローカルリンク情報を蓄える。
【００７８】
更に、ＭＰＲに関する情報も、Ｈｅｌｌｏメッセージによって定期的に送信され、各無線装置３１〜４３へ告知される。各無線装置３１〜４３は、自己が送信するパケットＰＫＴの再送信を依頼する無線装置として、いくつかの無線装置をＭＰＲ集合として隣接無線装置の中から選択している。そして、このＭＰＲ集合に関する情報は、Ｈｅｌｌｏメッセージによって隣接する無線装置へ送信されるので、このＨｅｌｌｏメッセージを受信した無線装置は、自己がＭＰＲとして選択してきた無線装置の集合を「ＭＰＲセレクタ集合」として管理する。このようにすることにより、各無線装置３１〜４３は、どの無線装置から受信したパケットＰＫＴを再送信すればよいのかを即座に認識できる。
【００７９】
Ｈｅｌｌｏメッセージの送受信により各無線装置３１〜４３において、ローカルリンク集合が構築されると、無線ネットワークシステム１００全体のトポロジーを知らせるためのＴＣメッセージが無線装置３１〜４３へ送信される。このＴＣメッセージは、ＭＰＲとして選択されている全ての無線装置によって定期的に送信される。そして、ＴＣメッセージは、各無線装置とＭＰＲセレクタ集合との間のリンクを含んでいるため、無線ネットワークシステム１００の全ての無線装置３１〜４３は、全てのＭＰＲ集合および全てのＭＰＲセレクタ集合を知ることができ、全てのＭＰＲ集合および全てのＭＰＲセレクタ集合に基づいて、無線ネットワークシステム１００全体のトポロジーを知ることができる。各無線装置３１〜４３は、無線ネットワークシステム１００全体のトポロジーを用いて最短路を計算し、それに基づいて経路表を作成する。
【００８０】
なお、各無線装置３１〜４３は、Ｈｅｌｌｏメッセージとは別に、ＴＣメッセージを頻繁に交換する。そして、ＴＣメッセージの交換にも、ＭＰＲが利用される。
【００８１】
各無線装置３１〜４３のＵＤＰモジュール２３は、上述したＨｅｌｌｏメッセージおよびＴＣメッセージを送受信し、ルーティングデーモン２４は、ＵＤＰモジュール２３が受信したＨｅｌｌｏメッセージおよびＴＣメッセージに基づいて無線ネットワークシステム１００全体のトポロジーを認識し、その無線ネットワークシステム１００全体のトポロジーに基づいて、最短路を計算し、それに基づいて、図７に示すルーティングテーブル２１を動的に作成する。
【００８２】
各無線装置３１〜４３におけるタイムカウンタ値の調整について詳細に説明する。
【００８３】
ルーティングデーモン２４は、他の無線装置から受信したＨｅｌｌｏパケットＰＫＴ＿ＴをＵＤＰモジュール２３から受信し、その受信したＨｅｌｌｏパケットＰＫＴ＿Ｔの時刻情報部ＴＩＦＯに格納されたタイムカウンタ値Ｔｃｎｔ２を検出する。
【００８４】
また、ルーティングデーモン２４は、タイムカウンタ２５からタイムカウンタ値Ｔｃｎｔ１を取得する。そして、ルーティングデーモン２４は、タイムカウンタ値Ｔｃｎｔ１をタイムカウンタ値Ｔｃｎｔ２と比較し、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２よりも小さいとき、タイムカウンタ値Ｔｃｎｔ２を当該無線装置におけるタイムカウンタ値としてタイムカウンタ２５に設定する。
【００８５】
ルーティングデーモン２４は、タイムカウンタ値Ｔｃｎｔ２をタイムカウンタ２５に設定したとき、その設定後にタイムカウンタ２５から受けたタイムカウンタ値Ｔｃｎｔ１に同期してルーティングテーブル２１を更新する。これにより、ルーティングデーモン２４は、無線ネットワークシステム１００内に存在する他の無線装置におけるルーティングテーブル２１の更新タイミングに近いタイミングに同期してルーティングテーブル２１を更新できる。そして、このタイムカウンタ値Ｔｃｎｔ１をタイムカウンタ値Ｔｃｎｔ２に合わせる動作を繰り返すことにより、無線ネットワークシステム１００内に存在する無線装置３１〜４３のタイムカウンタ値がほぼ一定になり、無線装置３１〜４３の各々において、ルーティングデーモン２４は、ほぼ同じタイミングでルーティングテーブル２１を更新できる。
【００８６】
一方、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２以上であるとき、ルーティングデーモン２４は、タイムカウンタ２５のタイムカウンタ値を維持する。
【００８７】
図８は、ルーティングテーブル２１の作成および更新に関する動作を説明するためのフローチャートである。
【００８８】
一連の動作が開始されると、各無線装置３１〜４３において、ルーティングデーモン２４は、上述した動作によってルーティングテーブル２１を作成する（ステップＳ１）。
【００８９】
その後、ルーティングデーモン２４は、タイムカウンタ２５のタイムカウンタ値Ｔｃｎｔ１を調整する（ステップＳ２）。そして、ルーティングデーモン２４は、調整したタイムカウンタ値Ｔｃｎｔ１に同期してルーティングテーブル２１を更新する（ステップＳ３）。
【００９０】
これによって、一連の動作が終了する。
【００９１】
図９は、図８に示すステップＳ２の詳細な動作を説明するためのフローチャートである。図８に示すステップＳ１の後、ルーティングデーモン２４は、ＨｅｌｌｏパケットＰＫＴ＿Ｔを受信する（ステップＳ２１）。そして、ルーティングデーモン２４は、ＨｅｌｌｏパケットＰＫＴ＿Ｔの時刻情報部ＴＩＦＯに格納されたタイムカウンタ値Ｔｃｎｔ２を読み出し、タイムカウンタ２５からタイムカウンタ値Ｔｃｎｔ１を取得する。
【００９２】
そうすると、ルーティングデーモン２４は、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２よりも小さいか否かを判定することにより、自分のタイムカウンタ値の方が小さいか否かを判定する（ステップＳ２２）。
【００９３】
そして、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２以上であるとき、一連の動作は、図８に示すステップＳ３へ移行する。一方、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２よりも小さいとき、ルーティングデーモン２４は、タイムカウンタ値Ｔｃｎｔ１をタイムカウンタ値Ｔｃｎｔ２に設定する（ステップＳ２３）。
【００９４】
即ち、ルーティングデーモン２４は、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２よりも小さいとき、タイムカウンタ値Ｔｃｎｔ１を他の無線装置におけるタイムカウンタ値Ｔｃｎｔ２に合わせる。
【００９５】
これにより、他の無線装置におけるタイムカウンタ値Ｔｃｎｔ２よりも小さいタイムカウンタ値Ｔｃｎｔ１を有する無線装置のタイムカウンタ値を他の無線装置におけるタイムカウンタ値Ｔｃｎｔ２に合わせることができる。そして、無線ネットワークシステム１００内に存在する無線装置３１〜４３の各々が図９に示すフローチャートに従って自己のタイムカウンタ値を調整することにより、無線装置３１〜４３におけるタイムカウンタ値がほぼ一定のタイムカウンタ値に収束する。
【００９６】
その結果、無線装置３１〜４３は、ほぼ一定に収束したタイムカウンタ値に同期してルーティングテーブル２１を更新でき、パケットの投げ合いおよび遅延を防止できる。
【００９７】
なお、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２よりも小さいとき、ステップＳ２３において、タイムカウンタ値Ｔｃｎｔ１をタイムカウンタ値Ｔｃｎｔ２に設定することは、当該無線装置における時刻が他の無線装置における時刻よりも遅れているとき、当該無線装置における時刻を他の無線装置における時刻に合わせることに相当する。
【００９８】
上述したタイムカウンタ値の調整を行なった場合のパケットの投げ合いの発生について実験を行なった実験結果について説明する。
【００９９】
図１０は、パケットの投げ合いの実験環境を示す平面図である。図１０における“６８”等の数字は、無線装置を表し、黒丸は、無線装置の配置位置を表す。また、“ＥＶ”は、エレベータを表す。そして、実験は、多くの部屋、廊下、階段、エレベータおよび吹き抜けが配置された環境において行なわれた。
【０１００】
複数の無線装置は、多くの部屋または廊下に配置され、アドホックネットワークを構成する。実験においては、無線装置６０から無線装置６７へ向かう経路を経路１とし、無線装置６８から無線装置６２へ向かう経路を経路２とした。
【０１０１】
但し、図１０において、実線の矢印または点線の矢印は、それぞれ、無線装置６０から放射された電波が多くの無線装置を介して無線装置６７まで伝播する経路または無線装置６８から放射された電波が多くの無線装置を介して無線装置６２まで伝播する経路であることを示すものであり、無線装置６０から放射された電波が直線的に伝播して無線装置６７まで伝播する経路または無線装置６８から放射された電波が直線的に伝播して無線装置６２まで伝播する経路であることを示すものではない。
【０１０２】
図１１は、実験結果を示す図である。図１１の（ａ）は、経路１において、タイムカウンタ値の調整を行なわなかった場合の実験結果であり、図１１の（ｂ）は、経路２において、タイムカウンタ値の調整を行なわなかった場合の実験結果であり、図１１の（ｃ）は、経路１において、タイムカウンタ値の調整を行なった場合の実験結果であり、図１１の（ｄ）は、経路２において、タイムカウンタ値の調整を行なった場合の実験結果である。
【０１０３】
図１１の（ａ）〜図２１の（ｄ）の各々において、縦軸は、投げ合い回数およびパケットエラー率を表し、横軸は、実験回数を表す。
【０１０４】
経路１においては、上述したタイムカウンタ値の調整の有無に拘わらず、パケットの投げ合いは、殆ど起こっておらず、パケットエラー率も殆ど零である（図１１の（ａ）および（ｃ）参照）。これは、経路１が安定な経路であるからである。
【０１０５】
一方、経路２においては、上述したタイムカウンタ値の調整を行なわなかった場合、パケットの投げ合いの回数が約７０回〜２００回と多く、パケットエラー率も十数％〜二十数％と高い（図１１の（ｂ）参照）。
【０１０６】
しかし、上述したタイムカウンタ値の調整を行なった場合、パケットの投げ合いの回数およびパケットエラー率は、ほぼ零である。
【０１０７】
従って、上述したタイムカウンタ値の調整を行なうことによって、各無線装置は、ほぼ同期してルーティングテーブルを更新するようになり、パケットの投げ合いを防止でき、パケットエラー率を略零にできることが実験的に実証された。
【０１０８】
なお、図９に示すフローチャートにおいては、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２よりも小さいときに、タイムカウンタ値Ｔｃｎｔ２をタイムカウンタ２５のタイムカウンタ値に設定すると説明したが、この発明においては、これに限らず、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタ値Ｔｃｎｔ２よりも大きいときに、タイムカウンタ値Ｔｃｎｔ２をタイムカウンタ２５のタイムカウンタ値に設定するようにしてもよい。
【０１０９】
従って、この発明においては、一般的に、タイムカウンタ値Ｔｃｎｔ１がタイムカウンタＴｃｎｔ２と異なる場合にタイムカウンタ値Ｔｃｎｔ２をタイムカウンタ２５のタイムカウンタ値に設定する。
【０１１０】
また、上記においては、タイムカウンタ２５によって各無線装置における時刻を計時すると説明したが、この発明においては、これに限らず、タイムカウンタ２５以外の装置によって各無線装置における時刻を計時してもよい。
【０１１１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０１１２】
この発明は、パケットの投げ合いに基づくパケットロスまたは遅延を防止可能な無線装置に適用される。
【図面の簡単な説明】
【０１１３】
【図１】この発明の実施の形態による無線装置を用いた無線ネットワークシステムの概略図である。
【図２】図１に示す無線装置の構成を示す概略ブロック図である。
【図３】ＩＰヘッダの構成図である。
【図４】ＴＣＰヘッダの構成図である。
【図５】ＯＬＳＲプロトコルにおけるパケットの構成図である。
【図６】パケットの他の構成図である。
【図７】図２に示すルーティングテーブルの構成図である。
【図８】ルーティングテーブルの作成および更新に関する動作を説明するためのフローチャートである。
【図９】図８に示すステップＳ２の詳細な動作を説明するためのフローチャートである。
【図１０】パケットの投げ合いの実験環境を示す平面図である。
【図１１】実験結果を示す図である。
【図１２】パケットの投げ合いの概念図である。
【図１３】パケットの投げ合いの実験結果を示す図である。
【符号の説明】
【０１１４】
１〜６，３１〜４３  無線装置、１１，Ａ５１〜Ａ６３  アンテナ、１２  入力部、１３  出力部、１４  ユーザアプリケーション、１５  通信制御部、１６  無線インターフェースモジュール、１７  ＭＡＣモジュール、１８  バッファ、１９  ＬＬＣモジュール、２０  ＩＰモジュール、２１，２１Ａ  ルーティングテーブル、２２  ＴＣＰモジュール、２３  ＵＤＰモジュール、２４  ルーティングデーモン、２５  タイムカウンタ、１００  無線ネットワークシステム。
【図１】
2006279826.tif 000003
【図２】
2006279826.tif 000004
【図３】
2006279826.tif 000005
【図４】
2006279826.tif 000006
【図５】
2006279826.tif 000007
【図６】
2006279826.tif 000008
【図７】
2006279826.tif 000009
【図８】
2006279826.tif 000010
【図９】
2006279826.tif 000011
【図１０】
2006279826.tif 000012
【図１１】
2006279826.tif 000013
【図１２】
2006279826.tif 000014
【図１３】
2006279826.tif 000015