JP2019513308A - ブロック肯定応答送信のための通信方法及び通信装置 - Google Patents

ブロック肯定応答送信のための通信方法及び通信装置 Download PDF

Info

Publication number
JP2019513308A
JP2019513308A JP2018530808A JP2018530808A JP2019513308A JP 2019513308 A JP2019513308 A JP 2019513308A JP 2018530808 A JP2018530808 A JP 2018530808A JP 2018530808 A JP2018530808 A JP 2018530808A JP 2019513308 A JP2019513308 A JP 2019513308A
Authority
JP
Japan
Prior art keywords
fragments
bitmap
msdu
bits
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018530808A
Other languages
English (en)
Inventor
ロジャン チトラカール
ロジャン チトラカール
レイ ホァン
レイ ホァン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority claimed from PCT/JP2017/003283 external-priority patent/WO2017150042A1/en
Publication of JP2019513308A publication Critical patent/JP2019513308A/ja
Pending legal-status Critical Current

Links

Images

Abstract

ブロック肯定応答(ブロックAck)フレームを送信するための通信方法が与えられる。通信方法は、送信デバイスから複数のフレームを受信するステップであって、フレームのペイロードがフラグメントされるパケット又はフラグメント化されないパケットのいずれかから成る、ステップと、フレームの受信状態を記録するステップと、フレームの受信状態を示すために使用される少なくとも1つのビットマップフィールドを含むブロックAckフレームを生成するステップであって、パケットのためにビットマップフィールドで割り当てられるビット数が可変である、ステップと、ブロックAckフレームを送信するステップとを含む。

Description

