説明

ワイヤレス通信のためのブロック肯定応答の方法、装置及びシステム

【課題】待ち時間及びQoS要件を満たすことを試みながら、ブロック肯定応答を全ポーリング技法と共に使用することによってオーバヘッドを低減させるためのシステム及び方法を提供すること。
【解決手段】各ノードは、ポーリング・メッセージを受信すると、いくつかのパケット、またはいくつかのパケットがアグリゲーションされたパケットを送信する。次いで、アクセス・ポイント(AP)は、ブロック肯定応答(BlockAck)で返答し、このブロック肯定応答は、後続のポーリング・メッセージと組み合わされ、パケット受信成功の場合は1を、受信失敗の場合は0を示すビット・マップを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般には、ワイヤレス通信を対象とし、より詳細には、ポーリングベースのアクセス法においてデータの受信を肯定応答するためにブロック肯定応答を使用することを対象とする。
【背景技術】
【0002】
アクセス・ポイント(AP:access point)によって各非AP STA(station:局)を定期的にポーリングするために使用される時間間隔であるスケジュールされたサービス間隔(SI:service interval)は、3つの期間:網羅的ポーリング段階、選択的ポーリング段階、及びCSMA段階に分割することができる。
【0003】
網羅的ポーリング段階では、APは、ポーリング・パケットを送信することによって、サービス品質(QoS:Quality of Service)送信を必要とするSTAのすべてをポーリングする。それぞれのSTAは、ポーリング・パケットを受信した後、そのデータを送信する。
【0004】
選択的ポーリング段階では、APは、網羅的ポーリング段階の間にいずれかのSTAからのデータ受信に失敗したかどうかチェックし、次いで、失敗したSTAを選択的にポーリングする。APは、失敗したSTAのすべてからデータをうまく受信するまで、失敗したSTAをポーリングし続ける。
【0005】
搬送波感知多重アクセス(CSMA:Carrier Sense Multiple Access)段階は、CSMA機構に基づいてレガシ・デバイスが通信するためのものである。QSTA以外の局は、この期間に通信する。また、すべてのSTAは、この期間に、いくつかの構成パケットをAPと通信することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】Ma,J.、Fujiwara,R.、Systems,Methods,and Apparatuses for Wireless Methods、米国特許出願第13/101,998号、2011年5月5日出願
【特許文献2】Uh,R.他、Method for Processing Packets and Scheduling Superframe in Polling Based WLAN System、米国特許公開第2006/0109833号、2005年11月5日出願
【特許文献3】Tao,Z.他、Cooperative Ultra−Reliable Wireless Communications、米国特許公開第2010/0254369号、2009年4月7日出願
【発明の概要】
【発明が解決しようとする課題】
【0007】
パケット・ロス率並びに待ち時間の低減のためアクセス・ポイント(AP:Access Point)が非衝突(CF:Contention Free)送信を管理できるように、ポーリング技法が求められている。ポーリング技法は、待ち時間を最小限に抑えるために、失敗した送信についてだけ繰り返されるべきである。しかし、ポーリング・パケット、並びに必要とされる肯定応答パケットによって、追加のオーバヘッドがもたらされる。追加のオーバヘッドを低減させることができるならば、効率を向上させることができる。
【課題を解決するための手段】
【0008】
例示的な実施例の態様は、アクセス・ポイント(AP)を含んでよく、このアクセス・ポイントは、ブロック肯定応答(BlockAck)設定情報に従って全登録ノードにポーリングを行う網羅的ポーリング段階又はパケット通信誤りの発生したノードにのみポーリングを行う選択的ポーリング段階の間にデータ・パケットを受信する受信機と、BlockAck設定情報、及び網羅的ポーリング段階又は選択的ポーリング段階の間にデータ・パケットのうちの正しく受信されたデータ・パケットを示すビット・マップを備えるBlockAckパケットを送信する送信機とを含む。
【0009】
例示的な実施例の態様は、ブロック肯定応答(BlockAck)設定情報を送信するステップと、網羅的ポーリング段階又は選択的ポーリング段階の間にBlockAck設定情報に応答してデータ・パケットを受信するステップと、受信されたデータ・パケットのうちの正しく受信されたデータ・パケットを示すビット・マップを備えるBlockAckパケットを生成するステップとを伴う方法をさらに含んでよい。
【0010】
例示的な実施例の態様は、局(STA)をさらに含み、この局は、データ・パケット用のバッファ・ウィンドウを備えるブロック肯定応答(BlockAck)設定情報を受信する受信機と、網羅的ポーリング段階又は選択的ポーリング段階の間にバッファ・ウィンドウに従ってデータ・パケットを送信する送信機とを含む。受信機は、データ・パケットのうちの正しく受信されたデータ・パケットを示すビット・マップを備えるBlockAckパケットを受信する。
【0011】
例示的な実施例の態様は、データ・パケットのバッファ・ウィンドウを備えるブロック肯定応答(BlockAck)設定情報を受信するステップと、バッファ・ウィンドウに従ってデータ・パケットを送信するステップと、データ・パケットのうちの正しく受信されたデータ・パケットを示すビット・マップを備えるBlockAckパケットを受信するステップとを含む、局(STA)を操作する方法をさらに含んでよい。
【0012】
これら及び/又は他の態様は、添付の図面と併せて考慮されると、下記の実施例実施形態についての説明からより容易に理解されよう。
【図面の簡単な説明】
【0013】
【図1】例示的な一実施例実施形態による、IEEE 802.11n規格のBlockAck交換手順の実装形態を示す図である。
【図2】例示的な一実施例実施形態による、IEEE 802.11n規格のBlockAck設定のパケット形式を示す図である。
【図3a】例示的な一実施例実施形態による、網羅的ポーリング段階の間にブロック肯定応答を、選択的ポーリング段階の間に単一肯定応答を使用するシステムを示す図である。
【図3b】例示的な一実施例実施形態による、選択的ポーリング段階の間にブロック肯定応答を使用するシステムを示す図である。
【図3c】例示的な一実施例実施形態による、パケットアグリゲーションを用いたシステムを示す図である。
【図4】例示的な一実施例実施形態による、APの操作の例示的なフローチャートである。
【図5】例示的な一実施例実施形態による、非衝突ポーリング(CF−Poll)及び非衝突肯定応答(CF−Ack)メッセージと組み合わされたBlockAckの例示的な実装形態を示す図である。
【図6】例示的な一実施例実施形態による、ポーリングをBlockAckと組み合わせた後に交換されるメッセージの内容及び順序を示す図である。
【図7】例示的な一実施例実施形態による、ポーリング+BlockAckメッセージを含む、QoSデータ+CF−Poll+CF−Ackメッセージの例示的なヘッダ形式を示す図である。
【図8】例示的な一実施例実施形態による、ポーリング・メッセージのペイロード内に含まれるBlockAckについての例示的な設定情報を示す図である。
【図9】例示的な一実施例実施形態による、ポーリング・メッセージのペイロード内に含まれる例示的なBlockAckを示す図である。
【図10】例示的な一実施例実施形態による、BlockAck設定応答に関連する情報を運ぶためにアドレス4フィールドを使用することを示す図である。
【図11】例示的な一実施例実施形態による、ポーリング段階のフローチャートである。
【図12】例示的な一実施例実施形態による、非AP STA動作のフローチャートである。
【図13】例示的な一実施例実施形態による、最適化アルゴリズムのフローチャートである。
【図14】パラメータがすべてのノードについて同じであると仮定される場合のパケット・ロス率のプロットを示す図である。
【図15】n=1の場合はSingleAck、n>1の場合はBlock Ackのパケット・ロス率のプロットを示す図である。
【図16】例示的な一実施例実施形態による、SingleAckとBlockAckの両方について最適化アルゴリズムが実施された後のMACスループットを示す図である。
【発明を実施するための形態】
【0014】
本明細書に述べられた例示的な実施例実施形態は、ファクトリ・オートメーション、ビル・オートメーション、プロセス・オートメーション及びビデオ監視など、ワイヤレスの産業応用例を対象とする。こうした応用例からの要件は、レガシWiFiデバイスと共存可能でありながら待ち時間を減少させ、信頼性を高める方式を必要とする。こうしたネットワーク内の制御システムのタイミング制約が非常に低い(例えば配信待ち時間が10ms以下である)ので、決定論的な待ち時間は重要である。同様に、パケット・ロス率は、こうしたネットワーク内の信頼できるデータ配信(例えば10−6パケット・ロス率以下)を保証できるほど小さくなければならない。
【0015】
例示的な実施例実施形態は、ポーリング/肯定応答オーバヘッドを減少させるための技法を提供する。また、効率をさらに向上させるには、サービス品質(QoS)が保証され、スループットが最大化されるようにリソースを分配するために、最適化アルゴリズムが、例示的な実施例実施形態によって使用される。
【0016】
IEEE 802.11nでは、クライアントは、例示的な一実施例実施形態によるBlockAckを確立する前に、トラフィック・ストリーム(TS:Traffic Stream)管理シグナリングを介してAPに加わる。クライアントは、まずBlockAck要求をAPに送信し、このBlockAck要求は、クライアントの第1のパケットのシーケンス番号(WinStartSN)、並びにMAC(Media Access Control:メディア・アクセス制御)サービス・データ単位(MSDU:MAC service data unit)のトラフィック識別子(トラフィックID)を含んでいる。次いで、APは、WinStartSNを確認し、また送信側ノードのための受信ウィンドウのバッファ・サイズを送るためにもBlockAck応答で返答する。バッファ・サイズは、1つのBlockAck内の肯定応答のためにいくつの連続したパケットを送信できるか示す。連続したパケットの数は、スループット要件、パケット長、ノードの数、SIの長さ、チャネル条件などに基づいて、APによって決定される。クライアントから複数のパケットが送信された後、APは、開始シーケンス番号並びにビット・マップを含んでいるメッセージで返答し、このビット・マップでは、正しく受信されたパケット及び/又は間違えて受信されたパケットを示すビットによって各パケットを表すことができる(例えば、受信成功の場合は1に設定され、受信失敗の場合は0に設定される)。
【0017】
図1は、例示的な一実施例による、IEEE 802.11n規格のBlockAck交換手順の実装形態を示している。100に示されたように、BlockAck要求が、クライアントからAPに送られてよい。次いで、101で、APは、クライアントにBlockAck応答を送ってよい。102で、クライアントは、BlockAck応答のパラメータに従って、APにデータ・パケットを送る。103で、APは、BlockAckを送ることによってデータ・パケットを肯定応答する。
【0018】
図2は、例示的な一実施例による、IEEE 802.11n規格のBlockAck設定手順のパケット形式を示している。BlockAck設定パケットは、フレーム制御200、フレームの継続時間201、及びシーケンス制御205用の2オクテットのエントリ、宛先アドレス202、送信元アドレス203及び基地局識別子204用の6オクテットのエントリ、フレーム・ボディ206用の最大2312オクテット、並びにフレーム検査シーケンス207用の4オクテットのエントリなど、MACパケットからの標準フィールドを含んでよい。
【0019】
IEEE 802.11n規格では、BlockAckは、2つのタイプの情報、すなわち固定フィールド情報208及び情報要素209に分割することができる。固定フィールド情報208は、A−MSDUサポート210及びBlockAckポリシー211用の単一のオクテット・エントリと、トラフィック識別子212用の4オクテットのエントリと、バッファ・ウィンドウ・サイズ213用の10オクテットのエントリとを含む。情報要素209は、受信されたパケットの開始シーケンス番号214用の2オクテットのエントリと、正しく受信されたパケットを示すビット・マップ215用の8オクテットのエントリとを含む。
【0020】
例示的な実施例は、BlockAckを全ポーリング技法と共に使用することによってオーバヘッドの低減を試み、それによって、待ち時間及びQoS要件を満たしながら、効率の向上を提供すべきである。例示的な実施例では、APは、網羅的ポーリング段階の間においてすべての非AP STAに対してポーリングを行う。選択的なポーリング段階では、APは、網羅的ポーリング段階の間にAPがそこからのデータの受信に失敗したSTAをに対してポーリングする。例示的な実施例では、それぞれのノードは、ポーリング・メッセージを受信すると、最大n個のパケットを連続で送信、あるいは最大n個のパケットがアグリゲーションされたパケットを送信する。次いで、APは、BlockAckで返答し、このBlockAckは、次のポーリング・メッセージ内で組み合わされ、正しく受信されたパケット、及び/又は間違えて受信されたパケット(例えば、受信成功のパケットの場合は1、受信失敗の場合は0)を示すことができるビット・マップを含む。例示的な実施例は、スループット最適化に基づいて、各ノードについてBlockAckごとのパケットのサイズ及びパケットの数を選択する最適化アルゴリズムをも含む。最適化によって、スループットの増加、及びAPにデータ・パケットを送信できるノードの数の増加をもたらすことができる。何らかのシグナリングによる網羅的ポーリング段階の前にクライアントがAPに加わるので、APは、このシグナリングに基づいて、各ノードの最大の物理層データ・レートを知る。したがって、APは、この情報を使用して、最適化アルゴリズムを実行し、各ノードにパケット・サイズ及びバッファ・サイズ(BlockAck当たりのパケット数、n)を割り当てる。APは、ポーリング・メッセージ内にこうした情報を含むこともできる。非AP STAノードは、ポーリング・メッセージを受信すると、最大n個のパケットを連続で送信、あるいは最大n個のパケットがアグリゲーションされたパケットを送信する。
【0021】
例示的な実施例は、複数の物理層パケットが組み合わされて集約パケットになるパケット集約の場合に使用することもできる。述べられたようなBlockAckは、説明されたビット・マップを使用して複数の物理層パケットの受信を肯定応答するために使用することができる。
【0022】
APは、パケットの受信を確認するために次のポーリング・メッセージ内にBlockAckを含む。BlockAckは、パケットのステータス(パケット受信成功の場合は1、受信失敗の場合は0を示す)を示すビット・マップを含んでいる。APは、非AP STAパケットのいずれかがうまく受信されなかった場合、パケットのすべてがうまく受信されるまで、次の選択的ポーリング段階で非AP STAを再びポーリングする。
【0023】
したがって、APによって送られたポーリング・メッセージは、下記を含んでよい:
(ポーリング・メッセージ+BlockACKsetup+(BlockACK)
【0024】
パケットは、ノードiへのポーリング・メッセージ、並びにノードiのBlockAckを設定するのに必要な情報、並びにノードjに向けられたブロック肯定応答を含んでよい。(ポーリング・メッセージ+BlockACKsetup)がノードiに向けられる場合、ノードjとノードiの間のポーリング・メッセージが失敗したならば、ノードiの前にポーリングされたノードのアドレスとしてjがi−1,i−2であり得るとき、BlockAckは、同時にノードjに向けることもできる。したがって、ポーリング・メッセージがBlockAckと組み合わされるので、信頼性を高めることができ、またBlockAckを再送することによって例示的な実施例は、ポーリング+BlockAckメッセージがノードjによって全く受信されなかった場合にノードjがその肯定応答を受信していることを保証する。
【0025】
図3a及び3bは、例示的な一実施例による、それぞれ網羅的ポーリング段階の間にブロック肯定応答を、選択的ポーリング段階の間に単一肯定応答使用するシステム、及び選択的ポーリング段階の間にブロック肯定応答を使用するシステムを示している。両方の場合において、APは、網羅的ポーリング段階の間のデータ・パケット受信のための個々のノードに向けられたポーリング・パケット304を送る。しかし、図3aでは、選択的ポーリング段階の間、ポーリングされたノードは、単一のパケットを送り300、送られるとAPは、単一のパケットの受信を肯定応答する301。図3bでは、選択的ポーリング段階の間、ポーリングされたノードは、複数のパケットを送り302、送られるとAPは、ブロック肯定応答を使用して、複数のパケットの受信を肯定応答する303。図3に見られるように、ポーリング・パケットが送られるごとに、2つ以上のパケットを、APによって受信することができる。図4は、例示的な一実施例による、APの操作の例示的なフローチャートを示している。S403のCSMA段階の間、TS管理フレームが周期的に交換され、S400で、ポーリング・リストが、ノードからのデータ送信を求める要求に基づいて更新される。また、APは、最適化アルゴリズムで使用されるすべてのノードからチャネル情報を収集する。収集された情報に基づいて、APは、S401で、最適化アルゴリズムを実行し、ポーリング段階の間S402で、更新されたポーリング・リストに従って、ノードをポーリングする。
図3cは、例示的な一実施例による、ノードから送信されたデータにおいて最大n個のパケットがアグリゲーションされた場合のシステムを示している。
【0026】
図5は、例示的な一実施例による、CF−Poll及びCF−Ackメッセージと組み合わされたBlockAckの例示的な実装形態を示している。図2に示されたBlockAckの要素を参照する。CF−poll+CF−ackメッセージは、MSDU 210のトラフィックID(TID)212、並びにクライアント1から入ってくる送信用のバッファ・サイズ(n)213又はウィンドウ・サイズを含む。次いで、クライアントは、APによるWinSizeの選択に基づいて、データ・パケットを送信し始める。WinSizeは、ポーリングの間に受信できるパケットの数、並びにパケットのサイズを示すための情報を含んでよい。APは、ポーリング段階(網羅的ポーリング段階又は選択的ポーリング段階)内に送信できるデータ・パケットの数の評価、スループットを最適化するパケットのサイズの評価、及びWinStartSNの評価に基づいてWinSizeを選択することができる。APがどのようにWinSizeを決定できるかについての一例が、図13に示されている。
【0027】
送信されたデータ・パケットは、APが受信側バッファの先頭のシーケンス番号を知ることができるように、データ・パケットのヘッダ内にWinStartSN(SSN)214を含むべきである。データ送信終了後、APは、TIDとWinSizeと共に新しいCF−poll+CF−ackをクライアント2に送り、このメッセージは、クライアント1のBlockAckを含む。
【0028】
図6は、例示的な一実施例による、ポーリングをBlockAckと組み合わせた後に交換されるメッセージの内容及び順序を示している。600で、APは、パケット受信のためにノードにTID及びバッファ・サイズを送る。601で、ノードは、TID及びバッファ・サイズを肯定応答し、APに送られるデータ・パケットのヘッダの一部として、パケットの開始シーケンス番号を送る。602で、ノードは、APによるWinSize選択に基づいて、APにデータ・パケットを送る。603で、APは、受信されたデータ・パケットを肯定応答するためにBlockAckを送る。BlockAckは、604に示されたように、次のクライアントへのポーリング・パケット内に含まれる。605に示されたように、次のクライアントは、ポーリング・メッセージに応答してデータ・パケットを送る(submit)。
【0029】
図7は、例示的な一実施例による、ポーリング+BlockAckメッセージを含むQoSデータ+CF−poll+CF−ackメッセージの例示的なヘッダ形式を示している。ポーリング・パケットは、フレーム制御700、識別子701、パケットのシーケンス制御705及びQoS制御フィールド707用の2オクテットのエントリを含む。識別子701は、n個のパケットに関して持続時間を示すために使用することができる。
【0030】
702、703、704及び706に示されたようにポーリング・パケットは、アドレス用の6オクテットのエントリをも含む。例えば、アドレス1 702は、受信機のアドレス用に使用することができ、アドレス2 703は、送信機のアドレス用に使用することができる。アドレス3 704は、フレームの最終宛先を示す宛先アドレス用に使用することができ、アドレス4は、フレームを作成した送信元のMACアドレスである送信元アドレス用に使用することができる。
【0031】
ポーリング・パケットは、ヘッダ・タイプ708及びビット誤り検査710用に標準の4オクテットのエントリをも含む。
【0032】
フレーム制御700は、バージョン711及びタイプ712用の2ビットのエントリと、サブタイプ713用の4ビットのエントリと、フレームが配信システムへと進んでいるか714、それとも配信システムから来ているか715を示す1ビットのエントリを含んでよい。さらなるフラグ716への1ビットのエントリは、送信されるフレームのさらなるフラグがあるかどうかを示す。再試行717用の1ビットのエントリは、フレームが以前に送られたことを示す。電力管理718用の1ビットのエントリは、STAがアクティブか、それとも省電力モードかを示す。さらなるデータ719用の1ビットのエントリは、より多くのフレームが来る途中であるかどうか省電力STAに示すために使用される。ワイヤレス暗号化プロトコル(WEP:wireless encryption protocol)用の1ビットのエントリは、WEPが使用されているかどうかを示す。順序721用の1ビットのエントリは、フレームを順番に処理すべきかどうかを示す。例示的な一実施例では、タイプは、データについては1に設定され、サブタイプは、QoSデータ+CF−Poll+CF−Ackでは1011に設定される。図8は、例示的な一実施例による、ポーリング・メッセージのペイロード内に含まれるBlockAckに関する例示的な設定情報を示している。ペイロードは、BlockAckの設定709−1及びBlockAck自体709−2用の設定を含むように分離される。クライアントiのBlockACK設定は、MSDUサポート210用の1オクテットのエントリを含み、このエントリは、1に設定されたときに、iの送信のためにA−MSDUを使用することを可能にする、BlockAck設定709−1は、BlockAckポリシー211用に1オクテットのエントリをも含み、このエントリは、即時のBlockAckについては1に設定され、遅延されたBlockAckについては0に設定できるサブフィールドである。BlockAck設定709−1は、TIDのバッファの数を示すバッファ・サイズ(WinSize)213用の4オクテットのエントリを含むこともできる。
【0033】
図9は、例示的な一実施例による、ポーリング・メッセージのペイロード内に含まれる例示的なBlockAckを示している。クライアントjのためのBlockAck 709−2は、開始シーケンス番号(WinStart SN)215用に2オクテットのエントリを含み、この開始シーケンス番号(WinStart SN)215は、開始シーケンス番号、又はAPのバッファの先頭のパケットのシーケンス番号である。BlockAck 709−2は、最大64個のMSDU及びA−MSDUの受信されたステータスを示すために使用されるビット・マップ215用の8オクテットのエントリをさらに含んでよい。1に設定される各ビットは、単一MSDU又はAMSDU受信の成功を、シーケンス番号の順序で肯定応答する。任意選択で、BlockAck 709−2は、衝突の場合に信頼性を保証する最大M個の以前の送信に肯定応答を向けているクライアントjのアドレス900用の2オクテットのエントリを含むこともできる。
【0034】
図10は、例示的な一実施例による、開始シーケンス番号とTIDとを含めてBlockAck設定応答に関連する情報を運ぶためにデータ・パケットのアドレス4フィールド706を使用することを示している。クライアントiによって送られるすべてのメッセージは、(データ・フレームが、あるAPから別のAPにWMを介して配信されているときに802.11nだけで使用される)アドレス4フィールドの情報フィールドを含む。情報は、APで、クライアントのWinStartシーケンス番号1001及びバッファ・サイズ(WinSize)213に基づいてAPのバッファを調整するために使用される。図2から参照されるように、アドレス4フィールド706は、A−MSDUサポート210及びBlockAckポリシー211用の単一オクテットのエントリと、トラフィック識別子212用の4オクテットのエントリと、バッファ・ウィンドウ・サイズ213用の10オクテットのエントリとを含む。アドレス4は、受信されたパケットの開始シーケンス番号1000用の16オクテットのエントリを含むこともできる。
【0035】
図11は、例示的な一実施例による、ポーリング段階のフローチャートを示している。ポーリング段階は、S1100で、APがスケジュールの第1のノードにCF−poll+CF BlockAck設定を送るときに開始する。その間、APは、2つのパラメータ、APのノードへのBlockAckごとのパケットの数としてnを、またこのポーリング試行内でこのノードからうまく受信されたパケットの数としてm(m=n)を設定する。S1101で、APがポイント調整機能フレーム間隔(PIFS:Point Coordinated Function Interframe Space)時間内にパケットを受信する場合、パケットは、S1103に示されたようにAPに転送され、S1104に示されたように、カウンタnが1だけ減らされる。パケットがPIFS内に受信されない場合は、S1102に示されたように、ノードが、エラー・リストに追加される。
【0036】
S1105に示されたようにパケットがうまく受信される場合は、S1106に示されたように、mが1だけ減らされる。APは、送信が完了したかどうか確かめるために、S1107で、nが0に等しいかどうかチェックする。そうでない場合は、S1108で、APは、次のパケットを待つ。
【0037】
伝送が完了した場合は、S1109で、APは、パケットのすべてが正しく受信されたことを保証するために、m=0であるかどうかチェックする。パケットが正しくに受信されなかった場合は、S1110に示されたように、ノード、及び間違えて受信されたパケットが、BlockAck内のビット・マップのためのリストに追加される。APは、エラー・リスト(再びポーリングすべきノードのリスト)にノード及び間違えたパケットを追加し、次いで、S1112で、次のノードをポーリングするさらなる時間があるかどうかチェックする。新しいポールを送るとき、APは、成功したパケットの場合は1、間違えたパケットの場合は0を有するビット・マップを伴うBlockAckを含む。APがnをチェックするとき、nが0に等しくない場合は、さらなるパケットが到着するはずであることを意味し、したがって、APは、パケットを待ち、次いで、パケットがAPに向けられるかどうかのチェックに戻る。
【0038】
パケットが正しく受信された場合、APは、S1111に示されたように、スケジュールからノードを削除し、S1112で、さらなるノードをポーリングする必要があるかどうかチェックする。さらなるノードをポーリングする必要がない場合は、APは、S1114に示されたように、ポーリング段階の終了を示すためにCF−Endパケットを送る。
【0039】
さらなるノードをポーリングする必要がある場合は、APは、S1113で、さらなるノードをポーリングできるほど十分な時間があるかどうかチェックする。そうである場合は、APは、スケジュール内の次のノードに新しいポールを送り、S1100に進むことができる。十分な時間がなく、又はスケジュール内にポーリングすべきさらなるパケットがない場合は、APは、最後のBlockAckを含むCF−endメッセージを送る。
【0040】
図12は、例示的な一実施例による、非AP STA動作のフローチャートを示している。S1200でパケットを準備した後、S1201で、STAは、ポーリング・メッセージを待つ。S1202で、STAは、STAに向けられた有効なポールの受信を待つ。受信すると、STAは、S1203でポーリング・メッセージからn(バッファ・サイズ)を抽出し、S1204でパケットを送り、nを1だけ減少させる。S1206で、STAは、nが0に等しいかどうかチェックする。そうである場合は、STAは、S1207に進んで、STAのためのBlockAckを運ぶ次のポーリング・メッセージを待つ。S1208ですべてのパケットが肯定応答される場合は、STAは、S1200で次のパケットを準備する。パケットがうまく肯定応答されない場合は、ノードは、S1201に戻ることによって、パケットを再送するために次のポーリング・メッセージを待つ。nをチェックする場合、nが0に等しくない場合は、STAは、別のパケットを準備し、このパケットを送る。
【0041】
APは、下記の表1に示されたように、様々なパラメータについて考慮することによって各ノードに最適のパラメータを選択する。BER(Bit Error Rate:ビット誤り率)がすべてのノードについて同じである場合、APでポールを送った後にパケットを受信しない確率は、ノードによって異なる。さらに、物理層データ・レートもまた、各ノードのSNRに基づいて選択されたノードごとに異なる。
【0042】
したがって、網羅的ポーリング段階の平均の長さは、下記の通り計算することができる。
【0043】
【数1】

【0044】
【表1】

【0045】
例示的な実施例は、ゼロに近いパケット・ロス率をもたらすSIの最小長を計算することによってスループットの最適化を試みる。最終的な成功した送信の送信数は、パラメータPeri=Pvi+(1−Pvi)Pで幾何学的に分布しているので、N個のノードの合計時間は、下記の通りである。
ρi=(1−Pvi)SIFS+ni SIFS+PviPIFS
ηi=(1−Pvi
σi=−Pvi
ωi=(1−BER)のとき、
【数2】

【0046】
MACスループットは、下記のように計算される。
【0047】
【数3】

【0048】
パケット・サイズに関してMACスループット方程式の導関数を用いることによって、BlockAckごとのパケット数が一定であると仮定することによって、また導関数をゼロに等しくすることによって、最適化方程式を下記のように導出することができる。
【0049】
【数4】

【0050】
各ノードがこのサービス間隔の間に最大SI時間を有するとすると、ni=1,2,…について、
【数5】


まで、各ノードごとに最適なパケットサイズ(Di)を計算することができる。次いで、niとDiを、D≦DMAXとなるように選択することができる。
【0051】
図13は、例示的な実施例による最適化アルゴリズムのフローチャートを示している。このアルゴリズムは、APで、すべてのノードについてデータ・レート及びPviが推定された後に実行される。S1300で、アルゴリズムは、各ノードのパケット・サイズの最大可能値から開始する。S1301で、アルゴリズムは、SIを計算し、値を、その最大可能値SIと比較する。値が小さくなると、より多くのパケットを送信できることを示しており、したがって、S1302に示されたように、niが増加し、S1303に示されたように、最適のDiが計算される。
【0052】
値が大きくなると、ni又はDiを減少させるべきことを示している。niが1より大きく、(ni−1)についてDiがDmaxより小さい場合は、S1305に示されたように、最終選択としてniを減少させるべきである。niが1より大きく、(ni−1)についてDiがDmaxより大きい場合は、niはそのままにされ、Diは、S1304に示されたように、f分の1に減少させる。niが1に等しい場合もまた、Diはやはり、f分の1に減少させるべきである。
【0053】
図14は、パラメータがすべてのノードについて同じであると仮定される場合のパケット・ロス率のプロットである。このプロットは、最適化アルゴリズムを用いて比較を行うことができる基準値を示すためのものである。パケット・ロス率1400が、クライアント数1401に対してプロットされている。この例では、M=54Mbps、P=0.1、SI=50ms、MACthrough=3e6、及びD=3e6×SIである。プロット上の数は、1−(1−BER)としての物理層誤り確率である。プロットは、1402に示されたように0.45、1403に示されたように0.36、及び1404に示されたように0.25の物理層誤り確率を仮定している。
【0054】
図15は、n=1の場合はSingleAck、n>1の場合はBlockAckについてのパケット・ロス率のプロットを示している。この例では、M=90Mbps、Pv=0.1、SI=25ms、MACthrough=3e6、D=3e6×SI/n、BER=0.4eである。SingleAckケース(n=1)1500は、それぞれn=2、n=4及びn=6として、BlockAckケース1501、1502及び1503に対してプロットされている。この図に示されたように、BlockAckは、同じPLR要件を達成しながら、クライアントの増加を可能にする。
【0055】
図16は、例示的な一実施例による、SingleAckとBlockAckの両方に関して、最適化アルゴリズムが実施された後のMACスループットを示している。グラフは、SingleAckケース1602及びBlockAckケース1603に関して、クライアント数1601ごとの最適パケット・サイズに対するMACスループット平均1600を示している。このシミュレーションは、802.11nパラメータに基づいて、可能な値のプールから各ノードについてMがランダムに選択されるごとに各クライアントにつき10回なされる試行について平均されている。グラフが示すように、必要なMACスループット(例えば3e6)では、最適化アルゴリズムによって、ゼロに近いパケット・ロス率を維持しながら、クライアントの増加が可能になる。
【0056】
例示的な実施例を使用することによって、低いパケット誤り率を有する決定論的な待ち時間以外に、BlockAckを追加し、Ackを向けることによって、パケットごとに1つずつ肯定応答するオーバヘッドが減少し、BlockAckごとに最適なパケット・サイズ及びパケット数を選択するための最適化アルゴリズムを追加することによってスループットが増加し、より多くのノード(この文献に示された例では2倍超)が、パケット誤り率を10−6未満に維持しながら、選択されたSI内でノードごとの固定MACスループットでデータ・パケットを送信することができる。
【0057】
例示的な実施例は、本明細書では、IEEE802.11e HCCA規格とBlockAckのためのIEEE802.11nを組み合わせることに関して述べられている。しかし、例示的な実施例は、IEEE802.11e規格及びIEEE802.11n規格に基づくシステムに限定されず、任意のポーリングにベースのシステムに適用することができる。
【0058】
最後に、詳細な説明のいくつかの部分は、コンピュータ内の操作のアルゴリズム及び記号表現に関して提示されている。これらのアルゴリズムに関する説明及び記号表現は、データ処理分野の当業者によって、その技術革新の本質を他の当業者に最も有効に伝えるために使用される手段である。アルゴリズムは、所望の最終状態又は結果をもたらす定義された一連のステップである。本発明では、実施されるステップは、有形の結果を達成するために有形の量を物理的に操作することを必要とする。
【0059】
議論から明らかであるように、他に特に述べられていない限り、「処理する(processing)」、「コンピュータ処理する(computing)」、「計算する(calculating)」、「決定する(determining)」、「表示する(displaying)」などの用語を使用した議論は、説明全体を通して、コンピュータ・システムのレジスタ及びメモリ内の物理(電子)量として表されたデータを操作し、コンピュータ・システムのメモリ又はレジスタ、或いは他の情報記憶、伝送又は表示デバイス内の物理量として同様に表された他のデータに変換するコンピュータ・システム又は他の情報処理デバイスのアクション及びプロセスを含み得ることが理解されよう。
【0060】
本発明は、本発明の操作を実施するための装置にも関する。この装置は、必要な目的のために特別に構築してもよいし、この装置は、1つ又は複数のコンピュータ・プログラムによって選択的にアクティブ化され又は再構成された1つ又は複数の汎用コンピュータを備えてもよい。こうしたコンピュータ・プログラムは、それだけに限らないが、光ディスク、磁気ディスク、読取り専用メモリ、ランダム・アクセス・メモリ、ソリッド・ステート・デバイス及びドライブ、又は電子情報の格納に適した他の任意のタイプの媒体など、コンピュータ読取り可能記憶媒体に格納されてもよい。本明細書に提示されたアルゴリズム及び表示は、特定のコンピュータ又は他の装置に本質的には関係がない。
【0061】
本発明の教示によるプログラム及びモジュールと共に様々な汎用システムを使用することができ、或いは所望の方法ステップを実施するようにより専門化された装置を構築することが好都合であることが明らかになり得る。さらに、本発明は、特定のプログラミング言語に関して述べられていない。本明細書に述べられた本発明の教示を実施するために、様々なプログラミング言語を使用してよいことが理解されよう。プログラミング言語の命令は、1つ又は複数の処理デバイス、例えば中央処理装置(CPU)、プロセッサ又はコントローラによって実行することができる。
【0062】
当技術分野において知られているように、上記の操作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの何らかの組合せによって実施することができる。本発明の実施例の様々な態様は、回路及び論理デバイス(ハードウェア)を使用して実装することができ、他の態様は、マシン読取り可能媒体(ソフトウェア)に格納された命令を使用して実施することができ、この命令は、プロセッサによって実行される場合、プロセッサに、本発明の実施例を実施するための方法を実施させる。さらに、本発明の一部の実施例は、ハードウェアだけで実施することができ、他の実施例は、ソフトウェアだけで実施することができる。さらに、述べられた様々な機能は、単一のユニットで実施してもよいし、任意の数のやり方でいくつかの構成要素に散在させてもよい。ソフトウェアによって実施されるとき、諸方法は、コンピュータ読取り可能媒体に格納された命令に基づいて、汎用コンピュータなど、プロセッサによって実行することができる。所望であれば、命令は、圧縮及び/又は暗号化された形式で媒体内に格納することができる。
【0063】
さらに、本発明の他の実装形態は、本明細書に開示された本発明の明細及び慣行について考慮することから当業者に明らかになろう。述べられた諸実施例の様々な態様及び/又は構成要素は、通信システム内で単独に使用してもよいし、任意の組合せで使用してもよい。明細及び例は、例示的なものにすぎないと見なされるものであり、本発明の真の範囲及び精神は、添付の特許請求の範囲によって示される。
【符号の説明】
【0064】
200 フレーム制御
201 フレームの持続時間
202 宛先ドレス
203 送信元アドレス
204 基地局識別子
205 シーケンス制御
206 フレーム・ボディ
207 フレーム検査シーケンス
208 固定フィールド情報
209 情報要素
210 A−MSDUサポート
211 BlockAckポリシー
212 トラフィック識別子
213 バッファ・ウィンドウ・サイズ/バッファ・サイズ
214 開始シーケンス番号/WinStartSN(SSN)
215 ビット・マップ
300 単一のパケット
301 肯定応答する
302 複数のパケット
303 肯定応答する
304 ポーリング・パケット
700 フレーム制御
701 識別子
702 アドレス1
703 アドレス2
704 アドレス3
705 シーケンス制御
706 アドレス4フィールド
707 QoS制御フィールド
708 ヘッダ・タイプ
709−1 BlockAck設定
709−2 BlockAck
710 ビット誤り検査
711 バージョン
712 タイプ
713 サブタイプ
714 配信システムへと進んでいる
715 配信システムから来ている
716 さらなるフラグ
717 再試行
718 電力管理
719 さらなるデータ
720 ワイヤレス暗号化プロトコル
721 順序
900 クライアントjのアドレス
1000 受信パケットの開始シーケンス番号
1001 シーケンス番号
1400 パケット・ロス率
1401 クライアント数
1501 BlockAckケース
1502 BlockAckケース
1503 BlockAckケース
1600 MACスループット平均
1601 クライアント数
1602 SingleAckケース
1603 BlockAckケース

【特許請求の範囲】
【請求項1】
ブロック肯定応答(BlockAck)設定情報に従って、全登録ノードにポーリングを行う網羅的ポーリング段階又はパケット通信誤りの発生したノードのみにポーリングを行う選択的ポーリング段階の間にデータ・パケットを受信する受信機と、
前記BlockAck設定情報、及び前記網羅的ポーリング段階又は前記選択的ポーリング段階の間に前記データ・パケットのうち正しく受信されたデータ・パケットを示すビット・マップを備えるBlockAckパケットを送信する送信機と
を備えるアクセス・ポイント(AP)。
【請求項2】
前記BlockAckパケットが、前記網羅的ポーリング段階又は前記選択的ポーリング段階の間に送信するポーリング・パケットと組み合わされる、請求項1に記載のAP。
【請求項3】
前記BlockAck設定情報を更新する最適化ユニットをさらに備え、
前記BlockAck設定情報が、前記データ・パケットのサイズ及び前記データ・パケットの数を備え、
前記最適化ユニットが、CSMA段階の間、後続の網羅的ポーリング段階又は後続の選択的ポーリング段階の間に受信する前記データ・パケットの前記サイズ及び前記データ・パケットの前記数を更新することによって前記BlockAck設定情報を更新する、請求項1に記載のAP。
【請求項4】
前記BlockAck設定情報が、前記データ・パケットのうちの受信されたデータ・パケットの開始シーケンス番号を備える、請求項1に記載のAP。
【請求項5】
前記BlockAckパケットが、肯定応答用の各ノードのアドレスをさらに備える、請求項1に記載のAP。
【請求項6】
前記最適化ユニットが、ビット誤り率、各ノードのパケットを受信しない確率、各ノードの物理層誤り確率に基づいて前記サイズ及び前記数を更新する、請求項3に記載のAP。
【請求項7】
前記最適化ユニットが、前記数及び前記サイズに基づいてパケット・ロス・レートしきい値を満たすのに必要なサービス間隔を決定し、前記決定されたサービス間隔が最大可能サービス間隔未満である場合は、前記数を増加させ、前記数に基づいて前記サイズを計算し、前記サービス間隔を再決定する、請求項6に記載のAP。
【請求項8】
前記最適化ユニットが、前記決定されたサービス間隔が最大可能サービス間隔より大きい場合は、前記サイズ又は前記数を減少させる、請求項7に記載のAP。
【請求項9】
前記最適化ユニットが、前記サイズの最大値を仮定することによって前記サービス間隔を決定する、請求項7に記載のAP。
【請求項10】
ブロック肯定応答(BlockAck)設定情報を送信するステップと、
網羅的ポーリング段階又は選択的ポーリング段階の間、前記BlockAck設定情報に応答してデータ・パケットを受信するステップと、
前記受信されたデータ・パケットのうち正しく受信されたデータ・パケットを示すビット・マップを備えるBlockAckパケットを生成するステップと
を備える方法。
【請求項11】
前記BlockAck設定情報及び前記BlockAckパケットを、前記網羅的ポーリング段階又は前記選択的ポーリング段階の間に送信するポーリング・パケットと組み合わせるステップをさらに備える、請求項10に記載の方法。
【請求項12】
CSMA段階の間、後続の網羅的ポーリング段階又は後続の選択的ポーリング段階で受信する前記データ・パケットのサイズ及び前記データ・パケットの数を更新するステップをさらに備える、請求項10に記載の方法。
【請求項13】
前記BlockAckパケットを生成する前記ステップが、肯定応答用の各ノードのアドレスを生成するステップをさらに備える、請求項10に記載の方法。
【請求項14】
前記サイズ及び前記数を更新する前記ステップが、ビット誤り率、各ノードのパケットを受信しない確率、及び各ノードの物理層誤り確率に基づく、請求項12に記載の方法。
【請求項15】
データ・パケットのバッファ・ウィンドウ・サイズを生成することによって前記BlockAck設定情報を生成するステップをさらに備え、データ・パケット用の前記バッファ・ウィンドウ・サイズが、前記データ・パケットのサイズ及び前記データ・パケットの数を備える、請求項10に記載の方法。
【請求項16】
前記サイズ及び前記数を更新する前記ステップが、ビット誤り率、各ノードのパケットを受信しない確率、及び各ノードの物理層誤り確率に基づく、請求項14に記載の方法。
【請求項17】
前記数及び前記サイズに基づいて、パケット・ロス率しきい値を満たすのに必要なサービス間隔を計算するステップと、
前記数を増加させるステップと、
前記計算されたサービス間隔が最大可能サービス間隔より小さい場合は、前記増加した数に基づいて前記サイズを計算するステップと、
前記サービス間隔を再計算するステップと
をさらに備える、請求項16に記載の方法。
【請求項18】
前記計算されたサービス間隔が前記最大可能サービス間隔より大きい場合は、前記サイズ又は前記数を減少させるステップをさらに備える、請求項17に記載の方法。
【請求項19】
前記サービス間隔を計算するために前記サイズの最大値を使用するステップをさらに備える、請求項17に記載の方法。
【請求項20】
データ・パケットのバッファ・ウィンドウを備えるブロック肯定応答(BlockAck)設定情報を受信する受信機と、
網羅的ポーリング段階又は選択的ポーリング段階の間、前記バッファ・ウィンドウに従って前記データ・パケットを送信する送信機と
を備える局(STA)であって、
前記受信機が、前記データ・パケットのうち正しく受信されたデータ・パケットを示すビット・マップを備えるBlockAckパケットを受信する、STA。
【請求項21】
前記BlockAckパケットが前記STAに向けられるかどうか決定するプロセッサをさらに備える、請求項20に記載のSTA。
【請求項22】
前記送信機が、前記選択的ポーリング段階の間、前記ビット・マップに従ってポーリング・メッセージを受信した後、前記受信されたデータ・パケットのうち間違えて受信されたデータ・パケットを再送する、請求項20に記載のSTA。
【請求項23】
前記送信機が、前記BlockAck設定情報によって示されたパケット・データ・サイズ及びパケット数に従って前記データ・パケットを送信する、請求項20に記載のSTA。
【請求項24】
局(STA)を操作する方法であって、
データ・パケットのバッファ・ウィンドウを備えるブロック肯定応答(BlockAck)設定情報を受信するステップと、
前記バッファ・ウィンドウに従って前記データ・パケットを送信するステップと、
前記データ・パケットのうち正しく受信されたデータ・パケットを示すビット・マップを備えるBlockAckパケットを受信するステップと
を備える方法。
【請求項25】
前記BlockAckパケットが前記STAに向けられるかどうか決定するステップをさらに備える、請求項24に記載の方法。
【請求項26】
前記選択的ポーリング段階の間、前記ビット・マップに従ってポーリング・メッセージを受信した後、前記受信されたデータ・パケットのうち間違えて受信されたデータ・パケットを再送するステップをさらに備える、請求項24に記載の方法。
【請求項27】
前記BlockAck設定情報によって示されたパケット・データ・サイズ及びパケット数に従って、前記データ・パケットを送信するステップをさらに備える、請求項24に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3a】
image rotate

【図3b】
image rotate

【図3c】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate