本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による無線装置を用いた無線ネットワークシステムの概略図である。無線ネットワークシステム100は、無線装置31〜43を備える。無線装置31〜43は、無線通信空間に配置され、自律的にネットワークを構成している。アンテナ51〜63は、それぞれ、無線装置31〜43に装着される。
例えば、無線装置31から無線装置42へデータを送信する場合、無線装置32,35〜41は、無線装置31からのデータを中継して無線装置42へ届ける。
また、無線装置33から無線装置43へデータを送信する場合、無線装置31,32,35〜42は、無線装置33からのデータを中継して無線装置43へ届ける。
このように、無線ネットワークシステム100においては、複数のデータフローが発生する場合があり、その場合、上述した2つのデータフロー(無線装置31から無線装置42へのデータフローおよび無線装置33から無線装置43へのデータフロー)の両方を中継する無線装置32,35〜41は、同一の周波数で2つのデータフローを同時に中継できず、一方のデータフローの中継が終了した後に他方のデータフローの中継を行なわねばならない。そのため、他方のデータフローの中継に遅延が生じ、このような中継時の遅延が無線装置32,35〜41において発生することにより、無線ネットワークシステム100の全体における遅延が増大する。
そこで、以下においては、無線ネットワークシステム100の全体において、遅延を低減して無線通信を行なう方法について説明する。
なお、送信元と送信先との間で通信経路を確立するプロトコルの例としてOLSRプロトコルを用いる。このOLSRプロトコルは、テーブル駆動型のルーティングプロトコルであり、HelloメッセージおよびTC(Topology Control)メッセージを用いて経路情報を交換し、ルーティングテーブルを作成するプロトコルである。
そして、以下においては、OLSRプロトコルに従って送信元と送信先との間で無線通信経路が確立され、送信元と送信先との間で無線通信を行なえる環境が整っていることを前提として説明する。
図2は、図1に示す無線装置31の構成を示す概略ブロック図である。無線装置31は、アンテナ11と、入力部12と、出力部13と、ユーザアプリケーション14と、通信制御部15とを含む。
アンテナ11は、図1に示すアンテナ51〜63の各々を構成する。そして、アンテナ11は、無線通信空間を介して他の無線装置からデータを受信し、その受信したデータを通信制御部15へ出力するとともに、通信制御部15からのデータを無線通信空間を介して他の無線装置へ送信する。
入力部12は、無線装置31の操作者が入力したメッセージおよびデータの宛先を受付け、その受付けたメッセージおよび宛先をユーザアプリケーション14へ出力する。出力部13は、ユーザアプリケーション14からの制御に従ってメッセージを表示する。
ユーザアプリケーション14は、入力部12からのメッセージおよび宛先に基づいてデータを生成して通信制御部15へ出力する。
通信制御部15は、ARPA(Advanced Research Projects Agency)インターネット階層構造に従って、通信制御を行なう複数のモジュールからなる。即ち、通信制御部15は、無線インターフェースモジュール16と、MAC(Media Access Control)モジュール17と、識別器18と、レジスター19と、ホップ数設定手段20と、ネットワーク層等の上位層に設けられるモジュール(図示せず)とからなる。
無線インターフェースモジュール16は、物理層に属し、所定の拡散符号により送信データをスペクトラム拡散するとともに、そのスペクトラム拡散した送信データを所定の周波数で変調し、アンテナ11を介して送信する。
また、無線インターフェースモジュール16は、他の無線装置から送信された信号をアンテナ11を介して受信し、その受信した信号の復調を行なうとともに、復調後の信号をスペクトラム逆拡散してレジスター19またはネットワーク層等の上位層へ出力する。
MACモジュール17は、データリンク層に属し、MACプロトコルを実行して、以下に述べる各種の機能を実行する。
即ち、MACモジュール17は、上位層から受けたHelloパケットを無線インターフェースモジュール16を介してブロードキャストする。
また、MACモジュール17は、データ(パケット)の再送制御等を行なう。
識別器18は、データリンク層に属し、後述する方法によって、レジスター19に保持されたパケットPKTのヘッダのみを参照してパケットPKTの送信先を決定する。そして、識別器18は、その決定した送信先にパケットPKTを送信するように無線インターフェースモジュール16を制御するための制御信号CTLを生成して無線インターフェースモジュール16へ出力する。
レジスター19は、データリンク層に属し、無線インターフェースモジュール16から受けたパケットPKTを一時的に保持してホップ数設定手段20へ出力する。
ホップ数設定手段20は、レジスター19から出力されたパケットPKTのヘッダに含まれるホップカウンタを“1”だけデクリメントし、パケットPKTを無線インターフェースモジュール16へ出力する。
なお、図1に示す無線装置32〜43の各々も、図2に示す無線装置31の構成と同じ構成からなる。
図3は、図2に示す無線インターフェースモジュール16の一部の構成を示す構成図である。無線インターフェースモジュール16は、送信部161と、受信部162と、切換器163とを含む。
送信部161は、拡散符号保持部1611と、拡散手段1612と、変調器1613とを含む。拡散符号保持部1611は、複数の拡散符号C1〜Ck(kは、2以上の整数)を保持する。複数の拡散符号C1〜Ckは、相互に異なる符号系列からなる。
より詳細には、複数の拡散符号C1〜Ckは、位相差ゼロにおいて自己相関が鋭く、位相差ゼロ以外の時は相関が十分に小さい符号系列からなる。複数の拡散符号C1〜Ckがこのような符号系列からなるのは、無線ネットワークシステム100において、スペクトラム拡散された拡散信号が非同期で無線通信された場合にも、各無線装置がスペクトラム逆拡散により希望波のみを抽出できるようにするためである。
そして、拡散符号保持部1611は、拡散符号Ci(iは1≦i≦kを満たす整数)の出力要求を拡散手段1612から受けると、拡散符号Ciを拡散手段1612へ出力する。この場合、拡散符号保持部1611は、拡散符号Ciの出力要求を受ける毎に、拡散手段1612へ前回出力した拡散符号と異なる拡散符号を複数の拡散符号C1〜Ckから選択して拡散手段1612へ出力する。
拡散手段1612は、MACモジュール17または切換器163からパケットPKTを受け、拡散符号保持部1611から拡散符号Ciを受ける。そして、拡散手段1612は、パケットPKTを拡散符号Ciによってスペクトラム拡散する。より具体的には、拡散手段1612は、パケットPKTのビット列と拡散符号Ciとの排他的論理和(Exclusive−OR)を演算することにより、パケットPKTを拡散符号Ciによりスペクトラム拡散する。
そして、拡散手段1611は、パケットPKTをスペクトラム拡散して生成した拡散信号SSを変調器1613へ出力する。
変調器1613は、拡散手段1612から拡散信号SSを受けると、拡散信号SSを所定の周波数で変調し、その変調した拡散信号SSをアンテナ11へ出力する。
受信部162は、復調器1621と、拡散符号保持部1622と、逆拡散手段1623とを含む。
復調器1621は、アンテナ11から受信信号Rを受け、その受けた受信信号Rを所定の周波数で復調して拡散信号SSを逆拡散手段1623へ出力する。
拡散符号保持部1622は、送信部161の拡散符号保持部1611と同じ複数の拡散符号C1〜Ckを保持する。そして、拡散符号保持部1622は、拡散符号の出力要求を逆拡散手段1623から受けると、複数の拡散符号C1〜Ckを逆拡散手段1623へ出力する。
逆拡散手段1623は、復調器1621から拡散信号SSを受け、拡散符号保持部1622から複数の拡散符号C1〜Ckを受ける。そして、逆拡散手段1623は、拡散信号SSと、複数の拡散信号C1〜Ckの各々との相関値を演算し、その演算した複数の相関値のうち、しきい値以上の相関値が得られるときの拡散符号Cj(jは、1≦j≦kを満たす整数)を特定する。
そうすると、逆拡散手段1623は、その特定した拡散符号Cjによって拡散信号SSをスペクトラム逆拡散する。より具体的には、逆拡散手段1623は、拡散信号SSのビット列と拡散符号Cjとの排他的論理和(Exclusive−OR)を演算することにより、拡散符号Cjによって拡散信号SSをスペクトラム逆拡散する。
そして、逆拡散手段1623は、スペクトラム逆拡散したパケットPKTをレジスター19へ出力する。
なお、逆拡散手段1623がスペクトラム逆拡散に用いる拡散符号Cjを拡散手段1612がスペクトラム拡散に用いる拡散符号Ciと異なる表記にしているのは、パケットPKTの送信時にパケットPKTをスペクトラム拡散するための拡散符号Ciは、パケットPKTの受信時にパケットPKTを逆拡散するための拡散符号Cjと同じであるとは限らないからである。
つまり、この発明においては、パケットPKTの送信側である無線装置A(無線装置31〜43のいずれか)は、パケットPKTを送信するとき、複数の拡散符号C1〜Ckから任意に選択した拡散符号Ciを用いてパケットPKTをスペクトラム拡散するため、無線装置AがパケットPKTを他の無線装置B(無線装置Aと異なる無線装置)から受信するとき、他の無線装置Bが拡散符号Ciと同じ拡散符号を複数の拡散符号C1〜Ckから選択する場合もあれば、他の無線装置Bが拡散符号Ciと異なる拡散符号を複数の拡散符号C1〜Ckから選択する場合もあるので、逆拡散手段1623がスペクトラム逆拡散に用いる拡散符号Cjを拡散手段1612がスペクトラム拡散に用いる拡散符号Ciと異なる表記にしている。
従って、拡散符号Ciおよび拡散符号Cjは、相互に同じである場合もあれば、相互に異なる場合もある。
切換器163は、スイッチ1631と、端子1632〜1634とからなる。スイッチ1631は、レジスター19からの出力データをホップ数設定手段20を介して受ける。そして、スイッチ1631は、識別器18からの制御信号CTLによって端子1632〜1634のいずれかに接続される。
端子1632は、レジスター19からの出力データを当該無線装置の上位層へ出力するための端子であり、端子1633は、レジスター19からの出力データを当該無線装置の上位層および他の無線装置へ送信するための端子であり、端子1634は、レジスター19からの出力データを他の無線装置へ送信するための端子である。
このように、切換器163は、識別器18からの制御信号CTLによって送信先を変えてレジスター19からの出力データを送信する。
レジスター19は、後述するパケットPKTのヘッダHDのビット長よりもαビットだけ長いビット長のデータを一度に保持可能な容量を有する。αビットは、変調方式に応じて決定され、例えば、1〜2ビットのビット長を有する。
レジスター19の容量が“ヘッダHDのビット長+α”ビットに設定されるのは、各無線装置31〜43においてパケットPKTのヘッダHDがレジスター19に格納されるタイミングがずれても、各無線装置31〜43においてパケットPKTのヘッダHDを正確に検出できるようにするためである。
レジスター19は、パケットPKTをその先頭から所定量(=“ヘッダHDのビット長+α”ビット)づつ一時的に保持し、その後、所定量づつ、順次、ホップ数設定手段20へ出力する。
識別器18は、他の無線装置から受信したパケットPKTをどのように処理するのを示す制御テーブルを保持している。そして、識別器18は、制御テーブルと、レジスター19に保持されたヘッダHDとを参照して、パケットPKTの送信先を後述する方法によって決定し、その決定した送信先へパケットPKTを送信するように切換器163を制御するための制御信号CTLを生成する。そして、識別器18は、その生成した制御信号CTLを切換器163のスイッチ1631へ出力する。
ホップ数設定手段20は、レジスター19から出力されたパケットPKTのヘッダHDに格納されたホップカウンタを“1”だけデクリメントし、そのデクリメントしたパケットPKTを切換器163のスイッチ1631へ出力する。
図4は、パケットPKTの構成図である。パケットPKTは、プリアンブル(Pre−Amble)と、ラベル格納部(Label Field)と、誤り符号(LCS:Label Check Sequence)と、本体部(Container)とからなる。なお、プリアンブル(Pre−Amble)、ラベル格納部(Label Field)および誤り符号(LCS)は、ヘッダHDを構成する。
プリアンブル(Pre−Amble)には、受信信号を再生するための信号が格納される。より具体的には、キャリア再生用の信号またはクロック再生用の信号がプリアンブル(Pre−Amble)に格納される。
ラベル格納部(Label Field)には、パケットPKTを無線通信経路に沿って無線通信するためのラベル情報またはパケットPKTを無線ネットワークシステム100内の不特定多数の無線装置に送信するためのラベル情報が格納される。
誤り符号(LCS)は、ラベル格納部(Label Field)の誤り検出用のCRC(Cyclic Redundancy Check)符号からなる。本体部(Container)には、例えば、IPパケットが格納される。
ラベル格納部(Label Field)の長さおよび誤り符号(LCS)の長さは、システムに応じて決定されるが、アドホックネットワークからなる無線ネットワークシステム100においては、例えば、ラベル格納部(Label Field)の長さは、12ビットであり、誤り符号(LCS)の長さは、4ビットである。
ラベル格納部(Label Field)は、タイプと、コネクションIDと、ホップカウンタとからなる。タイプは、例えば、1ビットのデータからなり、“0”または“1”が格納される。ここで、“0”は、パケットPKTを無線ネットワークシステム100内の不特定多数の無線装置に送信するためのラベル情報であるフラディングラベルを表し、“1”は、パケットPKTを無線通信経路に沿って中継するためのラベル情報であるルーティングラベルを表す。
従って、タイプを参照すれば、そのパケットPKTが、無線ネットワークシステム100内の不特定多数の無線装置に送信されるパケットであるのか、無線通信経路に沿って中継されるパケットであるのかを識別できる。
そして、タイプには、送信元の無線装置によって“0”または“1”が格納される。
コネクションIDは、例えば、7ビットのデータからなり、固定長ビットパターンが格納される。そして、コネクションIDは、パケットPKTが無線通信経路に沿って無線通信される場合、例えば、ビットパターン[1100110]が格納される。なお、ビットパターン[1100110]は、パケットPKTを送信(または中継)する無線通信経路の設定時にコネクションIDに格納される。
また、コネクションIDは、パケットPKTが無線ネットワークシステム100内の不特定多数の無線装置に送信される場合、過去に格納された数値よりも大きい数値が格納される。この場合、送信元の無線装置が過去に使用された数値よりも大きい数値をコネクションIDに格納する。
ホップカウンタは、例えば、4ビットのデータからなり、所定の数値が格納される。そして、ホップカウンタは、パケットPKTが中継される度に“1”だけ減少される。ホップカウンタに格納された数値が“0”になると、パケットPKTは、中継されない。
図5は、図3に示す識別器18が保持する制御テーブルの構成図である。制御テーブルCLTは、ラベルと、コマンドとからなる。制御テーブルCLTにおいて、ラベルには、図4に示す“タイプ”、“コネクションID”および“ホップカウンタ”が格納され、コマンドには、“Com1”,“Com2”,“Com3”,“Com4”が格納される。
コマンドCom1は、他の無線装置から送信されたパケットPKTを当該無線装置で受信することを表し、コマンドCom2は、他の無線装置から送信されたパケットPKTを無線ネットワークシステム100内の不特定多数の無線装置へ転送することを表し、コマンドCom3は、他の無線装置から送信されたパケットPKTを無線通信経路に沿って中継することを表し、コマンドCom4は、他の無線装置から送信されたパケットPKTを破棄することを表す。
コマンドCom1は、ラベル[1]/[1100110]/[任意の数値],[0]/[1111011]/[0000]に対応し、コマンドCom2は、ラベル[0]/[過去の数値と異なる数値]/[0以外の数値]に対応し、コマンドCom3は、ラベル[1]/[1100110]/[0以外の数値]に対応し、コマンドCom4は、ラベルエラーまたはラベル[0]/[過去の数値と同じ数値]/[0以外の数値]に対応する。
ラベル[1]/[1100110]/[任意の数値]は、“1”からなる“タイプ”を含むので、パケットPKTを無線通信経路に沿って送信することを表す。従って、送信先の識別器18は、ラベル[1]/[1100110]/[任意の数値]を含むパケットPKTに対しては、受信(=コマンドCom1)という処理を行なう。また、ラベル[0]/[1111011]/[0000]は、“0”からなる“タイプ”を含むので、パケットPKTを不特定多数の無線装置へ送信することを表す。しかし、ホップカウンタが[0000]であるので、パケットPKTを更に転送できない。従って、送信先および中継器の識別器18は、ラベル[0]/[1111011]/[0000]を含むパケットPKTに対しては、受信(=コマンドCom1)という処理を行なう。
ラベル[0]/[過去の数値と異なる数値]/[0以外の数値]は、“0”からなる“タイプ”と、“過去の数値と異なる数値”からなる“コネクションID”と、“0以外の数値”からなる“ホップカウント”とからなるので、パケットPKTを不特定多数の無線装置へ転送することを表す。従って、送信先および中継器の識別器18は、ラベル[0]/[過去の数値と異なる数値]/[0以外の数値]を含むパケットPKTに対しては、フラディング(=コマンドCom2)という処理を行なう。
ラベル[1]/[1100110]/[0以外の数値]は、“1”からなる“タイプ”を含むので、パケットPKTを無線通信経路に沿って送信することを表す。従って、中継器の識別器18は、ラベル[1]/[1100110]/[0以外の数値]を含むパケットPKTに対しては、中継(=コマンドCom3)という処理を行なう。
ラベルがラベルエラーであるときは、パケットPKTをどのように処理してよいか不明であるので、送信先および中継器の識別器18は、ラベルエラーであるラベルを含むパケットPKTに対しては、破棄(=コマンドCom4)という処理を行なう。また、ラベル[0]/[過去の数値と同じ数値]/[0以外の数値]は、“0”からなる“タイプ”を含むので、パケットPKTを不特定多数の無線装置へ送信することを表す。しかし、コネクションIDが“過去の数値と同じ数値”からなるので、パケットPKTは、既にフラディングによって送信されたパケットと重複する重複パケットになる。従って、送信先および中継器の識別器は、ラベル[0]/[過去の数値と同じ数値]/[0以外の数値]を含むパケットPKTに対しては、破棄(=コマンドCom4)という処理を行なう。
図5に示す制御テーブルCLTのいずれかのラベルを含むパケットPKTが送信されるときには、送信元と送信先との間で無線通信経路が確立されているので、各無線装置の識別器18は、自己が送信先に搭載されているか、中継器に搭載されているかを知っている。従って、識別器18は、後述する方法によって、制御テーブルCLTとパケットPKTのヘッダHDのみとを参照してパケットPKTの送信先を決定できる。
図6は、図3に示す識別器18の動作を詳細に説明するための概念図である。図6の(a)は、パケットPKTのラベル格納部(Label Field)が“1”を格納したタイプと、数値[1100110]を格納したコネクションIDと、数値[0111]を格納したホップカウンタとからなる場合を示す。
また、図6の(b)は、パケットPK2のラベル格納部(Label Field)が“0”を格納したタイプと、ビットパターン[1111011]を格納したコネクションIDと、数値[0111]を格納したホップカウンタとからなる場合を示す。
更に、図6の(c)は、パケットPKTのラベル格納部(Label Field)が“1”を格納したタイプと、ビットパターン[1100110]を格納したコネクションIDと、数値[0111]を格納したホップカウンタとからなる場合を示す。
パケットPKTのヘッダHDがレジスター19に格納されると、識別器18は、ヘッダHDの誤り符号(LCS)を参照してラベル格納部(Label Field)に誤りがないか否かを判定する。そして、識別器18は、ラベル格納部(Label Field)に誤りがある場合(ラベルエラー)、制御テーブルCLT1,CLT2を参照して、パケットPKTを破棄するようにレジスター19を制御する。
一方、識別器18は、ラベル格納部(Label Field)に誤りがない場合、ラベル格納部(Label Field)のタイプおよびコネクションIDを参照してパケットPKTの送信先を決定する。
より具体的には、図6の(a)の場合、識別器18は、タイプに格納された“1”を参照して、パケットPKTを無線通信経路に沿って中継するパケットであると判定し、コネクションIDに格納されたビットパターン[1100110]を更に参照して、当該無線装置が送信先であるとき、当該無線装置が終端の無線装置であると決定する。即ち、識別器18は、制御テーブルCLT1に基づいて、コマンドCom1を実行する。そして、識別器18は、パケットPKTを当該無線装置の上位層へ送信するように切換器163を制御するための制御信号CTL1(制御信号CTLの一種)を生成し、その生成した制御信号CTL1を切換器163のスイッチ1631へ出力する。
また、図6の(b)の場合、識別器18は、タイプに格納された“0”を参照して、パケットPKTを無線ネットワークシステム100内の不特定多数の無線装置に送信するパケットであると判定する。そして、識別器18は、コネクションIDに格納された数値[1111011]を更に参照して、数値[1111011]が過去に転送したパケットPKTのコネクションIDに格納された数値と同じであるか否かを判定する。識別器18は、数値[1111011]が過去に使用された数値と同じである場合、パケットPKTを重複パケットと判定し、パケットPKTを破棄するようにレジスター19を制御する。即ち、識別器18は、制御テーブルCLT1またはCLT2に基づいて、コマンドCom4を実行する。
一方、識別器18は、数値[1111011]が過去に使用された数値と同じでない場合、当該無線装置および他の無線装置が送信先であると判定し、パケットPKTを当該無線装置の上位層および他の無線装置へ送信するように切換器163を制御するための制御信号CTL2(制御信号CTLの一種)を生成して切換器163のスイッチ1631へ出力する。即ち、識別器18は、制御テーブルCLT1またたCLT2に基づいて、コマンドCom2を実行する。
なお、識別器18は、過去に転送したパケットPKTのコネクションIDに格納された数値を、一定時間、保持している。
更に、図6の(c)の場合、識別器18は、タイプに格納された“1”を参照して、パケットPKTを無線通信経路に沿って中継するパケットであると判定し、コネクションIDに格納されたビットパターン[1100110]を更に参照して、当該無線装置が送信元と送信先との間の無線通信経路上の無線装置であるとき、当該無線装置が中継器であると決定する。そして、識別器18は、パケットPKTを他の無線装置へ送信するように切換器163を制御するための制御信号CTL3(制御信号CTLの一種)を生成し、その生成した制御信号CTL3を切換器163のスイッチ1631へ出力する。即ち、識別器18は、制御テーブルCLT2に基づいて、コマンドCom3を実行する。
識別器18は、上述した送信先の識別をパケットPKTのヘッダHDがレジスター19に格納されている間に行なう。つまり、識別器18は、パケットPKTのヘッダHDがレジスター19から出力されるまでに、上述した送信先の識別を行なう。
これにより、パケットPKTがレジスター19を通過する時間を利用してパケットPKTの送信先を迅速に決定できる。
OLSRプロトコルを用いて確立された無線通信経路に沿って行なわれる無線通信に携わる中継器および送信先が上述した制御テーブルCLT1またはCLT2を保持することによって、無線通信経路に沿って送信元から送信先までパケットを高速に転送可能な高速無線通信経路が確立される。なお、ここで言う「高速」とは、従来のアドホックネットワークにおける転送速度よりも速い速度でパケットを転送できるという意味である。
次に、高速無線通信経路に沿って無線通信を行なう動作について説明する。
図7は、この発明の実施の形態による通信方法を示すフローチャートである。なお、図7の説明においては、図1に示す無線装置36における通信方法について説明する。一連の動作が開始されると、無線装置36のアンテナ11は、無線装置32から信号を受信し、その受信した受信信号Rを無線インターフェースモジュール16の復調器1621へ出力する。
復調器1621は、所定の周波数によって受信信号Rを復調し(ステップS11)、その復調した拡散信号SSを逆拡散手段1623へ出力する。
逆拡散手段1623は、拡散信号SSを復調器1621から受け、拡散符号保持部1622から複数の拡散符号C1〜Ckを受ける。そして、逆拡散手段1623は、拡散信号SSと、複数の拡散信号C1〜Ckの各々との相関値を演算し、その演算した複数の相関値のうち、しきい値以上の相関値が得られるときの拡散符号Cjを特定する。即ち、逆拡散手段1623は、拡散信号SSをスペクトラム逆拡散するための拡散符号Cjを決定する(ステップS12)。
そうすると、逆拡散手段1623は、その決定した拡散符号Cjによって拡散信号SSをスペクトラム逆拡散し(ステップS13)、そのスペクトラム逆拡散したパケットPKTをレジスター19へ出力する。
レジスター19は、パケットPKT(情報ビット列からなる)の先頭から所定量づつ一時的に保持し、その後、所定量づつ、順次、ホップ数設定手段20へ出力する。
識別器18は、パケットPKTのヘッダHDがレジスター19に保持されている間にヘッダHDを参照してパケットPKTの送信先を決定する。即ち、識別器18は、ヘッダHDの誤り符号(LCS)を参照し、ヘッダHDのラベル格納部(Label Field)に誤りがないか否かを判定する(ステップS14)。
そして、識別器18は、ラベル格納部(Label Field)に誤りがあるとき(ステップS14において“NO”の場合)、パケットPKTを破棄するようにレジスター19を制御し、レジスター19は、パケットPKTを破棄する(ステップS15)。
一方、ステップS14において、ラベル格納部(Label Field)に誤りがないとき(ステップS14において“YES”の場合)、ヘッダHDのタイプおよびコネクションIDを参照して上述した方法によってパケットPKTの宛先(送信先)を識別する(ステップS16)。
識別器18は、送信先が無線装置36であると識別したとき(ステップS16において「エッジノード」の場合)、制御信号CTL1を生成して切換器163のスイッチ1631へ出力する。スイッチ1631は、制御信号CTL1に応じて、端子1632に接続され、レジスター19から出力されたパケットPKT(情報ビット列からなる)を当該無線装置36の上位層へ出力する。即ち、切換器163は、スイッチ1631を終端モードにセットする(ステップS17)。
また、ステップS16において、識別器18は、送信先が無線装置36に隣接する無線装置39であると識別したとき(ステップS16において「トランスファノード」の場合)、制御信号CTL3を生成して切換器163のスイッチ1631へ出力する。スイッチ1631は、制御信号CTL3に応じて、端子1634に接続され、レジスター19から出力されたパケットPKT(情報ビット列からなる)を無線装置39へ送信するために送信部161の拡散手段1612へパケットPKTを出力する。即ち、切換器163は、スイッチ1631をトランスファモードにセットする(ステップS18)。
更に、ステップS16において、識別器18は、送信先が無線ネットワークシステム100内の不特定多数の無線装置であると識別したとき(ステップS16において「フラディング」の場合)、ヘッダHDのホップカウンタを参照してホップカウンタが“0”であるか否かを更に判定する(ステップS19)。
そして、ホップカウンタが“0”であると判定されたとき、一連の動作は、上述したステップS17へ移行する。一方、ステップS19において、ホップカウンタが“0”でないと判定されたとき、識別器18は、コネクションIDに格納された数値を参照して、パケットPKTが過去に転送されたか否かを更に判定する(ステップS20)。即ち、識別器18は、コネクションIDに格納された数値が過去に転送されたパケットのコネクションIDに格納された数値(識別器18は、この数値を一定期間、保持している)と同じであるとき、パケットPKTが過去に転送されたと判定し、コネクションIDに格納された数値が過去に転送されたパケットのコネクションIDに格納された数値と異なるとき、パケットPKTが過去に転送されていないと判定する。
パケットPKTが過去に転送されたパケットであるとき、一連の動作は、上述したステップS15へ移行する。一方、パケットPKTが過去に転送されたパケットでないとき、識別器18は、制御信号CTL2を生成して切換器163のスイッチ1631へ出力する。スイッチ1631は、制御信号CTL2に応じて、端子1633に接続され、レジスター19から出力されたパケットPKT(情報ビット列からなる)を無線ネットワークシステム100内の不特定多数の無線装置に送信するために、上位層および送信部161の拡散手段1612へパケットPKTを出力する。即ち、切換器163は、スイッチ1631をフラディング転送モードにセットする(ステップS21)。
そして、上述したステップS17、ステップS18およびステップS21のいずれかの後、無線装置36の無線インターフェースモジュール16において、送信部161の拡散手段1612は、拡散符号Ciの出力要求を拡散符号保持部1611へ出力する。
拡散符号保持部1611は、拡散符号Ciの出力要求に応じて、複数の拡散符号C1〜Ckから拡散符号Ciを任意に選択し、その選択した拡散符号Ciを拡散手段1612へ出力する。
そうすると、拡散手段1612は、拡散符号CiによってパケットPKT(情報ビット列からなる)をスペクトラム拡散し、拡散信号SSを生成する(ステップS22)。そして、拡散手段1612は、拡散信号SSを変調器1613へ出力する。
変調器1613は、拡散手段1612から受けた拡散信号SSを所定の周波数によって変調し、その変調した拡散信号SSをアンテナ11を介して送信する(ステップS23)。
そして、ステップS15、ステップS17およびステップS23のいずれかの後、一連の動作は終了する。なお、無線装置31〜35,37〜43の各々も、図7に示すフローチャートに従って無線通信を行なう。
上述したように、無線装置36は、他の無線装置32からパケットPKTを受信すると、その受信したパケットPKTのヘッダHDのみを参照してパケットPKTの送信先を決定し、その決定した送信先へパケットPKTを送信する。そして、送信先の決定は、パケットPKTがレジスター19を通過する時間を利用して行なわれる。
従って、パケットPKTの本体部に格納されたパケットヘッダPHD等を参照して送信先を決定する場合よりも迅速にパケットPKTの送信先を決定できる。
また、パケットPKTの送信先の決定および決定された送信先へのパケットPKTの送信は、データリンク層に設けられた識別器18および物理層に設けられた無線インターフェースモジュール16によって行なわれる。即ち、他の無線装置から受信したパケットPKTをデータリンク層よりも上位の層へ送信せずに、データリンク層および物理層という下位層でパケットPKTの送信先を決定し、その決定した送信先へパケットPKTを送信する。
従って、各無線装置31〜43における通信遅延を著しく低減できる。
更に、パケットPKTは、スペクトラム拡散されて送受信されるので、1〜2ホップ内の近接無線装置において、同時に無線通信が可能となり、スペクトラム拡散技術を用いた無線通信と、ヘッダHDのみを参照した下位層(データリンク層)におけるパケットPKTの受信/中継とを組み合わせることにより、各無線装置31〜43における通信遅延を極めて低く抑えることができる。
なお、パケットPKTのヘッダHDに格納された“タイプ”および“コネクションID”を参照してパケットPKTの送信先を決定することは、パケットPKTのヘッダHDに格納された“タイプ”および“コネクションID”を参照してパケットPKTの処理内容を決定することに相当する。
“タイプ”および“コネクションID”を参照してパケットPKTの送信先を当該無線装置であると決定することは、パケットPKTを受信することに相当し、“タイプ”および“コネクションID”を参照してパケットPKTの送信先を無線通信経路上の隣接する無線装置であると決定することは、パケットPKTを無線通信経路に沿って中継することに相当し、“タイプ”および“コネクションID”を参照してパケットPKTの送信先を無線ネットワーク100内の不特定多数の無線装置であると決定することは、パケットPKTを受信および中継することに相当するからである。
そして、タイプ/コネクションID/ホップカウンタは、パケットPKTの処理内容を示す「ラベル」を構成する。
図8は、パケットの他の構成図である。パケットPKT1は、物理ヘッダ(PHYS HEADER)と、MACヘッダ(MAC HEADER)と、カットスルーラベルヘッダ(CUT−THROUGH LABEL HEADER)と、ペイロード(PAYLOAD)とからなる。なお、物理ヘッダ(PHYS HEADER)、MACヘッダ(MAC HEADER)およびカットスルーラベルヘッダ(CUT−THROUGH LABEL HEADER)は、ヘッダHDを構成する。
物理ヘッダ(PHYS HEADER)は、ネットワーク識別子(ESS−ID(Enhanced Service Set ID)と、通信速度とを含む。
MACヘッダ(MAC HEADER)は、パケットシーケンスID、送信元のMACアドレスおよび送信先のMACアドレスを含む。
ペイロード(PAYLOAD)は、データを格納する領域であり、FCS(Frame Check Sequence)を含む。このFCSは、パケットPKT1のエラーまたはパケットPKT1のセキュリティーを検出するために用いられる。
カットスルーラベルヘッダ(CUT−THROUGH LABEL HEADER)は、サービスID(Service ID)と、ホップコントロール(Hop Control)と、パケットID(Packet ID)と、ルートラベル(Route Label)と、ヘッダFCS(Header FCS)とを含む。
サービスID(Service ID)は、サービスタイプを示し、各無線装置31〜43において中継可能なサービスの種類を指定する。ホップコントロール(Hop Control)は、最大ホップ数と、現在のホップ数とを含む。そして、現在のホップ数が最大ホップ数に達すれば、各無線装置31〜43は、パケットPKT1を中継しない。
パケットID(Packet ID)は、各パケットPKT1を識別するIDであり、送信元の無線装置によって付与される。そして、パケットID(Packet ID)が同じあれば、各無線装置31〜43は、そのパケットPKT1を重複パケットであると見なして削除する。
ルートラベル(Route Label)は、高速ラベルスイッチを行なうための固定長ラベル情報であり、上述したタイプとコネクションIDとからなる。ヘッダFCS(Header FCS)は、セキュリティー検出用のMAC(Message Autentication Code)値または上述したCRC符号からなり、ヘッダHDのエラーを検出する。
パケットPKT1においては、物理ヘッダ(PHYS HEADER)は、例えば、15〜24バイトの範囲の長さを有し、MACヘッダ(MAC HEADER)は、例えば、約30バイトの長さを有し、カットスルーラベルヘッダ(CUT−THROUGH LABEL HEADER)は、例えば、約30バイトの長さを有し、ペイロード(PAYLOAD)は、例えば、約100バイトの長さを有する。
その結果、パケットPKT1は、約175バイト〜約184バイトの長さを有する。
パケットPKT1を用いた無線通信は、図7に示すフローチャートに従って行なわれる。この場合、ステップS14においては、ヘッダFCS(Header FCS)に基づいて、パケットPKT1のヘッダHDにエラーがないか否かが判定される。
また、ステップS19においては、ホップコントロール(Hop Control)に格納された最大ホップおよび現在のホップ数が参照され、現在のホップ数が最大ホップ数に達すれば、一連の動作は、ステップS17へ移行し、現在のホップ数が最大ホップ数に達していなければ、一連の動作は、ステップS20へ移行する。
更に、ステップS20においては、パケットID(Packet ID)が過去に転送されたパケットのパケットID(Packet ID)(識別器18は、このパケットIDを一定期間、保持している)と同じであれば、パケットPKT1は、転送されたと判定され、パケットID(Packet ID)が過去に転送されたパケットのパケットID(Packet ID)と異なれば、パケットPKT1は、転送されていないと判定される。
そして、パケットPKT1を用いて無線通信を行なった場合も、パケットPKTを用いて無線通信を行なった場合と同じように、各無線装置31〜43における遅延を抑制して無線ネットワークシステム100全体の遅延を小さくできる。
なお、識別器18は、「処理内容決定手段」を構成し、切換器163は、「処理手段」を構成する。
また、上記においては、識別器18およびレジスター19は、データリンク層に設けられると説明したが、この発明においては、これに限らず、識別器18およびレジスター19は、物理層とデータリンク層との間に設けられていてもよく、一般的には、ネットワーク層よりも下位の層に設けられていればよい。
更に、上記においては、パケットPKT,PKT1は、スペクトラム拡散されて送受信されると説明したが、この発明においては、これに限らず、パケットPKT,PKT1は、スペクトラム拡散されずに送受信されてもよい。
この場合、無線インターフェースモジュール16の送信部161は、拡散符号保持部1611および拡散手段1612を削除した変調器1613のみからなり、MACモジュール17または切換器163からのパケットPKT,PKT1は、変調器1613へ入力される。また、受信部162は、拡散符号保持部1622および逆拡散手段1623を削除した復調器1621のみからなり、復調器1621は、受信信号Rの復調信号をレジスター19へ出力する。
この場合、変調器1613および復調器1621は、異なる周波数によってそれぞれ変調および復調する。そして、パケットPKT,PKT1をスペクトラム拡散せずに送受信しても、各無線装置31〜43は、パケットPKT,PKT1の受信、中継および受信/中継をパケットPKT,PKT1のヘッダHDのみを参照して決定し、その決定結果に基づいてパケットPKT,PKT1を処理するので、各無線装置31〜43における通信遅延を抑制できる。また、このパケットPKT,PKT1の処理は、物理層およびデータリンク層という下位層において行なわれるので、パケットPKT,PKT1に対する処理をデータリンク層よりも上位層で決定する場合よりも、各無線装置31〜43における通信遅延を抑制できる。
更に、上記においては、各無線装置31〜43は、テーブル駆動型のプロトコルを用いて無線通信を行なうと説明したが、この発明においては、これに限らず、各無線装置31〜43は、オンデマンド型のプロトコルを用いて上述した方法によって無線通信を行なってもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
11 アンテナ、12 入力部、13 出力部、14 ユーザアプリケーション、15 通信制御部、16 無線インターフェースモジュール、17 MACモジュール、18 識別器、19 レジスター、20 ホップ数設定手段、31〜43 無線装置、51〜63 アンテナ、100 無線ネットワークシステム、161 送信部、162 受信部、1611,1622 拡散符号保持部、1612 拡散手段、1613 変調器、1621 復調器、1623 逆拡散手段。