覃 磊 熊 焰 黃文超 孟昭逸
(中國科學技術大學計算機科學與技術系 安徽 合肥 230026)
對于移動設備,如智能手機和平板來說,電量是一種關鍵的資源。隨著互聯(lián)網的普及和互聯(lián)網應用的日漸豐富,移動設備網絡模塊的功耗在移動設備總功耗中占據(jù)了重要地位[1],因此針對網絡模塊電量優(yōu)化的研究有著極其重要的價值。目前已有的安卓網絡電量優(yōu)化研究中,大多通過減少尾時間[2]、合并網絡請求[3-4]、快速休眠網絡[5]、云計算云端優(yōu)化[6]、水平/垂直切換無線信道[7]、使用跨層和功率優(yōu)化的認知無線電架構[8]、預測網絡視頻資源需求[9]等方法來降低手機的網絡能耗,但是還沒有研究針對網絡傳輸任務的電量消耗進行優(yōu)化。根據(jù)我們的觀察,網絡傳輸任務在網絡信號弱或網絡擁塞等網絡不佳狀態(tài)下的電量消耗會比網絡良好時的電量消耗高50%以上。如果研究者忽略傳輸任務的狀態(tài)對能耗的影響,將會錯失一個顯著優(yōu)化電量的機會。
為了找到網絡傳輸任務中的優(yōu)化點,我們對其進行了初步的調研。調研結果顯示,由于移動網絡流量越來越便宜,許多用戶開始使用流量下載大文件,而不是使用Wi-Fi進行下載。移動網絡在信號強度較弱時,會提高發(fā)射功率以便保證網絡的正常傳輸,而更高的發(fā)射功率也帶來了更大的電量消耗。在網絡信號弱時傳輸?shù)臄?shù)據(jù)量僅占傳輸任務總數(shù)據(jù)量的極少部分,卻消耗著大量的電量資源。如果此時增加移動網絡接入的重試間隔,減少重試次數(shù),就能降低網絡傳輸任務的整體功耗。類似地,在網絡擁塞時選擇將下載任務延遲到網絡情況改善時進行,也能達到節(jié)約電量的目的。但是大部分用戶不愿意耗費精力,而且也沒有足夠的信息來確定網絡的狀況,進而采取手動暫停傳輸任務等方式節(jié)約電量。因此,我們提出了一種面向安卓網絡傳輸任務的智能感知節(jié)能技術,能夠感知下載任務處于何種狀態(tài)以及當前網絡的狀況,并應用針對性的節(jié)能方案對手機的電量消耗進行優(yōu)化。本文的主要貢獻有:
(1) 對安卓網絡傳輸任務的特點進行了研究,發(fā)現(xiàn)了不同狀態(tài)下的網絡傳輸任務的特點。
(2) 提出了一種面向安卓網絡傳輸任務的智能感知節(jié)能技術。該技術無需用戶參與,通過感知網絡傳輸任務所處的狀態(tài),應用特定的節(jié)能手段來優(yōu)化電量的使用。
(3) 以該技術為原型實現(xiàn)了一個任務智能感知節(jié)能系統(tǒng)。同時,進行了大量實驗來驗證該系統(tǒng)的實用性。實驗結果表明,在使用全部節(jié)能方案后,傳輸任務的單位數(shù)據(jù)能耗平均降低了44%。
3G和4G是當前主流使用的移動蜂窩網絡。3GPP[10]和4GPP[11]是當前主要采用的3G/4G標準。相比于Wi-Fi的耗電,移動蜂窩網絡的耗電特點更為復雜:
(1) 多頻段、多制式的移動蜂窩網絡信號。手機在移動蜂窩網絡中時會不斷地掃描無線電波,決定應該接受哪個基站發(fā)出的信號。目前的移動通信網絡不僅包括4G網絡,還有GSM(2G)、WCDMA、TD-SCDMA、CDMA2000(3G)等多種制式的網絡。這些不同制式的網絡使用的是不同的頻段,因此手機射頻天線需要不停地在多個頻段掃描多種制式的網絡信號,功耗較高。而Wi-Fi一般使用2.4 GHz頻段,頻率固定,支持范圍有限,在相同網絡狀況下的功耗較低。
(2) 信號弱時射頻天線搜索更頻繁,信號功率更高[12]。4G的傳輸速率雖然較高,但是其穿透能力和覆蓋范圍并不如3G。特別是一些高層建筑、地下設施往往存在4G信號的盲區(qū)。此時如果使用4G網絡,射頻天線為了保證網絡連接的可靠,會提高其功率,并頻繁地搜索各個頻段的信號,造成手機電量消耗劇增。
1) 觀察1:網絡信號差會增加電量消耗的速度。根據(jù)“移動蜂窩網絡在信號弱時會提高功率,并且更頻繁地搜索信號”的特點,我們進行了實驗。我們抽取了應用市場上20個文件傳輸型應用,測量了它們在不同網絡環(huán)境下用于網絡傳輸任務的電量消耗。實驗表明,網絡傳輸任務約占應用程序非空閑狀態(tài)下電量消耗的67%,其中大約35%的電量消耗在了網絡信號差所引起的更高的傳輸功率上。
然而由于網絡信號弱時傳輸速率較低,其傳輸?shù)臄?shù)據(jù)量僅占傳輸任務總數(shù)據(jù)量的極少部分,而絕大部分數(shù)據(jù)傳輸主要依靠信號強時的高速數(shù)據(jù)傳輸。同理,網絡擁塞時傳輸任務的速率也較低,此時即使繼續(xù)進行傳輸,任務也無法在合理時間內完成,反而會白白消耗移動設備寶貴的電量資源。我們將網絡信號弱狀態(tài)和網絡擁塞狀態(tài)統(tǒng)稱為低速傳輸狀態(tài)。如果能夠識別出此種狀態(tài),采用特定的推遲算法,將傳輸任務推遲到網絡狀況改善時再進行,避免手機提高功率和頻繁嘗試重連,就能夠節(jié)約大量的電量。
2) 觀察2:無用的網絡連接會占用手機的資源。在上述實驗中,我們還發(fā)現(xiàn)大部分傳輸任務會選擇TCP作為傳輸層協(xié)議,而部分用于任務傳輸?shù)腡CP連接在傳輸完成后并不會被關閉。具體來說,網絡傳輸任務結束后,客戶端發(fā)送FIN報文,并接收客戶端的ACK。然后客戶端等待服務器發(fā)送的FIN報文,對齊進行確認,并進入TIME_WAIT狀態(tài)。此狀態(tài)可能會持續(xù)長達30秒、1分鐘或2分鐘,甚至更長時間(取決于具體實現(xiàn))。由于某些網絡原因,客戶端可能會長期處于TIME_WAIT狀態(tài),連接會一直保持,消耗著客戶端的資源(端口號)。另外,有的TCP連接在傳輸任務完成后并未斷開,而是繼續(xù)保持打開狀態(tài)。然后應用程序會通過這些TCP連接與服務器同步數(shù)據(jù),使得系統(tǒng)頻繁喚醒,不能快速進入睡眠模式,這也會增加電量消耗。如果能及時發(fā)現(xiàn)這些無用的連接,推遲同步數(shù)據(jù)包的發(fā)送或關閉連接,將會有助于節(jié)約電量。
根據(jù)上述觀察,我們認為一個傳輸任務應該長期處于高速、穩(wěn)定的狀態(tài),并且要及時處理無效的網絡連接,以便能夠快速且節(jié)能地完成任務。針對觀察1,我們應該能夠識別傳輸任務是否處于低速傳輸?shù)臓顟B(tài)。此時傳輸速率很低,應該選擇暫停傳輸任務,并在適當?shù)臅r間恢復傳輸。針對觀察2,我們應該能夠識別傳輸任務是否處于完成狀態(tài)。傳輸任務完成后所有與該傳輸任務有關的連接均為無用連接,應該推遲其數(shù)據(jù)包的發(fā)送或及時關閉連接以節(jié)約電量。
使用TCP連接的傳輸任務在網絡信號弱和網絡擁塞狀態(tài)下都會出現(xiàn)大量的重復確認報文,因此可以將其作為特征之一。然而,有的傳輸任務使用的是UDP協(xié)議或自定義的傳輸協(xié)議,在UDP協(xié)議的基礎上添加自定義的擁塞控制、應用層重傳等邏輯。針對這種情況,可以將任務的實時傳輸速率作為補充特征。因為傳輸任務的文件一般比較大,在網絡良好時期會產生較大的網絡流量,而在網絡信號弱和網絡擁塞時幾乎沒有流量產生。根據(jù)經驗,網絡信號弱和網絡擁塞狀態(tài)下的傳輸速率一般不超過10 KB/s,具體的閾值可以通過進一步的實驗來確定。
在實驗中我們還觀察到,從網絡良好狀態(tài)進入網絡信號弱狀態(tài)和從網絡良好狀態(tài)進入網絡擁塞狀態(tài)是有區(qū)別的。具體體現(xiàn)為,從網絡良好狀態(tài)進入網絡信號弱狀態(tài)時,其傳輸速率會逐漸下降,并且下降速度會逐漸變慢。考慮到多數(shù)網絡信號弱的場景是用戶從信號良好的區(qū)域慢慢移動至地鐵、高層建筑等信號弱的區(qū)域,而信號強度與手機與接入點的距離的平方成反比,所以可以推斷此種情況網絡速率應該是先快速下降,然后緩慢下降,直到低于閾值。我們的實驗數(shù)據(jù)證實了這一推斷。
而網絡擁塞是指在分組交換網絡中傳送分組的數(shù)目太多時,由于存儲轉發(fā)節(jié)點的資源有限而造成網絡傳輸性能下降的情況。相比于前一種情況,從網絡良好狀態(tài)進入網絡擁塞狀態(tài)時,傳輸任務的瞬時傳輸速率會瞬間降到閾值以下。網絡擁塞狀態(tài)時有發(fā)生,但是一般不會持續(xù)太久,而后傳輸速率又會迅速回到正常值,因此傳輸速率會呈現(xiàn)穩(wěn)定的多個瞬時下降的反尖峰。同樣實驗數(shù)據(jù)也證實了這一推斷。
然而,當實時速率低于閾值時,任務也可能處于已完成狀態(tài),所以需要將其區(qū)分出來。
在我們的實驗過程中,傳輸任務的文件較大,會產生較大的網絡流量。而當傳輸任務完成時幾乎不再出現(xiàn)大的分組,只有一些零星的帶控制信息的分組,并且傳輸任務所打開的要傳輸文件的文件描述符會立刻關閉。
根據(jù)傳輸任務完成時傳輸文件立刻關閉這一現(xiàn)象,我們進行了實驗。實驗發(fā)現(xiàn),網絡傳輸任務通常需要以下流程:打開網絡連接,打開文件,網絡傳輸,關閉文件,關閉網絡連接。并且流程中的網絡連接操作和文件操作是連續(xù)發(fā)生的。任務開始時,打開網絡連接,然后緊接著執(zhí)行打開文件的操作。任務完成時,關閉文件,然后緊接著執(zhí)行關閉網絡連接的操作。根據(jù)實驗數(shù)據(jù)可知,打開/關閉網絡連接操作和打開/關閉文件操作的時間差均不大于0.03秒。
因此,我們可以通過跟蹤網絡連接建立時的打開文件列表,篩選出與該連接有關的文件。如果該連接的網速降低到網速閾值后關聯(lián)文件立刻就關閉了,那么說明傳輸任務剛剛完成或者網絡中斷。而如果該連接的網速降低到網速閾值后關聯(lián)文件一段時間都未關閉,那么說明是網絡信號差/網絡堵塞導致的網絡下降,而傳輸任務還未完成。通過設定一個合適的文件關閉等待時間,我們可以將網絡信號差/網絡堵塞狀態(tài)識別出來。而對于關聯(lián)文件立刻關閉的情況,可以獲取當前手機的網絡可用狀態(tài)來判斷傳輸任務是處于網絡不可用狀態(tài)還是已完成狀態(tài)。
綜合上述情況,我們整理得出識別任務狀態(tài)的流程圖,如圖1所示。
圖1 識別任務狀態(tài)的流程圖
(1) 狀態(tài)識別開始。進入(2)。
(2) 如果當前網絡中存在屬于該傳輸任務的大量重傳數(shù)據(jù)包,則識別為低速傳輸狀態(tài),進入(5);否則進入(3)。
(3) 如果傳輸速率在一段時間內始終低于某個閾值,則進入(4);否則為任務進行中狀態(tài),不需要優(yōu)化。
(4) 如果關聯(lián)文件關閉,則進入(5);否則進入(6)。
(5) 如果傳輸速率下降速度逐漸變慢,則為網絡信號弱狀態(tài);否則為網絡擁塞狀態(tài)。
(6) 如果網絡不可用/連接斷開,則為網絡不可用/任務已完成但連接已斷開狀態(tài),不需要優(yōu)化;否則為任務已完成但連接未斷開狀態(tài)。
智能感知節(jié)能系統(tǒng)由三個模塊組成:信息采集和狀態(tài)監(jiān)測模塊,任務狀態(tài)識別模塊,電量優(yōu)化模塊,如圖2所示。
圖2 智能感知節(jié)能系統(tǒng)框架圖
我們使用數(shù)據(jù)包捕獲工具tcpdump[13]捕獲經過本機接口的所有網絡數(shù)據(jù)包,并解析其中相應字段的信息。重傳對應的標志位可以用來判斷重傳報文,流經的網絡數(shù)據(jù)包大小可以用來計算瞬時傳輸速率,首次收到新端口號的報文的時間即為連接的建立時間,打開文件描述符列表中文件的訪問時間即為文件創(chuàng)建時間。
4.1.1重傳報文的檢測
使用數(shù)據(jù)包捕獲工具捕獲數(shù)據(jù)包,并查看其中重傳對應的標志位,就可以判斷重傳報文。如果長期出現(xiàn)大量重傳報文,說明當前傳輸任務處于低速傳輸狀態(tài)。
4.1.2傳輸任務瞬時傳輸速率的計算
由于每一個傳輸任務使用獨特的端口號進行傳輸,因此我們可以通過捕獲流經該端口的網絡數(shù)據(jù)包來計算瞬時傳輸速率。有的數(shù)據(jù)包中傳輸?shù)牟皇谴齻鬏斘募臄?shù)據(jù),而是一些控制信息(例如丟包重傳、速率控制等),因此不能直接將網速大于0作為傳輸任務正在進行的特征,而是要設定一個閾值。當實時傳輸速率大于某個閾值時,認為傳輸任務處于正在進行中的狀態(tài)。
采用滾動法計算瞬時傳輸速率,即每次取距離當前時刻最近的若干個時間片內的數(shù)據(jù)包,對它們的大小求和,然后除以時間片的長度。相對于固定時間片計算網速的方法,滾動計算得到的實時傳輸速率的變化曲線更加平滑,更適用于我們后面通過瞬時傳輸速率的變化來判斷網絡信號差或網絡擁塞的方案。
4.1.3傳輸任務關聯(lián)文件的確定
在傳輸速率低于閾值時,還需要關聯(lián)文件的打開/關閉狀態(tài)來輔助我們進行判斷。因為在傳輸任務流程中打開文件操作是緊接著打開網絡連接操作之后發(fā)生的,因此可以通過網絡連接的建立時間來找到與該連接相關的打開文件。首先,使用檢測程序[14]監(jiān)測有無新的網絡連接產生。一旦產生新的網絡連接,記錄其連接建立時間,并與當前應用打開的文件列表中的所有文件進行對比,找出文件創(chuàng)建時間緊鄰連接建立時間的文件,這些文件就是該傳輸任務所對應的傳輸文件。根據(jù)實驗數(shù)據(jù),打開/關閉網絡連接操作和打開/關閉文件操作的時間差均不大于0.03秒。因此,我們將關聯(lián)文件關閉等待時間設定為0.03秒。
任務狀態(tài)識別模塊主要負責識別傳輸任務的網絡信號弱、網絡擁塞、已完成狀態(tài)。
1) 用于區(qū)分傳輸任務處于高速/低速傳輸狀態(tài)的速率閾值的設定與低速傳輸保持時間的設定。為了選取一個合適的速率閾值,我們使用了大量應用程序進行實驗。根據(jù)實驗結果,低速傳輸狀態(tài)絕大部分時間中,傳輸速率都低于2.7 KB/s。因此,我們認為速率閾值設定在2.7 KB/s時劃分效果較好。
然而僅使用速率閾值作為區(qū)分傳輸任務處于高速/低速狀態(tài)容易造成誤判,所以需要傳輸速率在一定時間內都低于該速率閾值,才能認為任務處于低速狀態(tài)。我們稱該時間為低速傳輸保持時間。根據(jù)實驗數(shù)據(jù),將其設定為6.2秒時劃分效果最好。
2) 使用傳輸速率下降的快慢區(qū)分網絡信號差狀態(tài)和網絡擁塞狀態(tài)。根據(jù)之前的觀察,“從網絡良好狀態(tài)進入網絡信號弱狀態(tài)時,其傳輸速率的下降速度是逐漸變慢的”,我們可以用相鄰時間片的滾動瞬時傳輸速率的差值和時間片的長度計算得到傳輸速率的變化率,即加速度。當加速度呈現(xiàn)下降趨勢且傳輸速率下降到速率閾值以下并保持一定時間時,我們就可以認為當前處于網絡信號弱狀態(tài),否則處于網絡擁塞狀態(tài)。
3) 使用網絡連接建立時間和關聯(lián)文件創(chuàng)建時間識別任務已完成狀態(tài)。如果傳輸任務的網絡連接已斷開,則不再進行后面的優(yōu)化工作。當傳輸任務經歷一次完整的連接建立->文件打開->文件關閉過程且相鄰步驟的時間間隔小于0.03秒,但是網絡連接沒斷開,表示任務雖已完成,但是其對應的網絡連接仍然保持打開狀態(tài),需要我們進行后續(xù)的優(yōu)化。
電量優(yōu)化模塊分別為處于網絡信號弱、網絡擁塞、已完成狀態(tài)的任務使用相應的優(yōu)化方案。
1) 網絡信號差狀態(tài)和網絡擁塞狀態(tài)下應用隨機后退算法。因為網絡信號差一般是和手機所處的位置、接入點的硬件設施有關,短期內無法恢復。因此,對于網絡信號差的情況,我們會將移動網絡接入的重試間隔設置得較長。而在網絡擁塞時,通常是鏈路上數(shù)據(jù)傳輸過多造成信道擁擠,一般能在短時間內恢復正常,此時我們重試數(shù)據(jù)傳輸?shù)拈g隔應該短一些。
我們對網絡信號差狀態(tài)采用指數(shù)時間隨機后退算法。當傳輸任務進入網絡信號差狀態(tài),意味著移動網絡連接會時常斷開,故應隔一段時間嘗試重新接入網絡,但是嘗試不能過于頻繁。具體來說,經歷了一連串的n次移動網絡接入失敗后,將隨機地從{0,1,2,3,4,…,2n-1}中選擇一個K值,然后推遲K×512比特時間(512比特時間為進入以太網所需的時間)再繼續(xù)嘗試接入網絡。傳輸任務經歷的網絡接入失敗次數(shù)越多,K選擇的間隔就越大,最大為210,直到接入成功后將間隔重新設置為0。
而對于網絡擁塞狀態(tài),我們采用線性時間隨機后退算法。當傳輸任務進入網絡擁塞狀態(tài),意味著數(shù)據(jù)傳輸會時常中斷或處于低速,故應隔一段時間嘗試繼續(xù)數(shù)據(jù)傳輸,但是嘗試不能過于頻繁。具體來說,經歷了一連串的n次數(shù)據(jù)傳輸中斷或低于閾值后,將隨機地從{0,1,2,3,4,…,n-1}中選擇一個K值,然后推遲K×512比特時間再繼續(xù)嘗試傳輸。傳輸任務經歷的重啟嘗試失敗次數(shù)越多,K選擇的間隔就越大,最大為210,直到數(shù)據(jù)傳輸速度正常后將間隔重新設置為0。
2) 傳輸任務已完成狀態(tài)下應用數(shù)據(jù)包延遲發(fā)送算法。在識別傳輸任務處于已完成狀態(tài)后,仍保持傳輸任務對應的網絡連接以便完成一些后續(xù)工作或用于下一次任務傳輸,但是對通過該連接發(fā)送的數(shù)據(jù)包采取延遲發(fā)送處理。首先選擇一個固定長度的時間槽,在同一個時間槽內發(fā)送的數(shù)據(jù)包將會被延遲到時間槽的尾部統(tǒng)一發(fā)送,以減少手機被喚醒的次數(shù),達到節(jié)約電量的目的。
我們從安卓應用市場選取了一定數(shù)量的帶網絡傳輸任務的安卓應用,并在主流安卓機型上進行了實驗。實驗結果顯示,該系統(tǒng)能準確識別安卓網絡傳輸任務的狀態(tài),并能有效降低網絡傳輸任務的能耗。
我們在豌豆莢、應用寶、Google play等應用市場下載了1 364個安卓應用,并篩選了其中帶有網絡傳輸任務的120個應用進行實驗。實驗使用的安卓手機機型包括三星Note 7、華為榮耀、小米5、Nexus 4共4款。在測試過程中,所有手機均關閉自帶的節(jié)能模式。我們使用高性能移動工作站、USRP B210、天饋系統(tǒng)和Ubuntu 16.04、OpenAirInterface軟件建立4G LTE偽基站,供手機接入。我們還記錄了網絡請求的開始時間、延遲時間、結束時間,使用文獻[15]的方式模擬計算任務的耗電。
1) 測試系統(tǒng)識別不同任務狀態(tài)的準確率。測試網絡信號弱狀態(tài)的識別準確率:首先建立一個基站,降低該基站的無線信號發(fā)射功率,制造一個網絡信號弱的區(qū)域。類似地,我們建立另一個基站,保證該基站移動網絡的信號良好。將此網絡接入范圍內的區(qū)域記為網絡良好區(qū)域。然后選定一部手機和一個待測試應用程序。一輪實驗開始時,測試人員首先位于網絡良好區(qū)域,接入該無線網絡,然后在手機上開啟系統(tǒng)和待測試的應用程序,開始網絡傳輸任務,待傳輸速率穩(wěn)定后,再以正常速度走到網絡信號弱區(qū)域,實驗結束。對每個應用程序重復進行20輪。待所有應用程序測試完成后,再換另一部手機,重復以上實驗。
測試網絡擁塞狀態(tài)的識別準確率:首先在多臺移動設備上安裝網絡數(shù)據(jù)包自動發(fā)送程序,移動設備能夠啟動該程序,使得基站移動網絡的信道堵塞。然后建立一個基站,讓這些移動設備接入該基站。接著選定一部手機和一個待測試應用程序。一輪實驗開始時,測試人員首先將手機接入該無線網絡,然后在手機上開啟本系統(tǒng)和待測試的應用程序,開始網絡傳輸任務,待傳輸速率穩(wěn)定后,再啟動數(shù)據(jù)包自動發(fā)送程序使得基站的移動網絡堵塞,實驗結束。對每個應用程序重復進行20輪。待所有應用程序測試完成后,再換另一部手機,重復以上實驗。
測試傳輸任務已完成狀態(tài)的識別準確率:首先我們建立一個基站,保證該基站移動網絡信號良好,信道暢通。將此網絡接入范圍內的區(qū)域記為網絡良好區(qū)域。然后選定一部手機和一個待測試應用程序。一輪實驗開始時,測試人員首先位于網絡暢通區(qū)域,接入該無線網絡,然后在手機上開啟系統(tǒng)和待測試的應用程序,開始網絡傳輸任務,直到傳輸任務完成,實驗結束。對每個應用程序重復進行20輪。待所有應用程序測試完成后,再換另一部手機,重復以上實驗。
2) 測試系統(tǒng)各節(jié)能方案的效果。網絡信號弱狀態(tài)下使用指數(shù)時間隨機后退算法,實驗環(huán)境設置與之前識別實驗保持一致。在測試過程中,測試人員攜帶手機交替地在網絡信號弱區(qū)域和網絡良好區(qū)域活動,確保在兩個區(qū)域停留的時間大致相等。每一輪實驗進行一次完整的任務傳輸,每個待測試應用程序重復20輪。待所有應用程序測試完成后,再換另一部手機,重復以上實驗。
網絡擁塞狀態(tài)下使用線性時間隨機后退算法,實驗環(huán)境設置與之前識別實驗保持一致。在測試過程中,測試人員攜帶手機交替地在網絡擁塞區(qū)域和網絡暢通區(qū)域活動,確保在兩個區(qū)域停留的時間大致相等。每一輪實驗進行一次完整的任務傳輸,每個待測試應用程序重復20輪。待所有應用程序測試完成后,再換另一部手機,重復以上實驗。
傳輸任務已完成狀態(tài)下使用數(shù)據(jù)包延遲發(fā)送算法進行測試。在測試過程中,測試人員攜帶手機待在網絡良好區(qū)域。每一輪實驗進行一次完整的任務傳輸,每個待測試應用程序重復20輪。待所有應用程序測試完成后,再換另一部手機,重復以上實驗。
另外,我們測試在三種任務狀態(tài)下不使用電量優(yōu)化方案的效果,其他條件保持一致,作為對照組。
因為各個傳輸任務的數(shù)據(jù)量不同,我們對測量得到的時間和功耗數(shù)據(jù)等均做了歸一化處理。
1) 系統(tǒng)識別網絡信號弱狀態(tài)、網絡擁塞狀態(tài)、傳輸任務已完成狀態(tài)的準確率分別為92.50%、90.00%、82.50%,如表1所示。
表1 任務狀態(tài)識別實驗結果 %
相較于其他3種機型,Nexus4的三種網絡任務狀態(tài)識別率均較低。因為傳輸速率閾值和低速傳輸保持時間的值是根據(jù)4種不同安卓機型下的實驗結果加權平均而得。所有4種機型中,只有Nexus4屬于較老的機型,而其他3種機型均較新。新機型的權重占比較高,因此設定的傳輸速率閾值和低速傳輸保持時間對于新機型更加合適,識別各任務狀態(tài)的準確率也更高。
2) 在網絡信號弱狀態(tài)下應用指數(shù)時間隨機后退算法后,任務的高速傳輸時間幾乎沒有變化,射頻模塊處于高功率的時間減少了91.0%,但是任務傳輸也被推遲,導致完成時間增加了7.9%。最終傳輸任務的單位數(shù)據(jù)能耗平均降低了60.5%。如表2和表3所示。
表2 指數(shù)時間隨機后退算法效果(應用節(jié)能方案)
表3 指數(shù)時間隨機后退算法效果(不應用節(jié)能方案)
相較于其他3種機型,Nexus4的射頻模塊高功率搜索信號時間更長。推測是新機型的射頻模塊更加先進,針對信號弱狀態(tài)下的信號搜索進行了優(yōu)化所致。
3) 在網絡擁塞狀態(tài)下應用線性時間隨機后退算法后,任務的高速傳輸時間幾乎沒有變化,任務在擁塞狀態(tài)下傳輸?shù)臅r間減少了94.1%,但是任務傳輸也被推遲,導致完成時間增加了3.5%。最終傳輸任務的單位數(shù)據(jù)能耗平均降低了35.3%。如表4和表5所示。
表4 線性時間隨機后退算法效果(應用節(jié)能方案)
表5 線性時間隨機后退算法效果(不應用節(jié)能方案)
不同機型的實驗效果之間沒有明顯差異。
4) 在傳輸任務已完成狀態(tài)下應用數(shù)據(jù)包延遲發(fā)送算法后,由網絡引起的手機喚醒次數(shù)減少了67%。如表6所示。
表6 線性時間隨機后退算法效果
不同機型的實驗效果之間沒有明顯差異。
我們對安卓網絡傳輸任務進行了研究,發(fā)現(xiàn)了安卓網絡傳輸任務不同狀態(tài)的特點,并提出了一種面向它的智能感知節(jié)能技術。它能針對傳輸任務不同狀態(tài)的特點感知任務狀態(tài),對其采用不同的電量優(yōu)化方案,降低設備功耗和減少不必要的網絡傳輸行為。我們利用此技術實現(xiàn)了原型系統(tǒng),應用在安卓真機上,并且比較了采用優(yōu)化方案前后的測試與統(tǒng)計結果,驗證了該技術的有效性。與從硬件上降低電量消耗的方案相比,該優(yōu)化方案的代價較小,更容易部署與實現(xiàn)。