(57)【要約】【課題】無線マルチホップネットワークにおいて、必要以上の無線帯域の使用を抑えることにより、輻輳状態を回避して、Ｅｎｄ−ｔｏ−Ｅｎｄにおけるスループットの公平性を担保する。【解決手段】送信キュー２００は、宛先（ＱＩＤ）別に区分され、それぞれソースキューおよび転送キューの種別（ＱＴｙｐｅ）に区分され、さらに優先度（ＱＰｒｉｏｒ）毎に区分される。エンキュー制御部１１０は上位層からのパケットを、その宛先、種別および優先度に基づいて、該当する区分のキューに保持させる。デキュー制御部１３０は送信キュー２００の何れかの区分のキューから送信データを取り出して、対応する宛先局に宛てて送出する。デキューの際には無線マルチホップネットワークにおけるホップ数に基づいた敷値を基準としてデキュー動作が終了する。また、各区分のキューの送出量の比率は、ホップ数に基づいて設定される。【選択図】図４
2008103899.tif 000002
【特許請求の範囲】
【請求項１】
無線通信の範囲外に存在する宛先局との間では近隣の中継局を介したリンクにより通信を行う無線通信装置において、
前記宛先局毎に対応して区分されてそれぞれ送信データを保持する送信キューと、
前記送信データをその宛先局に応じて前記送信キューの何れかの区分に挿入するエンキュー制御手段と、
前記送信キューから送出される前記送信データに関する値が所定の閾値を超えるまで前記送信キューから前記送信データを取り出して対応する宛先局に宛てて送出するデキュー制御手段と
を具備することを特徴とする無線通信装置。
【請求項２】
前記所定の閾値は、前記送信キューのそれぞれの区分に対応する宛先局へ到達するまでに経由されるリンクの数に反比例する値が設定されることを特徴とする請求項１記載の送信制御装置。
【請求項３】
前記所定の閾値は、前記送信データのデータ量を単位として設定されることを特徴とする請求項１記載の無線通信装置。
【請求項４】
前記所定の閾値は、前記送信データのパケット数を単位として設定されることを特徴とする請求項１記載の無線通信装置。
【請求項５】
前記送信キューは、前記宛先局毎に、他局からの送信データを転送するための転送キューと、自局からの送信データを送信するためのソースキューとに区分され、
前記デキュー制御手段は、前記転送キューに保持された送信データを優先して取り出すことを特徴とする請求項１記載の無線通信装置。
【請求項６】
前記デキュー制御手段は、前記転送キューおよび前記ソースキューから送出される送信データが所定の送出率の比になるよう制御することを特徴とする請求項５記載の無線通信装置。
【請求項７】
前記所定の送出率は、前記転送キューおよび前記ソースキューのそれぞれに所定期間内に挿入された送信データが自局に到達するまでに経由されたリンクの数の統計量と、前記転送キューおよび前記ソースキューに対応する宛先局へ到達するまでに経由されるリンクの数との和によって設定されることを特徴とする請求項６記載の無線通信装置。
【請求項８】
前記送信キューは、前記宛先局毎に優先度別の優先度キューに区分され、
前記デキュー制御手段は、前記優先度の高い優先度キューに保持された送信データを優先して取り出すことを特徴とする請求項１記載の無線通信装置。
【請求項９】
各無線通信装置が無線通信の範囲外に存在する宛先局との間では近隣の中継局を介したリンクにより通信を行う無線通信システムにおいて、
前記宛先局毎に対応して区分されてそれぞれ送信データを保持する送信キューと、
前記送信データをその宛先局に応じて前記送信キューの何れかの区分に挿入するエンキュー制御手段と、
前記送信キューから送出される前記送信データに関する値が所定の閾値を超えるまで前記送信キューから前記送信データを取り出して対応する宛先局に宛てて送出するデキュー制御手段と
を各無線通信装置が具備することを特徴とする無線通信システム。
【請求項１０】
無線通信の範囲外に存在する宛先局との間では近隣の中継局を介したリンクにより通信を行い、前記宛先局毎に対応して区分されてそれぞれ送信データを保持する送信キューを備える無線通信装置における無線通信方法であって、
前記送信データをその宛先局に応じて前記複数の送信キューの何れかに挿入するエンキュー手順と、
前記送信キューから送出される前記送信データに関する値が所定の閾値を超えるまで前記送信キューから前記送信データを取り出して対応する宛先局に宛てて送出するデキュー手順と
を具備することを特徴とする無線通信方法。
【請求項１１】
無線通信の範囲外に存在する宛先局との間では近隣の中継局を介したリンクにより通信を行い、前記宛先局毎に対応して区分されてそれぞれ送信データを保持する送信キューを備える無線通信装置において、
前記送信データをその宛先局に応じて前記複数の送信キューの何れかに挿入するエンキュー手順と、
前記送信キューから送出される前記送信データに関する値が所定の閾値を超えるまで前記送信キューから前記送信データを取り出して対応する宛先局に宛てて送出するデキュー手順と
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信システムに関し、特に無線通信装置間で送信データを中継する無線通信システム、当該システムにおける無線通信装置、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
全ての無線通信装置（ノード）が無線ネットワークにより接続されたアドホックネットワークにおいて、ノード間の通信エリアの拡大が容易に実現できる無線マルチホップネットワーク技術は重要な要素技術の一つである。この無線マルチホップネットワークでは、ノード間の通信路はルーティングプロトコルによって決定され、その決定された経路に従ってノード間の通信が行われる。したがって、各ノードは、パケットごとで異なる宛先に対して、ルーティングプロトコルによって決定されたノードに対してパケットを送信することにより、パケットを宛先まで送信することが可能となる。
【０００３】
ＩＥＥＥ８０２．１１に代表される一般的な無線ネットワークの多くは、各ノードにおいてＤＣＦ（Distributed Coordination Function）によるＣＳＭＡ／ＣＡ（Carrier Sense Multiple Access with Collision Avoidance）のアクセス方式を用いて、周辺ノードと限られた無線帯域の資源を競合して通信を行う。
【０００４】
これに対し、無線マルチホップネットワークでは、パケットを中継するノードにおいて、ＣＳＭＡ／ＣＡによる競合が発生するだけでなく、送信キュー内での競合が発生する。例えば、ノード＃Ａからノード＃Ｂを中継してノード＃Ｃにパケットを送信するとともに、ノード＃Ｂからノード＃Ｃに別途パケットを送信する場合、ノード＃Ａおよびノード＃Ｂが最大限のデータ送信を試みると、ノード＃Ａおよびノード＃ＢにおけるＣＳＭＡ／ＣＡでの無線帯域の競合は公平であることから、必然的にノード＃Ｂにおいてパケットの輻輳が生じる。その結果、ノード＃Ｂにおける送信キュー内でのパケットロスが発生し、例えばＴＣＰ（Transmission Control Protocol）の場合にはパケットロスによるＥｎｄ−ｔｏ−Ｅｎｄ（発信元と宛先との間）の再送頻度が増えて、大幅なスループットの低下が予想される。すなわち、ＣＳＭＡ／ＣＡによる制御だけでは、Ｅｎｄ−ｔｏ−Ｅｎｄにおいて公平にサービスを提供することは難しい。
【０００５】
従来の無線アドホックネットワークでは、所定のサービス品質（ＱｏＳ）を満たす観点から、予め定められた帯域幅を割り当てていた。この帯域幅の割当てに関しては、送信キューの充填状態が現在送信可能なデータ量以下のデータ量を示す場合に、一時的に帯域幅を他の接続に解放する動的帯域幅割当方法が提案されている（例えば、特許文献１参照。）。
【特許文献１】特開２００４−１０４７９１号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のデータ帯域の制御では、全ての送信データが１つの送信キューにより管理されており、各パケットが中継される経路については考慮されていない。一方、全ての経路を厳密に管理することは、その組合せの数が膨大なものとなるため、現実的ではない。
【０００７】
無線マルチホップネットワークの場合、Ｅｎｄ−ｔｏ−Ｅｎｄでのスループットは宛先ノードへ到達するまでに経由するリンクの数（ホップ数）に大きく依存するものと考えられる。すなわち、Ｅｎｄ−ｔｏ−Ｅｎｄでのスループットの公平性を保つためには、このホップ数を指標としてトラフィックを制御することが合理的であると考えられる。
【０００８】
そこで、本発明は、無線マルチホップネットワークにおけるホップ数に着目して、必要以上の無線帯域の使用を抑えることにより、輻輳状態を回避するとともに、Ｅｎｄ−ｔｏ−Ｅｎｄにおけるスループットの公平性を担保することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、無線通信の範囲外に存在する宛先局との間では近隣の中継局を介したリンクにより通信を行う無線通信装置において、上記宛先局毎に対応して区分されてそれぞれ送信データを保持する送信キューと、上記送信データをその宛先局に応じて上記送信キューの何れかの区分に挿入するエンキュー制御手段と、上記送信キューから送出される上記送信データに関する値が所定の閾値を超えるまで上記送信キューから上記送信データを取り出して対応する宛先局に宛てて送出するデキュー制御手段とを具備することを特徴とする無線通信装置である。これにより、宛先局毎に送出される送信データを管理して、輻輳状態を回避させるという作用をもたらす。
【００１０】
また、この第１の側面において、上記所定の閾値は、上記送信キューのそれぞれの区分に対応する宛先局へ到達するまでに経由されるリンクの数に反比例する値が設定される。これにより、Ｅｎｄ−ｔｏ−Ｅｎｄにおけるスループットの公平性を担保するという作用をもたらす。なお、上記所定の閾値は、上記送信データのデータ量（トークン量）を単位として設定されてもよく、また、上記送信データのパケット数を単位として設定されてもよい。
【００１１】
また、この第１の側面において、上記送信キューは、上記宛先局毎に、他局からの送信データを転送するための転送キューと、自局からの送信データを送信するためのソースキューとに区分され、上記デキュー制御手段は上記転送キューに保持された送信データを優先して取り出すようにしてもよい。これにより、自局からの送信によって他局からの転送を妨害しないように制御するという作用をもたらす。また、この場合において、上記デキュー制御手段は、上記転送キューおよび上記ソースキューから送出される送信データが所定の送出率の比になるよう制御してもよい。これにより、Ｅｎｄ−ｔｏ−Ｅｎｄにおけるスループットの公平性を担保するという作用をもたらす。さらに、この場合において、上記所定の送出率は、上記転送キューおよび上記ソースキューのそれぞれに所定期間内に挿入された送信データが自局に到達するまでに経由されたリンクの数（ＰＨ）の統計量と、上記転送キューおよび上記ソースキューに対応する宛先局へ到達するまでに経由されるリンクの数（ＨＣ）との和によって設定されてもよい。
【００１２】
また、この第１の側面において、上記送信キューは上記宛先局毎に優先度別の優先度キューに区分され、上記デキュー制御手段は上記優先度の高い優先度キューに保持された送信データを優先して取り出すようにしてもよい。これにより、所定のサービス品質（ＱｏＳ）に対応させるという作用をもたらす。
【００１３】
また、本発明の第２の側面は、各無線通信装置が無線通信の範囲外に存在する宛先局との間では近隣の中継局を介したリンクにより通信を行う無線通信システムにおいて、上記宛先局毎に対応して区分されてそれぞれ送信データを保持する送信キューと、上記送信データをその宛先局に応じて上記送信キューの何れかの区分に挿入するエンキュー制御手段と、上記送信キューから送出される上記送信データに関する値が所定の閾値を超えるまで上記送信キューから上記送信データを取り出して対応する宛先局に宛てて送出するデキュー制御手段とを各無線通信装置が具備することを特徴とする無線通信システムである。これにより、各無線通信装置において、宛先局毎に送出される送信データを管理して、輻輳状態を回避させるという作用をもたらす。
【００１４】
また、本発明の第３の側面は、無線通信の範囲外に存在する宛先局との間では近隣の中継局を介したリンクにより通信を行い、上記宛先局毎に対応して区分されてそれぞれ送信データを保持する送信キューを備える無線通信装置における無線通信方法であって、上記送信データをその宛先局に応じて上記複数の送信キューの何れかに挿入するエンキュー手順と、上記送信キューから送出される上記送信データに関する値が所定の閾値を超えるまで上記送信キューから上記送信データを取り出して対応する宛先局に宛てて送出するデキュー手順とを具備することを特徴とする無線通信方法またはこれら手順をコンピュータに実行させることを特徴とするプログラムである。これにより、宛先局毎に送出される送信データを管理して、輻輳状態を回避させるという作用をもたらす。
【発明の効果】
【００１５】
本発明によれば、輻輳状態を回避するとともに、Ｅｎｄ−ｔｏ−Ｅｎｄにおけるスループットの公平性を担保することができるという優れた効果を奏し得る。
【発明を実施するための最良の形態】
【００１６】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１７】
図１は、本発明の実施の形態の無線通信システムの一例を示す図である。この無線通信システムでは、無線通信装置１０、２０および３０が無線通信により無線マルチホップネットワークを構成している。ここでは、無線通信装置１０、２０および３０の各々が自律分散して動作しており、インフラストラクチャネットワークのような制御局は存在しない。
【００１８】
この例で無線通信装置１０を発信元として無線通信装置３０にパケットを送信しようとする場合、両者が互いの通信範囲１１および３１に入っていないため、直接無線通信を行うことはできない。そこで、両者を通信範囲２１に持つ無線通信装置２０が中継局として無線通信装置１０からのパケットを一旦受信し、そのパケットを宛先局である無線通信装置３０に送信する。自律分散型の無線ネットワークでは、このように他の無線通信装置が中継局として機能することにより、通信範囲外の宛先局に対して送信データを送信することができる。
【００１９】
ここで、無線通信装置１０が直接に通信を行う中継局との間の１対１の接続をリンクという。また、無線通信装置１０が中継局を介して相手局に到達するまでの流れを経路という。一般に、中継局となる無線通信装置が複数存在する場合、相手局への経路も複数存在し得る。本発明の実施の形態では、経由するリンクの数、すなわちホップ数が最短となる経路を最適経路として選択し、最大限の送信を試みることを前提とする。
【００２０】
なお、ここでは中継局として機能する無線通信装置が１台の例を挙げて説明したが、この中継局は２台以上であっても構わない。また、以下では無線通信装置１０を例に挙げてその構成を説明するが、他の無線通信装置２０および３０についても同様の構成を備えることはいうまでもない。
【００２１】
図２は、無線マルチホップネットワークにおける無線通信装置（ノード）間の関係例を示す図である。この例では、６つのノード＃Ａ乃至＃Ｆ（４１乃至４６）が存在している。
【００２２】
無線マルチホップネットワークの場合、Ｅｎｄ−ｔｏ−Ｅｎｄでのスループットは宛先ノードへ到達するまでに経由するリンクの数（ホップ数）に大きく依存するものと考えられる。ここで、隣接するノード間の無線帯域をＢ、ホップ数をＨＣとした場合、Ｅｎｄ−ｔｏ−ＥｎｄのスループットＴは、次式により与えられる。
Ｔ≒Ｂ／ＨＣ
すなわち、Ｅｎｄ−ｔｏ−ＥｎｄのスループットＴはおおよそホップ数に反比例する値となる。
【００２３】
例えば、図２において、ノード＃Ａ（４１）からノード＃Ｆ（４６）に対して経路＃Ｘによる送信が行われるとすると、ノード＃Ａ（４１）からはＢ／４程度のスループットでデータ送信を行なうことになる。仮に、それ以上にデータ送信をノード＃Ｆに対して行ったとしても、送信元ノードであるノード＃Ａ（４１）や中間ノードであるノード＃Ｂ（４２）乃至＃Ｅ（４５）において輻輳が生じてしまう。したがって、無線マルチホップネットワークにおいては、宛先ノードまでのホップ数に応じてトラフィック量の上限を制限することにより輻輳を軽減する必要がある。
【００２４】
一方、Ｅｎｄ−ｔｏ−Ｅｎｄでのスループットの公平性に関して、例えば、ノード＃Ａ（４１）からノード＃Ｆ（４６）に対して経路＃Ｘによる送信が行われるとともに、ノード＃Ｃ（４３）からもノード＃Ｆ（４６）に対して経路＃Ｙによる送信が行われる場合を想定する。この場合、ノード＃Ｄ（４４）において経路＃Ｘおよび＃Ｙが交わるため、互いのスループットに影響を与える。そのため、経路＃Ｘおよび＃Ｙにおいてスループットを公平にするためには、両者のホップ数を考慮して、
経路＃Ｘ：経路＃Ｙ＝４：３
になるように、フロー制御を行う必要がある。つまり、Ｅｎｄ−ｔｏ−Ｅｎｄでのスループットの公平性を実現するためには、各フローに関してホップ数に応じたフロー制御を送信元ノードならびに中間ノードで行う必要がある。
【００２５】
このように、本発明の実施の形態では、ノード間のホップ数を利用してフロー制御を行う。その際、ホップ数を自ノードに到達するまでのホップ数と、自ノードから宛先ノードまでのホップ数とに分けて取り扱う。前者をＰＨ（Previous Hop count）と呼び、後者をＨＣ（Hop Count）と呼ぶ。例えば、図２のノード＃Ｄにおける経路＃ＹのＰＨは「１」、ＨＣは「２」となる。
【００２６】
ＨＣについては、ルーティングプロトコルによって管理される経路テーブルから取得することができる。また、ＰＨについては、図３に示すようにパケットが転送される際に１つずつカウントアップしていくことにより各ノードに伝達することができる。
【００２７】
図３は、本発明の実施の形態においてＰＨが伝達される様子の一例を示す図である。この例では、４つのノード＃ａ乃至＃ｄ（５１乃至５４）が存在しており、ノード＃ａ（５１）からノード＃ｄ（５４）に対して経路＃Ｚによる３ホップの送信が行われることを想定する。
【００２８】
ノード＃ａ（５１）では、ペイロード６１２にヘッダ６１１を付したパケット６１０が生成されて、ノード＃ｂ（５２）に向けてパケット６１０が送信される。ヘッダ６１１にはＰＨの値を保持するフィールドが含まれる。この場合、ノード＃ａ（５１）が発信元であるため、ＰＨの値として「０」が設定される。
【００２９】
ノード＃ａ（５１）からパケット６１０を受信したノード＃ｂ（５２）は、ヘッダ６１１に含まれるＰＨの値を１つカウントアップして、パケット６２０のヘッダ６２１にＰＨの値として「１」を設定する。このパケット６２０は、ノード＃ｂ（５２）からノード＃ｃ（５３）に転送される。
【００３０】
ノード＃ｂ（５２）からパケット６２０を受信したノード＃ｃ（５３）は、ヘッダ６２１に含まれるＰＨの値を１つカウントアップして、パケット６３０のヘッダ６３１にＰＨの値として「２」を設定する。このパケット６３０は、ノード＃ｃ（５３）からノード＃ｄ（５４）に転送される。
【００３１】
ノード＃ｃ（５３）からパケット６３０を受信したノード＃ｄ（５４）は、パケット６３０からペイロード６３２を取り出す。また、ノード＃ｄ（５４）は、ヘッダ６３１に含まれるＰＨの値を１つカウントアップして、当該パケットのノード＃ｄ（５４）におけるＰＨの値として「３」を取得する。
【００３２】
図４は、本発明の実施の形態における無線通信装置の送信制御部１００の一構成例を示す図である。この送信制御部１００は、送信データを保持する送信キュー２００を備え、上位層から新たな送信データを受け取って送信キュー２００に保持させるエンキュー制御部１１０と、送信キュー２００から送信データを取り出して下位層へ送出するデキュー制御部１３０とを備えている。
【００３３】
各送信データのフロー制御を行う場合、厳密には、各経路のホップ数（ＰＨおよびＨＣ）をそれぞれ求めて、各経路を別々に扱う必要が生じる。しかし、ノードの数が増えると経路の組合せは膨大な数になり、また、無線マルチホップネットワークではネットワークトポロジーがダイナミックに変化して管理が複雑になるため、経路毎の管理は現実的ではない。そこで、本発明の実施の形態では、各ノードにおける送信キュー２００を宛先別のキューテーブルに区分して、各送信データを宛先毎にまとめて管理する。これにより、送信キュー２００の数を集約しながら、Ｅｎｄ−ｔｏ−Ｅｎｄでのスループットの公平性を効率良く実現することができる。自ノードから宛先ノードまでのホップ数ＨＣは送信データの宛先によって定まるため、宛先別に区分することによって管理は容易になる。
【００３４】
宛先別に区分された送信キュー２００のキューテーブルは、図５のように、さらにソースキューと転送キューに区分される。転送キューは、他のノードを発信元とする送信データを転送する際に用いられるキューである。ソースキューは、自ノードを発信元とする送信データを送信する際に用いられるキューである。
【００３５】
また、転送キューおよびソースキューは、さらに優先度毎に区分される。この優先度により、所望のサービス品質（ＱｏＳ）を実現することができる。この優先度は、ＩＰパケットに適用されるＴＯＳ（Type Of Service）の値に基づいて付与することが考えられる。また、それ以外にも、ＵＤＰ（User Datagram Protocol）やＴＣＰというプロトコルの違いを識別し、優先度を付与するようにしてもよい。また、無線マルチホップネットワークを構築する際にルーティングプロトコルで利用されるＲＲＥＱ（Route REQuest）やＲＲＥＰ（Route REPly）などのようなユニキャストの制御パケットや、ＨＥＬＬＯパケットのようなブロードキャストパケットのメッセージパケット等の主にシステムを構築する上で必要となるパケットと、上位層からのデータパケットとの間で優先度が異なるように設定してもよい。
【００３６】
なお、優先度を決定するための別の基準として、現在のＩＥＥＥ８０２．１１ｅで規定されているＷＭＭ（Wi-Fi MultiMedia）やＷＭＥ（Wireless Multimedia Extensions）を利用する方法が考えられる。これにより、標準システムとの親和性のとれたキューイング機構を実現することが可能となる。
【００３７】
このように、送信キュー２００は、宛先別に区分され、それぞれソースキューおよび転送キューに区分され、さらに優先度毎に区分される。したがって、送信キュー２００をデータ構造として表現すると、３次元配列になる。すなわち、宛先をＱＩＤ、種別（ソースキューまたは転送キュー）をＱＴｙｐｅ、優先度をＱＰｒｉｏｒにより表すと、送信キュー２００は「Ｑｕｅｕｅ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］」により表現することができる。
【００３８】
エンキュー制御部１１０は、上位層からのパケットを、その宛先（ＱＩＤ）、種別（ＱＴｙｐｅ）および優先度（ＱＰｒｉｏｒ）に基づいて、該当するＱｕｅｕｅ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］に保持させる。その際、該当する送信キューの長さが最大長に達している場合には、送信キュー２００からの指示によりそのパケットは破棄される。下位層において新たなパケットを受け付けられなくなった場合も、デキュー制御部１３０からの指示によりパケットは破棄される。
【００３９】
また、エンキュー制御部１１０は、図３により説明した方法により、自ノードに到達するまでのホップ数ＰＨを取得する。このＰＨは、発信元ノードに依存した値を示す。本発明の実施の形態においては、このＰＨを個別に保持せずに、次式（式１）に示すように、ある時間区間ｔにおける統計量ＰＨ（ｔ）としてキュー毎に保持する。但し、時間区間ｔにおいて該当するキューに挿入されるパケット数をＮ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］、各パケットのＰＨの値をＰＨＸ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］とする。また、総和計算（Σ）は、パケット数Ｎ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］について行われるものとする。βは、前回の時間区間（ｔ−１）に算出したＰＨの値を考慮するための重み付け係数である。βは「０」より大きく、「１」より小さい値を示すものであり、例えば「０．２」程度が想定される。
ＰＨ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］（ｔ）
＝β×（（ΣＰＨＸ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］）／
Ｎ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］）＋
（１−β）×ＰＨ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］（ｔ−１）
（式１）
【００４０】
ここで、キューの種別（ＱＴｙｐｅ）としては、転送キューのみが上式の対象となる。ソースキューの場合には、ＰＨ（ｔ）の値は常に「０」になる。
【００４１】
このＰＨ（ｔ）の値は、デキュー制御部１３０におけるデキュー制御のために用いられる。
【００４２】
デキュー制御部１３０は、所定のタイミングで送信キュー２００から送信データを取り出して、対応する宛先局に宛てて送出するものである。宛先（ＱＩＤ）、種別（ＱＴｙｐｅ）および優先度（ＱＰｒｉｏｒ）に区分された送信キュー２００のうち、何れのキューから送信データを取り出すかは、例えば、以下の方策に従って決定される。まず、種別（ＱＴｙｐｅ）として、ソースキューよりも転送キューが優先される。また、同じ種別であれば優先度（ＱＰｒｉｏｒ）の高いキューから優先して取り出される。なお、宛先（ＱＩＤ）については平等に扱うことを想定するが、これに限定されるものではなく、例えば、リンクの状態が良好な宛先を優先するようにしてもよい。
【００４３】
図５は、本発明の実施の形態における無線通信装置の送信キュー２００の一構成例を示す図である。送信キュー２００は、宛先局毎に対応してキューテーブル２０１に区分される。すなわち、送信キュー２００は、ルーティングプロトコルによって確認されている宛先局の数のキューテーブル２０１を備える。
【００４４】
また、これに加え、送信キュー２００は、デフォルト用のキューテーブルを備える。キューテーブルはルーティングプロトコルと連携して作成または削除されるため、処理やエンキューのタイミングによってはキューテーブルに存在しない宛先のパケットを送信キュー２００にエンキューする場合も生じ得る。そのため、そのようなタイムラグを吸収するために、デフォルト用のキューテーブルが設けられる。これにより、キューテーブルが存在しない場合にはデフォルト用のキューテーブルにエンキューすることで、パケットの破棄が極力行われないようにすることができる。
【００４５】
キューテーブル２０１の各々は、転送キュー２１０およびソースキュー２２０に区分されている。上述のように、転送キューは他のノードを発信元とする送信データを転送する際に用いられるキューであり、ソースキューは自ノードを発信元とする送信データを送信する際に用いられるキューである。
【００４６】
また、転送キュー２１０およびソースキュー２２０は、上述のように、さらに優先度毎に区分される。この例では、優先度の高い順に＃Ａから＃Ｆまでの６段階の優先度のキューに区分されている。
【００４７】
このように区分された各キューは別個のキューとして動作する。すなわち、各キューはＦＩＦＯ（First-In First-Out）方式により、先頭に保持されたパケットから順に取り出されるように構成される。
【００４８】
図６は、本発明の実施の形態における送信キュー２００からのデキュータイミングの例を示す図である。デキュー制御を行うタイミングとしては、例えば、図６（ａ）に示すように、ポーリングによる処理が考えられる。この場合、一定周期（Ｔ＿ＰＯＬＬ）毎にデキュー制御（ステップＳ９５０）が起動される。
【００４９】
なお、この周期Ｔ＿ＰＯＬＬは、実際にデータを送信できる無線帯域の伝送速度（例えば、ＩＥＥＥ８０２．１１ｂの場合は最大１１Ｍｂｐｓ）や、実際に動作させるシステムの処理能力に応じて決定される。
【００５０】
また、別の実施例としては、図６（ａ）のように、下位層においてさらにキューをもっているようなシステムの場合には、下位層のキューの状況に応じて処理を実行させてもよい。例えば、下位層においてキューが溢れそうな場合にはデキュー制御部１３０に通知してデキュー処理を停止させて、下位層のキュー４０１に空きが生じた段階で処理を開始させるようにしてもよい。
【００５１】
図７は、本発明の実施の形態におけるキューテーブル２０１の決定例を示す図である。上述のように、本発明の実施の形態では、宛先（ＱＩＤ）については平等に扱うことを想定する。その場合、宛先に対応するキューテーブル２０１の決定も平等に行うことができる。そこで、ここでは、キューテーブル２０１の決定手法の一例として、ラウンドロビン方式を採用した例について説明する。
【００５２】
ラウンドロビン方式では、各キューテーブル２０１は順番に参照される。その際、開始時のキューテーブルの識別子が開始キューテーブルとして保存される。そして、この開始キューテーブルを基準として各キューテーブル２０１を一巡するように参照が行われる。例えば、開始キューが＃Ｂを示していた場合、最初にキューテーブル＃Ｂ、次にキューテーブル＃Ｃ、その次にキューテーブル＃Ｄ、といった具合に参照される。
【００５３】
また、開始キューテーブルは、デキュー制御部１３０が起動される度に順番に変更される。これにより、ノード間の公平性が担保される。例えば、今回の開始キューテーブルが＃Ｂであった場合、次回の開始キューテーブルは＃Ｃになり、その次は＃Ｄになる、といった具合に変更されていく。
【００５４】
各キューテーブル２０１が参照される際、そのキューテーブルにおけるキューの優先度の高いものから順に参照される。すなわち、まず開始キューテーブルから順に優先度の最も高いキュー＃Ａが参照され、全てのキューテーブル２０１におけるキュー＃Ａ（転送キューおよびソースキューの両方）のパケットが無くなるまで繰り返される。キュー＃Ａのパケットが無くなると、次に優先度の高いキュー＃Ｂが開始キューテーブルから順に参照される。そして、全てのキューテーブルにおけるキュー＃Ｂのパケットが無くなると、その後、キュー＃Ｃ、キュー＃Ｄ、…、キュー＃Ｆと優先度の高いキューから順番に同様の手順で参照が行われる。
【００５５】
図８は、本発明の実施の形態における送信キュー２００の送出量の基準例を示す図である。ここでは、送信キュー２００の送出量を調整するために、トークン量およびパケット数をパラメータとして用いる。トークン量とは、送信データのデータ量である。また、パケット数とは、送信データのパケットの数である。
【００５６】
例えば、１５００バイトのパケットと１０００バイトのパケットが順に送出された場合、このときのトークン量は「２５００バイト」であり、パケット数は「２」である。
【００５７】
これらトークン量およびパケット数をパラメータとして用いるに際して、１回のデキュー制御の動作によって送出可能な、送信キュー２００全体のトークン量およびパケット数の閾値を予め設定しておく。全体のトークン量の閾値を定数ＴＨ＿ＴＯＴＡＬ＿ＴＯＫＥＮにより表し、全体のパケット数の閾値を定数ＴＨ＿ＴＯＴＡＬ＿ＰＡＣＫＥＴ＿ＮＵＭにより表す。なお、これらの閾値は、無線メディアの速度やデキュー制御の動作頻度、システム全体の処理能力等によって決定される。
【００５８】
このように、自ノードによって送信可能なトークン量およびパケット数を超える送信データを送出しないように調節することによって、自ノードにおける下位層でのキュー溢れを防ぐことができる。
【００５９】
また、送信キュー２００全体のトークン量およびパケット数の閾値のみならず、送信キュー２００における各キューのトークン量およびパケット数の閾値も設定しておく。宛先（ＱＩＤ）、種別（ＱＴｙｐｅ）および優先度（ＱＰｒｉｏｒ）に対応するキューのトークン量およびパケット数の閾値は、それぞれ定数ＴＨ＿ＴＯＫＥＮ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］および定数ＴＨ＿ＰＡＣＫＥＴ＿ＮＵＭ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］により表される。
【００６０】
上述のように一般にホップ数が増えるとＥｎｄ−ｔｏ−Ｅｎｄのスループットは略それに反比例して低下することから、本発明の実施の形態では各キューの宛先局へ至るホップ数ＨＣ［ＱＩＤ］に応じて全体の敷値を各キューに分散する。これにより、全体のトークン量の閾値と各キューのトークン量の閾値との関係、および、全体のパケット数の閾値と各キューのパケット数の閾値との関係は、それぞれ次式のようになる。
ＴＨ＿ＴＯＫＥＮ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］
＝ＴＨ＿ＴＯＴＡＬ＿ＴＯＫＥＮ×（１／ＨＣ［ＱＩＤ］）
ＴＨ＿ＰＡＣＫＥＴ＿ＮＵＭ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］
＝ＴＨ＿ＴＯＴＡＬ＿ＰＡＣＫＥＴ＿ＮＵＭ×（１／ＨＣ［ＱＩＤ］）
【００６１】
このように、ホップ数ＨＣ［ＱＩＤ］を用いて各キューの送出レートを絞ることにより、Ｅｎｄ−ｔｏ−Ｅｎｄで達成可能なスループット以上にトラフィックを流さないように制御して、無線マルチホップネットワークにおける輻輳の軽減を図ることができる。
【００６２】
なお、この例では全体の敷値を各キューに分散する際の係数を「１／ＨＣ［ＱＩＤ］」としたが、この係数はこれに限定されるものではない。例えば、リンクのＰＥＲ（Packet Error Rate）、自局における送受信パケット数（またはトークン量）、ＲＳＳＩ等のリンク品質を示すパラメータや無線帯域の空き時間等の因子を取り入れることも可能である。また、他局とのシグナリング（ビーコン等のブロードキャストパケットや制御パケット等のユニキャストパケットの送受信）を利用することで、さらに他局での送受信パケット数（またはトークン量）やＲＳＳＩ等の統計情報を利用することも可能である。
【００６３】
そこで、係数「１／ＨＣ［ＱＩＤ］」を一例としてαiにより表すと、上式は以下のように一般化される。但し、係数αは係数αiを内在するものであり、α＝Παj＝α1×α2×…×αnという関係を有する。
ＴＨ＿ＴＯＫＥＮ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］
＝ＴＨ＿ＴＯＴＡＬ＿ＴＯＫＥＮ×α
ＴＨ＿ＰＡＣＫＥＴ＿ＮＵＭ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］
＝ＴＨ＿ＴＯＴＡＬ＿ＰＡＣＫＥＴ＿ＮＵＭ×α
【００６４】
すなわち、ＰＨやＨＣ以外のパラメータを有効に使用することにより、無線マルチホップネットワークのトポロジーの変化が頻繁に起こる場合や無線伝送路の状態がダイナミックに変動する場合においても、輻輳の軽減およびＥｎｄ−ｔｏ−Ｅｎｄのスループットの公平性を実現することが可能となる。
【００６５】
図９は、本発明の実施の形態における送信キュー２００の送出量の比率の一例を示す図である。上述のように送信キュー２００の送出量の絶対値は、予め設定された閾値により制限される。これに対し、各キューの送出量の比率は、送出率ＴＸＲにより調整される。この送出率ＴＸＲは、次式のように、各キューのＰＨの統計量ＰＨ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］（ｔ）および宛先局へ至るホップ数ＨＣ［ＱＩＤ］の和として与えられる。
ＴＸＲ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］
＝ＨＣ［ＱＩＤ］＋ＰＨ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］（ｔ）
【００６６】
例えば、キューテーブル＃Ｂにおける転送キュー＃Ａの送出量をＸにより表し、ソースキュー＃Ａの送出量をＹにより表すと、両キューの送出量の比は、次式により表される。但し、ｆｗｄは転送キューを表し、ｓｒｃはソースキューを表す。
送出量Ｘ：送出量Ｙ＝ＨＣ［＃Ｂ］＋ＰＨ［＃Ｂ］［ｓｒｃ］［＃Ａ］
：ＨＣ［＃Ｂ］＋ＰＨ［＃Ｂ］［ｆｗｄ］［＃Ａ］
【００６７】
このように、キューにパケットが存在する間、このＴＸＲ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］を満たしながら、各キューにおける閾値に達するまでパケットの送出を行うことにより、Ｅｎｄ−ｔｏ−Ｅｎｄでのスループットの公平性を図ることができる。
【００６８】
次に本発明の実施の形態における送信制御部１００の動作について図面を参照して説明する。
【００６９】
図１０は、本発明の実施の形態におけるエンキュー制御部１１０におけるエンキュー制御処理の一例を示す図である。まず、送信キュー２００に挿入すべきパケットが発生すると、そのパケットの優先度に応じて優先度ＱＰｒｉｏｒが設定される（ステップＳ９１１）。また、そのパケットが転送パケットであれば（ステップＳ９１２）、種別ＱＴｙｐｅに転送キューを表す「ｆｗｄ」が設定される（ステップＳ９１３）。一方、転送パケットでなければ（ステップＳ９１２）、種別ＱＴｙｐｅにソースキューを表す「ｓｒｃ」が設定される（ステップＳ９１４）。
【００７０】
そして、そのパケットの宛先に対応するキューが存在すれば（ステップＳ９１５）、宛先ＱＩＤに実際の宛先（例えば＃Ｘ）が設定される（ステップＳ９１６）。もし、ルーティングプロトコルとの間のタイミングによって、そのパケットの宛先に対応するキューが存在しない場合には（ステップＳ９１５）、宛先ＱＩＤにはデフォルト用キューテーブルを示す値（＃Ｄｅｆａｕｌｔ）が設定される（ステップＳ９１７）。
【００７１】
このとき、もし対応するキュー（Ｑｕｅｕｅ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］）のキュー長Ｑｕｅｕｅ＿Ｌｅｎ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が所定の閾値を超えている場合には（ステップＳ９１８）、上位層に対してパケットの送信停止を示すフラグＳｔｏｐ＿Ｉｆ＿Ｆｌａｇを「１」に設定する（ステップＳ９１９）。
【００７２】
また、対応するキューのキュー長Ｑｕｅｕｅ＿Ｌｅｎ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が最大キュー長に達していた場合には（ステップＳ９２１）、上位層から受け取っていたパケットは破棄される（ステップＳ９２２）。一方、最大キュー長に達していない場合には（ステップＳ９２１）、対応するキューＱｕｅｕｅ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］にパケットが挿入される（ステップＳ９３０）。
【００７３】
図１１は、本発明の実施の形態におけるパケット挿入処理（ステップＳ９３０）の一例を示す図である。挿入しようとするパケットの種別ＱＴｙｐｅが転送キューを表す「ｆｗｄ」を示している場合には（ステップＳ９３１）、ある時間区間においてキューに挿入された全パケットのＰＨフィールドの値の総和を表すＰＨ＿ｔｏｔａｌ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］に、挿入しようとするパケットのＰＨフィールドの値が加算される（ステップＳ９３２）。また、この場合（ステップＳ９３１）、ある時間区間においてキューに挿入されたパケットの総数を表すＰｎｕｍ＿ｔｏｔａｌ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］に、「１」が加算される（ステップＳ９３３）。
【００７４】
そして、そのパケットは、対応するキューＱｕｅｕｅ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］に挿入される（ステップＳ９３４）。
【００７５】
図１２は、本発明の実施の形態におけるＰＨ算出処理の一例を示す図である。このＰＨ算出処理は、エンキュー制御やデキュー制御とは独立して定期的に繰り返されるものである（ステップＳ９４１）。
【００７６】
このＰＨ算出処理では、ある時間区間においてキューに挿入されたパケットの総数を表すＰｎｕｍ＿ｔｏｔａｌ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が「０」でなければ（ステップＳ９４２）、上述の式１により統計量ＰＨ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］（ｔ）が算出される（ステップＳ９４４）。但し、Ｐｎｕｍ＿ｔｏｔａｌ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が「０」の場合には式１の第１項の分母がゼロになってしまうため、当該第１項を削除した式により算出が行われる（ステップＳ９４３）。
【００７７】
ＰＨの算出が行われると、ＰＨ＿ｔｏｔａｌ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］およびＰｎｕｍ＿ｔｏｔａｌ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］は「０」に初期化される（ステップＳ９４５およびＳ９４６）。
【００７８】
図１３は、本発明の実施の形態におけるデキュー制御部１３０におけるデキュー制御処理の一例を示す図である。図６（ａ）に示したポーリングなどによりデキュー制御処理が起動されると、開始キューテーブルが決定される（ステップＳ９５１）。この開始キューテーブルの示す値は、前回起動された際の値とは異なるように制御されることが望ましい。
【００７９】
続いて、送信キュー２００全体のトークン量およびパケット数の閾値、および、各キューのトークン量およびパケット数の閾値が決定される（ステップＳ９５２）。上述のように、各キューの閾値は、各キューの宛先局へ至るホップ数ＨＣ［ＱＩＤ］に応じて決定され得る。
【００８０】
その後、送信キュー２００全体のキュー長（ｑｕｅｕｅ＿ｌｅｎ．ａｌｌ）が「０」になるまで（ステップＳ９５３）、以下の処理が繰り返される。まず、送信キュー２００における何れのキューから送信データ（パケット）を送出すべきかが決定される（ステップＳ９６０）。すなわち、宛先（ＱＩＤ）、種別（ＱＴｙｐｅ）および優先度（ＱＰｒｉｏｒ）が決定される。
【００８１】
そして、ステップＳ９６０で決定されたキューＱｕｅｕｅ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］の先頭に保持されているパケットが取り出され、下位層へ送出される（ステップＳ９５４）。
【００８２】
パケットが送出されると、以下のように管理用の変数が更新される。すなわち、対応するキューにおいて送出されたトークン量の総数を管理する変数ｔｏｋｅｎ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］に、送出されたパケットのパケット長ｐａｃｋｅｔ＿ｌｅｎが加算される（ステップＳ９５５）。また、対応するキューにおいて送出されたパケットの総数を管理する変数ｐａｃｋｅｔ＿ｎｕｍ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］に、「１」が加算される（ステップＳ９５６）。また、総トークン量を管理する変数ｔｏｔａｌ＿ｔｏｋｅｎに、送出されたパケットのパケット長ｐａｃｋｅｔ＿ｌｅｎが加算される（ステップＳ９５７）。さらに、総パケット数を管理する変数ｔｏｔａｌ＿ｐａｃｋｅｔ＿ｎｕｍに、「１」が加算される（ステップＳ９５８）。
【００８３】
その結果、変数ｔｏｔａｌ＿ｔｏｋｅｎが閾値ＴＨ＿ＴＯＴＡＬ＿ＴＯＫＥＮを超えている場合または変数ｔｏｔａｌ＿ｐａｃｋｅｔ＿ｎｕｍが閾値ＴＨ＿ＴＯＴＡＬ＿ＰＡＣＫＥＴ＿ＮＵＭを超えている場合には（ステップＳ９９８）、デキュー制御処理を終了する。
【００８４】
また、変数ｔｏｋｅｎ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が閾値ＴＨ＿ＴＯＫＥＮ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］を超えている場合または変数ｐａｃｋｅｔ＿ｎｕｍ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が閾値ＴＨ＿ＰＡＣＫＥＴ＿ＮＵＭ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］を超えている場合にも（ステップＳ９９９）、デキュー制御処理を終了する。
【００８５】
図１４は、本発明の実施の形態における送信キュー決定処理（ステップＳ９６０）の一例を示す図である。まず、この送信キュー決定処理において使用されるパラメータが初期化される（ステップＳ９６１）。すなわち、宛先（ＱＩＤ）、種別（ＱＴｙｐｅ）および優先度（ＱＰｒｉｏｒ）には、それぞれ前回の値（ＱＩＤ＿ｐｒｅｖ、ＱＴｙｐｅ＿ｐｒｅｖ、ＱＰｒｉｏｒ＿ｐｒｅｖ）が設定される。また、送出率ＴＸＲの現在の値ｔｘｒ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］には、前回の値ｔｘｒ＿ｐｒｅｖ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が設定される。
【００８６】
現在着目している種別（ｆｗｄまたはｓｒｃ）のキューの全体のキュー長が「０」である場合（ステップＳ９６２）、宛先ＱＩＤに開始キューテーブルの値が初期値として設定され（ステップＳ９７３）、優先度ＱＰｒｉｏｒに最も高い優先度が設定された後に（ステップＳ９７４）、種別（ＱＴｙｐｅ）の切替が行われる（ステップＳ９８０）。
【００８７】
ステップＳ９６２において、現在着目している種別のキューの全体のキュー長が「０」でないと判断された場合、現在着目している種別および優先度のキューの全体のキュー長が「０」であるか判断される（ステップＳ９６３）。その結果、「０」であると判断された場合、優先度ＱＰｒｉｏｒが最も低い優先度であれば上述のステップＳ９７３以降の処理が行われ（ステップＳ９７１）、最も低い優先度でなければ次に低い優先度が優先度ＱＰｒｉｏｒに設定される（ステップＳ９７２）。
【００８８】
ステップＳ９６３において、現在着目している種別および優先度のキューの全体のキュー長が「０」でないと判断された場合、現在着目している宛先、種別および優先度のキューのキュー長が「０」であるか判断される（ステップＳ９６４）。その結果、「０」であると判断された場合、宛先ＱＩＤが開始キューテーブルの値と一致していれば上述のステップＳ９７１以降の処理が行われ（ステップＳ９６８）、一致していなければラウンドロビンなどにより決定される次の宛先が宛先ＱＩＤに設定される（ステップＳ９６９）。
【００８９】
ステップＳ９６４において、現在着目している宛先、種別および優先度のキューのキュー長が「０」でないと判断された場合、現在の送出率ｔｘｒ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が、設定された送出率ＴＸＲ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］以上になっていないか判断される（ステップＳ９６５）。現在の送出率ｔｘｒ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］がＴＸＲ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］以上であれば上述のステップＳ９６８以降の処理が行われる。一方、現在の送出率ｔｘｒ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］がＴＸＲ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］以上でなければ、現在の送出率ｔｘｒ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が更新される（ステップＳ９６６）とともに、パラメータが保存される（ステップＳ９６７）。すなわち、宛先（ＱＩＤ）、種別（ＱＴｙｐｅ）および優先度（ＱＰｒｉｏｒ）の値が、それぞれ前回の値（ＱＩＤ＿ｐｒｅｖ、ＱＴｙｐｅ＿ｐｒｅｖ、ＱＰｒｉｏｒ＿ｐｒｅｖ）として保存される。また、送出率ＴＸＲの現在の値ｔｘｒ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］が、前回の値ｔｘｒ＿ｐｒｅｖ［ＱＩＤ］［ＱＴｙｐｅ］［ＱＰｒｉｏｒ］として保存される。
【００９０】
この例では、ステップＳ９６６において、送出率ｔｘｒはパケット数を単位として更新されるものとしている。したがって、ＴＸＲの設定の際には、四捨五入による整数化がなされているものと想定している。なお、この送出率ｔｘｒはトークン量を単位として更新されてもよい。
【００９１】
図１５は、本発明の実施の形態における種別（ＱＴｙｐｅ）の切替処理（ステップＳ９８０）の一例を示す図である。まず、現在の種別（ＱＴｙｐｅ）がソースキュー（ｓｒｃ）でなければ（ステップＳ９８１）、次の種別としてＱＴｙｐｅにソースキューを表す「ｓｒｃ」が設定される（ステップＳ９８２）。一方、現在の種別（ＱＴｙｐｅ）がソースキュー（ｓｒｃ）であれば（ステップＳ９８１）、次の種別としてＱＴｙｐｅに転送キューを表す「ｆｗｄ」が設定される（ステップＳ９８３）とともに、全ての現在の送出率ｔｘｒ［ｉ］［ｊ］［ｋ］が「０」に初期化される（ステップＳ９８４）。したがって、送出率の比率は優先度毎に初期化されることになる。
【００９２】
このように、本発明の実施の形態によれば、送信キュー２００から送信データ（パケット）を取り出すデキュー制御の際、無線マルチホップネットワークにおけるホップ数を利用することによって、輻輳状態を回避して、Ｅｎｄ−ｔｏ−Ｅｎｄにおけるスループットの公平性を担保することができる。
【００９３】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【００９４】
すなわち、請求項１または９において、送信キューは例えば送信キュー２００に対応する。また、エンキュー制御手段は例えばエンキュー制御部１１０に対応する。また、デキュー制御手段は例えばデキュー制御部１３０に対応する。
【００９５】
また、請求項５において、転送キューは例えば転送キュー２１０に対応する。また、ソースキューは例えばソースキュー２２０に対応する。
【００９６】
また、請求項８において、優先度キューは例えば優先度キュー２１１に対応する。
【００９７】
また、請求項１０または１１において、送信キューは例えば送信キュー２００に対応する。また、エンキュー手順は例えばステップＳ９３４に対応する。また、デキュー手順は例えばステップＳ９５３乃至Ｓ９９９に対応する。
【００９８】
なお、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。
【図面の簡単な説明】
【００９９】
【図１】本発明の実施の形態の無線通信システムの一例を示す図である。
【図２】無線マルチホップネットワークにおける無線通信装置（ノード）間の関係例を示す図である。
【図３】本発明の実施の形態においてＰＨが伝達される様子の一例を示す図である。
【図４】本発明の実施の形態における無線通信装置の送信制御部１００の一構成例を示す図である。
【図５】本発明の実施の形態における無線通信装置の送信キュー２００の一構成例を示す図である。
【図６】本発明の実施の形態における送信キュー２００からのデキュータイミングの例を示す図である。
【図７】本発明の実施の形態におけるキューテーブル２０１の決定例を示す図である。
【図８】本発明の実施の形態における送信キュー２００の送出量の基準例を示す図である。
【図９】本発明の実施の形態における送信キュー２００の送出量の比率の一例を示す図である。
【図１０】本発明の実施の形態におけるエンキュー制御部１１０におけるエンキュー制御処理の一例を示す図である。
【図１１】本発明の実施の形態におけるパケット挿入処理（ステップＳ９３０）の一例を示す図である。
【図１２】本発明の実施の形態におけるＰＨ算出処理の一例を示す図である。
【図１３】本発明の実施の形態におけるデキュー制御部１３０におけるデキュー制御処理の一例を示す図である。
【図１４】本発明の実施の形態における送信キュー決定処理（ステップＳ９６０）の一例を示す図である。
【図１５】本発明の実施の形態における種別（ＱＴｙｐｅ）の切替処理（ステップＳ９８０）の一例を示す図である。
【符号の説明】
【０１００】
１０、２０、３０  無線通信装置
１１、２１、３１  通信範囲
１００  送信制御部
１１０  エンキュー制御部
１３０  デキュー制御部
２００  送信キュー
２０１  キューテーブル
２１０  転送キュー
２２０  ソースキュー
４０１  下位層のキュー
【図１】
2008103899.tif 000003
【図２】
2008103899.tif 000004
【図３】
2008103899.tif 000005
【図４】
2008103899.tif 000006
【図５】
2008103899.tif 000007
【図６】
2008103899.tif 000008
【図７】
2008103899.tif 000009
【図８】
2008103899.tif 000010
【図９】
2008103899.tif 000011
【図１０】
2008103899.tif 000012
【図１１】
2008103899.tif 000013
【図１２】
2008103899.tif 000014
【図１３】
2008103899.tif 000015
【図１４】
2008103899.tif 000016
【図１５】
2008103899.tif 000017