(57)【特許請求の範囲】
【請求項１】
パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなる無線通信装置であって、
前記無線接続確立部が無線接続の切断を判定したとき、前記パケット送信キューが保持する前記無線接続の切断対象のキューの有無を検索するキュー内パケット制御部を有することを特徴とする無線通信装置。
【請求項２】
パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなる無線通信装置であって、
前記無線接続確立部が、無線接続の切断を判定したとき、前記経路情報生成部は前記転送経路情報を更新し、前記パケット送信キューが保持する前記無線接続の切断対象のキューを削除するキュー内パケット制御部を有することを特徴とする無線通信装置。
【請求項３】
パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなる無線通信装置であって、
前記無線接続確立部が、無線接続の切断を判定したとき、前記経路情報生成部は前記転送経路情報を更新し、更新された転送経路情報に基づいて前記パケット送信キューが保持する前記無線接続の切断対象のキューの転送先ＭＡＣアドレスを更新するキュー内パケット制御部を有することを特徴とする無線通信装置。
【請求項４】
パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなる無線通信装置であって、
前記無線接続確立部が、無線接続の切断を判定したとき、前記経路情報生成部は前記転送経路情報を更新し、前記パケット送信キューが保持する前記無線接続の切断対象のキューの転送先ＭＡＣアドレスを、無線接続が確立されたＭＡＣアドレスに更新するキュー内パケット制御部を有することを特徴とする無線通信装置。
【請求項５】
請求項４に記載の無線通信装置であって、
前記無線接続が確立されたＭＡＣアドレスが複数あるとき、前記無線接続が確立されたＭＡＣアドレスを有する無線装置が認識している無線装置の数が最も多い無線装置のＭＡＣアドレスに更新することを特徴とする無線通信装置。
【請求項６】
パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなる無線通信装置であって、
前記無線接続確立部が無線接続の切断を判定したとき、前記パケット送信キューが保持する切断された無線端末が宛先となっているパケットの再送回数上限値を減らすことを特徴とする無線通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は無線通信装置に係り、特にネットワークのトポロジーが変化する無線通信ネットワークに適用するに好適な無線通信装置に関する。
【背景技術】
【０００２】
本発明に関連する背景技術に、特許文献１がある。特許文献１には、パケット送信装置の送信バッファを定期的に監視し、リトライ回数に上限を設けて、この上限を超えたとき、保持しているパケットを送信バッファ内から廃棄する通信装置が記載されている。
【０００３】
【特許文献１】特開平６−１５２６５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術は、パケット送信装置の誤動作に起因するパケットの廃棄を行い、パケット送信処理の能力を劣化させないための技術である。このため、ユーザ端末同士が無線接続され、ネットワークトポロジーが常に変動するようなシステム（アドホックネットワーク）でのパケット送信処理の性能を向上させる技術としては不十分である。
【０００５】
アドホックネットワークとは、中央集中制御を必要とせず、無線で送受信が可能な端末で構成されたネットワークである。大きな特徴のひとつとして、直接無線で通信できない端末同士が、他の無線通信可能な複数の端末を中継させ、通信を行なう技術（マルチホップ通信）が挙げられる。アドホックネットワークでは携帯電話網の基地局や無線ＬＡＮのアクセスポイントが不要となり、インフラを持たない場所で安価にネットワークを構築することができる。従って、限られたエリアでの簡易なネットワーク構築手段として有効である。そのような性質から、地震等の自然災害で基地局がダウンした被災地での通信ネットワークを確立する技術としてもアドホックネットワークが近年注目を集めている。
【０００６】
しかし、現在アドホックネットワークの構築には技術的課題がいくつか残されている。有線接続で構成されるネットワークに比べ、アドホックネットワークを構成する端末は無線で通信を行うため、端末間のリンク接続が不安定である。また、端末が常に移動することが想定され、各端末のネットワークへの参入、離脱の頻度が高いため、セキュリティ面においても有線接続のネットワークとは異なる特殊な技術を要する。そのような環境下で、如何に効率よく安定した経路を動的に検出できるかが課題である。
本発明は、前記課題を解決するため、簡易かつ通信品質を向上させるネットワークの無線通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題は、パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなり、無線接続確立部が無線接続の切断を判定したとき、パケット送信キューが保持する無線接続の切断対象のキューの有無を検索するキュー内パケット制御部を有する無線通信装置により、解決できる。
【０００８】
また、パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなり、無線接続確立部が、無線接続の切断を判定したとき、経路情報生成部は転送経路情報を更新し、パケット送信キューが保持する無線接続の切断対象のキューを削除するキュー内パケット制御部を有する無線通信装置により、解決できる。
【０００９】
また、パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなり、無線接続確立部が、無線接続の切断を判定したとき、経路情報生成部は転送経路情報を更新し、更新された転送経路情報に基づいてパケット送信キューが保持する無線接続の切断対象のキューの転送先ＭＡＣアドレスを更新するキュー内パケット制御部を有する無線通信装置により、解決できる。
【００１０】
また、パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなり、無線接続確立部が、無線接続の切断を判定したとき、経路情報生成部は転送経路情報を更新し、パケット送信キューが保持する無線接続の切断対象のキューの転送先ＭＡＣアドレスを、無線接続が確立されたＭＡＣアドレスに更新するキュー内パケット制御部を有する無線通信装置により、解決できる。
【００１１】
また、パケットを含む無線信号を送受信する無線部と、無線信号の到達範囲内に配置された他の無線通信装置との無線接続を確立と切断とを判定する無線接続確立部と、パケットの転送経路情報を生成する経路情報生成部と、転送先ＭＡＣアドレスを含むキューを保持するパケット送信キューとからなり、無線接続確立部が無線接続の切断を判定したとき、パケット送信キューが保持する切断された無線端末が宛先となっているパケットの再送回数上限値を減らす無線通信装置により、解決できる。
【００１２】
また、バスで接続された中央処理装置と、複数のプログラムを書き込まれた制御メモリと、ネットワークコントローラと、転送ＭＡＣアドレスと宛先ＩＰアドレスとを含む送信キューを保持するＦＩＦＯメモリと、ネットワークコントローラに接続された無線ＬＡＮ部とからなり、他の無線通信装置とのリンク切断を検出したとき、他の無線通信装置のＩＰアドレスをキーにＦＩＦＯメモリを検索して、他の無線通信装置に向けたキューを廃棄または更新する無線通信装置により、解決できる。
【００１３】
さらに、バスで接続された中央処理装置と、メモリと、ネットワークコントローラと、ネットワークコントローラに接続された無線ＬＡＮ部とからなり、メモリは、複数のプログラムを書き込まれた制御エリアと、転送ＭＡＣアドレスと宛先ＩＰアドレスとを含む送信キューを保持するＦＩＦＯエリアとを有し、他の無線通信装置とのリンク切断を検出したとき、他の無線通信装置のＩＰアドレスをキーにＦＩＦＯエリアを検索して、他の無線通信装置に向けたキューを廃棄または更新する無線通信装置により、解決できる。
【発明の効果】
【００１４】
本発明に拠れば、簡易かつ通信品質を向上させるネットワークの無線通信装置を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下本発明の実施の形態について、実施例を用いて図面を参照しながら説明する。ここでは、まず、アドホックネットワークにおけるルーティングプロトコル、各端末（以降、ノードと呼ぶ）間でのリンク状態監視方法を説明する。
【００１６】
まず、図１ないし図７を用いて、ルーティングプロトコルについて説明をする。ここで、図１ないし図３はネットワークトポロジーを説明する図である。図４ないし図６はＨＥＬＬＯメッセージを説明する図である。図７は通信プロトコルの階層構造とデータ送信の流れを説明する図である。
【００１７】
ノードがネットワーク内で移動することでノード配置（以降、ネットワークトポロジーと呼ぶ）が変化し、さらにネットワークへの参入や離脱が発生する。そのため、あるノードからあるノードへデータを転送する場合の中継経路が時間によって変化する。そのネットワークトポロジーの変化に対応するため、適宜、経路情報をネットワーク内のノード同士で交換し、経路情報を更新するのがルーティングプロトコルである。そこで以下に、各ノードの性能とルーティングプロトコル動作の前提条件と、ネットワークトポロジーとルート切替動作の具体例について図を用いて示す。
【００１８】
各ノードの性能とルーティングプロトコル動作についての前提条件を説明する。なお、この前提条件は以下に説明する各実施例で共通である。ノードは送受信可能な無線装置を搭載し、移動が可能である。最大無線通信距離は１ｋｍとする。ルーティングプロトコルは前述のマルチホップ通信において、中継する端末を最小（０を含む）となるようにルートを切り替えるものとする。以降、マルチホップ通信での中継数をホップ数と呼ぶこととする。
【００１９】
図１を用いて、ネットワークトポロジーを説明する。図１において、ネットワークトポロジーは、丸印がノード１００を示しており、この丸印の中に記載されている記号をノードＩＤとする。各ノード１００は双方向の矢印で接続されている。これはノード同士が双方向で直接無線通信が可能であることを示している。以降、双方向で直接無線通信が可能な状態をリンク確立状態と呼ぶ。なお、各ノード間で行われる無線リンク確立方法については後述する。
【００２０】
ここで、ノードＡからノードＣへデータ転送を開始したとする。この場合、ルーティングプロトコルにより、ノードＢを中継ノードとし、ノードＡ→ノードＢ→ノードＣのルートでデータが転送される。このデータ転送中にノードＢが図２に示すようにノードＡ、ノードＣと通信不可能な位置まで移動し、図３に示すネットワークトポロジーへ変化した場合、ノードＡからノードＣへのデータ転送は、ノードＡ→ノードＢ→ノードＣのルートでは実現が不可能となる。図３について補足として説明すると、前提条件から、各ノードの最大無線通信距離が１ｋｍで、ノードＡ、ノードＣ間は１.６ｋｍであるため、直接無線通信することも不可能である。そこでルーティングプロトコルはノードＡ、Ｂ、Ｃのリンク状態を常に監視しており、リンクが切断されたことを認識すると新たなルートを検索し、その中で最短ホップ数となるルートに切り替える。図３の場合、ノードＡからノードＣへのデータ転送を可能とするルートは１つしか存在しておらず、ノードＡ→ノードＤ→ノードＥ→ノードＦ→ノードＣのルートである。このようにしてルーティングプロトコルはルートを切り替えている。
【００２１】
次にリンク状態監視手段について、ＩＥＴＦ（Internet Engineering Task Force）で標準化されているアドホックルーティングであるＯＬＳＲ（Optimized Link State Routing）の動作を用いて説明する。ＯＬＳＲでは各ノードが通信可能な他のノードの存在を認識するために定期的にＨＥＬＬＯメッセージと呼ばれる制御情報を送信する。この情報には自ノードが認識している周りのノードＩＤが含まれており、自ノードＩＤの含まれているＨＥＬＬＯメッセージを他ノードから受信した場合、そのＨＥＬＬＯメッセージ送信元である他ノードとは双方向で通信が可能であると認識する仕組みである。ここで、リンク確立動作をネットワーク最小規模のノード数２個の場合で、図４ないし図６を用いて説明する。
【００２２】
まず、各ノード１００がどのノードともリンク確立しておらず、ノードＡから定期的にＨＥＬＬＯメッセージを送信している状態から説明する。ここで、図４の状態では、ノードＡはどのノードともＨＥＬＬＯメッセージの授受を行っていない。このため、リンク確立テーブル４５−１は片方向、両方向ともに空になっている。そして、リンク確立テーブル４５−１の片方向、両方向の認識ノードＩＤに格納されている全てのノードＩＤをＨＥＬＬＯメッセージの認識ノードＩＤに格納し、送信する。なお、ここでは前提としてノードＡのリンク確立テーブル４５−１は空としているので、認識ノードＩＤは空である。また、ＨＥＬＬＯメッセージには、送信ノード（ここではノードＡ）のＩＤが添付されている。ノードＡからのＨＥＬＬＯメッセージを受信したノードＢは、ノードＡのノードＩＤとノードＡが認識ノードＩＤを自身のリンク確立テーブル４５−２の片方向側に格納する。ここで片方向側に格納する理由は、ノードＡの認識ノードＩＤにノードＢのＩＤが格納されておらず、ノードＡはノードＢを認識していないと判断できるからである。
【００２３】
図５において、次にノードＢは、認識ノードＩＤにノードＡのノードＩＤを格納しＨＥＬＬＯメッセージを送信する。このＨＥＬＬＯメッセージを受信したノードＡは、ＨＥＬＬＯメッセージの認識ノードＩＤに自ノードＩＤを確認し、ノードＡのリンク確立テーブル（双方向）４５−１にノードＢのＩＤとノードＢが認識しているノードＩＤを格納する。この時点でノードＡはノードＢとリンク確立できたことを認識する。
【００２４】
その後、図６において、ノードＡはＨＥＬＬＯメッセージにノードＢの認識ノードＩＤを格納し送信する。それを受信したノードＢは、ＨＥＬＬＯメッセージの認識ノードＩＤに自ノードＩＤを確認できたので、ノードＢのリンク確立テーブルの（片方向）４５１−２に格納されているノードＡのＩＤをリンク確立テーブルの（双方向）４５２−２へ移し、ノードＡが認識しているノードＩＤ（この場合はＢ）もリンク確立テーブルの（双方向）に格納する。ノードＢはこの時点でノードＡとリンクが確立したことを認識する。このように自ノードが受信できたＨＥＬＬＯメッセージの送信元ノードＩＤをＨＥＬＬＯメッセージの認識ノードＩＤに格納して通知し合い、相互認識の確認をもってリンク確立としている。
【００２５】
次にリンク切断手順について説明する。リンク確立を認識するために使用するＨＥＬＬＯメッセージにはタイマが用意されている。まずこのタイマについて説明する。タイマ起動タイミングは、それぞれのノードとリンク確立を認識できた時点であり、ノード毎にそれぞれ個別にタイマを割り当てる。前述のリンク確立手順の説明でいうと、他ノードから自ノードＩＤの格納されたＨＥＬＬＯメッセージを受信できた時がタイマ起動タイミングである。そしてリンク確立済みのノードから一定時間ＨＥＬＬＯメッセージを受信できなかった場合、リンク確立テーブルからそのノードのノードＩＤを削除し、そのノードとのリンクが切断したことを認識する。
【００２６】
このように、ＯＬＳＲでは定期的なＨＥＬＬＯメッセージの送信により、リンク確立、リンク切断を認識している。
【００２７】
次に通信プロトコルを実現するためにノード内に構築されている階層構造と各階層の役割について、図７を用いて説明する。ノード内の階層構造を大きく４つに分類すると、上位層から順にアプリケーション層１２０、ルーティング層１３０、ＭＡＣ（Media Access Control）層１４０、物理層１５０である。そこで、データ送信の手順について各階層の役割を明確にしながら説明する。
【００２８】
まずアプリケーション層１２０ではＦＴＰ用データ（ＴＣＰ）やストリーミング配信データ（ＵＤＰ）１０などを生成し、各データ１０に宛先ノードのＩＰアドレス２０（以降、宛先ＩＰアドレスと呼ぶ）を付与し、ルーティング層へ渡す。
【００２９】
ルーティング層１３０では、ルーティング層１３０が生成、更新しているルーティングテーブル４０の中から、宛先ＩＰアドレスに対応する転送先ノードのＩＰアドレス３０（以降、転送先ＩＰアドレスと呼ぶ）を検索し、ＡＲＰ(Address Resolution Protocol)テーブル５０から転送先ＩＰアドレスに対応するＭＡＣアドレス（以降、転送先ＭＡＣアドレスと呼ぶ）３０を付与し、ＦＩＦＯ（First In First Out）制御を行う送信キュー６０へキューイングする。（ＦＩＦＯ制御については後述する。）ここで説明したルーティングテーブル４０の生成、更新には、ネットワーク内の各ノードからネットワークトポロジー情報を収集する手段が必要になる。そしてこのトポロジー情報の収集手段は、一般的に認知されている各種ルーティングプロトコルを特徴づける大きな要因の一つとなっている。しかし、本実施例はトポロジー情報の収集手段そのものは関与しないため、ルーティングテーブルの生成、更新結果の説明についてのみ説明する。
【００３０】
引き続きデータ送信の手順について説明すると、ＭＡＣ層１４０は送信キュー６０からデータを取り出し、ＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access/Collision Avoidance 搬送波感知多重アクセス/衝突回避）方式７０に従い、物理層１５０へデータを渡す。物理層１５０は受け取ったデータを無線送受信装置９０からアンテナ１１０を介して無線送信波を送信する。ここでのＣＳＭＡ／ＣＡ方式と再送回数上限値８０とについては、後述するＭＡＣ層でのユニキャスト送信の説明のところで説明する。
【００３１】
上述したルーティング層が行う、転送先ＭＡＣアドレスの決定方法について説明する。まず図１のネットワークトポロジーに存在する各ノードのＩＰアドレスとＭＡＣアドレスの一覧を図８に示す。ここで、図８は各ノードのＩＰアドレスとＭＡＣアドレスとを説明する図である。図８は前提条件を説明する図なので、特に説明は行なわない。
【００３２】
次に、図１のネットワークトポロジー内でリンク確立が完了しているときの、ノードＡのルーティングテーブルとＡＲＰテーブルとを図９および図１０を参照して説明する。ここで、図９はノードＡのルーティングテーブルである。図１０はノードＡのＡＲＰテーブルである。
【００３３】
図９において、ルーティングテーブル４０は宛先ＩＰアドレス４１と転送先ＩＰアドレス４２とから構成される。図９から、ノードＡは、ノードＢおよびノードＣを宛先ＩＰアドレスとするデータをノードＢに転送する。また、ノードＡは、ノードＤ、ノードＥおよびノードＦを宛先ＩＰアドレスとするデータをノードＤに転送する。
【００３４】
図１０において、ＡＲＰテーブル５０はＩＰアドレス５１とＭＡＣアドレス５２とから構成される。図１０から、ノードＡは、自身および転送先であるノードＢならびにノードＤのＩＰアドレスとＭＡＣアドレスとの対応を保持している。
【００３５】
図７を用いて説明した通り、転送先ＭＡＣアドレスの決定には、転送先ＩＰアドレスの検索と、検索した転送先ＩＰアドレスから転送先ＭＡＣアドレスを検索する２つの手順で行われる。
【００３６】
図９のルーティングテーブル４０の項番１はノードＢへデータ転送するときの転送先ノードのＩＰアドレスはノードＢのＩＰアドレスの「１９２．１６８．１．Ｂ」である。一方、図１０のＡＲＰテーブル５０の項番２は転送先ＩＰが「１９２．１６８．１．Ｂ」のＭＡＣアドレスが「００：００：００：００：００：０Ｂ」であることを表している。ルーティングテーブル４０とＡＲＰテーブル５０との参照により、ノードＢへデータ転送するときの転送先ＭＡＣアドレスを決定する。
【００３７】
同様に図９のルーティングテーブル４０の項番２では、ノードＣへデータ転送するときの転送先ＩＰアドレスは「１９２．１６８．１．Ｂ」である。一方、図１０のＡＲＰテーブル５０の項番２は転送先ＩＰが「１９２．１６８．１．Ｂ」のＭＡＣアドレスが「００：００：００：００：００：０Ｂ」であることを表している。この手順によりノードＢへデータ転送するときの転送先ＭＡＣアドレスを決定する。
【００３８】
上記２つの転送先ＭＡＣアドレス決定についての違いは、ノードＢへの転送にはノードＡがノードＢへ直接通信できるため、転送先ＭＡＣアドレスにはノードＢのＭＡＣアドレスが付与されているが、ノードＣへの転送にはノードＡがノードＣへ直接通信できないため、中継ノードとして選択されるノードＢのＭＡＣアドレスが付与されることである。このようにしてルーティング層では、アプリケーション層によってデータに付与された宛先ＩＰアドレスから転送先ＭＡＣアドレスを決定し、データに付与した後、送信キューへデータをキューイングする。
【００３９】
上記ルーティングテーブルは、ネットワークトポロジーが図１から図３のように変化した場合、ルーティング層よって図９から図１１へ、２箇所変更される。ここで、図１１は、図３のトポロジーにおけるノードＡのルーティングテーブルである。
【００４０】
ここで、１つ目の変更点は図９の項番１で、転送先ノードＢはネットワークから離脱したため削除される。もう１つの変更点は図９の項番２で、ネットワークトポロジー変化前までノードＣへデータ転送するときに中継していたノードＢがネットワークから離脱し、新しいルートがノードＡ→ノードＤ→ノードＥ→ノードＦ→ノードＣに変更になったため、転送先ＩＰアドレスがノードＢのＩＰアドレスからノードＤのＩＰアドレスに変更されることである。従って、図１１において、ノードＢのＩＰアドレスが削除され、転送先ＩＰアドレス４２は、何れもノードＤとなっている。
【００４１】
次に、後述の説明を容易にするために、ＭＡＣ層の通信プロトコルであるＣＳＭＡ／ＣＡ方式のユニキャスト送信について説明する。アドホックホックネットワークでは、ノードがデータを無線送信し、移動可能である特性を有することから、ネットワークへの参入、離脱を短時間で任意に繰り返すことを許容するのが一般的である。そのためアドホックネットワークのＭＡＣ層では、各ノードが自立的に分散制御を行なうことで無線送信の衝突を回避することを目的としているＣＳＭＡ／ＣＡ方式を採用することが一般的である。本実施例についてもＣＳＭＡ／ＣＡ方式を採用した場合についての説明を行う。ＣＳＭＡ／ＣＡ方式のユニキャスト送信では、データ送信側は、データ受信側から送信される受信確認パケット（以降、ＡＣＫと呼ぶ）を受信してデータ送信の正常終了とする。データ送信側にはＡＣＫ受信待ちタイマが用意されており、タイムアウト時には同じデータの再送を行い、ＡＣＫの受信を再度試行する。このデータ再送には再送回数上限値（図７の参照番号８０）が設定されており、その再送回数上限値だけ再送を試行してもＡＣＫを受信できなかった場合には、そのデータを送信キューから破棄し、次のデータの送信を同じ手順で試行する。
【００４２】
まず前述した図２のトポロジーの場合を考える。ノードＡからノードＣへのデータ転送とノードＡからノードＤへのデータ転送を同じ伝送レートで同一期間内に行っている状況で、ノードＢがノードＡの無線通信可能範囲から離脱しようとしているとき、ノードＡの送信キューにはノードＢへの送信待ちデータが複数個キューイングされる。以降の説明では具体的に、各ノードの送信キューの長さは５０であり、データ転送期間中のノードＡの送信キューには平均的に１０個のデータが送信待ちデータとしてキューイングされてものとする。ここで平均的と記載したのは、送信キューの送信待ちデータ数はネットワーク内の各ノードの送信状況に応じて時間的に変動するためである。
【００４３】
そこで、図３に示すようにノードＢがノードＡの無線通信可能範囲外に移動した場合、前述のリンク状態監視手順に従い、ノードＡはノードＢとのリンクが切断されたことを認識する。そのときノードＡは、ノードＣへのデータ転送のルートをノードＡ→ノードＢ→ノードＣからノードＡ→ノードＤ→ノードＥ→ノードＦ→ノードＣへ切替える。しかしノードＡの送信キューには転送先ＭＡＣアドレスがノードＢのＭＡＣアドレスになっているデータが既にキューイングされているため、無線通信が不可能なノードＢに対して、そのキューイングデータの１つ１つにつき、上記の再送回数上限値だけ再送を繰り返すことになる。つまり、既にキューイングされているデータはノードＣへ転送されることなく破棄されることとなり、さらに新しいルートでのデータ転送開始やノードＢが転送ルートに関連していないデータの送信開始が無駄に遅延してしまうことになる。
【００４４】
ここで上記状況での送信キューの動作概要について、図１２および図１３を用いて具体的に説明する。ここで、図１２はノードＡとノードＢとのリンクが切断した直後のノードＡの送信キューを説明する図である。図１３はルート切替が行われたあとのノードＡの送信キューを説明する図である。
【００４５】
図１２において、送信キューの長さは５０で、１０個のデータがキューイングされている。データの詳細を説明すると、キュー番号が１、３、５、７、９、には宛先ＩＰアドレス６２がノードＣのＩＰアドレスで、転送先ＭＡＣアドレス６１は中継ノードとして選択されていたノードＢのＭＡＣアドレスであるデータがキューイングされている。同様に、キュー番号が２、４、６、８、１０には宛先ＩＰアドレス６２がノードＤのＩＰアドレスで、転送先ＭＡＣアドレス６１は、ノードＡとノードＤが直接通信可能であることから、ノードＤのＭＡＣアドレスであるデータがキューイングされている。なお、データのシーケンス番号は、同じ宛先ＩＰアドレスへの順番を示すものである。
【００４６】
この送信キューはトラフィック制御に広く一般的に採用されているＦＩＦＯ制御が行なわれている。以下に簡単なＦＩＦＯ制御を説明する。まずキューへのデータ入力はキュー番号５０から行われ、キュー番号１の方向へ詰められていく。キューからの出力は、キュー番号１から行い、キュー番号２以降にキューイングされているデータをキュー番号１の方向へシフトさせる。上記制御により、アプリケーション層が生成している古いデータから順番に出力されることになる。
【００４７】
このＦＩＦＯ制御を踏まえた上で、ノードＡとノードＢとのリンクが切断された後の送信キューの動作を説明すると、送信キューから出力され、無線送信されるデータはキュー番号１のデータからである。図１３において、リンク切断認識によりルート切替が行われた後、アプリケーション層が生成し、ルーティング層へ渡されるシーケンス番号（ｎ＋５）のデータは、送信キューのキュー番号１１にキューイングされる。よってシーケンス番号（ｎ＋５）のデータが出力されるまでには、１０個のデータ送信を待つことになる。
【００４８】
この現象は、ノードがデータを無線送信し、移動可能である特性を有し、ネットワークへの参入、離脱を短時間で任意に繰り返すことを許容するアドホックネットワークでは特に顕著に見られるものである。また、上記説明は無線ＬＡＮの設定を基に説明してきたが、無線ＬＡＮのような高速無線伝送ではない、低速無線伝送システムでアドホックネットワークを構築した場合には、無駄なデータの再送の繰り返しはシステム全体のスループット低下にさらに大きな影響を及ぼすことになる。
【００４９】
次に、ＣＳＭＡ／ＣＡ方式におけるパケット送信処理の動作フローチャートを図１４を参照して説明する。ここで、図１４はパケット送信処理の動作を説明するフローチャートである。図１４において、まず、送信キュー６０にＱｄａｔａがキューイングされているかどうかをチェックする（Ｓ４１）。ステップ４１でキューイングされていない場合（ＮＯ）、送信データがないということなのでステップ４１を繰り返す。ステップ４１がＹＥＳのとき、再送回数カウンタを０に初期化する（Ｓ４２）。次に、送信キューからＱｄａｔａを抽出し（Ｓ４３）、抽出したＱｄａｔａを物理層１５０へ渡す（Ｓ４４）。そうすると物理層１５０はＱｄａｔａを対向ノードへ無線送信するので、自ノードは対向ノードからのＡＣＫを待つ。次に、ＡＣＫ受信が成功したかどうかチェックし（Ｓ４５）、成功した場合（ＹＥＳ）にはステップ４８へ分岐する。失敗した場合（ＮＯ）には再送処理を行うためステップ４６へ分岐する。ステップ４６では再送回数カウンタをインクリメントし、再送回数カウンタが再送回数上限値以上かどうかをチェックする（Ｓ４７）。ここでの再送回数上限値は図７の再送回数上限値８０に示すように運用中に変化しない固定値である。このチェックで再送回数カウンタが再送回数上限値より小さい場合には再送処理を行うため、ステップ４４へ分岐する。再送回数カウンタが再送回数上限値以上の場合にはステップ４８へ分岐する。ステップ４８ではＱｄａｔａを破棄し、新たなＱｄａｔａ送信処理を行うためにステップ４１へ戻る。このようにＣＳＭＡ／ＣＡ方式では、どのＱｄａｔａに対しても再送回数の上限が固定値で制御されている。
【実施例１】
【００５０】
以下実施例１を新たに図１５ないし図２０を用いて説明する。ここで、図１５はノードの機能ブロック図である。図１６はノードのハードウェアブロック図である。図１７および図１８はノードＡのリンク確立テーブルを説明する図である。図１９はパケット破棄処理を説明するフローチャートである。図２０はパケット破棄処理後のノードＡの送信キューを説明する図である。
【００５１】
図１５において、ノード１００は、無線アンテナ１１０と無線信号送受信装置９０とからなる無線部１と、無線部１に接続されたＦＩＦＯメモリであるパケット送信キュー６０と、パケット送信キュー６０に接続されたパケット送信制御部９とキュー内パケット制御部２と、パケット送信キュー６０に接続された経路情報付与部３と、経路情報付与部３とキュー内パケット制御部２とに接続された経路情報格納部８と、経路情報格納部８に接続された経路情報生成部７と、経路情報格納部８に接続された経路情報更新部１１と、経路情報付与部３と経路情報生成部７と経路情報更新部１１とに接続された無線接続確立部６と、経路情報付与部３に接続された通信用アプリケーション５と、通信用アプリケーション５に接続された表示部と入力部とからなるコンソール４により構成されている。なお、図１５は、実施例１の説明を目的としているので送信機能について記載している。
【００５２】
無線部１は、無線信号を送受信する。パケット送信キュー６０は、転送先ＭＡＣアドレスと宛先ＩＰアドレスとデータのシーケンス番号とからなる複数のキューを蓄積するＦＩＦＯメモリである。パケット送信制御部９は、ＦＩＦＯ制御により、パケット送信キュー６０から無線部１にデータを転送する。キュー内パケット制御部２は、経路情報格納部８を参照しながら、パケット送信キュー６０に蓄積された複数のキューを検索して、検索条件に合致したキューの削除または検索条件に合致したキューの転送先ＭＡＣアドレスの更新を実行する。経路情報格納部８は、ルーティングテーブル、ＡＲPテーブル、再送回数テーブルを格納する。無線接続確立部６は、ＨＥＬＬＯメッセージの送受信によって、リンクの確立とリンクの切断とを判定する。無線接続確立部６は、また、リンク確立テーブルを保持する。経路情報付与部３は、経路情報格納部８を参照して送信するパケットに転送先ＭＡＣアドレスを付与する。経路情報付与部３は、また、受信したパケットからＭＡＣアドレスを削除して、通信用アプリケーション５に転送する。経路情報生成部７は、無線接続確立部６から受け取ったＨＥＬＬＯパケットの情報を元に、経路情報格納部８内の情報を生成する。経路情報更新部１１は、無線接続確立部６から受け取ったＨＥＬＬＯパケットの情報／タイムアウト情報を元に、経路情報格納部８内の情報を更新する。
【００５３】
図１６において、ノード１００は、中央処理装置（ＣＰＵ）１６０と、制御メモリ１７０と、コンソールコントローラ１８０と、コンソールコントローラ１８０に接続されたコンソール４と、ネットワークコントローラ１９０と、ネットワークコントローラ１９０に接続された無線ＬＡＮ部２００と、ＦＩＦＯメモリ２１０と、ハードディスク２２０と、ＣＰＵ１６０と制御メモリ１７０とコンソールコントローラ１８０とネットワークコントローラ１９０とＦＩＦＯメモリ２１０とハードディスク２２０とを接続するバス２３０とから構成される。図１６と図１５とを対比すれば分かるように、ネットワークコントローラ１９０と無線ＬＡＮ部２００とは、無線部１を構成する。同様にＦＩＦＯメモリ２１０はパケット送信キュー６０を構成する。コンソール４はユーザとの間で入出力を行なう端末であり、コンソールコントローラはそのインターフェースである。ＣＰＵ１６０は、ハードディスク２２０に記録された複数のプログラムを制御メモリ１７０に読み込んで、複数のプログラムを実行する。制御メモリ１７０は、複数プログラムとルーティングテーブル４０、ＡＲＰテーブル５０、リンク確立テーブル４５等を格納する。図１５の無線部１、パケット送信キュー６０、コンソール４以外の各機能ブロックは、ＣＰＵ１６０が実行するプログラムとして、達成される。なお、ＦＩＦＯメモリ２１０を用いずに、制御メモリ１７０上でＦＩＦＯを実現しても良い。
【００５４】
ネットワークトポロジーが図１の構成で、各ノードがリンク確立をさせている状態において、ノードＡからノードＣへのデータ転送とノードＡからノードＤへのデータ転送を同じ伝送レートで同一期間内に行っている場合を考える。このときのノードＡのリンク確立テーブルは図１７になっている。すなわち、ノードＡのリンク確立テーブル４５−１は、片方向４５１−１と双方向４５２−１とで構成され、片方向４５１−１は何れも空である。一方、双方向４５２−１の認識ノードＩＤにはノードＢのＩＤとノードＤのＩＤとが記録され、認識ノードＢの認識ノードが認識しているノードＩＤには、ノードＡ、ＣおよびＥのノードＩＤが記録されている。一方、認識ノードＤの認識ノードが認識しているノードＩＤには、ノードＡおよびＥのノードＩＤが記録されている。
【００５５】
ネットワークトポロジーが図１から図２の状態を経て、図３の状態に遷移すると、ノードＡはノードＢとのリンク切断を認識する。そしてリンク切断後のノードＡのリンク確立テーブルは図１８となり、ノードＢは削除される。なお、図１８の説明は省く。このリンク切断を認識したタイミングでルーティング層が送信キューを確認し、送信する必要のないデータの破棄を行う。このリンク切断認識からデータ破棄動作について、新たに図１９および図２０を用いて説明する。
【００５６】
ここで、図１９は破棄すべきパケットの選別とパケット破棄処理を説明するフローチャートである。図２０はパケット廃棄処理後の送信キューを説明する図である。
【００５７】
まず、図１２はノードＡとノードＢのリンクが切断された直後のノードＡの送信キューである。ここでノードＡは、ノードＣとノードＤへデータ転送中のため、送信キューにはノードＣへのデータとノードＤへのデータが１個おきに５個ずつキューイングされていることを表している。
【００５８】
図１９において、まず、キューポインタの初期化（キューポインタに１をセット）を行う（Ｓ１１）。次に１−２ではキューポインタがキュー長を超えていないかどうかを判定する（Ｓ１２）。ステップ１２は以降に続く処理を送信キュー内の全てのデータに対して済ませたかどうかを確認するために行なう。ステップ１２の判定がＮＯであった場合、終了する。一方、ステップ１２の判定がＹＥＳであった場合、キューポインタが指しているデータ（以降、Ｑｄａｔａと呼ぶ）の転送先ＭＡＣアドレスが、リンク確立テーブルに存在するいずれかのノードのＭＡＣアドレスに該当するかどうかＡＲＰテーブルを参照して判定する（Ｓ１３）。ここでいずれのリンク確立ノードのＭＡＣアドレスにも該当しなければ（ＮＯ）、Ｑｄａｔａを破棄後、送信キュー内の空きを埋めるために送信キュー内をシフトさせ（Ｓ１４）、ステップ１２に戻る。ステップ１３がＹＥＳならば、キューポインタを更新し（Ｓ１５）、ステップ１２へ遷移する。
【００５９】
このパケット破棄処理終了後には、図１２の送信キュー内のデータは図２０に更新される。ちなみに、ノードＢを中継してノードＣへ転送される予定であった図１２のキュー番号１、３、５、７、９のデータが破棄されていることがわかる。
【００６０】
本実施例によれば、リンク切断時に送信する必要のないデータの再送処理を省くことができるので、送信すべきデータの送信スループットを向上させることが可能となる。その結果、ネットワーク全体としてのスループットを向上させる効果が得られる。さらに無駄な無線送信が抑制されるため、ノードの消費電力軽減効果も得られる。
【実施例２】
【００６１】
実施例２について、新たに図２１および図２２を用いて説明する。ここで、図２１は再ルーティング処理を説明するフローチャートである。図２２は再ルーティング処理後のノードＡの送信キューを説明する図である。
【００６２】
ネットワークトポロジーが図１から図２の状態を経て、図３の状態に遷移すると、ノードＡのルーティングテーブルは図９から図１１に切替わる。実施例２は、このルーティングテーブルが切替わったタイミングでルーティング層が送信キューを確認し、キューイングされているデータに対して再ルーティング処理を行なう。
【００６３】
図２１において、まずキューポインタの初期化を行なう（Ｓ２１）。次に、キューポインタがキュー長を超えていないかどうかを判定し（Ｓ２２）、ＮＯなら終了する。ステップ２２がＹＥＳであった場合、Ｑｄａｔａの転送先ＩＰアドレスがルーティングテーブルに存在するかどうかを判定する（Ｓ２３）。ステップ２３がＹＥＳの場合、送信キュー内の送信待ちデータが最新の経路情報と整合が取れているかどうかを確認するために、Ｑｄａｔａの転送先ＭＡＣアドレスと、Ｑｄａｔａの宛先ＩＰアドレスがルーティングテーブルとＡＲＰテーブルによって対応付けされている転送先ＭＡＣアドレスとを比較し、異なっているかどうかを判定する（Ｓ２４）。ステップ２４で異なっていると判断された場合（ＹＥＳ）には、Ｑｄａｔａの転送先ＭＡＣアドレスをルーティングテーブルとＡＲＰテーブルで対応付けられている転送先ＭＡＣアドレスに置き換え（Ｓ２５）、キューポインタを更新して（Ｓ２６）、ステップ２２に遷移する。ステップ２４の判定で異なっていないと判断された場合（ＮＯ）、Ｑｄａｔａが最新の経路情報と整合が取れているということになるので、Ｑｄａｔａには何も変更は加えず、ステップ２６に遷移する。
【００６４】
一方、ステップ２３がＮＯならば、Ｑｄａｔａを破棄し、送信キュー内の空きを埋めるために送信キュー内をシフトさせる（Ｓ２７）。この場合、送信キューがシフトされているのでキューポインタを更新せずに、ステップ２２へ遷移する。
【００６５】
この再ルーティング処理を終了後には、送信キュー内のデータは図１２から図２２に更新され、シーケンス番号がｎからｎ＋４のデータを破棄することなく、新ルートのノードＡ→ノードＤ→ノードＥ→ノードＦ→ノードＣで転送することが可能となる。また、元々ノードＤへ転送する予定であったＱｄａｔａには本処理実行前よりも送信が遅れることがなく、むしろ、ノードＣ宛のＱｄａｔａの再送が減少することにより、送信までの時間を早めることが可能となる。
【００６６】
本実施例によれば、ルーティングテーブル更新時に送信する必要のないデータの再送処理を省くことができるので、送信すべきデータの送信スループットが向上する。ルーティングテーブル更新時に再ルーティング処理を施すことで、データを破棄せず、ルートを変更して転送できるようになり、破棄されていたデータの再送時間が無くなる。その結果、ネットワーク全体のスループットを向上させることが可能となる。さらに無駄な無線送信が抑制されるため、ノードの消費電力軽減効果も得られる。
【実施例３】
【００６７】
ネットワークトポロジーが図１の構成で、各ノードがリンク確立している状態において、ノードＡからノードＣへのデータ転送とノードＡからノードＤへのデータ転送を同じ伝送レートで同一期間内に行っている場合を考える。このときのノードＡのリンク確立テーブルは図１７のようになっている。
【００６８】
ネットワークトポロジーが図１から図２の状態を経て、図３の状態に遷移すると、ノードＡはノードＢとのリンク切断を認識する。リンク切断後のノードＡのリンク確立テーブルは図１８となり、ノードＢは削除される。本実施例では、このリンク切断を認識したタイミングでルーティング層が送信キューを確認し、送信する必要のないデータの転送先ＭＡＣアドレスをリンク確立しているノードのＭＡＣアドレスに置き換える。このリンク切断認識から転送先ＭＡＣアドレスの置き換え動作の詳細について図２３を用いて説明する。ここで、図２３は再ルーティング処理を説明するフローチャートである。
【００６９】
図２３において、まず、キューポインタの初期化を行なう（Ｓ３１）。次に、キューポインタがキュー長を超えていないかどうかを判定する（Ｓ３２）。Ｓ３２でＮＯならば終了し、ＹＥＳならばキューポインタが指しているデータの転送先ＭＡＣアドレスと、ＡＲＰテーブルを参照することで確認できるリンク切断したノードのＭＡＣアドレスを比較する（Ｓ３３）。この２つが同じ場合（ＹＥＳ）にはＱｄａｔａが転送先ノードの存在しないデータということが判断できるため、リンク確立テーブルに存在するノードのＭＡＣアドレスを、ＡＲＰテーブルを参照することで抽出し、Ｑｄａｔａの転送先ＭＡＣアドレスと置き換え（Ｓ３４）、キューポインタをインクリメントし（Ｓ３５）、ステップ３２に戻る。ステップ３３でアドレスが異なる場合（ＮＯ）には、ステップ３４を飛ばしてステップ３５へ分岐する。
【００７０】
この再ルーティング処理を終了後には、送信キュー内のデータは図１２から図２２に更新され、シーケンス番号がｎからｎ＋４のデータを破棄することなく、新ルートのノードＡ→ノードＤ→ノードＥ→ノードＦ→ノードＣで転送することが可能となる。また、元々ノードＤへ転送する予定であったＱｄａｔａには本処理実行前よりも送信が遅れることがなく、むしろ、ノードＣ宛のＱｄａｔａの再送が減少することにより、送信までの時間を早めることが可能となる。
【００７１】
本実施例によれば、リンク切断時にリンク確立していないノードへ送信しようとしているパケットがリンク確立しているノードへ到達することになり、リンク確立しているノードへ到達したパケットは別ルートを通り、宛先ノードへ到達する可能性が確率的に向上する。その結果、パケットの再送回数を減少させることができ、ネットワーク全体としてのスループットを向上させる効果が期待できる。
【実施例４】
【００７２】
実施例４を図２４ないし図２９を用いて説明する。ここで、図２４、図２６および図２７はネットワークトポロジーを説明する図である。図２５および図２８はノードＡのリンク確立テーブルを説明する図である。図２９は再ルーティング処理を説明するフローチャートである。
【００７３】
ネットワークトポロジーが図２４の構成で、各ノードがリンク確立している状態において、ノードＡからノードＣへのデータ転送とノードＡからノードＤへのデータ転送を同じ伝送レートで同一期間内に行っている場合を考える。前提条件として、各ノードの送信キューの長さは５０であり、データ転送期間中のノードＡの送信キューには平均的に１０個のデータが送信待ちデータとしてキューイングされているものとする。また、このときのノードＡのリンク確立テーブルは図２５のようになっている。すなわち、ノードＡのリンク確立テーブル４５−１は、片方向４５１−１と双方向４５２−１とで構成され、片方向４５１−１は何れも空である。一方、双方向４５２−１の認識ノードＩＤにはノードＢのＩＤとノードＤのＩＤとノードＧのＩＤとが記録され、認識ノードＢの認識ノードが認識しているノードＩＤには、ノードＡ、ＣおよびＥのノードＩＤが記録されている。また、認識ノードＤの認識ノードが認識しているノードＩＤには、ノードＡ、ＥおよびＨのノードＩＤが記録されている。さらに、認識ノードｇの認識ノードが認識しているノードＩＤには、ノードＡおよびＨのノードＩＤが記録されている。
【００７４】
ネットワークトポロジーが図２４から図２６の状態を経て、図２７の状態に遷移すると、ノードＡはノードＢとのリンク切断を認識する。そしてリンク切断後のノードＡのリンク確立テーブルは図２８となり、ノードＢは削除される。実施例４は、このリンク切断を認識したタイミングでルーティング層が送信キューを確認し、送信する必要のないデータの転送先ＭＡＣアドレスをリンク確立しているノードの中で、認識ノード数が一番多いノードのＭＡＣアドレスに置き換える。このリンク切断認識から転送先ＭＡＣアドレスの置き換え動作について、以下、説明する。
【００７５】
図２９において、まず、キューポインタの初期化を行なう（Ｓ４１）。次に、キューポインタがキュー長を超えていないかどうかを判定し（Ｓ４２）、ＮＯならば終了する。ステップ４２でＹＥＳの場合、Ｑｄａｔａの転送先ＭＡＣアドレスと、ＡＲＰテーブルを参照することで確認可能な、リンク切断したノードのＭＡＣアドレスを比較する（Ｓ４３）。両者が異なる場合（ＮＯ）、Ｑｄａｔａが転送先ノードの存在するデータということが判断できるため、キューポインタのインクリメント（Ｓ４７）へ分岐する。ステップ４３でアドレスが同じ場合は、リンク確立テーブル内の認識ノードが複数存在するかどうかを判定し（Ｓ４４）、１つしか存在しない場合には、リンク確立テーブルに存在するノードのＭＡＣアドレスを、ＡＲＰテーブルを参照することで抽出し、Ｑｄａｔａの転送先ＭＡＣアドレスと置き換え処理を行い（Ｓ４６）、ステップ４７へ遷移する。
【００７６】
ステップ４４で認識ノードが複数存在すると判断した場合には、Ｑｄａｔａの転送先ＭＡＣアドレスと、リンク確立テーブルに格納されている認識ノードの内で、一番認識ノード数が多いノードのＭＡＣアドレスとを置き換え（Ｓ４５）、ステップ４７へ移行する。ステップ４７ではキューポインタを更新し、ステップ４２へ遷移する。
【００７７】
なお、ステップ４４ないしステップ４６は、一つにまとめて、Ｑｄａｔａの転送先ＭＡＣアドレスと、リンク確立テーブルに格納されている認識ノードの内で、一番認識ノード数が多いノードのＭＡＣアドレスとを置き換えても良い。この場合は、実施例３で説明した図２３とほぼ同じフローとなる。
【００７８】
この再ルーティング処理を終了後には、送信キュー内のデータは図１２から図２２に更新され、シーケンス番号がｎからｎ＋４のデータを破棄することなく、新ルートのノードＡ→ノードＤ→ノードＥ→ノードＦ→ノードＣで転送することが可能となる。また、元々ノードＤへ転送する予定であったＱｄａｔａには本処理実行前よりも送信が遅れることがなく、むしろ、ノードＣ宛のＱｄａｔａの再送が減少することにより、送信までの時間を早めることが可能となる。
【００７９】
本実施例によれば、リンク切断時にリンク確立しているノードが複数存在する場合、リンク確立しているノードの中から、リンク確立しているノード数が最も多いノードを選択してパケットを送信することで、パケットが宛先ノードへ到達する可能性をさらに向上させることが可能となる。その結果、パケットの再送回数を減少させることができ、ネットワーク全体としてのスループットを向上させる効果が期待できる。
【実施例５】
【００８０】
実施例５を図３０ないし図３４を参照して説明する。ここで、図３０および図３３は再送回数テーブルを説明する図である。図３１はリンク確立時の再送回数更新を説明するフローチャートである。図３２はリンク切断時の再送回数更新を説明するフローチャートである。図３４はパケット送信処理の動作を説明するフローチャートである。
【００８１】
再送回数の初期設定は図３０の示すように、デフォルトの再送回数上限値のみが設定されている。図３０において、再送回数テーブル２５−１はＭＡＣアドレス２５１−１と再送回数上限値２５２−１とから構成され、ＭＡＣアドレス２５１−１に「デフォルト」が記載されていることから、何れのＭＡＣアドレスも、再送回数上限値のデフォルト値である３が設定されていることを表している。以降この再送回数上限値のデフォルト値を再送回数上限値Ｄと呼ぶ。
【００８２】
続いて再送回数テーブルの更新について説明すると、まず更新タイミングはリンク確立時とリンク切断時の２つである。
【００８３】
まずリンク確立時の再送回数更新動作を図３１を用いて説明する。まず、リンク確立したノードのＭＡＣアドレスが再送回数テーブル２５に含まれているかどうかを判定し（Ｓ５１）、含まれている場合（ＹＥＳ）にはステップ５２へ分岐する。含まれていない場合（ＮＯ）には終了する。ステップ５２では再送回数テーブルからリンク確立したノードのＭＡＣアドレスとそのアドレスに対応する再送回数上限値を削除する。なお、上述の説明において、再送回数テーブル２５として追って説明する図３３を参照。
【００８４】
次にリンク切断時の再送回数更新動作のフローチャートを図３２に示す。ステップ６１ではリンク切断したノードのＭＡＣアドレスとそのアドレスに対応付けた再送回数上限値を、再送回数テーブルに追加する。ここで追加する再送回数上限値は再送回数上限値Ｄよりも小さい値とし、以降この値を再送回数上限値Ｓと呼ぶ。
【００８５】
この上記処理について具体的な例で説明する。まずネットワークトポロジーは図１から図３に遷移し、また図１の形に戻る場合で考える。まず図１の状態での再送回数テーブルは初期設定と同じで図３０とする。この図１の状態から図３に遷移した場合、再送回数テーブルは図３３のように変化する。すなわち、図３２で説明したように、リンクが切断されたノードＢのＭＡＣアドレスが、ＭＡＣアドレス２５１−１に追加され、再送回数上限値Ｓとして「１」が選択され、再生回数上限値２５２−１に記載される。さらに図１の状態に戻った場合、図３１で説明したように、再送回数テーブルは図３０に戻る。
【００８６】
次に、実施例５のＣＳＭＡ／ＣＡ方式の変更動作について、図３４を用いて説明する。図３４において、まず、送信キュー６０にＱｄａｔａがキューイングされているかどうかをチェックする（Ｓ７１）。キューイングされていない場合（ＮＯ）は送信データがないということなのでステップ７１を繰り返す。ステップ７１でキューイングされているとき（ＹＥＳ）、再送回数カウンタを０に初期化する（Ｓ７２）。次に、送信キュー６０からＱｄａｔａを抽出する（Ｓ７３）。再送回数テーブル２５に、抽出したＱｄａｔａの転送先ＭＡＣアドレスが存在するかどうかチェックする（Ｓ７４）。存在する場合（ＹＥＳ）には、そのＭＡＣアドレスに対応付けされている値を再送回数上限値として設定する（Ｓ７５）。ステップ７４で、存在しない場合（ＮＯ）には再送回数テーブル内のデフォルト値を再送回数上限値として設定する（Ｓ７６）。
【００８７】
次に、Ｑｄａｔａを物理層１５０へ渡す（Ｓ７７）。そうすると物理層１５０はＱｄａｔａを対向ノードへ無線送信するので、自ノードは対向ノードからのＡＣＫを待つ。次に、ＡＣＫ受信が成功したかどうかチェックし（Ｓ７８）、成功した場合（ＹＥＳ）には、保持していたＱｄａｔａを破棄し（Ｓ８１）し、ステップ７１に戻る。
【００８８】
ステップ７８で失敗した場合（ＮＯ）、再送処理を行うため再送回数カウンタをインクリメントし（Ｓ７９）、再送回数カウンタが再送回数上限値以上かどうかをチェックする（Ｓ８０）。ステップ８０で再送回数カウンタが再送回数上限値より小さい場合（ＮＯ）には再送処理を行うため、再度ステップ７７へ分岐する。ステップ８０で再送回数カウンタが再送回数上限値以上の場合（ＹＥＳ）には保持していたＱｄａｔａを破棄し（Ｓ８１）し、ステップ７１に戻る。
【００８９】
ネットワークトポロジーが図１の構成で、各ノードがリンク確立している状態において、ノードＡからノードＣへのデータ転送とノードＡからノードＤへのデータ転送を同じ伝送レートで同一期間内に行っている場合を考える。前提条件として、各ノードの送信キューの長さは５０であり、データ転送期間中のノードＡの送信キューには平均的に１０個のデータが送信待ちデータとしてキューイングされてものとする。また、このときのノードＡのリンク確立テーブルは図１７のようになっている。
【００９０】
ネットワークトポロジーが図１のときには、上述の説明より、再送回数テーブルは図３０になっており、送信キューが図１２とすると、送信キュー内の全てのＱｄａｔａの再送回数はデフォルトの３回となる。次に図１から図３の状態に遷移した場合には、再送回数テーブルは図３３になるため、このときの送信キューが図１２とすると転送先ＭＡＣアドレスが「００：００：００：００：００：０Ｂ」のＱｄａｔａの再送回数の最大は１回となり、それ以外の転送先ＭＡＣアドレス（図１２の場合、「００：００：００：００：００：０Ｄ」）のＱｄａｔａの再送回数の最大は３回となる。
この処理により、リンク切断中のノードが転送先になっている送信キュー内のデータの再送回数のみを減らすことが可能となる。
【００９１】
本実施例によれば、リンク確立していないノードへの無駄な再送を減らすことができる。その結果、ネットワーク全体のスループットを向上させることが可能となる。さらに無駄な無線送信が抑制されるため、ノードの消費電力軽減効果も得られる。
【図面の簡単な説明】
【００９２】
【図１】ネットワークトポロジーを説明する図である（トポロジー１）。
【図２】ネットワークトポロジーを説明する図である（トポロジー２）。
【図３】ネットワークトポロジーを説明する図である（トポロジー３）。
【図４】ノードＡが送信するＨＥＬＬＯメッセージを説明する図である（その１）。
【図５】ノードＢが送信するＨＥＬＬＯメッセージを説明する図である。
【図６】ノードＡが送信するＨＥＬＬＯメッセージを説明する図である（その２）。
【図７】通信プロトコルの階層構造とデータ送信の流れを説明する図である。
【図８】各ノードのＩＰアドレスとＭＡＣアドレスとを説明する図である。
【図９】ノードＡのルーティングテーブルである。
【図１０】ノードＡのＡＲＰテーブルである。
【図１１】ノードＡのルーティングテーブルである。
【図１２】ノードＡとノードＢとのリンクが切断した直後のノードＡの送信キューを説明する図である。
【図１３】ルート切替が行われたあとのノードＡの送信キューを説明する図である。
【図１４】パケット送信処理の動作を説明するフローチャートである。
【図１５】ノードの機能ブロック図である。
【図１６】ノードのハードウェアブロック図である。
【図１７】トポロジー１のノードＡのリンク確立テーブルを説明する図である。
【図１８】トポロジー３のノードＡのリンク確立テーブルを説明する図である。
【図１９】パケット破棄処理を説明するフローチャートである。
【図２０】パケット破棄処理後のノードＡの送信キューを説明する図である。
【図２１】再ルーティング処理を説明するフローチャートである。
【図２２】再ルーティング処理後のノードＡの送信キューを説明する図である。
【図２３】再ルーティング処理を説明するフローチャートである。
【図２４】ネットワークトポロジーを説明する図である（トポロジー４）。
【図２５】トポロジー４のノードＡのリンク確立テーブルを説明する図である。
【図２６】ネットワークトポロジーを説明する図である（トポロジー５）。
【図２７】ネットワークトポロジーを説明する図である（トポロジー６）。
【図２８】トポロジー６のノードＡのリンク確立テーブルを説明する図である。
【図２９】再ルーティング処理を説明するフローチャートである。
【図３０】再送回数テーブルを説明する図である。
【図３１】リンク確立時の再送回数更新を説明するフローチャートである。
【図３２】リンク切断時の再送回数更新を説明するフローチャートである。
【図３３】再送回数テーブルを説明する図である。
【図３４】パケット送信処理の動作を説明するフローチャートである。
【符号の説明】
【００９３】
１…無線部、２…キュー内パケット制御部、３…経路情報付与部、４…コンソール、５…通信用アプリケーション、６…無線接続確立部、７…経路情報生成部、８…経路情報格納部、９…パケット送信制御部、１０…データ、１１…経路情報更新部、２０…宛先ＩＰアドレス、２５…再送回数テーブル、３０…転送先ＭＡＣアドレス、４０…ルーティングテーブル、４５…リンク確立テーブル、５０…ＡＲＰテーブル、６０…送信キュー、７０…ＣＳＭＡ／ＣＡ方式、８０…再送回数上限値、９０…無線送受信装置、１００…ノード、１１０…無線アンテナ、１２０…アプリケーション層、１３０…ルーティング層、１４０…ＭＡＣ層、１５０…物理層、１６０…中央処理装置（ＣＰＵ）、１７０…制御メモリ１７０、１８０…コンソールコントローラ１８０、１９０…ネットワークコントローラ１９０、２００…無線ＬＡＮ部２００、２１０…ＦＩＦＯメモリ、２２０…ハードディスク。
【図１】
0004668823.tif 000002
【図２】
0004668823.tif 000003
【図３】
0004668823.tif 000004
【図４】
0004668823.tif 000005
【図５】
0004668823.tif 000006
【図６】
0004668823.tif 000007
【図７】
0004668823.tif 000008
【図８】
0004668823.tif 000009
【図９】
0004668823.tif 000010
【図１０】
0004668823.tif 000011
【図１１】
0004668823.tif 000012
【図１２】
0004668823.tif 000013
【図１３】
0004668823.tif 000014
【図１４】
0004668823.tif 000015
【図１５】
0004668823.tif 000016
【図１６】
0004668823.tif 000017
【図１７】
0004668823.tif 000018
【図１８】
0004668823.tif 000019
【図１９】
0004668823.tif 000020
【図２０】
0004668823.tif 000021
【図２１】
0004668823.tif 000022
【図２２】
0004668823.tif 000023
【図２３】
0004668823.tif 000024
【図２４】
0004668823.tif 000025
【図２５】
0004668823.tif 000026
【図２６】
0004668823.tif 000027
【図２７】
0004668823.tif 000028
【図２８】
0004668823.tif 000029
【図２９】
0004668823.tif 000030
【図３０】
0004668823.tif 000031
【図３１】
0004668823.tif 000032
【図３２】
0004668823.tif 000033
【図３３】
0004668823.tif 000034
【図３４】
0004668823.tif 000035