[WiFi] QoS and Block ACK

在以往對於 WiFi 的印象中, 其傳輸模式為:


這樣的通訊架構下,
每次傳送從一對RTS-CTS開始, 同時, 只會傳送一個封包 (Data),
同時, 對於美一個封包都有其相對應的 ACK.

然而, 之前在玩 OpenWRT 時, 看到了一個奇怪的訊息 (Block ACK),
假如理解沒有錯, Block ACK 意味著一次傳輸多個封包,
並且在 ACK 時,  一次可以給多個封包 ACK 的資訊.
這樣一來, 在 802.11 的無線通道競爭機制下, 勢必有一些問題要釐清,
例如, 連續傳送的封包是否可以在同一個競爭的時段傳輸?
連續封包傳輸的數量上限是多少?

這些問題要回到原本的 Block ACK 的機制下討論,
Block ACK 是 802.11e EDCA (Enhanced Distributed Channel Access) 新加入的機制,
此 MAC 層機制的用意是增加 WiFi 網路中的 QoS 的保護.
在該機制中, 所有的 WiFi 通訊被分成四類:
語音 (Voice (AC_VO)), 視頻 (Video (AC_VI)), 最佳工作量 (Best Effort) 和背景 (Background),
其中, 語音 (Voice (AC_VO)), 視頻 (Video (AC_VI)) 能夠支援連續的封包傳送,
在該機制中, 一次通道競爭後, 取得一個 TXOP (Transmit Opportunity),
而在 TXOP 中, 傳送端可以連續的傳送多個封包 (MSDU, MAC Service Data Unit),
避免語音或是影片這類的封包頻繁的爭搶通道資源,
並造成此類即時服務的延遲,

當然, 為了確保通道資源公平地被分配, TXOP也定義有其上限,
語音 (Voice (AC_VO)) 最大的 TXOP 為 1.008 ms,  視頻 (Video (AC_VI)) 為 3.008 ms,
同時, 這四種 QoS 服務也有各自的 Window Size 設計,
可以參考: https://en.wikipedia.org/wiki/IEEE_802.11e-2005

說完前面的 QoS 機制, 才能夠回到 Block ACK,
Block 初始定義於 802.11e, 用來回復 TXOP 中大量的封包,
但在此時, 不同的封包仍是各自傳輸,
同時, 需要一個 BAR (Block ACK Req) 來要求回傳 Block ACK,
到了 802.11n, 則加入更多封包整合的機制, 節省 header 的使用,
我們可以從下圖看到個協定間的改變.


最後, Block ACK 包含了64 x 16bit 的 bitmap,
包含了要回應的 fragment number,
為了節省傳送的資料量, 在 802.11n 中,
加入了壓縮的 bitmap (Compressed BA) 定義, 只有 64bit, 如下圖所示:





留言

熱門文章

LTE筆記: RSRP, RSSI and RSRQ

[WiFi] WiFi 網路的識別: BSS, ESS, SSID, ESSID, BSSID

LTE筆記: 波束成型 (beamforming) 和天線陣列