本開示は、一般に、ブロック肯定応答送信のための通信装置及び通信方法に関する。
IEEE(電気電子技術者協会)802.11ワーキンググループは、現在、802.11axタスクグループの下で次世代のWLAN(ワイヤレスローカルエリアネットワーク)技術を標準化する過程にある。タスクグループの主な目標は、アクセスポイント(AP:Access Point)及び/又は端末ステーション(「非AP STA」又は本開示の残りにおいて単にSTA)の高密度シナリオでのシステムスループット/エリアを高めるためのスペクトル効率の向上である。IEEE802.11ax仕様に基づくデバイスは、一般に、高効率(HE)デバイスと称される。提案されている様々な技術の中で、IEEE802.11axタスクグループがスループット改善目標を達成するために採用した直交周波数分割多元接続(OFDMA:Orthogonal Frequency−Division Multiple Access)及びアップリンクマルチユーザ送信は、2つの重要な技術である。図1は、AP190及びAP190に関連する幾つかのSTAを伴う802.11ax WLAN100の一例を示す。
特に低いデータ転送速度の状況で送信の信頼性を高めるために802.11で使用される機能のうちの1つがフラグメンテーションと呼ばれる。フラグメンテーションは、MACサービスデータユニット(MSDU:MAC Service Data Unit)又はMAC管理プロトコルデータユニット(MMPDU:MAC Management Protocol Data Unit)をより小さいMACレベルフレーム、MACプロトコルデータユニット(MPDU:MAC Protocol Data Unit)に分割するプロセスである。簡潔にするために、残りの開示において、用語MSDUは、MSDU及びMMPDUの両方を表すために使用される。低いデータ転送速度では、フラグメント化されないMSDUは大量のエアタイムを占める可能性がある。フレーム内のビットエラーは、フレーム全体が再送される結果をもたらす。フラグメンテーションにより、MSDUはより小さいセグメントに分割され、また、各セグメントは、MPDUにカプセル化されて、別個のPLCPプロトコルデータユニット(PPDU:PLCP Protocol Data Unit)で送られる。これにより、エラーのあるセグメントを搬送するMPDUのみが再送される結果となる。受信部でMPDUを単一のMSDU又はMMPDUへと再結合する逆のプロセスは、デフラグメンテーションとして知られる。
802.11axでのOFDMA及びアップリンクマルチユーザ送信の導入により、フラグメンテーションは再び重要になってきた。これは、ダウンリンク(DL:Downlink)及びアップリンク(UL:Uplink)の両方において、802.11axが、マルチユーザ送信が同時に終了することを強制したという事実に起因する。利用可能な持続時間割当て(PPDU長)を満たすために正確な整数のMSDUが存在する可能性は低いため、任意の未使用の持続時間割当てにパディングを適用する代わりにMSDUのフラグメントを送信できることが802.11axワーキンググループで合意された。集約MPDU(A−MPDU:Aggregate MPDU)内のフラグメンテーションをサポートするために、802.11axは、「専用」C−BAフレームとも呼ばれる新たな圧縮ブロック肯定応答(C−BA:Compressed Block Acknowledgement)フレームバリアントを導入した。「専用」C−BAフレームは、A−MPDUごとにMSDUの複数のフラグメントを確認できる。
IEEE802.11−15/0132r14,Specification Framework for TGax,January 2016 IEEE Std 802.11−2012 IEEE802.11−16/0050r1,Fragmentation for MU frames−Follow up on acks
「専用」C−BAフレームがA−MPDUで搬送されるMSDU又はMMPDUの複数のフラグメントを確認できる場合であっても、「専用」C−BAフレームのBAビットマップ内のビットの多くは、A−MPDUのMPDUのうちの僅かだけがフラグメント化されたMSDUを搬送するときに使用されないままである。
本開示の1つの非限定的で典型的な実施形態は、ブロックAckフレームの効率を高めることができる装置及び方法を提供することを容易にする。
1つの一般的な態様において、本明細書に開示される技術は、送信デバイスから複数のフレームを受信するステップであって、フレームのペイロードがフラグメントされるパケット又はフラグメント化されないパケットのいずれかから成る、ステップと、フレームの受信状態を記録するステップと、フレームの受信状態を示すために使用される少なくとも1つのビットマップフィールドを含むブロックAckフレームを生成するステップであって、パケットのためにビットマップフィールドで割り当てられるビット数が可変である、ステップと、ブロックAckフレームを送信するステップとを備える通信方法を特徴とする。
これらの一般的で特定の態様は、デバイス、システム、方法、及び、コンピュータプログラム、並びに、デバイス、システム、方法、及び、コンピュータプログラムの任意の組み合わせを使用して実施されてもよい。
本開示に記載される装置及び方法は、ブロックAckフレームの効率を高める。
開示された実施形態の更なる利益及び利点は、明細書及び図面から明らかになる。利益及び/又は利点は、そのような利益及び/又は利点の1つ以上を得るために全て提供される必要はなく、明細書及び図面の様々な実施形態及び特徴によって個別に得られてもよい。
効率的なブロック肯定応答を利用するシステムの特定の実施形態の図である。 ブロックAckメカニズムのセットアップ及びティアダウンを含むフレーム交換シーケンスの一例の図である。 802.11axにおけるフラグメンテーションの使用を強調するアップリンクマルチユーザフレーム交換シーケンスの図である。 802.11axで導入される「専用」C−BAフレームのフレーム構造の図である。 本開示によって扱われる技術的課題を強調するダウンリンクマルチユーザフレーム交換シーケンスの図である。 第1の実施形態によるシーケンス制御フィールドの構造の図である。 第1の実施形態によるBA情報フィールドの構造の図である。 フラグメント数フィールドの符号化のための符号化テーブルの図である。 第1の実施形態による受信局によって管理されるフラグメントサイズテーブルの図である。 第1の実施形態によるMPDUの受信状態を記録するために使用されるスコアボードビットマップの図である。 第1の実施形態によるBAビットマップの一例の図である。 第1の実施形態による送信局によって管理される送信ウィンドウの図である。 第1の実施形態による送信局によって管理されるフラグメントサイズテーブルの図である。 MSDU全体が受信されないときのシナリオを示す、第1の実施形態によるBAビットマップの一例の図である。 第1の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の中央部分である。 第1の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の左側部分である。 第1の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の右側部分である。 第2の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の中央部分である。 第2の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の左側部分である。 第2の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の右側部分である。 第3の実施形態によるAddブロック肯定応答(ADDBA:Add Block Acknowledgment)拡張要素の図である。 ADDBA能力フィールドの図である。 単一MSDU当たりの最大フラグメントフィールドの符号化テーブルの図である。 第3の実施形態によるMPDUの受信状態を記録するために使用されるスコアボードビットマップの図である。 第3の実施形態によるスコアボードビットマップ符号化方式の図である。 第3の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図である。 第3の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の中央部分である。 第3の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の左側部分である。 第3の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の右側部分である。 第4の実施形態によるフラグメント数フィールドを搬送するために使用されるHEバリアントHT制御フィールドの構造の図である。 第4の実施形態によるフラグメント数フィールドを搬送するために使用されるHEバリアントHT制御フィールドの構造の他の図である。 第5の実施形態にしたがって使用されるBAビットマップ符号化の一例の図である。 第5の実施形態にしたがって使用されるBAビットマップ符号化の他の例の図である。 第5の実施形態にしたがって使用されるBAビットマップ符号化の他の例の図である。 第5の実施形態によるMPDUの受信状態を記録するために使用されるスコアボードビットマップの図である。 第5の実施形態によるMPDUの受信状態を記録するために使用されるBAビットマップの図である。 第5の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の中央部分である。 第5の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の左側部分である。 第5の実施形態によるブロック肯定応答メカニズムを強調するフレーム交換シーケンスの一例の図の右側部分である。 本開示で導入される効率的なブロック肯定応答メカニズムを達成するために、発信側によって実行される動作のフローチャートである。 本開示で導入される効率的なブロック肯定応答メカニズムを達成するために受信側によって実行される動作のフローチャートである。 発信側の一例のブロック図である。 発信側の一例の詳細なブロック図である。 発信側の送信モジュールのブロック図である。 受信側の一例のブロック図である。 受信側の一例の詳細なブロック図である。 受信側の受信モジュールのブロック図である。
本開示は、以下の図及び実施形態の助けによってより良く理解できる。本明細書に記載される実施形態は、本質的に単なる典型例にすぎず、本開示の想定し得る用途及び使用の幾つかを説明するために使用され、本明細書中に明示的に記載されない別の実施形態に関して本開示を限定するように解釈されるべきでない。
ブロック肯定応答メカニズムは802.11e改正で導入された。ブロック肯定応答メカニズムは、個々のデータフレームのACK/NACKをそれぞれが示すACKフレームのグループではなく単一のブロック肯定応答(ブロックAck又はBA:Block Acknowledgment)フレームにより確認されるフレームのブロックの転送を可能にする。ブロックAckフレームには様々な種類がある。当初のブロックAckフレームは、1024ビットのBAビットマップを含む基本ブロックAckバリアントとして知られ、64個のMSDUを確認でき、それぞれのMSDUは最大16個のフラグメントによりフラグメント化され得る。しかしながら、より高いデータ転送速度では、フラグメンテーションが大きなメリットをもたらさず、802.11nは基本ブロックAckを廃止して圧縮されたブロックAckバリアントを導入した。圧縮されたブロックAckバリアントは、フラグメンテーションに関して単一MSDU当たり16ビットを排除し、それにより、64ビットBAビットマップをもたらす。このため、802.11n及び802.11acは、フラグメント化されたMSDU又はMMPDUを運ぶMPDUを集約MACプロトコルデータユニット(A−MPDU)で搬送できるようにしない。
フラグメンテーションに関して、802.11axワーキンググループは、様々なデバイス能力に応じるために、以下の4つのタイプ(レベル)のフラグメンテーションを導入した。
−レベル0:フラグメントのサポートなし
−レベル1:「VHT」単一MPDUのみでのフラグメントのサポート
−レベル2:A−MPDUにおける単一MSDU当たり最大1つのフラグメントのサポート
−レベル3:単一A−MPDU当たりMSDUの複数のフラグメントのサポート
従来のブロックAckメカニズムは、レベル0、レベル1及びレベル2のフラグメンテーションをサポートできるが、レベル3のフラグメンテーションをサポートできない。前述のレベル3のフラグメンテーションをサポートするために、「専用」C−BAフレームとも呼ばれる圧縮ブロック肯定応答(C−BA:Compressed Block Acknowledgement)バリアントが802.11axに導入された。
図2は、2つの802.11デバイス間のフレーム交換のシーケンス200の一例を示し、このシーケンスは、HT即時ブロックAck合意を設定し破棄するための管理フレームの交換を伴う。インフラストラクチャ基本サービスセット(BSS:Basic Service Set)では、802.11デバイスのうちの1つがAPであり、もう1つがSTAである。シーケンス200は、3つの別個の段階、すなわち、(a)ブロックAckセットアップ段階210と、(b)1つ以上のデータ交換段階220と、(c)ブロックAckティアダウン段階230とから成る。ブロックAckプロトコルとの関連で、220に示されるバースト送信を開始する802.11デバイスは発信側として知られ、一方、バースト送信を受信してブロックAckフレームを準備する受信802.11デバイスは受信側として知られている。他の開示において、発信側及び受信側という用語は、特に、ブロックAckプロトコルとの関連で使用される。それぞれの個々のブロックAck合意は、発信側としての役割を果たす1つの無線デバイスと、受信側としての役割を果たす他の無線デバイスとを有する。AP及びSTAはいずれも、発信側又は受信側のいずれかとしての役割を果たし得る。
更に、無線デバイスは、1つのブロックAck合意のための発信側としての役割を果たしてもよく、同時に、このデバイスは、異なるブロックAck合意のための受信側としての役割を果たしてもよい。ブロックAckメカニズムを使用できる前に、発信側及び受信側はいずれも付加的なリソースを準備する必要がある。受信側は、フレームのバーストを受信するために付加的なバッファを割り当てる必要があるだけでなく、各フレームの受信状態を記録するためにスコアボードを管理する必要もある。同様に、発信側は、送信されるフレームの記録を管理する必要もある。この準備はブロックAckセットアップ段階210で行われる。この段階において、2つの802.11デバイスは、バッファサイズ、関連するフレームのトラフィック識別子(TID:Traffic Identifier)、ネゴシエーションが有効になる期間などをネゴシエートできる。データ交換段階220が完了された時点で、いずれかの当事者がティアダウン段階230でブロックAck合意を破棄してもよい。レベル3のフラグメンテーションは、レベル3のフラグメンテーションを含むブロックAck合意のセットアップ段階中及びティアダウン段階中に付加的なリソースを必要とするため、レガシーブロックAckアクションフレーム(Add BlockAcknowledgment(ADDBA)要求、ADDBA応答、及び、削除ブロック肯定応答(DELBA:Delete Block Acknowledgment)は、ブロックAck合意がレベル3のフラグメンテーションを含むことを示すようにカスタマイズされてもよく、或いは、レベル3のフラグメンテーションを含むブロックAck合意を要求する、応答する、及び、削除するために新たなブロックAckアクションフレームが規定されてもよい。ブロックAckアクションフィールドと呼ばれる1オクテットフィールドが様々なタイプのブロックAckアクションフレームを区別するために使用される。ADDBA要求、ADDBA応答、及び、DELBAをそれぞれ示すためにブロックAckアクションフィールド値0、1、2が使用される。レガシーブロックAckアクションフレームから区別するために、3、4、5のブロックAckアクションフィールド値を使用して、レベル3 ADDBA要求、ADDBA応答、及び、DELBAのための新たなブロックAckアクションフレームをそれぞれ規定してもよい。
図3は、アップリンクマルチユーザフレーム交換シーケンス300を示す。アップリンクマルチユーザフレーム交換は、トリガーフレームと呼ばれる新たに規定される制御フレームを送信することによってAPにより開始される。トリガーフレーム310は、UL送信に使用されるべきリソースユニット(RU:Resource Unit)割り当て、持続時間割当て(PPDU長)、MCS等に関する情報を含む。トリガーフレーム310を受信すると、トリガーフレーム310によってRUが割り当てられるSTAは、ULマルチユーザPPDU320内のそれぞれのULフレームを返送することができる。802.11axは、ULマルチユーザ送信に関与する全てのSTAがそれぞれの送信を同時に開始するとともに送信を同時に終了しなければならないことを義務付ける。利用可能な持続時間割当て(PPDU長)を満たすためにSTAが常に正確な整数のMSDUを有している見込みはないため、任意の未使用の持続時間割当てにパディングを適用する代わりにMSDUのフラグメントの送信がトリガーフレーム310によって規定される時間で終了するようにMSDUのフラグメントが送信されてもよいことが802.11axで合意された。ULマルチユーザPPDU320において、STA2は、いつでも送信できる状態にあって持続時間割当てに正確に適合する必要な数の整数のMSDUをたまたま有する。しかしながら、STA1及びSTA3は、持続時間割当て(PPDU長)を満たすためにフラグメンテーションを適用する必要があり、MSDUフラグメント322、324をそれぞれそれらのそれぞれのUL PPDUの最終フレームとして送信する。APは、DL MUPPDU330においてそれぞれのブロックAckを送信することによってフレーム交換を終了する。
図4は、単一A−MPDU当たりのMSDUの複数のフラグメントを確認するために802.11axに導入された「専用」C−BAフレーム400の構造を示す。「専用」C−BAフレーム400は、他のブロックAckフレームの構造と同じ構造を共有し、フレームコントロールフィールド410、持続時間フィールド420、受信部アドレス(RA:Receiver Address)フィールド430、送信部アドレス(TA:Transmitter Address)フィールド440、BA制御フィールド450、BA情報フィールド460、及び、フレームチェックシーケンス(FCS:Frame Check Sequence)フィールド490から形成される。BA情報フィールド460は、BA開始シーケンス制御フィールド470とBAビットマップフィールド480とから更に構成される。BA開始シーケンス制御フィールド470は、フラグメント番号サブフィールド472と開始シーケンス番号(SSN:Starting Sequence Number)サブフィールド474とに分けられる。「専用」C−BAフレームは、フラグメント番号サブフィールド472を0に設定する代わりに、「専用」C−BAフレームによって確認され得る単一MSDU当たりのフラグメントの最大数を示すゼロでない値X(Xは1よりも大きい整数である)にフラグメント番号サブフィールド472が設定されるという点において他のブロックAckフレームとは異なる。
加えて、BAビットマップフィールド480は、BAビットマップ480内の各ビットが単一のMSDU又はMSDUのフラグメントの受信の成功を確認するように64/X個のブロックに分割され、この場合、BAビットマップの最初のX個のビットは、開始シーケンス番号(SSN)サブフィールド474の値と一致するシーケンス番号(SN:Sequence Number)を有するMSDUに対応する。MSDUの未使用フラグメント数に関しては、BAビットマップ480内の対応するビットが初期設定で0に設定される。802.11axでは、Xの値が4として合意されており、このことは、「専用」C−BAフレーム400が最大16個のMSDUしか確認できないことを意味する。加えて、BAビットマップ480はそれぞれが4ビットの16個のブロックに静的に分けられるため、多くのフラグメント化されたMSDUが存在しない場合にBAビットマップビットの多くが未使用のままであることが想定し得る。最悪の場合のシナリオでは、1つのMSDUのみがフラグメント化されると仮定すると、1つのブロックだけがMSDUフラグメントを確認するために使用される複数のビットを有し、一方、使用されていない利用可能なBAビットマップビットの約70%に相当する45ビットをもたらすブロックの残りでは最初のビットのみが使用される。
図5は、前述の想定し得る問題を強調するダウンリンクマルチユーザフレーム交換500の一例を示す。APは、それぞれ割り当てられたRUにおいてSTA1、STA2、STA3のためのA−MPDUを搬送するDL MU PPDU510を送信することによってフレーム交換を開始する。持続時間割当て(PPDU長)を満たすために、APは3つのA−MPDUのそれぞれにおいて最後のMSDUをフラグメント化する。各A−MPDUは単一のMSDUフラグメントのみを搬送するため、これはレベル2のフラグメンテーションと見なされ、また、STAは、UL MU PPDU520において圧縮ブロックAckをそれぞれ送信することによってフレームの受信の成功を確認する。APは、STA1、STA2、STA3にそれぞれアドレス指定されるA−MPDU532、534、536を搬送する第2のDL MU PPDU530を送信することによってフレーム交換を継続する。フラグメントの比較的大きいサイズに起因して、A−MPDU532は4つのMPDUのみを搬送し、そのうちの3つがMSDU#3の最後の3つのフラグメントであり、一方、最後のMPDUはMSDU#4の最初のフラグメントを搬送する。A−MPDU534に関しては、比較的小さなサイズのMSDUに起因して、18個のMPDUを受け入れることができる。実際に、この場合、A−MPDU534で搬送され得るMPDUの数は、持続時間割当の欠如に起因するのではなくむしろ「専用」C−BAフレームが16個の連続するMSDUしか確認できないという事実に起因して18個に制限される。したがって、フラグメンテーションを使用するにもかかわらず、A−MPDU534は、PPDU終了時刻と一致するべくパディング537を必要とする。A−MPDU536に関しては、残りの持続時間がフラグメントのために許容される最小サイズよりも小さく、そのため、パディング538が適用されなければならないという事実に起因して、3つのMPDUしか受け入れることができない。最後に、フレームシーケンスは、STAがそれぞれUL MU PPDU540における対応する「専用」C−BAフレームを送信することによって終了する。
上記の知見に基づき、この出願の発明者らは、本開示に到達した。この開示の方法は、フラグメント化されたMSDUを搬送するMPDUから構成されるA−MPDUを確認するためにより効率的なブロックAckメカニズムを提供する。開示された方法によれば、ブロックAckのBAビットマップは、受信されたMPDUの受信状態をより一層効率的な態様で記録することができる。結果として、受信側デバイスは、従来技術と比べて数倍多くの所定のBAビットマップサイズのMSDUを確認することができる。その結果、発信側デバイスは、拡張されたシーケンス番号空間に起因して単一のA−MPDU内により多くのMSDUを詰め込むことができる。
以下の節では、本開示で提案される効率的なブロックAckメカニズムのための様々な実施形態について詳しく説明する。
<第1の実施形態>
先に言及されたように、802.11axは、フラグメント化されたMSDUをA−MPDUに集約できるようにすることに合意した。しかしながら、フラグメンテーションのサポートは、デバイスが付加的な能力を有することを要する。802.11axは、多様な能力を持つデバイスをサポートすることが期待されるため、一部のデバイスが所要の能力を有する一方で、他のデバイスがそのような能力を有さなくてもよい。様々なデバイス能力に応じるため、802.11axは以下の4つのフラグメンテーションタイプ(レベル)を導入した。
−レベル0:フラグメントのサポートなし発信側は、フラグメント化されたMSDUを集約しなくてもよい。
−レベル1:「VHT」単一MPDUのみでのフラグメントのサポート発信側は、MSDUの多くても1つのフラグメントを「VHT」単一MPDUに集約してもよく、受信側者はAckで応答する。
−レベル2:A−MPDUにおける単一MSDU当たり最大1つのフラグメントのサポート発信側は、単一MSDU当たり最大1つのフラグメントをA−MPDUに集約してもよく、受信側は、他に圧縮BA(C−BA)を伴うAck(「VHT」単一MPDUの場合)で応答する。
−レベル3:単一A−MPDU当たりMSDUの複数のフラグメントのサポート発信側は、単一MSDU当たり複数のフラグメントをA−MPDUに集約してもよく、また、受信側は、他に「専用」C−BAを伴う場合には、Ack(「VHT」単一MPDUの場合)で又はC−BA(A−MPDUが単一MSDU当たり最大で1つのフラグメントを伴う場合)で応答する。
「専用」C−BAフレームによって確認され得る単一MSDU当たりのフラグメントの最大数が4であり、その結果、レベル3のフラグメンテーションにおける単一A−MPDU当たりのMSDUのフラグメント数が4に等しいことが802.11axにおいて更に合意された。レガシーフラグメンテーションメカニズムでは、MSDUが最大16個のフラグメントに分けられてもよい。結果として、MACヘッダにおけるシーケンス制御フィールド内の4ビットのフラグメント数フィールドは、フラグメント化されたMSDUを搬送するMPDUの動向を追跡するために使用される。しかしながら、レベル3のフラグメンテーションにおける単一A−MPDU当たりのMSDUのフラグメントの数は4に制限されるため、当然ながら、レベル3のフラグメンテーションモードで動作する際には、MSDUが最大4個のフラグメントに分けられてもよい2ビットはMSDUの4つのフラグメントを追跡するのに十分であるため、フラグメント数フィールドの残りの2ビットを他の目的のために使用できる。
図6Aは、第1の実施形態によるシーケンス制御フィールド600の構造を示す。シーケンス番号フィールド606は不変のままであるが、フラグメント番号フィールド604のために2ビットのみが使用され、また、フラグメント数フィールド602のために残りの2ビットが使用され、フラグメント数フィールド602は、シーケンス番号606と一致するMSDUが分かれるフラグメントの数を示すために使用される。図6Cの符号化テーブル640は、フラグメント数フィールド602の符号化をリストアップする。図6Aのフラグメント数フィールド602の2ビットは、最大4つのフラグメントを示すことができる。フラグメント数フィールド602の値は、シーケンス番号606と一致するMSDUの全てのフラグメントにおいて一定のままである。各MPDUはそれぞれのMACヘッダでシーケンス制御フィールド600を搬送するため、フラグメント数フィールド602を検査することによって、MPDUの受信側は、フレーム制御フィールドのより多くのフラグメントビットを追跡する必要なく、シーケンス番号606と一致するMSDUが分けられるフラグメント数を素早く見出すことができる。
図6Bは、第1の実施形態によって提案されるブロックAckフレームのBA情報フィールド610の構造を示す。BA開始シーケンス制御フィールド620の構造は、不変のままであり、4ビットフラグメント番号フィールド622と12ビット開始シーケンス番号(SSN)フィールド624とから構成される。レガシーブロックAckフレームでは、フラグメント番号フィールドが常に0に設定される。しかしながら、フラグメント番号フィールド622は、BAビットマップフィールド630のタイプ又は使用を区別するために使用されてもよい。例えば、フラグメント番号フィールド622のビットの幾つかは、レガシーブロックAckと比べて異なるBAビットマップフィールド630のための符号化方式を示すために使用されてもよく、一方、幾つかの他のビットは、BAビットマップフィールド630のサイズを示すために使用されてもよい。
図6Bは、一例として8オクテット長のBAビットマップを例示するが、本開示で開示される方法は、より小さい又はより長いBAビットマップにも同様に適用される。開始シーケンス番号(SSN)フィールド624は、BAビットマップフィールド630の最初のビット又はビットのブロックによって確認されるMSDUのシーケンス番号(SN)を示す。レガシー圧縮ブロックAckにおいて、BAビットマップの各ビットは、1つのMSDUを確認するために使用される。「専用の」C−BAフレームにおいて、BAビットマップフィールド630は、それぞれが4ビットの16個のブロックに静的に分けられる。BAビットマップにおける各ビットは、単一のMSDU又はMSDUのフラグメントの受信の成功を確認するために使用され、この場合、BAビットマップフィールド630の最初の4ビットは、開始シーケンス番号(SSN)サブフィールド624の値と一致するシーケンス番号(SN)を伴うMSDUに対応する。4ビットのブロックへのBAビットマップフィールド630の静的な分割の代わりに、第1の実施形態は、ビットブロックが必要に応じてのみ割り当てられるようにBAビットマップフィールド630の動的な符号化を提案する。受信されたA−MPDUで搬送されるMSDUのフラグメントの数に等しいビットのブロックがMSDUに割り当てられる。受信側は、受信されたMPDUにおけるフラグメント数フィールド602の値を使用して、BAビットマップフィールド630におけるビット割り当てを把握してもよい。例えば、3つのフラグメントを伴うMSDUに関して3ビットのブロック632が割り当てられ、2つのフラグメントを伴うMSDUに関して2ビットのブロック634が割り当てられ、フラグメント化されていないMSDUに関して単一ビット636が割り当てられ、一方、4つのフラグメントを伴うMSDUに関して4ビットのブロック638が割り当てられる。
BAビットマップのそのような動的な符号化と関連付けられる1つの課題は、ビットブロックサイズに関する情報を管理することである。図7Aは、単一MSDU当たりのフラグメント数に基づいて受信されたMSDUに割り当てられるビット数を記録するために受信側によって使用されるフラグメントサイズテーブル(FST:Fragment Size Table)700を示す。64ビットBAビットマップを想定すると、64個のエントリを伴う円形配列としてFST700を実装できる。一般に、BAビットマップのサイズがBitmapLenとして示される場合には、BitmapLenのエントリを伴う円形配列としてFST700を実装でき、変数FstStartR及び変数FstEndRを使用してFSTの開始位置及び終了位置を追跡し、一方、FstIndexRを使用して現在処理されているMSDUに対応するエントリを追跡する。
図7Bは、受信されたMSDUの受信状態を記録するために使用されるビットマップを示す。710は、シーケンス番号ごとに4ビットを伴う、シーケンス番号空間全体を表す。スコアボードビットマップ712は、発信側と受信側との間のHT即時ブロックAck合意のセットアップ段階210中に初期化されて現在の送信ウィンドウのシーケンス番号空間を表すブロック肯定応答記録の一部である。変数WinStartRは、ビットマップにおける最低シーケンス番号位置に対応するビットのブロックを表し、変数WinSizeRは、BitmapLenの値(BAビットマップのサイズ)及びブロックAck合意を確立した関連するADDBA応答フレームのバッファサイズフィールドの値のうちの小さい方の値(この例では64)に設定され、また、変数WinEndRは、現在の送信ウィンドウにおける最高シーケンス番号に対応するビットのブロックを表す。スコアボードビットマップのサイズはWinSizeR×4に等しい。受信されたMPDUに対応する正確なビットを追跡するために変数SbIndexが使用される。レベル3のフラグメンテーションを含むそれぞれのHT即時ブロックAck合意ごとに、受信側が全状態動作又は部分状態動作のいずれかを選択してもよい。全状態動作下では、スコアボードビットマップ712が静的に割り当てられたメモリに保持され、一方、部分状態動作では、スコアボードビットマップ712がキャッシュメモリに保持される。FstStartR、FstEndR、及び、FstIndexRにおける全ての動作は循環モジュロWinSizeRで実行される。
<スコアボードコンテキスト>
定義:
SNは、受信されたフレームのシーケンス番号フィールド606の値である。
FNは、受信されたフレームのフラグメント番号フィールド604の値である。
NFは、受信されたフレームのフラグメント数フィールド602の値である。
SSNは、受信されたブロックAckReqフレームの開始シーケンス番号フィールド624の値である。
BitmapLenは、BAビットマップフィールド630のビット長である。
<全状態動作中のスコアボードコンテキスト>
レベル3のフラグメンテーションを伴うとともに全状態動作を使用するそれぞれのHT即時ブロックAck合意ごとに、受信側は、サイズがWinSizeR×4の静的スコアボードビットマップとWinSizeRエントリを伴う静的フラグメントサイズテーブル(FST)とを含むブロック肯定応答記録を保持する。全状態動作を使用するHT即時ブロックAck合意を実施するSTAは、以下の規則にしたがってその合意のためのブロック肯定応答記録を保持するものとする。
a)初期化(HT−即時ブロックAck合意確立時):
1)レベル3のフラグメンテーションを含むHT即時ブロックAck合意を開始したADDBA要求フレームからWinStartR=SSNを設定する。
2)WinSizeR=BitmapLen及び関連するADDBA応答フレームのバッファサイズフィールドの値のうちの小さい方を設定する。
3)WinEndR=WinStartR+WinSizeR−1を設定する。
4)FstStartR=0を設定する。
5)FstEndR=FstStartR+WinSizeR−1を設定する。
6)FSTが全て「4」に初期化される。
b)特定の全状態動作ブロックAck合意に関連するそれぞれの受信されたデータフレームごとに:
1)WinStartR<=SN<=WinEndRである場合には、
i)SbIndex=SN×4+FNを設定する。
ii)スコアボードビットマップ内の位置SbIndexにあるビットを1に設定する。
iii)FstIndexR=FstStartR+SN−WinStartRを設定する。
iv)FST内の位置FstIndexRにあるエントリをNFに設定する。
2)WinEndR<SN<WinStartR+211である場合には、
i)(SN−WinEndR)>WinSizeRであれば、スコアボードビットマップ全体を0に設定し、そうでなければ、(WinEndR+1)×4から(SN×4+3)までのSbIndexに対応するスコアボードビットマップのビットを0に設定する。
ii)(SN−WinEndR)>=WinSizeRであれば、FSTの全てのエントリを4に設定し、そうでなければ、FstEndRから(FstEndR+SN−WinEndR)までのFstIndexRに対応するFSTのエントリを4に設定する。
iii)FstEndR=FstEndR+SN−WinEndRを設定する。
iv)FstStartR=FstEndR−WinSizeR+1を設定する。
v)WinStartR=SN−WinSizeR+1を設定する。
vi)WinEndR=SNを設定する。
vii)SbIndex=SN×4+FNを設定する。
viii)スコアボードビットマップ内の位置SbIndexにあるビットを1に設定する。
ix)FstIndexR=FstStartR+SN−WinStartRを設定する。
x)FST内の位置FstIndexRにあるエントリをNFに設定する。
3)WinStartR+211<=SN<WinStartRである場合には、記録を変更しない。
c)特定の全状態動作ブロックAck合意に関連するそれぞれの受信されたブロックAckReqフレームごとに:
1)WinStartR<SSN<=WinEndRである場合には、
i)FstStartR=FstStartR+SSN−WinStartRを設定する。
ii)WinStartR=SSNを設定する。
iii)(WinEndR+1)×4から((WinStartR+WinSizeR−1)×4+3)までのSbIndexに対応するスコアボードビットマップのビットを0に設定する。
iv)WinEndR=WinStartR+WinSizeR−1を設定する。
v)FstEndR=FstStartR+WinSizeR−1を設定する。
2)WinEndR<SSN<WinStartR+211である場合には、
i)WinStartR=SSNを設定する。
ii)WinEndR=WinStartR+WinSizeR−1を設定する。
iii)(WinStartR)×4から(WinEndR×4+3)までのSbIndexに対応するスコアボードビットマップのビットを0に設定する。
iv)FstStartRからFstEndRまでのFstIndexRに対応するFSTのエントリを4に設定する。
3)WinStartR+211<=SSN<WinStartRである場合には、記録を変更しない。
<部分状態操作中のスコアボードコンテキスト>
レベル3のフラグメンテーションを伴うとともに部分状態動作を使用するそれぞれのHT即時ブロックAck合意ごとに、受信側は、サイズがWinSizeR×4の一時スコアボードビットマップとWinSizeRを伴う一時フラグメントサイズテーブル(FST)とを含むブロック肯定応答記録を保持する。部分状態動作を使用するHT即時ブロックAck合意を実施するSTAは、次の規則にしたがってその合意のためのブロック肯定応答記録を管理するものとする。
a)初期化:
1)WinSizeR=BitmapLen及び関連するADDBA応答フレームのバッファサイズフィールドの値のうちの小さい方を設定する。
2)FstStartR=0を設定する。
3)FstEndR=FstStartR+WinSizeR−1を設定する。
b)特定の部分状態ブロックAck合意に関連するそれぞれの受信されたデータフレームごとに、受信されたデータフレームと関連する合意のための一時記録が存在しない場合:
1)WinEndR=SNを設定する。
2)WinStartR=WinEndR−WinSizeR+1を設定する。
3)サイズがWinSizeR×4のスコアボードビットマップを形成し、この場合、ビットマップ内の最初の4つのビットがシーケンス番号WinStartRに対応し、ビットマップ内の最後の4つのビットがシーケンス番号WinEndRに対応し、また、ビットマップ内の全てのビットを0に設定する。
4)WinSizeRのエントリを伴うFSTを形成し、全てのエントリを「4」に設定する。
c)特定の部分状態ブロックAck合意に関連するそれぞれの受信されたデータフレームごとに、受信されたデータフレームと関連する合意のための一時記録が既に存在する場合には、その合意のための一時ブロック肯定応答記録は、前の節で説明した全状態合意のための肯定応答記録と同じ態様で変更される。
d)特定の部分状態ブロックAck合意に関連するそれぞれの受信されたブロックAckReqフレームごとに、受信されたデータフレームと関連する合意のための一時記録が存在しない場合には:
1)WinStartR=SSNを設定する。
2)WinEndR=WinStartR+WinSizeR−1を設定する。
3)サイズがWinSizeR×4のスコアボードビットマップを形成し、この場合、ビットマップ内の最初の4つのビットがシーケンス番号WinStartRに対応し、ビットマップ内の最後の4つのビットがシーケンス番号WinEndRに対応し、また、ビットマップ内の全てのビットを0に設定する。
4)WinSizeRのエントリを伴うFSTを形成し、全てのエントリを「4」に設定する。
e)特定の部分状態ブロックAck合意に関連するそれぞれの受信されたブロックAckReqフレームごとに、受信されたデータフレームと関連する合意のための一時記録が既に存在する場合には、その合意のための一時ブロック肯定応答記録は、前の節で説明した全状態合意のための肯定応答記録と同じ態様で変更される。
図7Cは、第1の実施形態によるBAビットマップ720の図である。BAビットマップ720内のビットのサイズ又は数であるBitmapLenは、ブロックAckフレームタイプに依存する。例えば、レガシー圧縮ブロックAckフレーム、Multi−TIDブロックAckフレーム、GCRブロックAckフレームの場合には、BitmapLenが64に等しい。しかしながら、802.11axは、より短い又はより長い或いは更には可変長のBAビットマップを伴う新たなブロックAckフレームを規定してもよい。図7cは、WinSizeRがBitmapLenに等しい場合のBAビットマップの一例を示す。暗黙的なブロックAck要求(AckポリシーがノーマルAckに等しい受信されたA−MPDU)又はブロックAckReqフレームを受信する際、BAビットマップは、スコアボードビットマップの関連するセクションの内容に基づいて生成される。受信されたMSDUに対応するスコアボードビットマップにおけるビット及びそれらのフラグメントだけが、もしあれば、BAビットマップ上にコピーされる。フラグメント数はMSDUごとに異なる場合があるため、BAビットマップにおける単一MSDU当たりのビット数は1(フラグメントなし)から4(4つのフラグメント)まで変化し得る。スコアボードビットマップ内のWinStartR及びBAビットマップにおける最初のビットを発端として、フラグメントサイズテーブル(FST)内の対応するエントリを参照することにより、FSTエントリによって示されるビット数がBAビットマップ上にコピーされる。
例えば、WinStartRに等しいシーケンス番号を有するMSDUが4つのフラグメントを有することをWinStartRに対応するFSTエントリが示す場合には、WinStartRに対応するスコアボードエントリからの最初の4ビットがBAビットマップにおける最初の4ビット上にコピーされる。WinStartR+1に等しいシーケンス番号を有するMSDUがフラグメント化されないことをWinStartR+1に対応する次のFSTエントリが示す場合には、WinStartR+1に対応するスコアボードエントリからの最初の1ビットのみがBAビットマップにおける次のビット上にコピーされる。同様に、WinStartR+2に等しいシーケンス番号を有するMSDUが3つのフラグメントを有する場合には、WinStartR+2に対応するスコアボードエントリからの最初の3ビットのみがBAビットマップにおける次の3ビット上にコピーされる。このプロセスは、BAビットマップの終わりに達するまで又はWinEndRに対応するビットを含むスコアボードビットマップの全ての関連するビットがBAビットマップにコピーされるまで続く。
BAビットマップの終わりに近づく際に、スコアボードビットマップ内の次のMSDUのビット上にその全体をコピーするためにBAビットマップに十分なビットが残っていないことが発見される場合、BAビットマップ内の残りのビットが全て0に設定される。一例として、スコアボードビットマップにコピーされるべき次のMSDUが3つのフラグメントを有するが2つのビットだけがBAビットマップの最後に残される場合には、2つのビットがいずれも0に設定される(例えば722)。受信されない有効なシーケンス番号範囲(WinStartR〜WinEndR)内の任意のMSDUは、初期設定で4に等しい対応するFSTエントリと、全てが0に設定されるスコアボードビットマップ内の4つの対応するビットとを有する。
したがって、受信されない有効なシーケンス番号範囲(WinStartR〜WinEndR)内の任意のMSDUは、BAビットマップ内に4つの連続したゼロをもたらす。MSDUに対応するBAビットマップ内の4つの連続したゼロの全てが0である場合、それは、発信側にとって特別な意味を持ち、そのMSDUのMPDUのいずれも受信されなかったことを発信側に警告する。受信されなかったMSDUの一部が単一MSDU当たり4未満のフラグメントを有する場合があるため、そのようなMSDUはBAビットマップに余分なビットをもたらす。結果として、スコアボードビットマップの最後に向かう有効ビットの幾つかは、現在のBAビットマップに適合できない場合がある。しかしながら、多くのMSDUがフラグメント化されない場合又は多くのMSDUがフラグメント化されるがそれぞれ4つ未満のフラグメントを含む場合であっても、同じサイズのBAビットマップに関して、現在の開示により提案されるブロックAckメカニズムが「専用」ブロックAckにより可能なものと比べてより多くのMSDUを確認できるのが容易に分かる。全てのMSDUがそれぞれ4つのフラグメントへとフラグメント化される最悪のシナリオでさえ、効率は「専用」ブロックAckの効率に等しい。
図8Aは、単一のA−MPDUで送信され得るMPDUの数を追跡するために発信側によって管理されてもよい送信ウィンドウ800を示す。レベル3のフラグメンテーションがMSDUの複数のフラグメント(最大4つ)を単一のA−MPDUで送信できるようにするため、単一MSDU当たりのフラグメント数がMSDUごとに異なる場合がある。また、有効なシーケンス番号空間、すなわち、1つの送信ウィンドウ内で送信され得る固有のシーケンス番号の数は固定されない。変数WinStartOは、現在の送信ウィンドウ内の最初のMSDUのシーケンス番号を追跡し、一方、送信ウィンドウ内で送信され得るMPDUの最大数は、ブロックAck合意を確立した関連するADDBA応答フレームのバッファサイズフィールドの値よりも小さく関連するブロックAckフレームのBAビットマップ内のビット数よりも大きくない変数WinSizeOによって示される。送信ウィンドウ800を管理する目的は、受信側が全ての受信されたMDPUの受信状態の記録を保持できるようにすることである。
図8Bは、現在の送信ウィンドウで送信されているMSDU内に存在するフラグメントの数を追跡するために発信側によって保持されてもよいフラグメントサイズテーブル(FST)810を示す。発信側は、アクセスを容易にするために、送信バッファ内のそのMSDUのそれぞれのフラグメント数を読み取ることができるが、発信側はFSTを保持してもよい。1つのFSTは、レベル3のフラグメンテーションを含む全ての新たなHT即時ブロックAck合意と関連付けられる。HT即時ブロックAck合意に関連するブロックAckフレームが64ビットBAビットマップを有すると仮定すると、FSTは、最大64個のMSDUのフラグメント数を記録する最大64エントリテーブルとして実装され得る。FSTは、FsTStartO及びFstEndOがFSTの開始及び終了を追跡する最大64エントリ循環バッファとして実装されてもよく、一方、FstIndexOは、FSTの個々のエントリへのインデックスとして使用される。
一般に、BAビットマップのサイズがBitmapLenとして示される場合、FSTは、BitmapLenに等しいエントリを伴うテーブルとして実装され得る。位置FstStartOにあるFSTのエントリは、現在の送信ウィンドウにおける最初のMSDUのシーケンス番号、すなわち、シーケンス番号サブフィールド値がWinStartOに等しいMSDUに対応し、一方、位置FstEndOにあるFSTのエントリは、現在の送信ウィンドウにおける最後のMSDUのシーケンス番号に対応する。FSTの各エントリは、それぞれごとのフラグメントの数を記録する。フラグメントの存在に起因して、1つの送信ウィンドウ内で送信され得る固有のシーケンス番号の数は固定されないが、WinSizeOが1つの送信ウィンドウ内で送信され得る最大の固有のシーケンス番号を表すため、FstStartO、FstEndO、及び、FstIndexOに関する全ての動作が循環モジュロWinSizeOで実行される。
図8Cは、MSDU全体が受信されない場合のシナリオを示す第1の実施形態によるBAビットマップフィールドの一例の図である。シーケンス番号ごとの肯定応答ビットの数はBAビットマップ内で固定されないため、発信側は、肯定応答ビットを正しく復号するためにFST810内の対応するFSTエントリを参照する必要がある。受信側がMPDUヘッダにおけるフラグメント数フィールド602に基づいて各MSDUの少なくとも1つのフラグメントを正しく受信する場合、受信側は、BAビットマップ内のそれぞれのMSDUごとに割り当てるべき正しいビット数を知っている。そのような場合には、BAビットマップが送信ウィンドウ内のMPDUと1対1の関係を有し、また、発信側は肯定応答状態を正しく復号することができる。
しかしながら、受信側がMSDUの単一のフラグメント又はフラグメント化されないMSDUをも受信しなかった場合には、欠けているシーケンス番号に対応するBAビットマップ内の4つの連続するビットが0に設定される。一例として、シーケンス番号SN+1を有するMPDUが受信側によって受信されない場合には、MSDUが正しく受信された場合に1つのビットだけが1にセットされるのではなく、ブラックボックス824によって強調されるようにBAビットマップにはSN+1に対応する0に設定される4つの連続するビットが存在する。FSTエントリ812により、発信側は、シーケンス番号SN+1を有するMPDUに関して単一のビットを期待している。ビットがゼロに設定される場合、発信側は次の3ビットをチェックする必要がある。発信側は、それがシーケンス番号境界で4つの連続したゼロを受信する場合には、それを、シーケンス番号SN+1を伴う任意のMPDUの受信に受信側が失敗したと解釈し、SN+1に対応する全てのMPDU、この場合には失敗した1つのMPDUの送信状態をマーキングして、BAビットマップ内で4ビット前進する。
SN境界で生じる単一MSDU当たりのフラグメントの最大数に等しい連続したゼロだけがこの特別な意味を持つ。上記の例では、FSTに基づき、ビット2及びビット3(最初のビットがビット0)にある2つのゼロ822がMSDU SNに対応することに発信側が気づくため、ビット数2から始まる4つの連続するゼロが存在しても、発信側はこれを特別な意味を持つものとして混同しない。SN+1境界で始まる4つの連続したゼロ、すなわち、824だけが、シーケンス番号SN+1を有するMSDUを受信するのに失敗として解釈される。
図9A、図9B、及び、図9Cは、第1の実施形態による効率的なブロックAckメカニズムを利用するフレーム交換シーケンス900の一例を示す。フレーム交換に先立って、レベル3のフラグメンテーションを含むHT即時ブロックAck合意がフレーム交換に関与する2つの無線デバイス間で既にネゴシエートされてしまっていると仮定される。この例では、WinSizeO、WinSizeR、及び、BitmapLenの値が64に等しい。発信側及び受信側は、フラグメントサイズテーブル902、920を保持して、現在の送信ウィンドウでそれぞれ送信又は受信されているMSDU内に存在するフラグメントの数を追跡する。FSTの全てのエントリは、現在のHT即時ブロックAck合意下でMSDUごとに許されるフラグメントの最大数(この例では4)に初期化される。
発信側は、SN=1を伴うMSDUの4つのそれぞれのフラグメントを搬送する4つのMPDU、SN2〜6を伴うフラグメント化されないMSDUを搬送する5つのMPDU、SN=7を伴うMPDUの2つのそれぞれのフラグメントを搬送する2つのMPDU、及び、SN8〜30を伴うフラグメント化されないMSDUを搬送する23個のMPDUを発端として34個のMPDUを集約するA−MPDU910を送信することによってフレーム交換を開始する。また、各MPDUはそれぞれのMACヘッダでフラグメント数フィールド602も搬送する。
受信側は、MPDUを受信する際、フラグメント数602の値をFST920の対応するエントリにコピーし、例えば、SN=1を伴うMSDUに対応するエントリ#1に4をコピーし、エントリ#2、#3、#4、#6などに1をコピーする。同じMSDUのフラグメントを搬送する全てのMPDUのフラグメント数フィールドの値が同じであるため、MSDUごとに1回FSTエントリを更新するだけで済む。この送信において、受信側は、3つのMPDU、すなわち、SN=5を伴うMPDU912、SN=7を伴うMSDUの2つのフラグメントを搬送するMPDU914、916を受信し損なう。結果として、FSTエントリ#5 922及び#7 924並びにSNが送信ウィンドウの外側にあるMSDUに対応する全てのエントリは、初期値4で不変のままである。同時に、受信側は、正しく受信されたMPDUに対応する各ビットを1に設定するスコアボードビットマップ926の対応するビットに各MPDUの受信状態も記録する。
フラグメント化されないMSDUの場合、MSDUに対応する4ビットブロック内の最初のビットのみが1に設定され、残りのビットは0に設定されたままである。この例では、SN=1である。A−MPDU910のMPDUは暗黙的なブロックAck要求を示す(AckポリシーがノーマルAckに等しい)。A−MPDU910の終わりに到達する際に、スコアボードビットマップ926の最初のビット及びBAビットマップ930の最初のビットを発端として、フラグメントサイズテーブル(FST)920内の対応するエントリを参照することによって、FSTエントリによって示されるビット数が、一度に1つのMSDUずつ、BAビットマップ930上にコピーされる。SN=1を伴うMSDUに対応するスコアボードエントリからの4つのビットがBAビットマップ内の最初の4つのビット上にコピーされ、SN=2〜4を伴うMSDUに対応するスコアボードエントリの最初の1つのビットが次の3つのビット上にコピーされる。同様に、FSTエントリ#5 922は4の値を示すため、SN=5を伴うMSDUに対応するスコアボードエントリからの4つのビット(0000)は、BAビットマップ内の次の4つのビット932上にコピーされる。同様に、SN=6及び7を伴うMSDUに対応するスコアボードエントリからの1つのビット及び4つのビット(0000)は、BAビットマップのビット#11及び次の4つのビット934上にそれぞれコピーされる。スコアボードビットマップ926の有効範囲内の残りのビットは、同様にしてBAビットマップ930のそれぞれのビット上にコピーされる。SN=30を伴うA−MPDU910における最後のMSDUに対応するビット928は、BAビットマップ930におけるビット#38 936上にコピーされる。
受信側は、BAビットマップ930を搬送するブロックAckフレーム938を送信することによってA−MPDU910の受信を確認する。ブロックAckフレーム938の開始シーケンス番号フィールド624は、BAビットマップ930によって確認される第1のMSDUのシーケンス番号に設定され、一方、フラグメント番号フィールド622の1つのビット(例えばB0)は、BAビットマップ930が第1の実施形態のように符号化されることを示すために使用されてもよく、また、2つのビット(例えば、B1、B2)は、BAビットマップ930の長さ(ビット数)を示すために使用されてもよい。
発信側がブロックAckフレーム938を受信した時点で、発信側は、フラグメント番号フィールド622のビットの値に基づいてBAビットマップ930を復号し始める。BAビットマップ930において単一MSDU当たりのビット数が変化する場合であっても、発信側は、FST902を参照することによって各MPDUの受信状態を正しく理解することができる。発信側がSN=5を伴うMSDUのためのSN境界にある4つの連続したゼロ932を横切ると、発信側は、それを、SN=5を伴うMSDUに対応する任意のMPDUの受信に受信側が失敗したと解釈し、FSTエントリ904に基づき、SN=5に対応する単一のMPDUの送信状態を失敗としてマーキングする。同様に、発信側は、SN=7を伴うMSDUのためのSN境界にある4つの連続したゼロ934を、SN=7を伴うMSDUに対応する任意のMPDUの受信に受信側が失敗したとして解釈し、FSTエントリ906に基づき、SN=7に対応する2つのMPDUの送信状態を失敗としてマーキングする。
発信側は、ブロックAck938の内容に基づき、SN=5及び7を伴うMSDUに対応する3つの失敗したMPDU、SN31を伴うフラグメント化されないMSDUを搬送する単一のMPDU、SN=32を伴うMSDUの3つのそれぞれのフラグメントを搬送する3つのMPDU、及び、SN33〜40を伴うフラグメント化されないMSDUを搬送する9個のMPDUを集約する次のA−MPDU940を送信する。それに応じてFST902のエントリが更新される。この送信において、受信側は、4つのMPDU、すなわち、SN=7を伴うMSDUの最初のフラグメントであるMPDU942、及び、SN=32を伴うMSDUの3つのフラグメントを搬送するMPDU944、946、948の受信に失敗する。結果として、FSTエントリ#32 949及びSNが送信ウィンドウの外側にあるMSDUに対応する全てのエントリは、初期値4で不変のままである。
しかしながら、SN=5を伴うMSDUを搬送するMPDU及びSN=7を伴うMSDUの第2のフラグメントを搬送するMPDUもMPDUヘッダにおけるフラグメント数フィールド602の値に基づき正しく受信されるため、受信側は、FSTエントリ922及び924を1及び2の正しい値にそれぞれ更新する。A−MPDU940の終わりに達すると、BAビットマップ950は、先に説明したようにスコアボードビットマップの関連するビット上にコピーすることによって形成される。今回は、SN=32を伴うMPDUに対応するMPDUのいずれも受信されなかったため、BAビットマップ950内の4つの対応するビット952上に4つのゼロがコピーされる。
最後に、受信側は、BAビットマップ950を搬送するブロックAckフレーム954を送信することによってA−MPDU940の受信を確認する。発信側は、ブロックAckフレーム954を受信すると、先に説明したようにBAビットマップ950を復号し続ける。発信側がSN=7を伴うMSDUのためのSN境界にある4つの連続したゼロ952を横切ると、発信側は、それを、SN=32を伴うMSDUに対応する任意のMPDUの受信に受信側が失敗したと解釈し、FSTエントリ908に基づき、SN=32に対応する3つのMPDUの送信状態を失敗としてマーキングする。この例から分かるように、フラグメント化されるMSDUの数が少ない場合、第1の実施形態で提示されたブロック肯定応答メカニズムを採用することによって、確認応答効率の大幅な向上を達成することができる。
<第2の実施形態>
多くのMSDUが完全に受信されない場合、BAビットマップは、連続したゼロの多数のグループで満たされ、それにより、単一のブロックAckフレームで確認され得るMPDUのシーケンス番号空間を減少させる。先に説明したように、レベル3のフラグメンテーションに関する主な使用事例は、アップリンクマルチユーザPPDUの最後の未使用スペースを埋めることである。したがって、レベル3のフラグメンテーションがMSDUごとに最大で4つのフラグメントを許容する場合であっても、多くのシナリオでは、特にMSDUのサイズが小さいときに、MSDUごとに必要なフラグメントの実際の数は、4未満となる場合があり、多くの場合にはちょうど2となる場合がある。
この所見に基づき、第2の実施形態は、第1の実施形態で提示されたメカニズムを改善し、MSDU全体が受信されない場合にMSDUに対応するFSTエントリが受信されたA−MPDUに存在する同じMSDUの最大フラグメント数として例えば2として更新されることを推奨する。これは、受信されないMSDUを完全に表現するために使用されるBAビットマップ内の連続した0の数、すなわち、2をもたらす発信側がBAビットマップを正しく復号するのを助けるために、受信側は、この値を、ブロックAckフレーム内のフラグメント番号フィールド622の2つのビットを使用して示す。2つのビットが一緒に使用される場合には、以下の4つのケース、すなわち、00(フラグメント化されない);01(2つのフラグメント);10(3つのフラグメント);11(4つのフラグメント)を信号で伝えることができる。フラグメント化されないケースのほかに、残りの3つの値はレベル3のフラグメンテーションの使用も示す。或いは、レベル3のフラグメンテーションの使用を示すために1つのビットが使用され(0:レベル3のフラグメンテーションが使用されない、1:レベル3のフラグメンテーションが使用される)、一方、受信されたA−MPDUに存在するフラグメントの最大数を示すために2番目のビットが使用される。例えば、2つのフラグメントを示すための0、及び、4つのフラグメントを示すための1。
図10A、図10B、及び、図10Cを参照すると、第2の実施形態による効率的なブロックAckメカニズムを利用するフレーム交換シーケンス1000の一例が示される。最初のA−MPDUは4つのフラグメントを伴うMSDUを含むため、受信側でのBA Bitmapの構築及び発信側でのBAビットマップの復号化は、フレーム交換900におけるBAビットマップ930の構築及び復号化と全く同じである。唯一の相違点は、4に等しい受信されたA−MPDUに存在するフラグメントの最大数がブロックAckフレーム938におけるフラグメント番号フィールド622の2つのビットを使用して示されるという点である。
その後、発信側は、フレーム交換900におけるA−MPDU940と全く同じであるA−MPDU1010を送信する。この送信において、受信側は、4つのMPDU、すなわち、SN=7を伴うMSDUの最初のフラグメントであるMPDU1012、及び、SN=32を伴うMSDUの3つのフラグメントを搬送するMPDU1014、1016、1018の受信に失敗する。SN=32を伴うMSDUの3つの全てのフラグメントは受信されないため、受信されるフラグメントの最大数は2である。したがって、受信側は、SN=32を伴うMSDUに対応するFSTエントリ1020を2として記録する。その結果、BAビットマップ1030が構築されるときに、2つの連続するゼロ1032がSN=32を伴うMSDUを表す。その後、受信側は、BAビットマップ950を搬送するブロックAckフレーム1040を送信することによってA−MPDU1010の受信を続けて確認する。
発信側は、ブロックAckフレーム1040を受信する際、完全に受信されないMSDUを表す連続する0の数、この場合には2がブロックAckフレーム1040のフラグメント番号フィールド622に示されることを除き、第1の実施形態で先に説明した態様と同様の態様でBAビットマップ1030を続けて復号する。発信側がSN=32を伴うMSDUに対応する2つの連続するビット1032を横切るとき、SN=32を伴うMSDUに対応する3つのMPDUの全てが受信側によって受信されなかったことを正しく復号することができる。
<第3実施形態>
第1及び第2の実施形態では、MSDUごとに許可されるフラグメントの最大数が4に固定されると仮定された。しかしながら、MSDUごとに許容されるフラグメントの最大数を所定値に固定する代わりに、発信側及び受信側は、2つのデバイス間のHT即時ブロックAckメカニズムのセットアップ段階中にこの値をネゴシエートできるようにされてもよい。通信されるようになっているMSDUが比較的大きい場合には、より大きな値が使用されてもよく、一方、MSDUがより小さい場合には、より小さい値がネゴシエートされてもよい。また、MSDUごとに許可されるフラグメントの最大数は、いずれかのデバイスで利用可能なリソースに依存する場合もある。これは、より大きな値によってデバイスがより大きなバッファ等を有さなければならないからである。図11Aに示されるように、MSDUごとに許可されるフラグメントの最大数は、ADDBA拡張要素1100で搬送されてもよい。
要素ID1102が802.11仕様で指定されるように設定され、長さフィールド1104が1オクテットを示し、一方、ADDBA能力フィールド1106が図11Bに示されるようにカスタマイズされる。既存の非フラグメンテーションサブフィールド1112のほかに、残りの7つのビットが現在留保される。第3の実施形態により、留保されたビットの幾つか、例えば2つのビットは、残りの5ビットが留保される状態で単一MSDU1124当たりの最大フラグメントを示すために使用される。単一MSDU1124当たりの最大フラグメントの符号化が図11Cのテーブル1130に示されるようになっていてもよく、この場合、値0、1、2及び3は、単一MSDU当たりの最大2、4、8及び16フラグメントをそれぞれ表す。4つのビットを使用して単一MSDU当たりの最大フラグメントを符号化する場合、更に一層細かいレベルを示すことができる。
単一MSDU当たりのより高い数のフラグメントをサポートするために、スコアボード及びフラグメントサイズテーブルを更に変更する必要がある。単一MSDU当たりの最大フラグメントが4以下ある場合にはフラグメントの数を記録するのに単一FSTエントリ当たり2ビットで十分であるが、単一MSDU当たりの最大フラグメントが16である場合には単一FSTエントリ当たり4ビットが必要とされる。加えて、MSDUの受信状態を記録するために、スコアボードビットマップには単一MSDU当たり16ビットが必要とされる。
第3の実施形態は、単一MSDU当たり1つの余分なビットを加えることによってスコアボードビットマップが受信状態及び単一MSDU当たりのフラグメント数の両方を一緒に記録できるようにするスコアボードビットマップのための新規な符号化方法を導入する。これは、単一MSDU当たりの最大フラグメントが4になるようにネゴシエートされる例に関して図11Dに示される。単一MSDU当たりの最大フラグメント+1に等しいビットの数、この場合には5は、MSDUごとにスコアボードビットマップ1140で割り当てられる。それぞれのビットグループごとのビット番号付けが1150に示されており、この場合、B0、B1、B2、B3及びB4は、ビットグループ1150の第1、第2、第3、第4及び第5のビットを表す。
図11Eは、スコアボードビットマップ1140の各ビットグループの符号化のテーブル1160を示す。単一MSDU当たりの最大フラグメントが4としてネゴシエートされる場合、4つの可能な符号化が存在する。B4=0の場合には2つの可能性が存在する。すなわち、MSDU全体が受信されず、このケースでは、ビットB0、B1、B2及びB3の残りが全て0に設定され、或いは、単一MSDU当たりのフラグメント数が4に等しく、ビットB0、B1、B2及びB3がフラグメント0、1、2及び3の受信状態をそれぞれ示す。この符号化はビットグループ1142によって表される。B4=1及びB3=0の場合、単一MSDU当たりのフラグメント数は3に等しく、また、ビットB0、B1及びB2はフラグメント0、1及び2の受信状態をそれぞれ示す。
この符号化はビットグループ1144によって表される。同様に、B4=1、B3=1及びB2=0の場合、単一MSDU当たりのフラグメント数は2に等しく、ビットB0及びB1はフラグメント0及び1の受信状態をそれぞれ示す。この符号化はビットグループ1144によって表される。最後に、B4=1、B3=1、B2=1及びB1=0の場合、単一MSDU当たりのフラグメント数は1に等しく、すなわち、MSDUはフラグメント化されず、ビットB0はMSDUの受信状態を示す。この符号化はビットグループ1148によって表される。1140の網掛けボックスは、MPDUの受信状態を記録するために使用されてBAビットマップ上にコピーされるビットを表す。一般に、ビットグループ内の0に設定される最後のビットの位置は、ビットグループの符号化を示す。「n」がHT即時ブロックAckセットアップ中にネゴシエートされるMSDUごとに許可される最大フラグメント数を表す場合、スコアボードビットマップ内のMSDUごとにn+1ビットのビットグループが必要とされる。B0がビットグループの最初のビットを表すとともにBnが位置n+1にあるビットを表す場合、スコアボードビットマップ符号化は以下のように一般化され得る。
Bn=0の場合、及び、ビットグループ内の残りのビットもゼロである場合には、MSDU全体が受信されず、さもなければ、フラグメント数=nであり、B0〜Bn−1はフラグメント0〜n−1の受信状態をそれぞれ示す。
Bn〜Bmが全て1でBm−1=0の場合、フラグメント数=m−1及びB0〜Bm−2は、フラグメント0〜m−2の受信状態をそれぞれ示す(m<=n;m>2)。
Bn〜Bn−2が全て1でありB1=0の場合には、MSDUがフラグメント化されず、B0はMSDUの受信状態を示す。
次に、スコアボードビットマップ動作について簡単に説明する。スコアボードビットマップの全てのビットは0に初期化される。フラグメント数フィールド602の値に基づいてフラグメント又はMSDUが受信されると、対応するビットがテーブル1160に記載されるような値に設定され、例えばフラグメント数フィールド602の値が3である場合には、B4が1に設定されるとともにB3が0に設定され、フラグメント数フィールド602の値が1であれば、B4、B3及びB2が1に設定されるとともにB1が0に設定される。更に、フラグメント番号フィールド604に対応するビットが1に設定される。フラグメント0の場合にはB0、フラグメント1の場合にはB1、フラグメント2の場合にはB2、フラグメント4の場合にはB3である。
或いは、フラグメント数がMPDUに明示的に示されない場合、受信側は、MPDUのシーケンス制御フィールド内のフレーム制御フィールド及びフラグメント番号フィールドにおけるより多くのフラグメントビットを使用してフラグメント数を決定する。この場合、受信側は、(0に設定されるより多くのフラグメントビットによって示されるように)最後のフラグメントが受信されるときだけフラグメントの数を決定できる。したがって、スコアボードビットマップ符号化は、受信されたフラグメントに基づいて動的に更新される必要があり得る。例えば、最初のフラグメントが受信されるときには、より多くのフラグメントビットが1に設定されれば、受信側は、より多くのフラグメントが存在することを認識するが、フラグメントの正確な数を認識しないため、B4を0に設定するとともにB0を1に設定する。その後、同じMSDUの第2のフラグメントが受信されると、より多くのフラグメントビットが0に設定されれば、受信側は、この時点で、フラグメント数が2であることを知り、そのため、2つのフラグメントを示すべくB4、B3及びB2をそれぞれ1、1、0に設定するとともにフラグメント2が受信されたことを示すべくB1を1に設定する。
しかしながら、スコアボードビットマップ符号化を破損させないようにするために、フラグメント化されたMSDUの場合には、1つの付加的な規則が必要とされる。すなわち、ビットグループが全て0以外の値に既に符号化されてしまっている場合には、符号化だけが全てゼロに(MSDUの最後のフラグメントが受信されないとき)又はより多くの数のフラグメントを示すように変えられてもよい。言い換えると、ビットグループ内の最後のゼロは、より高いビットにシフトされるだけで、より低いビットにはシフトされなくてもよい。この規則は、再送されたフラグメントを搬送するMPDUの受信がビットグループ符号化を破損させるのを防ぐために必要とされる。
受信状態をBAビットマップにコピーするために、受信側は、スコアボードビットマップの各ビットグループの最後のビットから開始する。ビットが1に設定される場合には、受信側が次のビットに移動し、また、ビットが0の場合、受信側は、ビットグループ内の残りのビットの内容をBAビットマップ内の対応するビットにコピーする。例えば、ビットグループ1142に関しては、B4=0であるため、4つの網掛けビットがBAビットマップ上にコピーされ、ビットグループ1144に関しては、B4=1であるため、B3がチェックされ、また、B3=0であるため、残りの3つの網掛けビットがBAビットマップ上にコピーされ、ビットグループ1146に関しては、B4及びB3が1に設定されるとともにB2が0に設定されるため、B1及びB0がBAビットマップ上にコピーされ、ビットグループ1148に関しては、B4、B3及びB2が1に設定されるとともにB1が0に設定されるため、B0がBAビットマップ上にコピーされる。フラグメントの数及び受信状態のいずれもスコアボードビットマップ自体に記録されるため、FSTに必要なメモリが保存されるだけでなく、BAビットマップを構築するプロセスがより高速になり得る。これは、スコアボードビットマップからコピーされるべきビット数を決定するために別個のFSTテーブルを参照する必要がないからである。
図12Aは、レベル3のフラグメンテーションを伴う任意の実際のフレーム交換の前に2つの無線デバイス間のレベル3のフラグメンテーションを伴うHT即時ブロックAck合意をネゴシエートするために使用されるADDBA要求/応答交換1200を示す。発信側は、ADDBA要求フレーム1202において、MSDUフィールドごとに最大フラグメントを設定することによって、MSDUごとに許可されるフラグメントの最大数が16になることを要求する。リソース制約に起因して、受信側は、ADDBA応答フレーム1204の単一MSDU当たりの最大フラグメントフィールドに示されるように、MSDUごとに最大6つのフラグメントをサポートすることしかできない。
図12B、図12C、及び、図12Dは、第3の実施形態による効率的なブロックAckメカニズムを利用するフレーム交換シーケンス1210の一例を示す。この例では、WinSizeO、WinSizeR、及び、BitmapLenの値が64に等しい。発信側は、現在の送信ウィンドウで送信されているMSDU内に存在するフラグメント数を追跡するためにフラグメントサイズテーブル(FST)1212を保持してもよいが、これは随意的である。それは、発信側が各MSDU内のフラグメントの数に関する情報をその送信バッファを参照することによって容易に得ることができるからである。発信側は、SN=1を伴うMSDUの6つのそれぞれのフラグメントを搬送する6つのMPDU、SN=2を伴うフラグメント化されないMSDUを搬送する1つのMPDU、SN=3を伴うMSDUの3つのそれぞれのフラグメントを搬送する3つのMPDU、及び、SN4〜20を伴うフラグメント化されないMSDUを搬送する17個のMSDUを発端として27個のMPDUを集約するA−MPDU1213を送信することによってフレーム交換を開始する。それに応じてFST1212の全ての関連するエントリも更新される。
この送信において、受信側は、6個のMPDU、すなわち、SN=1を伴うMSDUの最初の5つのフラグメントを搬送するMPDU1214、1215、1216、1217、1218及びSN=3を伴うMSDUの最後のフラグメントを搬送するMPDU1219の受信に失敗する。この例では、SN=1である。第3の実施形態によれば、フラグメント数は発信側によってMPDUに明示的に示されず、そのため、受信側は、MPDUのシーケンス制御フィールド内のフレーム制御フィールド及びフラグメント番号フィールドにおけるより多くのフラグメントビットを使用して、MSDUに存在するフラグメント数を決定する必要がある。より多くのフラグメントビットが0に設定されるとともにMPDUにおいてフラグメント番号フィールドも0であれば、受信側は、MPDUがフラグメント化されないMSDUを搬送することを示す。より多くのフラグメントビットが1に設定されれば、受信側は、MPDUがフラグメント化されたMSDUを搬送するとともにMSDUのより多くのフラグメントが存在することを示す。より多くのフラグメントビットが0に設定されるとともにMPDUにおいてフラグメント番号フィールドがゼロでない場合、受信側は、MPDUがMSDUの最後のフラグメントを搬送することを示す。しかしながら、これの1つの欠点は、受信側がMSDUの最後のフラグメントを受信してMSDUに存在するフラグメントの数を絶対的な確実性で決定する必要があるという点である。
レベル3のフラグメンテーションを含む新たなHT即時ブロックAckがセットアップされるたびに、受信側は、各MPDUの受信状態を記録するためにスコアボードビットマップ1230を形成する。MSDUごとに許可される最大フラグメント数が6としてネゴシエートされるため、1つのMSDUのためにスコアボードビットマップで7ビットのビットグループがそれぞれ必要とされ、全てのビットが形成時に0に初期化される。A−MPDU1213を受信する際、受信側は、それぞれの個々のMPDUの受信状態をA−MPDUに記録し始める。SN=1を伴うMSDUの最初の5つのフラグメントが失われても、最後のフラグメントが正しく受信されるため、受信側は、フラグメント数を6として正しく決定することができ、フラグメント数=6を示すために第1のビットグループ1231を続けて符号化するとともに、6番目のフラグメントに対応する6番目のビットを1に設定する。
SN=2を伴うフラグメント化されないMSDUを搬送するMPDUを受信する際、受信側は、フラグメント数=1を示すために第2のビットグループ1233を同様に符号化するとともに最初のビットを1に設定する。SN=3を伴うMSDUに関するシナリオは少し異なり、最初の2つのフラグメントが受信される場合でも、3番目及び最後のフラグメント1219が受信されないため、受信側は、MSDUに存在するフラグメントの数を決定することができず、したがって、第3のビットグループ1235を全て0に設定する。SN4〜20を伴うMSDUに対応するビットグループも同様にして符号化される。A−MPDU1213の終わりに達した時点で、第1のビットグループ1231を発端として、受信側は前述のようにBAビットマップ1240を形成し始める。ビットグループ1231の最後のビット1232が0に設定されるため、ビットグループ1231の最初の6個のビットは、BAビットマップ1240の最初の6個のビット上にコピーされる。
次に、ビットグループ1233内の0に設定される最後のビット1234の位置に基づき、最初のビットがBAビットマップ内の次のビット上にコピーされる。同様に、ビットグループ1235の最後のビット1236が0に設定されるため、たまたま全て0になるビットグループ1235の最初の6つのビットは、1242により示されるようにBAビットマップの次の6つのビット上にコピーされる。残りのBAビットマップも同様の方法で作成されてブロックAckフレーム1248内の発信側に送信される。発信側でのBAビットマップ1240の復号は、第1の実施形態で説明されたものと同じである。発信側は、SN=3を伴うMSDUのシーケンス番号境界にある6つの連続するゼロ1242を受信すると、これを、受信側によって受信され損ねるSN=3を伴うMSDUの3つの全てのフラグメントとして復号し、それらを次のA−MPDU1250で再送する。これは、発信側がフラグメント1、2をそれらが受信側により受信された場合であっても再送する必要があるため、幾つかの非効率性をもたらすが、この規則は、発信者が残りのBAビットマップを正しく復号できるようにするために必要である。
発信側は、ブロックAck1248の内容に基づき、SN=1を伴うMSDUに対応する5つの失敗したMPDU、SN=3を伴うMSDUに対応する3つの失敗したMPDU、及び、SN21〜30を伴うフラグメント化されないMSDUを搬送する10個の新たなMPDUを集約する次のA−MPDU1250を送信する。この送信において、受信側は、SN=3を伴うMSDUの最初の2つのフラグメントを搬送する2つのMPDU1252、1254を受信し損なう。しかしながら、SN=3を伴うMSDUの最後のフラグメントが受信されるため、受信側は、この時点で、SN=3を伴うMSDU内のフラグメントの数を正しく決定することができる。受信されたMPDUは、先に説明した符号化方式にしたがってスコアボードビットマップ1260に記録される。第1のビットグループ1262及び第3のビットグループ1264はいずれも、それぞれのフラグメントの受信を反映するように更新される。BAビットマップ1270は、スコアボードビットマップの内容に基づいて形成され、ブロックAckフレーム1280における発信側に送信される。SN=3を伴うMSDUのために割り当てられる3ビット1272は、この時点で、MSDU内のフラグメント数を正しく反映する。FSTを参照することによって、発信側は受信されたBA Bitmapを正しく復号できる。
<第4実施形態>
図6Aに示されるようにMACヘッダにおけるシーケンス制御フィールド内のフラグメント番号フィールドの2ビットを使用して単一MSDU当たりのフラグメント数を示すことができる場合でも、これは、単一MSDU当たりのフラグメント数を4に制限する。第4の実施形態によれば、フラグメント数は、HEバリアントHT制御フィールドの集約制御(A−制御)サブフィールド内の制御サブフィールドのうちの1つを使用して示される。
図13Aは、IEEE802.11axで規定されるHEバリアントHT制御フィールド1300のA−制御サブフィールドのフォーマットを示す。A−制御サブフィールドは、一連の1つ以上の制御サブフィールド1310、...、1320を含み、その後に、A−制御サブフィールドの長さを30ビットに等しくするために0のシーケンスに設定される随意的なパディングサブフィールド1330が続く。各制御サブフィールドは、固定長制御IDサブフィールドと可変長制御情報サブフィールドとにより形成される。制御IDサブフィールドは、制御情報サブフィールドで搬送される情報のタイプを示し、一方、制御情報サブフィールドの長さは、留保されない制御IDサブフィールドのそれぞれの値ごとに固定される。
図13Bは、第4の実施形態によるフラグメント数を示すために使用される制御サブフィールド1350のフォーマットを示す。この制御サブフィールドは、制御IDサブフィールド1352のほかに、4ビット長フラグメント数サブフィールド1354を搬送する。第4の実施形態によれば、フラグメント化されたMSDUを搬送する各MPDUは、同じA−MPDUで送信されるMSDUのフラグメント数に設定されるフラグメント数フィールド1354を伴ってMACヘッダ内に制御サブフィールド1350を含む。同じA−MPDUで送信されるMSDUの全てのフラグメントは、フラグメント数フィールド1354で同じ値を搬送する。これにより、受信側は、単一のフラグメントだけが受信される場合でも、正しい数のビットをBAビットマップ内のMSDUに正確に割り当てることができる。
<第5の実施形態>
第5の実施形態は、BAビットマップのための更なる他の符号化を導入する。BAビットマップのビットは2つのタイプにグループ化される。
1)タイプ1のブロックは、少なくとも1つのフラグメントが受信されて少なくとも1つのフラグメントが受信されないときにフラグメント化されたMSDUのフラグメントの受信状態を示すために使用される。タイプ1のブロックのサイズは、A−MDPU(X)で送信されることが許可されるMSDUの最大フラグメント数に依存する。タイプ1のブロックは長さがX+1ビットである。
2)タイプ2のブロックは、フラグメントがいずれも受信されない又はフラグメントの全てが受信されるときにフラグメント化されないMSDU又はフラグメント化されたMSDUの受信状態を示すために使用される。タイプ2のブロックは長さが常に2ビットである。
第5の実施形態は、A−MDPUで送信されることが許可される最大フラグメント数が4に固定されることを想定する。図14Aは、BAビットマップブロック1400の一般的な構造を示す。ブロックタイプとして知られる最下位ビット(LSB:Least Significant Bit)1410はブロックのタイプを示し、一方、可変サイズのAckビットフィールド1420はフレームの受信状態を示す。
図14Bは、タイプ1のブロック1430の構造を示す。タイプ1のブロックでは、ブロックタイプ1440が1に設定され、一方、タイプ1のブロックのAckビットフィールド1450の残りの4つのビットは、個々のフラグメントの受信状態を示すために使用される。図14Cは、タイプ2のブロック1460の構造を示す。タイプ2のブロックでは、ブロックタイプ1470が0に設定され、第2ビット1480がMSDU全体の受信状態を示す。フラグメント化されないMSDUが受信されない場合或いは更にはフラグメント化されたMSDUの単一のフラグメントが受信されない場合には、第2のビット1480が0に設定される。フラグメント化されないMSDUが受信される或いはフラグメント化されたMSDUの全てのフラグメントが受信される場合には、第2のビット1480が1に設定される。
スコアボードビットマップ及びフラグメントサイズテーブルに関しては、先の実施形態で導入された方法のいずれかを使用して、フレームの受信状態を記録してもよく或いは単一MSDU当たりのフラグメント数を記録してもよい。A−MPDUの終わりに達して受信側がBAビットマップを形成すると、スコアボードビットマップをType1又はType2のブロックに符号化するために何らかの種類の変換が必要とされる。スコアボードビットマップで設定されるビットとフラグメント数の知識とに基づいて、受信側は、前述の規則にしたがってそれぞれのMSDUごとに使用されるべき適切なタイプのブロックを選択する。
しかしながら、第5の実施形態は、第5の実施形態で導入されたBAビットマップ符号化のために特別に形成されるスコアボードビットマップのための新たな符号化を導入する。これは、MSDU当たりの最大フラグメントが4に固定される例に関して図15Aに示される単一MSDU当たりの最大フラグメント+1に等しいビット数、この場合は5が、単一MSDU当たりのスコアボードビットマップ1500に割り当てられる。BAビットマップに関して規定される同じ符号化がスコアボードビットマップにおいても使用される。最初にスコアボードのビットマップ内の全てのビットが0に設定され、このことは、MSDUごとの各5ビットブロックの最初の2つのビットを受信されないMSDUを示すタイプ2のブロックであると解釈できることを意味する。
フラグメント化されないMSDUが受信される場合には、対応するブロックの第2のビット1480が1に設定される。ブロック内の残りの3ビットは未使用のままである。1506及び1508はそのようなタイプ2のブロックの例である。フラグメント化されたMSDUが受信されるとともに、対応するビットマップブロックがタイプ2のブロックを示す場合には、タイプ1のブロックを示すために対応するブロックのブロックタイプビットが1に設定され、また、フラグメントに対応するAckビットフィールド1450内のビットも1に設定される。その後、MSDUの最後のフラグメントが受信されてMSDUの他の全てのフラグメントも受信されてしまうと、ブロックタイプビットを0に設定することによってブロックがタイプ2のブロックに変換される。この場合、第2のビットは(第1のフラグメントが受信されたことを示すために)既に1に設定されるため、ビットマップブロックは、MSDUの全てのフラグメントが受信されたことを正しく反映する。タイプ1のブロックからタイプ2のブロックへの変換は、対応するMSDUの全てのフラグメントが受信されたと決定される場合にのみ可能である。全てのフラグメントが受信されたかどうかを受信側が決定できない場合には、タイプ1のブロックがそのまま残される。
A−MPDUの終わりに達する際に(暗黙的なブロックAck要求)或いはブロックAckReqフレームを受信する際に(明示的なブロックAck要求)受信側がBAビットマップ1510を形成すると、受信側は、単に、スコアボードビットマップからの関連するビットをBAビットマップ内の対応する位置にコピーする。タイプ1のブロックの場合、5ビット全てがBAビットマップ(例えば、1512、1514)上にコピーされ、これに対し、タイプ2のブロックの場合には、最初の2ビットのみがコピーされる(例えば、1516、1518)。BAビットマップの終わりに近づく際に、スコアボードビットマップ内の次のブロック上にその全体をコピーするためにBAビットマップに十分なビットが残っていないことが発見される場合、BAビットマップ内の残りのビットが全て0に設定される。一例として、ScoreBoardビットマップにコピーされるべき次のブロックがタイプ1のブロックであってBAビットマップの最後に2ビットしか残らない場合には、2つのビットがいずれも0(例えば、1519)に設定される。
第1のビット1511を発端として第5の符号化にしたがって符号化されるBAビットマップ1510を含むブロックAckフレームを発信側が受信すると、発信側は、第1のブロック1512がタイプ1のブロックであるかタイプ2のブロックであるかを決定する。ブロックタイプビット1511が1に設定されるため、1512がタイプ1のブロックであると決定され、次の4つのビットがフラグメントの受信状態を示す。同様に、次のビット1513は、次のブロック1514もタイプ1のブロックであることを示す。5ビット前進すると、ビット1515は、ブロック1516がタイプ2のブロックであることを示し、したがって、次のビットは、MSDU全体の受信状態を示す。1516はタイプ2のブロックであるため、次のビット1517は、同様にタイプ2のブロックであると決定される次のブロック1518のブロックタイプを決定する。
図16A、図16B、及び、図16Cは、第5の実施形態による効率的なブロックAckメカニズムを利用するフレーム交換シーケンス1600の一例を示す。この例では、WinSizeO、WinSizeR、及び、BitmapLenの値が64に等しい。発信側は、SN=1を伴うMSDUの4つのそれぞれのフラグメントを搬送する4つのMPDU、SN2〜6を伴うフラグメント化されないMSDUを搬送する5つのMPDU、SN=7を伴うMSDUの2つのそれぞれのフラグメントを搬送する2つのMPDU、及び、SN8〜30を伴うフラグメント化されないMSDUを搬送する23個のMPDUを発端として34個のMPDUを集約するA−MPDU1610を送信することによってフレーム交換を開始する。
この送信において、受信側は、4つのMPDU、すなわち、SN=1を伴うMSDUの第2のフラグメントを搬送するMPDU1611、SN=5を伴うフラグメント化されないMSDUを搬送するMPDU1612、及び、SN=7を伴うMSDUの2つのフラグメントを搬送するMPDU1614、1616の受信に失敗する。この例では、SN=1である。
A−MPDU1610を受信する際、受信側は、先に説明したようにA−MPDUのそれぞれの個々のMPDUの受信状態をスコアボードビットマップに記録し始める。SN=1を伴うMSDUの3つの受信されたフラグメントは、タイプ1のブロックとしてスコアボードビットマップに記録され、この場合、Ackビットフィールド1450内の第1、第3及び第4のビットが1に設定される。同様に、SN=2〜4及びSN=6を伴うフラグメント化されないMSDUの受信状態がタイプ2のブロックとして記録され、この場合、それぞれのAckビット1480が1に設定される。SN=5を伴うMSDU及びSN=7を伴うMSDUの両方のMPDUに関しては、対応するスコアボードブロックがタイプ2のブロックとして記録され、この場合、それぞれのAckビット1480が0に設定される。残りのMSDUも同様の方法でスコアボードビットマップに記録される。A−MPDU1610の終わりに達すると、スコアボード1620の関連する内容がBAビットマップ1630上に一度に1ブロックずつコピーされる。タイプ1のブロック、例えば1632は、BAビットマップ内の5つのビットを占有し、一方、タイプ2のブロックは、例えば1634又は1636は、2ビットを占有する。BAビットマップが形成された時点で、このBAビットマップがブロックAckフレーム1638で発信側に送信される。
発信側がブロックAckフレーム1638を受信した時点で、発信側は先に説明したようにBAビットマップ1630を復号する。BAビットマップの最初のビットを発端として、発信側は、最初に、Ackビットを参照する前にブロックタイプを決定して、MPDUの受信状態を決定する。発信側は、BAビットマップ1630の内容に基づき、SN=1及びSN=5を伴うMSDUに対応する2つの失敗したMPDU、SN=7を伴うMSDUに対応する2つの失敗したMPDU、SN=31を伴うフラグメント化されないMSDUを搬送する1つのMPDU、SN=32を伴うMSDUの3つのそれぞれのフラグメントを搬送する3つのMPDU、及び、SN33〜40を伴うフラグメント化されないMSDUを搬送する8個のMPDUを集約する次のA−MPDU1640を送信する。この送信において、受信側は、SN=32を伴うMSDUの最初及び3番目のフラグメントを搬送する2つのMPDU1644、1646を受信し損なう。
A−MPDU1640を受信すると、受信側は、先に説明したようにスコアボードビットマップ1650を更新し、例えば、SN=32を伴うMSDUをタイプ1のブロックとして符号化する一方で、フラグメント化されない全てのMSDUをタイプ2のブロックとして符号化する。特に興味深いのは、SN=1を伴うMSDUに対応するブロック1652である。このブロックは、以前はタイプ1のブロックとして符号化されたが、欠けている第2のフラグメントがA−MPDU1640で受信されるため、Ackビットフィールド1450の4つの全てのビットがこの時点で1であり、そのため、ブロックはタイプ2のブロックとして再符号化され、この場合、全てのフラグメントが受信されてしまったことを示すためにAckビット1654が1に設定される。A−MPDU1640の終わりに達すると、スコアボード1650の関連する内容が、一度に1ブロックずつBAビットマップ1660上にコピーされて、ブロックAckフレーム1668における発信側に送信される。
ブロックAckフレーム1668を受信すると、発信側は続けてBAビットマップ1660を復号する。タイプ2のブロック1662、1664は、SN=1及びSN=7を伴うMSDUの全てのフラグメントが受信されてしまったことを示すように復号される。同様に、タイプ1のブロック1666は、SN=32を伴うMSDUの第2のフラグメントのみが受信されてしまったことを示すように復号され、以下同様である。
<無線通信システム>
図17は、本開示において説明される効率的なブロックackメカニズムを実現するために、レベル3のフラグメンテーションをサポートするブロックack合意の発信側である無線デバイスによって実施されるべき方法1700の一例を示す。ステップの幾つかは、随意的であり、対応する機能がデバイスによってサポートされる場合にのみ実施される。1710において、適用可能であれば、レベル3のフラグメンテーションをサポートするブロックAck合意をセットアップする際に、他のパラメータブロックack合意と共に、発信側は、同じA−MPDUで送信されることが許可されるMSDUのフラグメントの最大数もネゴシエートする。1720において、フラグメント化されるMSDUを搬送するそれぞれのMPDUごとに発信側がフラグメントサイズテーブル(FST)を保持する場合、発信側は、FSTの対応するエントリにMSDUのフラグメントの総数も記録する。1730において、適用可能であれば、発信側は、MPDUのMACヘッダ内の指定されたフィールド(例えば、シーケンス制御フィールド内のフラグメント数フィールド又はHEバリアントHT制御フィールドのA−制御サブフィールドなど)にあるMSDUのフラグメントの総数も示す。その後、1740において、レベル3のフラグメンテーションを伴うMPDUを搬送するA−MPDUに応じて送信されるブロックAckフレームを受信すると、発信側は、実施されるビットマップ符号化方式にしたがってブロックAckフレームを含むBAビットマップを復号する。
図18は、本開示において説明される効率的なブロックackメカニズムを実現するために、レベル3のフラグメンテーションをサポートするブロックack合意の受信側である無線デバイスによって実施されるべき方法1800の一例を示す。ステップの幾つかは、随意的であり、対応する機能がデバイスによってサポートされる場合にのみ実施される。1810において、適用可能であれば、レベル3のフラグメンテーションをサポートするブロックAck合意をセットアップする際に、他のパラメータブロックack合意と共に、受信側は、同じA−MPDUで送信されることが許可されるMSDUのフラグメントの最大数もネゴシエートする。また、受信側は、スコアボードビットマップ、存在する場合にはフラグメントサイズテーブル(FST)、及び、ブロックack合意に関連する他の変数も初期化する。
1820において、レベル3のフラグメンテーションを伴うMPDUを搬送するA−MPDUを受信すると、FSTの対応するエントリにおいて、フラグメント化されるMSDUを搬送するそれぞれのMPDUごとに、受信側がMSDUに対応するフラグメント数を記録する。この情報は、MACヘッダ内の関連するフィールド(例えば、シーケンス制御フィールド内又はHEバリアントHT制御フィールドのA−制御サブフィールド内のフラグメント数フィールドなど)に基づいてもよく、或いは、Macヘッダのフレーム制御フィールド内のより多くのフラグメントビットの受信側の観測に基づいてもよい。1830において、受信側は、各MPDUの受信状態を、実施符号化方式にしたがってスコアボードビットマップ内の対応するビットに記録する。1840において、受信側は、実施される符号化方式のようにスコアボードビットマップの関連部分にしたがって符号化されるBAビットマップフィールドを含むブロックAckフレームを構築する。最後に、1850において、受信側はブロックAckフレームを送信する。
<発信側の構成>
図19Aは、発信側としての機能を果たす無線デバイス1900の一例のブロック図である。発信側は、図1のSTA又はAPのいずれか1つであってもよい。無線デバイス1900は、送信部1901、フレーム生成部1903、復号部1907、及び、受信部1909を備える。フレーム生成部1903は、上層MSDU又はMMPDUからA−MPDUを生成する。また、A−MPDUは、フラグメント化されたMSDU又はMMPDUを含んでもよい。送信部1901は、生成されたA−MPDUを1つ以上の受信側に送信する。受信部1909は、各受信側からブロックAckフレームを受信する。ブロックAckフレームはビットマップフィールドを含む。そして、復号部1907は、ブロックAckフレーム内のビットマップフィールドを復号して、復号された情報をフレーム生成部1903に送る。フレーム生成部1903は、復号部1907からの復号されたビットマップ情報に基づいて、うまく送信されたMPDUを送信キューから削除し、一方、その送信が成功しなかったMPDUは送信部1901から再送信される。
図19Bは、図1のSTA又はAPのいずれか1つであってもよい発信側としての機能を果たす無線デバイス1900の一例の詳細なブロック図である。無線デバイス1900は、メモリ1920、二次記憶装置1940、及び、1つ以上の無線通信インタフェース1950に結合される中央処理ユニット(CPU:Central Processing Unit)1930を備える。二次記憶装置1940は、関連する命令コード、データなどを永久に記憶するために使用される不揮発性コンピュータ可読記憶媒体であってもよい。起動時に、CPU1930は、実行のために命令コード及び関連データを揮発性メモリ1920にコピーしてもよい。命令コードは、無線デバイス1900の動作に必要なオペレーティングシステム、ユーザアプリケーション、デバイスドライバ、実行コードなどであってもよい。また、無線デバイス1900は、電源1910、例えばリチウムイオンバッテリ又はコインセルバッテリなどを備えてもよく、又は、主電源であってもよい。
無線通信インタフェース1950は、セルラー通信用のインタフェース、又は、Zigbeeなどの短距離通信プロトコル用のインタフェースを備えてもよく、或いは、WLANインタフェースであってもよい。無線インタフェース1950は、MACモジュール1952及びPHYモジュール1960を更に備えてもよい。他のサブモジュールの中でも、MACモジュール1952は、フレームの送信に必要な様々なMACレベル機能に関与する送信モジュール1954を備えてもよい。MACモジュール1952は、フレームがうまく送信されるまで又はフレームがそれらが削除されるそれらの寿命に達するまで、上層から受信されるデータフレーム及びMAC層内で生成されるフレームを記憶するために使用される送信バッファ1956を更に備えてもよい。PHYモジュールは、送信/受信信号との間でのMACモジュールデータの変換に関与する。また、無線インタフェースは、PHYモジュールを介して、無線媒体上の/無線媒体からの無線通信信号の実際の送信/受信に関与する1つ以上のアンテナ1970に結合されてもよい。
図20は、図19Bの送信モジュール1954をより詳細に示す。他のサブモジュールの中でも、送信モジュール1954は、上層から受信されるMSDUに対して及びMAC層内で生成されるMMPDUに対して固有のシーケンス番号を割り当てるシーケンス番号生成部2000を備えてもよい。また、送信モジュール1954はフラグメンテーションモジュール2010を備えてもよく、フラグメンテーションモジュール2010は、MSDU又はMMPDUがフラグメント化される必要があるかどうかを決定することに関与し、そうであれば、フラグメントの数及びフラグメントのサイズも決定する。また、フラグメンテーションモジュール2010は、フラグメントにフラグメント番号を割り当てる。適用可能な場合、フラグメンテーションモジュール2010は、フラグメントを搬送する各MPDUのフラグメント数フィールド602も更新する。
また、送信モジュール1954は、送信されたMSDU内のフラグメント数を追跡するために1つ以上のフラグメントサイズテーブル2030を保持してもよい。送信モジュール1954は、MSDU及びフラグメントをA−MPDUに集約するフレーム集約モジュール2020を更に備えてもよい。時間になると、MAC層はA−MPDUを送信のためにPHY層へ送る。また、送信モジュール1954は、実施された復号方式にしたがって受信されるブロックAckフレームのBAビットマップを復号することに関与するBAビットマップ復号モジュール2040を備えてもよい。MSDU又はMMPDUの全てのフラグメントが受信側によって受信されたことをBAビットマップが示す場合には、MSDU又はMMPDUが送信バッファ1956から削除される。さもなければ、受信されないフラグメントを再送する必要がある。
特定の実施形態では、オペレーティングシステムがリアルタイムオペレーティングシステム(RTOS:Real Time Operating System)を備え、ユーザアプリケーションがウェブブラウザ又はスマートフォンアプリを備え、デバイスドライバがWLANドライバを備え、また、実行コードは、CPU1930により実行されるときに方法1700を実行させるコードを備えてもよい。フラグメントサイズテーブル2030は、フラグメント数の記録を保持するために1720で使用される。BAビットマップ復号部2040は、受信されたBAビットマップを復号するための復号部として1740で使用される。
発信側1900は、分かりやすくするために図19B及び図20には図示されない多くの他の構成要素を備えてもよい。本開示に最も関連する構成要素のみが図示されている。
<受信側の構成>
図21Aは、受信側としての機能を果たす無線デバイス2100の一例のブロック図である。受信側は、図1のSTA又はAPのいずれか1つであってもよい。無線デバイス2100は、受信部2109、メモリ2107、肯定応答生成部2103、及び、送信部2101を備える。受信部2109は、発信側から複数のフレームを受信する。そして、各フレームのペイロードは、フラグメント化されたパケット又はフラグメント化されないパケットのいずれか或いはそれらの組み合わせから成ってもよい。メモリ2107は、複数のフレームのそれぞれの受信状態を記録する。肯定応答生成部2103は、フレームの受信状態を示すために使用される少なくとも1つのビットマップフィールドを含むブロック肯定応答(ブロックAck)フレームを生成する。パケットのためのビットマップフィールドに割り当てられるビット数は可変であってもよい。送信部2101は、肯定応答生成部2103により指示されるときにブロックAckフレームを送信する。
図21Bは、図1のSTA又はAPのいずれか1つであってもよい受信側としての機能を果たす無線デバイス2100の一例の詳細なブロック図である。無線デバイス2100は、メモリ2120、二次記憶装置2140、及び、1つ以上の無線通信インタフェース2150に結合される中央処理ユニット(CPU)2130を備える。二次記憶装置2140は、関連する命令コード、データなどを永久に記憶するために使用される不揮発性コンピュータ可読記憶媒体であってもよい。起動時に、CPU2130は、実行のために命令コード及び関連データを揮発性メモリ2120にコピーしてもよい。命令コードは、無線デバイス2100の動作に必要なオペレーティングシステム、ユーザアプリケーション、デバイスドライバ、実行コードなどであってもよい。また、無線デバイス2100は、電源2110、例えばリチウムイオンバッテリ又はコインセルバッテリなどを備えてもよく、又は、主電源であってもよい。
無線通信インタフェース2150は、セルラー通信用のインタフェース、又は、Zigbeeなどの短距離通信プロトコル用のインタフェースを備えてもよく、或いは、WLANインタフェースであってもよい。無線インタフェース2150は、MACモジュール2152及びPHYモジュール2160を更に備えてもよい。他のサブモジュールの中でも、MACモジュール2152は、フレームの受信に必要な様々なMACレベル機能に関与する受信モジュール2154を備えてもよい。MACモジュール2152は、他の無線デバイスから受信されるフレームをそれらがMAC層内で処理される又は関連する上層に送られる準備が整うまで記憶するために使用される受信バッファ2156を更に備えてもよい。
図22は、図21Bの受信モジュール2154を更に詳しく示す。他のサブモジュールの中でも、受信モジュール2154は、受信されたA−MPDUから個々のMPDUを抽出することに関与するフレーム分解モジュールを備えてもよい。また、受信モジュール2154は、受信されたフラグメントをそれぞれのMSDUへと再結合するデフラグメンテーション処理を実行するデフラグメンテーションモジュール2210を備えてもよい。MSDUの全てのフラグメントが受信された場合には、MSDUがそれぞれの上層に送られてもよい。しかしながら、以前のMSDUのフラグメントの一部の受信失敗に起因して後の時点で受信されたMSDUが最初に再結合されることが時折発生する場合がある。上層プロトコルが受信されたMSDUを正しい順序で受信モジュールに転送することを要求する場合、受信モジュール2154は、受信されたMSDUの並べ替えを実行する必要がある。この目的のために、受信モジュール2154が受信並び替えモジュール2200を備えてもよい。
また、受信モジュール2154は、スコアボードコンテキストを各ブロックAck合意ごとに1つずつ記憶するための1つ以上のメモリユニット2240を備えてもよい。中でも、レベル3のフラグメンテーションを含むブロックack合意が受信側としての無線デバイス2100と共に確立されたときに入力MSDUの受信状態を記録するために使用される1つ以上のL3スコアボードビットマップが存在してもよい。また、受信モジュール2154は、実施された符号化方式にしたがってBAビットマップ上へMSDUの受信状態を符号化することに関与するBAビットマップ符号化モジュール2250を備えてもよい。適用可能であれば、受信モジュール2154は、受信されたMSDUにフラグメント数を記憶するために1つ以上のフラグメントサイズテーブル2230を記憶してもよい。
特定の実施形態では、オペレーティングシステムがリアルタイムオペレーティングシステム(RTOS)を備え、ユーザアプリケーションがウェブブラウザ又はスマートフォンアプリを備え、デバイスドライバがWLANドライバを備え、また、実行コードは、CPU2130により実行されるときに方法1800を実行させるコードを備えてもよい。フラグメントサイズテーブル2230は、フラグメント数の記録を保持するために1820で使用される。スコアボードコンテキスト2240内のL3スコアボードビットマップが1830において使用される。BAビットマップ符号化部2250は、送信されるべきBAビットマップを符号化するための符号化部として1840で使用される。
受信側2100は、分かりやすくするために図21B及び図22には図示されない多くの他の構成要素を備えてもよい。本開示に最も関連する構成要素のみが図示されている。
無線デバイスはある場合には発信側として他の場合には受信側として作用する幾つかの同時ブロックack合意を有することができるため、無線デバイスは、発信側モジュール及び受信側モジュールの両方を同時に実装してもよい。
前述した実施形態では、本開示が一例としてハードウェアにより構成されるが、本開示がハードウェアと協働するソフトウェアによって与えられてもよい。
また、本実施形態の説明で使用される機能ブロックは、一般に、集積回路などのLSIデバイスとして実装される。機能ブロックが個々のチップとして形成されてもよく、或いは、機能ブロックの一部又は全部が単一チップに組み込まれてもよい。ここでは「LSI」という用語が使用されるが、集積度に応じて、「IC」、「システムLSI」、「スーパーLSI」、又は、「ウルトラLSI」という用語が使用されてもよい。LSIは、これに結合されるデータ入出力を含んでもよい。
また、回路集積は、LSIに限らず、LSI以外の専用回路や汎用プロセッサによって達成されてもよい。LSIの製造後、プログラム可能なフィールドプログラマブルゲートアレイ(FPGA:Field Programmable Gate Array)や、LSIの回路セルの接続及び設定の再構成を可能にする再構成可能プロセッサが使用されてもよい。
LSIに置き換わる回路集積技術が半導体技術やその技術に由来する他の技術の進歩の結果として現れる場合には、そのような技術を用いて機能ブロックを集積することができる。他の可能性は、バイオテクノロジーなどの適用である。
この開示は、効率的なブロックAckメカニズムのための無線装置に適用可能である。
1900 発信側
1901、2101 送信部
1903 フレーム生成部
1907 復号部
1909、2109 受信部
1910、2110 電源
1920、2107、2120 メモリ
1930、2130 CPU
1940、2140 二次記憶装置
1950、2150 無線インタフェース
1952、2152 MACモジュール
1954 送信モジュール
1956 送信バッファ
1960、2160 PHYモジュール
1970、2170 アンテナ
2000 シーケンス番号生成部
2010 フラグメンテーション
2020 フレーム集約
2030、2230 フラグメントサイズテーブル
2040 BAビットマップ復号部
2100 受信側
2103 肯定応答生成部
2154 受信モジュール
2156 受信バッファ
2200 受信記録
2210 デフラグメンテーション
2220 フレーム分解
2240 スコアボード
2250 BAビットマップ符号化部

