陳 霄,伍曉峰,鄭 路,崔 翔
(廣州體育職業(yè)技術(shù)學院,廣東 廣州 510650)
M2M通信是物聯(lián)網(wǎng)(Internet-of-Things, IoT)的重要部分,其允許設備在無人參與情況下完成通信。將未注冊的工業(yè)、科學的醫(yī)療帶寬用于無線M2M設備的通信是提高帶寬利用率的有效方式。然而,這些頻譜已被現(xiàn)存網(wǎng)絡使用,其中多數(shù)是被WiFi使用。目前,WiFi已在多數(shù)家庭、商業(yè)單位中普及。因此,在這些區(qū)域內(nèi)部署M2M設備會產(chǎn)生干擾,導致碰撞以及數(shù)據(jù)包丟失。然而,據(jù)觀察,WiFi網(wǎng)絡在某些段時間內(nèi)并沒有被充分使用[1],換而言之,原本W(wǎng)iFi網(wǎng)絡所占用的帶寬資源并沒有充分利用,即在一段時間內(nèi),這些資源是空閑的,將這些空閑頻帶的時間,稱為WiFi的空白空間。這些空白空間為M2M和WiFi通信的共存提供了可能。
目前,研究人員對M2M和WiFi通信的共存進行了較深入的研究。文獻[2-3]分析了將WiFi空白空間提供給機會的M2M通信的性能,分析顯示:即使在WiFi重流量環(huán)境下,仍有足夠的空白空間。文獻[4]提出向WiFi流量業(yè)務發(fā)送CTS消息,進而完成傳感節(jié)點間的數(shù)據(jù)交互。然而,此方案要求M2M設備具有發(fā)送WiFi CTS包的能力,這必然增加了這些設備的成本。
此外,文獻[5]采用由接入點AP發(fā)送CTS包,進而使得ZigBee通信能夠使用信道。CTS阻礙WiFi節(jié)點約32ms,這就允許ZigBee節(jié)點在這個間隔內(nèi)通信。如此CTS包每隔200ms重復一次。長時間預留WiFi信道,增加了WiFi網(wǎng)絡傳輸數(shù)據(jù)包時延。
為此,本文提出面向WiFi空閑頻帶的機會性MAC接入的M2M通信策略(WiFi-M2M)。不再將M2M設備作為WiFi的競爭者,而是利用WiFi流量的空閑頻帶給M2M通信。WiFi-M2M協(xié)議通過修改CTS幀,將修改后的CTS幀標記為mCTS。同時,將預留mCTS時間足夠短,進而降低WiFi包到達時延。
M2M通信模型由一個AP點、n個M2M節(jié)點和m個WiFi節(jié)點構(gòu)成。當存在未使用的帶寬時,AP就通知M2M節(jié)點。然后,這些M2M節(jié)點就競爭接入信道,獲勝的M2M節(jié)點(記為S_M2M 節(jié)點)就在它所分配的時隙內(nèi)向AP傳輸數(shù)據(jù)。WIFI-M2M協(xié)議結(jié)構(gòu)如圖1所示。圖中的CTS、RFS分別表示取消發(fā)送幀(Clear-to-Send)、請求時隙(Request-for-slot)幀。
圖1 WIFI-M2M協(xié)議的操作流程
當AP觀察到在它的MAC層隊列中無需要傳輸?shù)臄?shù)據(jù)包時,它就準備將讓M2M節(jié)點暫時占用帶寬。為了不與WiFi節(jié)點發(fā)生沖突,AP再等待時間Tω。待Tω結(jié)束后,若仍沒有需要傳輸?shù)臄?shù)據(jù)包,就決定由M2M節(jié)點接入信道。
為此,AP就傳輸送mCTS幀,其目的在于為M2M節(jié)點通信保留信道。若沒有M2M設備需要傳輸數(shù)據(jù),則AP仍就將空閑信道交給WiFi傳輸。
當WiFi節(jié)點接收到mCTS幀,它們就推遲數(shù)據(jù)包傳輸,推遲時間為mCTS幀的通信時長。換而言之,當監(jiān)聽到mCTS幀,說明已啟動M2M通信階段。
一個mCTS幀包含M2M通信周期的時長Tmax、競爭時隙數(shù)L、競爭概率p。一個M2M通信周期由五步構(gòu)成:
第一步:預警階段:M2M節(jié)點從AP接收mCTS幀,并獲取L和p值。
第二步:競爭階段:M2M節(jié)點通過發(fā)送請求時隙(Request-for-slot,RFS)幀競爭信道,并從L個時隙內(nèi)選擇一個時隙傳輸RFS幀。
第三步:認識階段:通過發(fā)送時隙認識(Slot Notification, SN)數(shù)據(jù)包,AP公布M2M節(jié)點的競爭結(jié)果。SN數(shù)據(jù)包包含了競爭成功的節(jié)點(S_M2M 節(jié)點),以及給S_M2M 節(jié)點所分配的數(shù)據(jù)傳輸?shù)臅r隙。
第四步:數(shù)據(jù)傳輸狀態(tài):S_M2M 節(jié)點就依據(jù)AP分配的時隙傳輸數(shù)據(jù)包。
第五步:確認狀態(tài):一旦AP接收到數(shù)據(jù)包,AP就向S_M2M 節(jié)點回復確認包BlkACK。
如圖1所示,AP發(fā)現(xiàn)無數(shù)據(jù)包傳輸,就等待Tω時間后,發(fā)送mCTS幀。然后,M2M節(jié)點(M1、M2、M3、M4)就通過發(fā)送RFS消息競爭接入信道。從圖1可知,M2、M4節(jié)點碰撞,而M1與M3兩節(jié)點競爭成功。隨后,AP通過發(fā)送SN消息,公布競爭結(jié)果。當M1與M3節(jié)點收到SN消息后,就從SN消息中提取AP所分配各自己的時隙。然后,再在此時隙內(nèi)傳輸數(shù)據(jù)。最后,當AP接收到數(shù)據(jù)包后,它就發(fā)送確認包BlkACK。
完成了一個M2M通信周期后,WiFi節(jié)點就重新接入信道,占用帶寬。
在預警階段,AP通知所有M2M節(jié)點,啟動M2M周期。這一過程由AP發(fā)送mCTS消息觸發(fā)M2M周期的開始。mCTS的結(jié)構(gòu)如圖2所示,其中S_M2M字段表示競爭成功的M2M節(jié)點。
圖2 mCTS的結(jié)構(gòu)圖
mCTS消息以幀控制字段開始,隨后,包括時長字段。時長字段包含M2M通信周期的時延Tmax。這個字段,就通知WiFi節(jié)點更新網(wǎng)絡分配矢量,致使它們在此Tmax內(nèi)不接入信道。
一旦接收到mCTS消息,M2M節(jié)點就在競爭階段內(nèi)競爭接入信道。此狀態(tài)劃分為等長的L個時隙,每個時隙長稱為RFS時長(RFSD)。接收了mCTS消息后,M2M節(jié)點等待SIFS時間(最短的接入空間),再競爭接入信道。
需要傳輸數(shù)據(jù)的M2M節(jié)點就從L個時隙中隨機選擇一個時隙,且概率為p,向AP發(fā)送RFS消息。一旦AP成功接收RFS消息,AP就將M2M節(jié)點加入成功競爭者清單(即此M2M節(jié)點成功接入信道),并給它們分配數(shù)據(jù)時隙。如果發(fā)生碰撞,AP就記錄,并調(diào)整允許發(fā)送數(shù)據(jù)M2M節(jié)點數(shù)。
在競爭階段中,如果一旦接收到RFS消息,AP就將競爭成功的節(jié)點清單載入時隙認知SN消息中。圖3顯示了SN幀結(jié)構(gòu),其中FCS表示幀檢驗序列。SN消息與IEEE 802.11 BLK-ACK數(shù)據(jù)包格式相似,BLK-ACK數(shù)據(jù)包中有負載字段。此負載字段包含了成功M2M節(jié)點清單。Duration 字段就更新為M2M通信周期的剩余時間值。
圖3 SN幀的結(jié)構(gòu)圖
若無M2M節(jié)點發(fā)送數(shù)據(jù)包,則認為RFS競爭不成功,此時,AP就發(fā)送SN-ACK數(shù)據(jù)包,并且Duration 字段設置為零。
若因M2M節(jié)點間碰撞導致的競爭失敗,則AP發(fā)送另一個mCTS數(shù)據(jù)包,且更新Tmax、L和p值,進而調(diào)整剩下的Duration值。此SN數(shù)據(jù)包的控制字段與IEEE 802.11 CTS 數(shù)據(jù)包相似,并且它允許M2M節(jié)點可在下一個周期內(nèi)接入信道。
在數(shù)據(jù)傳輸階段,已競爭成功的節(jié)點將在它所分配的時隙傳輸數(shù)據(jù)。數(shù)據(jù)時隙間有保護時間,且每個時隙有固定的長度。一旦AP接收到數(shù)據(jù)包,AP就發(fā)送BlkACK包。
AP向M2M節(jié)點所發(fā)送的mCTS消息包含了L和p值,這些值應該謹慎選擇,進而最大化信道利用率。當數(shù)據(jù)傳輸階段中所有可能的數(shù)據(jù)時隙都被占用,此時的信道利用率最大。反過來,這就要求有一定的M2M節(jié)點數(shù)能夠成功接入信道。
首先,假定AP在最初具有ND個數(shù)據(jù)時隙,ND的定義如式(1)所示:
(1)
其中TC、TSN、TACK和TD分別表示競爭時隙、時隙認知包、確認和數(shù)據(jù)時隙的時長。
然后,選擇L、p,致使在競爭階段至少存在ND個成功的M2M節(jié)點。假定在競爭階段,有L個時隙、n個活動的M2M節(jié)點,則可分配數(shù)據(jù)時隙的期望值E[S][6]:
(2)
對于給定L值,對式(2)進行微分,并令其等于零,便可獲取p的最優(yōu)值p*:
p*=L/n
(3)
即在最優(yōu)情況下,p=L/n,則E[S]=Le-1。由于保證E[S]等于可獲取的數(shù)據(jù)時隙ND,即L=eND。將L值代入式(1),可得:
(4)
因此,AP最初利用式(4)估計ND,且競爭階段由L=eND時隙組成,且概率p=eND/n。即所估計的L、p值如式(5)所示:
(5)
注意到式(5)還存在參數(shù)n。為此,AP利用文獻[7]所述的算法估計活動M2M節(jié)點數(shù)。
用NS3仿真器軟件建立仿真平臺??紤]一個AP接入點、m=5個WiFi節(jié)點,n個M2M節(jié)點。實驗中考慮三類場景:1)Scenario One,n=4,每個M2M節(jié)點每秒產(chǎn)生55個數(shù)據(jù)包,且每個數(shù)據(jù)包大小為85字節(jié);2)Scenario Second,n=4,每個M2M節(jié)點每秒產(chǎn)生222個數(shù)據(jù)包;3)Scenario Three,n=100,每個M2M節(jié)點每秒產(chǎn)生3.45個數(shù)據(jù)包。
此外,TW=2CWmin,其中CWmin為WiFi中退僻機制的最小競爭窗口。同時,WiFi節(jié)點產(chǎn)生流量過程服從Batch Markovian Arrival Process (BMAP)過程[8]。在實驗中,WiFi流量到達率從1.4~12.4 Mbps變化。
首先分析WiFi數(shù)據(jù)包的平均傳輸時延,如圖4所示。
圖4 WiFi數(shù)據(jù)包的平均傳輸時延
從圖4可知,在WiFi網(wǎng)絡平臺上實施M2M節(jié)點的機會通信,增加了WiFi數(shù)據(jù)包的平均傳輸時延。但是從圖4可知,增加的時延較少,并且隨WiFi流量到達率的增加而增加的時延逐漸縮短。例如,當WiFi流量到達率為12.4 Mbps時,沒有實施M2M節(jié)點通信,即只有WiFi節(jié)點通信時的傳輸時延約為5.1 ms,而在同種情況下Scenario Three的傳輸時延約為6.3 ms,增加了約1.2 ms。
圖5分析了M2M通信占用WiFi空閑帶寬的情況。圖5分別顯示三種情況下的傳輸mCTS數(shù)據(jù)包、M2M通信周期數(shù)?;貞沇IFI-M2M協(xié)議規(guī)則,一旦有空閑帶寬,AP就發(fā)送mCTS包,就啟動一個M2M節(jié)點通信周期。換而言之,傳輸mCTS包數(shù)大于等于M2M周期數(shù)。若M2M周期數(shù)等于傳輸mCTS包數(shù),表明空閑的頻帶全部被M2M節(jié)點使用,利用率最高。
圖5 WiFi空閑頻帶使用率
從圖5可知,在場景1和場景3中,M2M的通信周期數(shù)小于傳輸mCTS包數(shù),這就說明有部分空閑的頻帶并沒有被使用。而場景2中,M2M的通信周期數(shù)等于傳輸mCTS包數(shù),這就說明M2M節(jié)點充分利用了空閑的帶寬。注意了,當M2M節(jié)點沒有數(shù)據(jù)要傳輸時,AP就在競爭階段后,立即傳輸空的SN數(shù)據(jù)包,使得WiFi節(jié)點能夠重新占用信道,這有利用于減少WiFi數(shù)據(jù)包的時延,并提高信道資源。
圖6 每秒傳輸?shù)腗2M數(shù)據(jù)包數(shù)
圖6顯示了每秒成功接收的M2M數(shù)據(jù)包數(shù)。從圖6可知,當網(wǎng)絡未飽和時(場景1和場景3),傳輸?shù)臄?shù)據(jù)包為常數(shù),而在飽和流量下(場景2),M2M傳輸?shù)臄?shù)量最初隨WiFi流量的增加而增加,而后逐漸下降。原因在于:在低WiFi流量時,空閑的頻帶數(shù)量少,但占用時間長[2]。而當WiFi流量增加后,WiFi網(wǎng)絡的空閑時期被頻繁到過的WiFi數(shù)據(jù)包占用,這就降低了占用空閑頻帶的時間,但是增加空閑頻帶的數(shù)量。最終,就允許更多的M2M節(jié)點通信,從而提高了M2M節(jié)點傳輸?shù)臄?shù)據(jù)包數(shù)。但是,當WiFi流量的增加會導致更長的忙碌時長,因此,這就降低平均時長和空閑頻帶的數(shù)量。例如,當WiFi流量達到12.4 Mbps,每秒內(nèi)允許100M2M節(jié)點傳輸數(shù)據(jù)包。
針對M2M的數(shù)據(jù)傳輸問題,提出面向WiFi空閑頻帶的機會性MAC接入的M2M通信策略。該策略充分利用WiFi的空閑頻帶, 利用此空閑頻帶完成M2M的通信。通過傳輸RFS包,接入信道,一旦接入信道,再利用所分配的時候傳輸數(shù)據(jù)。實驗數(shù)據(jù),也驗證所提出的策略的有效性,提高了數(shù)據(jù)包傳輸率。后期,將優(yōu)化算法,提高競爭接入效率,降低傳輸時延。這將是后期的工作方向。