基于802.11協(xié)議數(shù)據(jù)鏈路層的MAC子層實現(xiàn)的節(jié)能機制研究
802.11是IEEE 802.11標(biāo)準(zhǔn)委員會制訂的無線局域網(wǎng)信道接入?yún)f(xié)議,也可用于無線自組織網(wǎng)(Ad Hoc網(wǎng)絡(luò))。無線結(jié)點使用的易耗盡能源(主要是電池)只能提供有限的能量供應(yīng);而目前由于受電池制造技術(shù)的限制,在保持電池重量一定的條件下,電池容量很難有突破性的提高。另一方面,移動終端性能不斷提高,功能也越來越強大,對電源供應(yīng)的需求也更加強烈。因此研究新的技術(shù)以減少能耗并延長電源使用時間非常有必要。
無線網(wǎng)絡(luò)接口在結(jié)點總功耗中占有相當(dāng)大的比例。通常情況下,無線網(wǎng)絡(luò)接口加電工作時按功率消耗由小到大的順序有4種模式:睡眠模式(sleep)、空閑模式(idle)、接收模式(receive)以及發(fā)送模式(transmit)。當(dāng)無線網(wǎng)絡(luò)接口工作于睡眠模式時稱結(jié)點處于睡眠狀態(tài),而當(dāng)無線網(wǎng)絡(luò)接口工作在其他三種模式時稱結(jié)點處于活躍狀態(tài)。
試驗表明:網(wǎng)絡(luò)接口處于睡眠狀態(tài)時能耗特別低,處于空閑模式時的功率消耗與處于接收、發(fā)送模式時的功率消耗相差無幾。這說明在發(fā)送代價很大的網(wǎng)絡(luò)中為了節(jié)能而常用的功率控制機制并不能顯著降低網(wǎng)絡(luò)能耗;盡可能將結(jié)點網(wǎng)絡(luò)接口置于睡眠狀態(tài)是降低結(jié)點功耗的關(guān)鍵,各種節(jié)能協(xié)議的設(shè)計也主要是圍繞這個思想進行的。這種類型的節(jié)能協(xié)議主要由數(shù)據(jù)鏈路層的MAC子層實現(xiàn)。
1 802.11協(xié)議的基本節(jié)能機制
802.11協(xié)議在MAC子層標(biāo)準(zhǔn)中定義了兩種模式:分布協(xié)調(diào)功能DCF和點協(xié)調(diào)功能PCF。由于DCF的使用比較普遍,因此本文主要基于DCF來探討802.11協(xié)議的節(jié)能技術(shù)。
在節(jié)能模式下,當(dāng)結(jié)點沒有數(shù)據(jù)傳輸時可以進入睡眠狀態(tài),但這種操作不能影響正常的數(shù)據(jù)通信。因此必須要解決好兩個問題:節(jié)能模式下結(jié)點如何從其他結(jié)點接收數(shù)據(jù);結(jié)點如何向處于節(jié)能模式的結(jié)點發(fā)送數(shù)據(jù)。
802.11標(biāo)準(zhǔn)中為802.11DCF定義了節(jié)能模式PSM(Power Save Mode)。PSM工作于全互連網(wǎng)絡(luò)中,工作過程如圖1所示。各結(jié)點將時間軸分為連續(xù)的beacon周期,當(dāng)每一beacon周期開始時,工作于節(jié)能模式的結(jié)點都喚醒一段時間,稱之為ATIM窗口(Ad Hoc Traffic IndicaTIon Message)。在ATIM窗口開始的時刻各結(jié)點都處于活躍狀態(tài)并競爭發(fā)一beacon幀來進行全網(wǎng)同步,其中beacon幀中攜帶本結(jié)點的時鐘信息。各結(jié)點都與成功接收到的beacon幀進行同步,并且不再發(fā)送自己的beacon幀。同步后,有報文要發(fā)送的結(jié)點通過發(fā)送ATIM幀與接收結(jié)點進行信息交互,接收結(jié)點收到發(fā)給自己的ATIM幀后,應(yīng)答一個ATIM-ACK(如果ATIM幀的地址是一廣播地址,則無需應(yīng)答)。結(jié)點如果有報文要發(fā)送或接收,則在剩余的beacon周期時間內(nèi)(本文稱作流量窗口,簡稱TW窗口)一直處于活躍狀態(tài),那些沒有報文要發(fā)送或接收的結(jié)點則在TW窗口內(nèi)處于睡眠模式以節(jié)省能量,直到下一beacon周期開始時刻重新喚醒。802.11PSM協(xié)議有以下幾條規(guī)則必須遵守:
(1)如果某結(jié)點收到發(fā)給自己的ATIM幀或廣播地址的ATIM幀,則該結(jié)點在本beacon周期內(nèi)要一直處于活躍狀態(tài);
(2)只有當(dāng)結(jié)點既沒有發(fā)ATIM幀又沒有收到地址為本結(jié)點或廣播地址的ATIM幀時才可在本beacon周期的TW窗口內(nèi)進入睡眠態(tài),直到下一周期開始再喚醒;
(3)ATIM幀和ATIM-ACK幀發(fā)送采用正常的802.11DCF接入規(guī)則競爭信道;
(4)在TW窗口內(nèi),處于活躍狀態(tài)的結(jié)點采用正常的802.11DCF接入規(guī)則競爭信道。
PSM作為802.11最基本的節(jié)能協(xié)議,能夠在一定程度上實現(xiàn)節(jié)能目標(biāo)。但它存在一些不足:
(1)PSM協(xié)議中,ATIM窗口大小固定不變。而ATIM窗口的大小對系統(tǒng)的節(jié)能效率和吞吐率有較大影響,大小固定的ATIM窗口不能靈活適應(yīng)這種狀況。ATIM窗口設(shè)置得過大會導(dǎo)致實際用來發(fā)送數(shù)據(jù)的時間縮短而使最大吞吐率降低,也會降低節(jié)能效率。尤其網(wǎng)絡(luò)在低負荷時,過大的ATIM窗口的負面影響極為明顯。而ATIM窗口過小則可能導(dǎo)致某些發(fā)送結(jié)點在ATIM窗口內(nèi)沒有時間與接收結(jié)點建立連接,也可能使最大吞吐率降低;
(2)在整個ATIM窗口內(nèi),所有結(jié)點都必須處于活躍狀態(tài)。當(dāng)所有結(jié)點都沒有數(shù)據(jù)傳輸時在ATIM窗口一直處于空閑狀態(tài),仍要消耗不少能量;
(3)每個有數(shù)據(jù)收發(fā)的結(jié)點在TW窗口內(nèi)要一直處于活躍狀態(tài)(即使只有一個報文要發(fā)送或接收)。結(jié)點在結(jié)束通信后,如果TW窗口尚未結(jié)束,它就要在窗口剩余時間內(nèi)一直處于空閑狀態(tài),這依然要消耗不少能量;
(4)在TW 窗口內(nèi),數(shù)據(jù)發(fā)送時競爭信道采用的是普通802.11協(xié)議中的CSMA/CA機制。當(dāng)結(jié)點發(fā)現(xiàn)信道忙時,就要退避一段時間再進行信道接入。在這段退避時間內(nèi),結(jié)點處于空閑狀態(tài),依然消耗不少能量。
2 802.11中各種改進的節(jié)能協(xié)議
針對802.11PSM節(jié)能協(xié)議中存在的不足,不少學(xué)者提出了改進建議。常見的對基本節(jié)能機制的改進協(xié)議有如下幾種。
2.1 TIPS協(xié)議
TIPS協(xié)議(Traffic Indication-based Power Saving)是針對PSM中所有結(jié)點沒有數(shù)據(jù)傳輸時在ATIM窗口內(nèi)仍然保持活躍狀態(tài)的缺陷進行的改進。如果所有結(jié)點都沒有數(shù)據(jù)傳輸,在ATIM窗口進入睡眠狀態(tài)會減少能耗。但結(jié)點不能過早地盲目地轉(zhuǎn)入睡眠狀態(tài),因為即使結(jié)點自己沒有數(shù)據(jù)發(fā)送,它也無法了解鄰結(jié)點是否有數(shù)據(jù)需要接收或轉(zhuǎn)發(fā)。為了解決這一問題,TIPS協(xié)議在ATIM窗口開始時刻利用兩個beacon時隙作為流量指示器,將第一個時隙稱為ETS(Earlier Time Slot),第二個時隙稱為LTS(Later Time Slot)。
TIPS協(xié)議ATIM窗口如圖2所示。在TIPS協(xié)議中,當(dāng)結(jié)點有數(shù)據(jù)需要發(fā)送時就在ETS時隙中競爭發(fā)送作為同步的beacon幀,否則延遲到LTS幀中發(fā)送。如果beacon幀在ETS時隙中發(fā)送,說明網(wǎng)絡(luò)中有結(jié)點要傳輸數(shù)據(jù),此后TIPS協(xié)議工作過程與PSM相同。如果ETS時隙中沒有beacon幀發(fā)送,就認為所有結(jié)點都沒有數(shù)據(jù)要發(fā)送,此時所有結(jié)點在LTS時隙后就進入睡眠狀態(tài),直到下一beacon周期開始時刻重新喚醒。
在TIPS協(xié)議中,網(wǎng)絡(luò)沒有報文傳輸時結(jié)點在ATIM窗口就能進入睡眠狀態(tài),因此比PSM節(jié)能效率高,數(shù)據(jù)流量小時尤其明顯。
2.2 DPSM協(xié)議
DPSM協(xié)議(Dynamic Power-Saving Mechanism)可以動態(tài)調(diào)整ATIM窗口大小,并且結(jié)點結(jié)束數(shù)據(jù)傳輸后即可在TW窗口內(nèi)進入睡眠狀態(tài)。
DPSM協(xié)議中每個結(jié)點根據(jù)自己觀察到的網(wǎng)絡(luò)狀況而各自使用不同大小的ATIM窗口。結(jié)點在ATIM窗口中交互ATIM幀的同時通知對方自己有多少報文要發(fā),在TW窗口內(nèi),當(dāng)發(fā)送結(jié)點發(fā)送完數(shù)據(jù)后,收發(fā)雙方都可以進入睡眠狀態(tài)。如果在當(dāng)前的beacon周期內(nèi)沒有將已經(jīng)通過ATIM幀廣播的數(shù)據(jù)發(fā)完,則在下一beacon周期的TW窗口中收發(fā)雙方都處于活躍狀態(tài)繼續(xù)發(fā)送未發(fā)完的數(shù)據(jù),而不必再通過ATIM幀廣播。結(jié)點會在所有發(fā)送報文中帶上自己的ATIM窗口大小信息,其他結(jié)點如果收到此報文就可以知道對方的ATIM窗口大小。某結(jié)點發(fā)送ATIM幀時,根據(jù)目的結(jié)點的ATIM窗口大小,首先向ATIM窗口最小的結(jié)點發(fā)送ATIM幀,如果不知道對方的ATIM窗口大小,就按最小的ATIM窗口來對待。如果某結(jié)點在當(dāng)前的ATIM窗口內(nèi)來不及向所有目的結(jié)點發(fā)送ATIM幀,則可以增大ATIM窗口。ATIM窗口的增加和減少都是按一定的粒度來進行的。某結(jié)點如果從其他結(jié)點發(fā)送的報文中得知對方的ATIM窗口比自己的ATIM窗口大2個級別以上,則將自己的ATIM窗口增大一個級別。當(dāng)某一結(jié)點在ATIM窗口結(jié)束后因為要發(fā)送或接收數(shù)據(jù)報文而處于活躍狀態(tài)時,又收到其他結(jié)點發(fā)來的ATIM幀,則可以響應(yīng)一個ATIM-ACK報文,并在下一beacon周期中將自己的ATIM窗口增大一個級別,如圖3所示。
某一結(jié)點在連續(xù)發(fā)送幾次ATIM幀都沒有收到對方響應(yīng)的ATIM-ACK幀時(因為對方的ATIM窗口比自己?。┚蜁?dāng)前的數(shù)據(jù)報文作上標(biāo)記,當(dāng)結(jié)點收到發(fā)送給自己的作了標(biāo)記的數(shù)據(jù)報文后,也要將ATIM窗口增大一個級別。如果某結(jié)點能用當(dāng)前的ATIM窗口順利將所有ATIM幀發(fā)送給對方,這說明當(dāng)前的ATIM窗口已經(jīng)足夠大,則它可以選擇將ATIM窗口縮小一個級別。
DPSM能夠使結(jié)點根據(jù)網(wǎng)絡(luò)狀況動態(tài)調(diào)整ATIM窗口大小,并且在數(shù)據(jù)傳輸結(jié)束后就進入睡眠狀態(tài)。因此比PSM節(jié)能效率高,同時也沒有降低吞吐率。
2.3 NPSM協(xié)議
NPSM協(xié)議(New Saving Mechanism)中報文發(fā)送完畢之后結(jié)點可以進入睡眠狀態(tài),工作過程如圖4所示。在每一beacon周期開始時仍然有一段時間內(nèi)所有結(jié)點都處于活躍狀態(tài)。收發(fā)雙方不必事先交互ATIM報文就可以直接發(fā)送數(shù)據(jù)報文。在發(fā)送報文的同時通過在控制報文和數(shù)據(jù)報文中攜帶一些特定信息來告知對方及其他結(jié)點自己當(dāng)前有多少報文等待發(fā)送、要發(fā)給誰以及其他鄰居結(jié)點總共有多少報文等待發(fā)送給自己等信息。所有無關(guān)結(jié)點在收到這些信息后就能估算出發(fā)送報文的結(jié)點至少還會處于活躍狀態(tài)多少時間,而目的結(jié)點也能知道對方有多少報文等待發(fā)送給自己?;钴S窗口結(jié)束后,如果結(jié)點沒有數(shù)據(jù)發(fā)送或接收就轉(zhuǎn)入睡眠狀態(tài)。
由于NPSM協(xié)議中結(jié)點在報文發(fā)送完畢之后可以進入睡眠狀態(tài),因此比802.11PSM協(xié)議有更高的節(jié)能效率。同時,由于無需交互ATIM報文, NPSM協(xié)議比802.11PSM協(xié)議有更高的吞吐率。
2.4 IPSM協(xié)議
IPSM協(xié)議[7-8](ImprovedPower Saving Mechanism)與DPSM具備一樣的特征,既可以動態(tài)該改變ATIM窗口大小,又允許結(jié)點在TW窗口完成數(shù)據(jù)傳輸后轉(zhuǎn)入睡眠狀態(tài)。但兩者采取機制完全不同。IPSM中定義了4個參數(shù):最大ATIM窗口ATIMmax,最小ATMI窗口ATIMmin、信道空閑時間CIT(Channel Idle Time)、信道空閑時間門限CITThreshold(Channel Idle Time Threshold)。ATIMmax和ATIMmin限定了ATIM窗口變化的范圍。CIT指在ATIM窗口結(jié)束時刻測得的信道持續(xù)空閑時間。CITThreshold則提供了ATIM窗口增大的條件。在ATIM窗口結(jié)束時如果CIT大于CITThreshold,則說明信道已經(jīng)空閑了足夠長時間,結(jié)點沒有再試圖發(fā)送ATIM幀,不必改變ATMI窗口大小;否則就要增大ATIM窗口。各個結(jié)點窗口大小變化是同步的。
IPSM協(xié)議工作過程如圖5所示。在beacon周期初始時,ATIM窗口置為ATIMmin,如果在窗口結(jié)束時刻測得的CIT小于或等于CITThreshold時,就在ATIMmin基礎(chǔ)上延長ATIM窗口持續(xù)時間形成新的ATIM窗口。此過程反復(fù)進行直到CIT大于CITThreshold時或ATIM窗口增大到ATIMmax時為止。ATIM窗口結(jié)束后,結(jié)點開始傳輸數(shù)據(jù)。IPSM協(xié)議在ATIM幀中和傳輸?shù)臄?shù)據(jù)分組中包含有結(jié)點待傳輸?shù)姆纸M數(shù)量信息。這些信息能夠讓目的結(jié)點判斷出它是否接收完所有分組數(shù)據(jù)。如果一個結(jié)點在TW窗口結(jié)束了數(shù)據(jù)傳輸,即使TW窗口還沒有關(guān)閉,結(jié)點也可進入睡眠狀態(tài)。如果源結(jié)點在beacon周期結(jié)束時沒有傳輸完數(shù)據(jù),則在下一個beacon周期它和目的結(jié)點處于活躍狀態(tài),不必傳輸ATIM幀就能繼續(xù)傳輸數(shù)據(jù)。
IPSM協(xié)議中,結(jié)點根據(jù)網(wǎng)絡(luò)狀況同步調(diào)整ATIM窗口大小,同時數(shù)據(jù)傳輸結(jié)束后就能進入睡眠狀態(tài)。因此其節(jié)能效果比PSM好。
2.5 S-PAM協(xié)議
PSM協(xié)議中結(jié)點在TW窗口進行數(shù)據(jù)傳輸使用CSMA/CA機制,沒有競爭到信道的結(jié)點就要退避一段時間再發(fā)送。S-PAM(The Slot-based Power Saving Mechanism)協(xié)議使得結(jié)點在退避時間內(nèi)轉(zhuǎn)入睡眠狀態(tài),提高節(jié)能效率。
在S-PAM中,將TW窗口劃分為幾個不同的時隙。結(jié)點只在選定的時隙中傳輸數(shù)據(jù),相應(yīng)只在傳輸數(shù)據(jù)的時隙中處于活躍態(tài),而在退避時隙時轉(zhuǎn)入睡眠狀態(tài)。傳輸數(shù)據(jù)時隙在ATIM窗口中選定并通過ATIM分組進行消息發(fā)布。S-PAM工作具體過程如圖6所示。
S-PAM協(xié)議中,結(jié)點在退避時間內(nèi)能進入睡眠狀態(tài),因此節(jié)能效率高。同時數(shù)據(jù)在分配好的時隙中傳輸,吞吐率也得以提高。但時隙分配機制比較復(fù)雜。
以上這些協(xié)議都是針對PSM的不足在某一方面進行的改進,使得節(jié)能性能得以提高。各協(xié)議性能比較如表1所示。目前,從多方面綜合考慮而進行的節(jié)能研究還比較少。
3 節(jié)能技術(shù)所面臨的困難及發(fā)展方向
動態(tài)關(guān)閉無線接口是802.11協(xié)議的主要節(jié)能機制,但需要解決好以下幾個方面的問題:
(1)如何獲得全網(wǎng)時鐘同步。PSM及其改進協(xié)議大都使用beacon幀進行同步,在全互連無線網(wǎng)絡(luò)中是可行的。但對于多跳Ad Hoc網(wǎng)絡(luò)[9-12]而言,由于沒有一個通信范圍能覆蓋全網(wǎng)的中心結(jié)點,使得全網(wǎng)同步實現(xiàn)起來相當(dāng)困難。這就促使研究者必須研究解決同步問題和異步時間驅(qū)動情況下的節(jié)能技術(shù);
(2)研究時間-報文綜合驅(qū)動的節(jié)能技術(shù)。PSM及其改進協(xié)議將時間軸劃分為不同的beacon周期進行操作,屬于時間驅(qū)動節(jié)能技術(shù),沒有過多考慮網(wǎng)絡(luò)負荷影響。網(wǎng)絡(luò)負荷低時節(jié)能性能顯著。而在網(wǎng)絡(luò)負荷高時節(jié)能效果比較差。報文驅(qū)動機制正好相反,它利用報文發(fā)送前交互的控制信息決定結(jié)點是否進入睡眠狀態(tài)。如果能將這兩種節(jié)能機制優(yōu)點結(jié)合起來又克服各自缺點,則能取得更好的節(jié)能效果;
(3)如何發(fā)送廣播報文。在普通網(wǎng)絡(luò)中,由于所有結(jié)點一直處于活躍狀態(tài),廣播報文可以隨時發(fā)送。而當(dāng)運行節(jié)能協(xié)議時,如何發(fā)送廣播報文是一個需要研究的問題;
(4)模式轉(zhuǎn)換的能耗問題。結(jié)點在睡眠狀態(tài)和活躍狀態(tài)間相互轉(zhuǎn)換時需要消耗額外的能量。如果睡眠時間過少,它節(jié)省的能量還不足以彌補模式轉(zhuǎn)換消耗的能量,此時就不宜進入睡眠狀態(tài)。如何確定最少睡眠時間也是必須要解決的問題;
(5)如何判斷當(dāng)前存在的鄰居結(jié)點。無線網(wǎng)絡(luò)中結(jié)點間常常要交互信息以判斷有哪些鄰結(jié)點。由于工作于節(jié)能模式的結(jié)點會在許多情況下處于睡眠狀態(tài),這有可能影響某些結(jié)點對鄰居結(jié)點的正確判斷;
(6)協(xié)議各層如何協(xié)作以提高節(jié)能效果。節(jié)能問題涉及到網(wǎng)絡(luò)的各層,進行跨層設(shè)計非常有必要。在Ad Hoc網(wǎng)絡(luò)中,路由協(xié)議的節(jié)能研究是節(jié)能工作一個重要方面。MAC子層節(jié)能技術(shù)要考慮與路由協(xié)議協(xié)同工作,保證當(dāng)前處于睡眠狀態(tài)結(jié)點也能收到必要的路由信息。
無線終端在能源有限條件下能連續(xù)工作較長時間是業(yè)界所希望的。因此節(jié)能問題引起了國際學(xué)術(shù)界的廣泛關(guān)注,產(chǎn)業(yè)界也一直在尋求通過采用節(jié)能機制來延長終端工作時間的方法??梢灶A(yù)期隨著時間的推移,各種新的節(jié)能機制將在無線網(wǎng)絡(luò)中得到越來越廣泛的應(yīng)用,從而進一步推動無線網(wǎng)絡(luò)的發(fā)展。