Claims (12)

  1. 送信デバイスから複数のフレームを受信するステップであって、フレームのペイロードがフラグメントされるパケット又はフラグメント化されないパケットのいずれかから成る、ステップと、
    前記フレームの受信状態を記録するステップと、
    前記フレームの受信状態を示すために使用される少なくとも1つのビットマップフィールドを含むブロック肯定応答(ブロックAck)フレームを生成するステップであって、パケットのために前記ビットマップフィールドで割り当てられるビット数が可変である、ステップと、
    前記ブロックAckフレームを送信するステップと、
    を備える通信方法。
  2. 前記ビットマップフィールドは、それぞれの受信されるフラグメント化されないパケットごとに1に設定される1ビットと、同じ送信ウィンドウ内で送信されるパケットのフラグメント数に等しいビット数とを含み、前記パケットのそれぞれの受信されるフラグメントごとに1つのビットが1に設定される請求項1に記載の通信方法。
  3. 有効なシーケンス番号範囲内の受信されないそれぞれのパケットごとに、前記ビットマップフィールドは、同じ送信ウィンドウ内で送信されることが許可されるパケットの最大フラグメント数に等しい数の連続ビットを更に含み、前記ビットが全て0に設定される請求項2に記載の通信方法。
  4. 前記フレームの受信状態を記録する前記ステップは、
    1つの送信ウィンドウ内で送信されることが許可される全てのパケットの受信状態を記録するのに十分大きいビットマップを保持するステップであって、各パケットには、同じ送信ウィンドウ内で送信されることが許可されるパケットの最大フラグメント数に等しい数のビットが割り当てられ、受信されるフレームに対応するビットを1に設定するステップと、
    同じ送信ウィンドウ内で送信されることが許容されるパケットフラグメント数を記録するのに十分大きなテーブルを保持するとともに、受信される各パケットのフラグメント数を前記テーブルの対応するエントリに記録するステップと、
    を更に備える請求項1に記載の通信方法。
  5. 前記フレームの受信状態を記録する前記ステップは、
    1つの送信ウィンドウ内で送信されることが許可される全てのパケットの受信状態を記録するのに十分大きいビットマップを保持するステップであって、各パケットには、同じ送信ウィンドウ内で送信されることが許可されるパケットの最大フラグメント数足す1に等しい数のビットが割り当てられ、前記ビットは、パケットが分けられたフラグメント数と各フラグメントの受信状態とを一緒に信号で伝える、ステップ
    を更に備える請求項1に記載の通信方法。
  6. 前記ビットマップフィールドが2つのタイプのビットグループから構成され、第1のグループは、同じ送信ウィンドウ内で送信されることが許可されるパケットの最大フラグメント数足す1に等しい数のビットを備えるとともに、少なくとも1つのフラグメントが受信されて少なくとも1つのフラグメントが受信されないときにフラグメント化されるパケットの受信状態を示すために使用され、第2のグループは2つのビットを備え、そのうちの1つのビットは、前記フラグメントの全てが受信される又はいずれも受信されないときにフラグメント化されないパケットの受信状態又はフラグメント化されるパケットの受信状態を示すために使用され、各ビットグループの1つのビットは、前記ビットグループのタイプを示すために使用される請求項1に記載の通信方法。
  7. 動作時に、送信デバイスから複数のフレームを受信する受信部であって、フレームのペイロードがフラグメントされるパケット又はフラグメント化されないパケットのいずれかから成る、受信部と、
    前記複数のフレームのそれぞれの受信状態を記録するためのメモリと、
    前記フレームの受信状態を示すために使用される少なくとも1つのビットマップフィールドを含むブロック肯定応答(ブロックAck)フレームを生成するための肯定応答生成部であって、パケットのために前記ビットマップフィールドで割り当てられるビット数が可変である、肯定応答生成部と、
    命令時に前記ブロックAckフレームを送信する送信部と、
    を備える通信装置。
  8. 前記ビットマップフィールドは、それぞれの受信されるフラグメント化されないパケットごとに1に設定される1ビットと、同じ送信ウィンドウ内で送信されるパケットのフラグメント数に等しいビット数とを含み、前記パケットのそれぞれの受信されるフラグメントごとに1つのビットが1に設定される請求項7に記載の通信装置。
  9. 有効なシーケンス番号範囲内の受信されないそれぞれのパケットごとに、前記ビットマップフィールドは、同じ送信ウィンドウ内で送信されることが許可されるパケットの最大フラグメント数に等しい数の連続ビットを更に含み、前記ビットが全て0に設定される請求項8に記載の通信装置。
  10. 前記フレームの受信状態を記録するための前記メモリユニットは、
    1つの送信ウィンドウ内で送信されることが許可される全てのパケットの受信状態を記録するのに十分大きいビットマップであって、各パケットには、同じ送信ウィンドウ内で送信されることが許可されるパケットの最大フラグメント数に等しい数のビットが割り当てられ、受信されるフレームに対応するビットを1に設定する、ビットマップと、
    同じ送信ウィンドウ内で送信されることが許容されるパケットフラグメント数を記録するのに十分大きなテーブルであって、前記テーブルのエントリが受信される各パケットのフラグメント数を記録するために使用される、テーブルと、
    を更に備える請求項7に記載の通信装置。
  11. 前記フレームの受信状態を記録する前記メモリユニットは、
    1つの送信ウィンドウ内で送信されることが許可される全てのパケットの受信状態を記録するのに十分大きいビットマップであって、各パケットには、同じ送信ウィンドウ内で送信されることが許可されるパケットの最大フラグメント数足す1に等しい数のビットが割り当てられ、前記ビットは、パケットが分けられたフラグメント数と各フラグメントの受信状態とを一緒に信号で伝える、ビットマップ
    を更に備える、請求項7に記載の通信装置。
  12. 前記ビットマップフィールドが2つのタイプのビットグループから構成され、第1のグループは、同じ送信ウィンドウ内で送信されることが許可されるパケットの最大フラグメント数足す1に等しい数のビットを備えるとともに、少なくとも1つのフラグメントが受信されて少なくとも1つのフラグメントが受信されないときにフラグメント化されるパケットの受信状態を示すために使用され、第2のグループは2つのビットを備え、そのうちの1つのビットは、前記フラグメントの全てが受信される又はいずれも受信されないときにフラグメント化されないパケットの受信状態又はフラグメント化されるパケットの受信状態を示すために使用され、各ビットグループの1つのビットは、前記ビットグループのタイプを示すために使用される請求項7に記載の通信装置。
