[WiFi] WiFi 網路下的省電模式 (Power Saving Mode)
對於 WiFi 系統而言, 省電的需求主要在用戶端, (因為 WiFi AP 通常是直接連上電源) 因此, 在省電模式的設計上, 也著重在下行的省電機制. 基本的機制和想法很簡單, 就是 WiFi AP 藉由 TIM (Traffic Indication Map), 告訴使用者, 是否需要在這一個 Beacon Period 中醒來接收資料, 由於 TIM 只會表示該使用者是否仍有資料需要下載, 因此, 還需要配合一個 DATA 的標示, 來表示該使用者的封包是否已經傳輸完成, 若是 DATA more = 0, 則使用者在接收完下一個封包後, 就可以回歸睡眠模式 (sleep), 直到下一次 Beacon 的時間, 來確認是否有下行的封包. 對於 multi-cast 和 broadcast 的封包也是一樣, WiFi AP 也會先暫存這些封包, 直到使用者醒來接收. 流程如下圖表示: https://www.cisco.com/c/en/us/td/docs/wireless/controller/8-5/Enterprise-Mobility-8-5-Design-Guide/Enterprise_Mobility_8-5_Deployment_Guide/ch5_QoS.html 當使用者在 sleep 模式時, 並不會進行 CSMA/CA 的通道存取, 同時, 使用者可以根據自己的電力需求, 每隔數個 Beacon Interval 起來聽 TIM 的訊息, 此間格又稱為 Listening Interval, 此數值較大有較佳的省電效果, 但是也會造成較嚴重的封包延遲. 當使用者收到 TIM 封包時, 有兩種模式開始接收下行封包, 第一種如上圖所示, 使用 polling 的方式向 WiFi AP 索取封包, 當有大兩使用者同時離開 sleep 模式時, 將會產生競爭, 假設 WiFi AP 暫存許多下行封包, 以方法的效率較低, 另一種方法則是告訴 WiFi AP 離開 sleep 模式, 此方法由於可以和其他傳輸機制結合, 如 Block ACK 等, 在有大量下行封包需要傳送時, 比較有效率. 詳細的資訊可以參考以下的延伸閱讀: (包括 frame 架構的解說) https:...