淺談802.11協(xié)議的APSD、PSMP、SMPS
本文將介紹802.11協(xié)議下的四種節(jié)能模式,分別是PSM、APSD,PSMP以及SMPS。ASPD是基于802.11e進(jìn)行設(shè)計的,在APSD中,先分節(jié)點,再分上下行的傳輸模式,U-APSD只可以在EDCA的模式下進(jìn)行使用。
在802.11主要的版本中,總共定義了四種節(jié)能模式,除了最基本的PSM模式,以及其工作方式上的一些細(xì)節(jié)。由于PSM是在最初的802.11協(xié)議下進(jìn)行的設(shè)計,其用了較為保守設(shè)計,以確保最穩(wěn)定的運行需求。在后來的802.11幾個新版本中,為了改善節(jié)能模式的性能,所以還出現(xiàn)了一些其他的節(jié)能模式。本文主要介紹了其中主要的三個節(jié)能模式:APSD,PSMP以及SMPS。
APSD(AutomaTIc Power Save Delivery)ASPD模式是對PSM模式的一個直接改進(jìn)。PSM模式的其最大的缺點在于請求數(shù)據(jù)時采用的“乒乓”機(jī)制。即一個polling幀請求,一個數(shù)據(jù)幀反饋,這樣一個來回交替的過程。該設(shè)計在數(shù)據(jù)緩存較多的情況下,會造成過多的polling幀出現(xiàn),降低實際網(wǎng)絡(luò)傳輸效率。從而ASPD就需要對此加以改進(jìn)。
APSD(AutomaTIc Power Save Delivery):ASPD是基于802.11e進(jìn)行設(shè)計的。在802.11e中設(shè)置一個服務(wù)時間的概念,即Service Period(SP)。我們可以簡單的理解成,若節(jié)點占據(jù)信道后,其制定一段服務(wù)時間,并且在該段時間內(nèi),該節(jié)點可以傳輸多個幀,換言之就是一次競爭多次傳輸。在ASPD中,還分為S-APSD與U-APSD兩種具體的工作模式。(PS:本文對Service Period以及EDCA的具體工作機(jī)制不會加以展開,其內(nèi)容后期會放在對802.11e的整理中)
我們利用下圖,首先描述一下APSD的基本思想:
在上圖中,我們假設(shè)有一個QOS-AP,有一個QOS-STA(PS:由于ASPD是基于802.11e的,所以QOS-AP與QOS-STA都是支持802.11e的設(shè)備)。假設(shè)是由QOS-STA發(fā)起一個傳輸過程,即首先會發(fā)送一個“Trigger Frame”幀,這個幀有可能是QoS data或者QoS Null幀,通過該幀,節(jié)點申請到一個服務(wù)時間,即Service Period Start(PS:該服務(wù)時間可以理解成802.11e中的TXOP時間,而不是一般意義上網(wǎng)絡(luò)模型中所用的服務(wù)時間,在服務(wù)時間內(nèi),可以傳遞多個網(wǎng)絡(luò)幀),然后QOS-AP會反饋一個ACK和一個QOS-Data幀。接下來在服務(wù)時間范圍內(nèi),QOS-STA會持續(xù)和QOS-AP進(jìn)行數(shù)據(jù)交換。當(dāng)QOS-AP的緩存全被發(fā)送完之后,會在最后一個QOS-Data幀中的QOS控制字段,標(biāo)注EOSP(End Of Service Period),從而結(jié)束一個服務(wù)時間,即Service Period End。對比我們在初探節(jié)能模式中所提到的PS-Poll,這種“乒乓”的模式而言,前者一個請求一個反饋,而APSD中,一次請求就可以交換多個幀。下面我們說明S-APSD以及U-APSD。
S-APSD(Scheduled APSD):基于調(diào)度的APSD,S-APSD可以在EDCA(DCF的擴(kuò)展)和HCCA(PCF的擴(kuò)展)這兩種工作模式下都可以使用,從筆者的個人觀點而言,S-APSD更像是前面我們提到的PSM-PCF模式下的擴(kuò)展。由于S-APSD的具體工作機(jī)制不太好抓包做確認(rèn),所以只能夠通過對協(xié)議的字面含義進(jìn)行理解,如有錯誤,還請見諒。
如上圖所示,是S-APSD的一個工作模式。在S-APSD中,SP(Service Period)是預(yù)先調(diào)度的,在調(diào)度時間將要到來之時,QOS-AP會發(fā)送一個triger frame,同時QOS-STA也會提前醒來接受該幀,從而開啟一個服務(wù)時間。該服務(wù)時間是通過管理幀中的Schedule Element字段進(jìn)行調(diào)度的,所以節(jié)點可以提前知道什么時候應(yīng)該醒來。在上圖中,QOS-AP發(fā)送的triger就是PS-Poll,然后就開始和QOS-STA交換數(shù)據(jù),即STA向AP反饋數(shù)據(jù)之后,AP再向STA反饋數(shù)據(jù),這樣交替切換,直到SP時間結(jié)束。
在這里,QOS-AP和QOS-STA交換數(shù)據(jù)還是上下行按序切換的,即這里還是有一些類似“乒乓”機(jī)制,在后面我們提到的PSMP實際上對這一點會再次加以改進(jìn)。
U-APSD(Unscheduled APSD):基于非調(diào)度的APSD,U-APSD只可以在EDCA的模式下進(jìn)行使用,U-ASPD更像之前提到的PSM-DCF模式的擴(kuò)展。
如上圖,是U-APSD的工作時序。在該模式中,QOS-STA會首先發(fā)送一個triger幀(即QOS-Null)給AP,AP收到該幀的時候,就意味著一段服務(wù)時間的起始,接著AP和節(jié)點會相繼交換數(shù)據(jù)。(PS:至于在服務(wù)時間內(nèi),上下行數(shù)據(jù)交替發(fā)送過程中是否還會有bakcoff,筆者目前所讀的資料是沒有的,不過對于協(xié)議中的原文描述,筆者還沒有確定)
實際上在一個SP時間內(nèi)的工作機(jī)制,S-APSD和U-APSD是基本機(jī)制的,區(qū)別主要在于S-APSD的SP時間是實現(xiàn)調(diào)度好的,比如前面該時間就是利用beacon幀中實現(xiàn)調(diào)度,而在U-APSD是節(jié)點發(fā)起的,即該調(diào)度時間任意時刻都有可能發(fā)起,同時還可以主要到,一般S-APSD都是AP進(jìn)行發(fā)起,而U-APSD是節(jié)點進(jìn)行發(fā)起較多,不過這點也不是絕對而已。
PSMP(Power-Save MulTI-Poll)
實際上從802.11e中引入TXOP,Block ACK,802.11n中引入的RIFS,幀聚合,802.11ac中引入MU-MIMO(PS:協(xié)議中僅僅是AP下行可以使用MU-MIMO,上行未包含),這些技術(shù)都會導(dǎo)致AP的突發(fā)(burst)下行傳輸?shù)男氏啾壬闲薪尤胄室摺?/p>
所以從節(jié)能模式的角度而言,在APSD中,先分節(jié)點,再分上下行的傳輸模式,就沒有先分上下行,再分節(jié)點的傳輸效率高,那么后者就是PSMP設(shè)計的基本想法。
PSMP(Power-Save MulTI-Poll):在802.11n中新增的模式,可以理解是引入了更嚴(yán)格的調(diào)度機(jī)制,其首先利用一個PSMP幀來調(diào)度整個節(jié)能模式的傳輸周期,將其分成PSMP下行傳輸時段,PSMP-DTT(PSMP Downlink Transmission Time)和PSMP上行傳輸時段,PSMP-UTT(PSMP Uplink Transmission Time)。在PSMP-DTT過程中,AP進(jìn)行突發(fā)傳輸,其中幀間間隔可能會更小,比如RIFS。RIFS的時間會比SIFS會更小,SIFS時間是包含了一個發(fā)送狀態(tài)到接受狀態(tài)的切換時間,而RIFS僅僅是兩次發(fā)送狀態(tài)之間的切換時間。在該過程中,節(jié)點可以不采用CCA,直接在被調(diào)度的具體時間內(nèi)醒來,并接受數(shù)據(jù),從而可以獲得更多的休眠時間,從而節(jié)能。在PSMP-UTT時間內(nèi),節(jié)點僅僅會在被調(diào)度的周期內(nèi)醒來,并反饋上行數(shù)據(jù)幀,從而也減少了較多的監(jiān)聽過程,節(jié)約了能量。在PSMP中,若AP的下行傳輸中存在廣播/組播包,那么會在PSMP-DTT時間內(nèi),第一個數(shù)據(jù)幀進(jìn)行發(fā)送,這點實際上和之前的PSM模式傳輸組播或者廣播幀是一樣的。
如下圖表述了一個PSMP的時序調(diào)度(參考《Cambridge.Next Generation Wireless LANs.802.11n》)
那么AP首先發(fā)送一個PSMP幀,該幀中包含了后續(xù)時間內(nèi),下行鏈路和上行鏈路具體的調(diào)度安排。然后開始進(jìn)入PSMP-DTT時間,第一個是發(fā)送本地緩存的組播/廣播幀(即PSMP-DTT1時刻內(nèi)),然后按序發(fā)送節(jié)點所對應(yīng)的緩存單播幀,這里PSMP-DTT時間內(nèi),幀間間隔可以采用RIFS,以達(dá)到更高的效率。對于ACK的部分,由于筆者沒有做詳細(xì)考證,所以沒有加以描述。當(dāng)PSMP-DTT時間結(jié)束后,節(jié)點會依次在自己對應(yīng)的上行調(diào)度周期內(nèi),發(fā)送數(shù)據(jù)幀,如STA1就在PSMP-UTT1中發(fā)送上行數(shù)據(jù)。當(dāng)PSMP-UTT時間結(jié)束后,這一輪PSMP的數(shù)據(jù)交換就完成了。
PS:一些PSMP的細(xì)節(jié)在《Cambridge.Next Generation Wireless LANs.802.11n》一書第9章中,所述較為詳細(xì),有興趣可以擴(kuò)展閱讀。
SMPS(Spatial Multiplexing Power Save)最后,我們描述一下在802.11n中所敘述的SMPS模式,即多天線模式下的節(jié)能模式。在該模式下,節(jié)點可以選擇關(guān)于多余的天線,從而達(dá)到節(jié)能目的。但在實際過程中,節(jié)點是不好貿(mào)然關(guān)閉自己的天線的,因為其無法確定AP是按照多空間流的形式,還是按照單空間流的形式向其發(fā)送數(shù)據(jù)。若AP采用多流發(fā)送下行數(shù)據(jù),而節(jié)點僅僅是單根天線的工作模式,那么是無法正確接收的(這里與發(fā)送分集不同,若發(fā)送分集也是需要AP按照分集模式進(jìn)行發(fā)送,而不是空分復(fù)用的形式發(fā)送,其預(yù)編碼的策略不同)。所以節(jié)點要與AP有關(guān)關(guān)閉天線該動作,進(jìn)行適當(dāng)?shù)臏贤ǎ敲丛摍C(jī)制就對應(yīng)到SMPS的使用。
SMPS(Spatial Multiplexing Power Save):該模式下,節(jié)點會關(guān)閉多余的天線,僅僅使用一根天線進(jìn)行工作,從而達(dá)到節(jié)能的目的。在SMPS中還分為兩種模式,一者靜態(tài)工作模式(Static SM Power Save),一者動態(tài)工作模式(Dynamic SM Power Save)。
上圖表示的是一個靜態(tài)工作模式下的SMPS,其中我們可以看到,節(jié)點說先需要發(fā)送一個action frame,將AP切換為單流發(fā)送下行幀,以讓節(jié)點節(jié)約一些能量。若需要恢復(fù)回多流工作模式,則需要反饋一個action frame,其中顯式注明static mode disabled,從而AP接下來發(fā)送的幀才會是多流模式。
上圖是動態(tài)工作模式下的SMPS,其中當(dāng)STA發(fā)送一個動態(tài)模式的action frame后,AP緊接著反饋的下行幀中就會采用單流模式(圖中的下行幀是RTS,實際上也可以是數(shù)據(jù)幀)。當(dāng)該幀反饋后,AP發(fā)送下一個幀的時候,則會回到默認(rèn)發(fā)送的多流模式,主動從單流模式切換回來,而在靜態(tài)模式中,這個切換需要一個顯示的action frame,故這里就是靜態(tài)和動態(tài)SMPS的一個區(qū)別。