JP2018530808A 2016-03-03 2017-01-31 ブロック肯定応答送信のための通信方法及び通信装置 Pending JP2019513308A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662303178P 2016-03-03 2016-03-03
US62/303,178 2016-03-03
JP2016211813 2016-10-28
JP2016211813 2016-10-28
PCT/JP2017/003283 WO2017150042A1 (en) 2016-03-03 2017-01-31 Communication method and communication apparatus for block acknowledgment transmission

Publications (1)

Publication Number Publication Date
JP2019513308A true JP2019513308A (ja) 2019-05-23

Family

ID=66626729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018530808A Pending JP2019513308A (ja) 2016-03-03 2017-01-31 ブロック肯定応答送信のための通信方法及び通信装置

Country Status (1)

Country Link
JP (1) JP2019513308A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019514283A (ja) * 2016-04-04 2019-05-30 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド フラグメンテーションを利用する無線通信方法及びそれを使用する無線通信端末
US10750403B2 (en) 2016-03-10 2020-08-18 Wilus Institute Of Standards And Technology Inc. Multi-user wireless communication method and wireless communication terminal using same

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10750403B2 (en) 2016-03-10 2020-08-18 Wilus Institute Of Standards And Technology Inc. Multi-user wireless communication method and wireless communication terminal using same
US11304094B2 (en) 2016-03-10 2022-04-12 Wilus Institute Of Standards And Technology Inc. Multi-user wireless communication method and wireless communication terminal using same
US11700546B2 (en) 2016-03-10 2023-07-11 Wilus Institute Of Standards And Technology Inc. Multi-user wireless communication method and wireless communication terminal using same
JP2019514283A (ja) * 2016-04-04 2019-05-30 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド フラグメンテーションを利用する無線通信方法及びそれを使用する無線通信端末
JP2020195163A (ja) * 2016-04-04 2020-12-03 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド フラグメンテーションを利用する無線通信方法及びそれを使用する無線通信端末
JP2020198641A (ja) * 2016-04-04 2020-12-10 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド フラグメンテーションを利用する無線通信方法及びそれを使用する無線通信端末
JP6991290B2 (ja) 2016-04-04 2022-01-12 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド フラグメンテーションを利用する無線通信方法及びそれを使用する無線通信端末
JP6992138B2 (ja) 2016-04-04 2022-01-13 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド フラグメンテーションを利用する無線通信方法及びそれを使用する無線通信端末
US11240705B2 (en) 2016-04-04 2022-02-01 Wilus Institute Of Standards And Technology Inc. Wireless communication method using fragmentation and wireless communication terminal using same
US11683718B2 (en) 2016-04-04 2023-06-20 Wilus Institute Of Standards And Technology Inc. Wireless communication method using fragmentation and wireless communication terminal using same
US11683719B2 (en) 2016-04-04 2023-06-20 Wilus Institute Of Standards And Technology Inc. Wireless communication method using fragmentation and wireless communication terminal using same

