WIFI power save 模式下的數據收發

PS模式下的數據收發
工作在PS 模式下的STA 一般會盡量保持在Doze 狀態,只在必要的
時候轉換到Awake 狀態。在Doze 狀態的STA 無法偵聽信道,這導致PS
模式下STA 收發數據的方式跟Active 模式下有所不同,特別是接收數據
的方式大相徑庭。
發向PS 模式的STA 的數據會在AP 處緩存,在AP 週期性地廣播的
Beacon 幀中包含一個數據指示表TIM(Traffic Indication Map),TIM 指
明當前所有有數據在AP 處緩存的STA。處在Doze 狀態的STA 並不知道
何時有數據被緩存,因此STA 必須週期性的接收來自AP 的Beacon 以確
定本身是否有數據被緩存。AP 廣播Beacon 的週期爲Beacon-Interval,STA
接收Beacon 的週期爲Listen-Interval,STA 可以自由選擇Beacon-Interval
的整數倍作爲自己的Listen-Interval。STA 每隔Listen-Interval 接收Beacon
並解碼其中的TIM,如果TIM 指示沒有數據緩存,STA 就可以立刻轉入
Doze 狀態,如果TIM 指示其有數據緩存,STA 就要向AP 發一個競選控
制包Poll,AP 在收到Poll 後就可以向該Poll 的源STA 發送一個爲它緩存
的數據包(如圖4-2)。如果有多個處於PS 模式的STA 在收到同一個Beacon
之後都要接收數據,那麼這些STA 發送Poll 的機制同發送數據一樣,也
遵循CSMA/CA。Poll 的機制使得STA 在接收數據方面同發送數據一樣具

在有STA 處在PS 模式的WLAN 裏,除了發向特定PS 模式STA 的
單播(Unicast)數據包外,那些廣播(Broadcast)和組播(Multicast)數
據包某些時候也需要在AP 緩存。AP 每隔DTIM-Interval 時間在Beacon
震中包含DTIM(Delivery TIM)指示信息,以指示其後有廣播或組播數
據發送。那些希望接收廣播和組播數據的STA 則要每隔DTIM-Interval 轉
爲Awake 接收Beacon,並在有廣播或組播數據時接收(如圖4-中第3 行
所示),而那些對能量消耗極敏感的STA 可以選擇不接收DTIM(如圖
4-中第4 行所示)。
無論TIM 還是DTIM 都只能指示一個數據包被STA 接收,而不能標明
每個STA 有幾個包被AP 緩存。爲了解決這個問題,AP 在向STA 發送數
據包時用幀頭控制比特More-Data 標明是否仍有數據緩存在AP 處。處於
PS 模式的STA 在接收數據時根據More-Data 比特決定是否繼續保持
Awake;若More-Data=0,則STA 立刻可以轉入Doze,若More-Data=1,
則STA 則要繼續保持Awake,競爭發送Poll 或接收其餘的廣播(或組播)
包,直到收到下一個Beacon 爲止。STA 從PS 模式轉換到Active 模式,
AP 將盡快將爲其緩存的數據包發送給該STA。綜上,緩存、競爭收包的
機制可以使處於PS 模式的STA 不會丟失數據包。
PS 模式下的STA 在發送數據包的時候同Active 模式下沒有區別,只
是在需要發送之前轉爲Awake 狀態,發送成功後隨時可以轉爲Doze 狀態。
但是由於虛載波偵聽機制(參見2.1 節)的要求,STA 在發送前必須確定
其他STA 不在發送數據,而剛從Doze 狀態轉化到Awake 狀態的STA 因
爲過去一段時間沒有偵聽信道中的MAC 幀,其NAV 不準確,因此,在發
送數據前,STA 必須偵聽信道,等到收到發自其他STA 的MAC 幀,正確
設置了自己的NAV 之後,纔可以開始採用正常的CSMA/CA 機制發送數
據。當然如果剛Awake 的STA 偵聽了足夠長時間後仍沒有收到任何MAC
幀,也可以開始發送。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章