Similar Documents

Publication Publication Date Title
US11177908B2 (en) Communication method and communication apparatus for block acknowledgment transmission
US11075717B2 (en) Receiving state indication method for A-MPDU and receive end device
US11464059B2 (en) Acknowledgment data unit for multiple uplink data units
US9929847B2 (en) Shortened block acknowledgement with fragmentation acknowledgement signaling
CN107078858B (zh) 在无线lan系统中发送和接收多用户块确认帧的方法及其设备
RU2367096C2 (ru) Улучшенное блочное подтверждение приема
KR101216100B1 (ko) 단편화 패킹 확장헤더를 수반하는 mac pdu를 전송하는 방법 및 장치
US20150092697A1 (en) Methods for determining information about a communication parameter and communication devices
US10454626B2 (en) Transmitter defragmentation for data unit fragments
EP3713122B1 (en) Method for replying with acknowledgement frame, apparatus, and data transmission system
JP2015529047A (ja) ブロック確認応答圧縮のための装置および方法
US20150146699A1 (en) Extended block acknowledgement protocol
US20200145145A1 (en) Acknowledgment data unit for data unit fragment
EP3823347A2 (en) Apparatus and methods for eht multi-band a-msdu operation
JP2019513308A (ja) ブロック肯定応答送信のための通信方法及び通信装置
KR100631742B1 (ko) Ack 프레임 전송 방법 및 장치
US11956083B2 (en) Communication method and apparatus for retransmitting MPDUs with different RVs
WO2021225034A1 (ja) 通信装置及び通信方法
WO2017054448A1 (zh) 数据发送方法、数据接收确认方法及装置
KR20220159276A (ko) 무선랜에서 직접 통신을 위한 방법 및 장치

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190625

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20191021