王成杰 徐九韻 朱蘭芳 李世寶
(1.中國石油大學(xué)(華東)海洋與空間信息學(xué)院 青島 266580)(2.中國石油大學(xué)(華東)計算機(jī)科學(xué)與技術(shù)學(xué)院 青島 266580)(3.中國石油大學(xué)(華東)東營科教園區(qū) 東營 257061)
隨著物聯(lián)網(wǎng)的快速發(fā)展,現(xiàn)實環(huán)境中大量數(shù)據(jù)需要以高效和簡易的方式傳輸?shù)綌?shù)據(jù)中心[1]。為了解決這一問題,數(shù)據(jù)融合技術(shù)被廣泛應(yīng)用于處理物聯(lián)網(wǎng)環(huán)境中產(chǎn)生的海量數(shù)據(jù)。在物聯(lián)網(wǎng)環(huán)境中,無線傳感器網(wǎng)絡(luò)應(yīng)用廣泛,大量傳感器收集的數(shù)據(jù)傳輸?shù)饺诤现行倪M(jìn)行處理,并將處理后的信息發(fā)送給用戶[2]。無線傳感器網(wǎng)絡(luò)目前主要應(yīng)用在環(huán)境監(jiān)測[3]、智慧城市[4]、智能家居[5]、遠(yuǎn)程醫(yī)療[6]及工業(yè)制造[7]等領(lǐng)域。
如何將大量的數(shù)據(jù)快速有效的傳輸?shù)綌?shù)據(jù)融合處理中心是進(jìn)行數(shù)據(jù)處理和決策的先決條件。數(shù)據(jù)傳輸?shù)男阅苤笜?biāo)主要在兩個方面:吞吐量和延遲[8]。針對以上問題的研究,以往的文獻(xiàn)主要是針對調(diào)度算法[9]、傳輸協(xié)議(CSMA 或者TDMA)[10~11]、傳感器分布[12]進(jìn)行研究,忽略了鏈路在未來一段時間內(nèi)的接收數(shù)據(jù)量以及到達(dá)率等變化情況,這會導(dǎo)致鏈路無法根據(jù)即將到來的數(shù)據(jù)及時做出傳輸調(diào)整,算法的服務(wù)效率無法及時滿足鏈路的數(shù)據(jù)生成效率,產(chǎn)生隊列積壓,也就導(dǎo)致傳輸時延增大,吞吐量降低。設(shè)計高性能的調(diào)度算法以實現(xiàn)最大吞吐量和低時延是非常重要的,這是本文的研究重點。
本文主要研究從傳感器節(jié)點到融合中心的單跳組網(wǎng)情況,它提供從一組傳感器節(jié)點到相應(yīng)融合中心的異步數(shù)據(jù)傳輸。整個網(wǎng)絡(luò)由L個傳感器和E個鏈路組成,可以將其建模為一個有向無環(huán)圖G=()
L,E,其中L為傳感器集,E為融合鏈路集。每個融合鏈路Li,iE,保持一個輸出隊列。第i條鏈路中的第j個數(shù)據(jù)包表示為Pij。
Li的隊列積壓由Qi(t)表示,Qi(t)≥0,Qi( 0 )=0。傳感器的緩沖區(qū)長度統(tǒng)一由M表示。t時刻到達(dá)隊列Li的數(shù)據(jù)包數(shù)量表示為Ai(t),服務(wù)向量由Si(t)表示,當(dāng)Si(t)為1時表示鏈路Li在當(dāng)前時刻獲得傳輸機(jī)會并成功將數(shù)據(jù)包傳輸?shù)綌?shù)據(jù)融合處理中心。無線傳感器為實時數(shù)據(jù)包分配延遲閾值,在延遲閾值內(nèi)無法成功傳輸?shù)饺诤现行牡膶崟r數(shù)據(jù)包將被丟棄,丟棄的數(shù)據(jù)包數(shù)量被定義為Di(t)。非實時數(shù)據(jù)包不被丟棄。
因此調(diào)度集合滿足條件xi+yj≤1,iE,jC(i)。xi=1,代表鏈路Li在該集合中進(jìn)行數(shù)據(jù)傳輸,xi=0,鏈路Li不進(jìn)行數(shù)據(jù)傳輸。本文的目標(biāo)表示如式(1),在沖突集合中找到最優(yōu)的鏈路集合即最大優(yōu)先級調(diào)度集合。
其中Pi1是鏈路Li中具有最高優(yōu)先級的數(shù)據(jù)包。
在物聯(lián)網(wǎng)環(huán)境中,數(shù)據(jù)包對時延的要求不同,鏈路數(shù)據(jù)傳輸量的積壓對融合中心的數(shù)據(jù)傳輸影響極大。因此,數(shù)據(jù)傳輸?shù)恼{(diào)度機(jī)制應(yīng)該考慮數(shù)據(jù)包的優(yōu)先級和隊列內(nèi)數(shù)據(jù)包及即將到達(dá)的數(shù)據(jù)包的多少,以滿足多節(jié)點數(shù)據(jù)融合的要求。
無線網(wǎng)絡(luò)中傳感器節(jié)點在獲得新數(shù)據(jù)包時,進(jìn)入隊列等待發(fā)送。本文使用泊松過程模型來描述數(shù)據(jù)生成,泊松過程[13]N(T),t≥0,發(fā)生次數(shù)λ≥0是具有以下性質(zhì)的計數(shù)過程:對于所有的t0=0
根據(jù)泊松定理,網(wǎng)絡(luò)中的每個節(jié)點從時隙幀開始到結(jié)束產(chǎn)生的數(shù)據(jù)包數(shù)量N(T)的分布等于以下公式:
其中,λ是經(jīng)過一定數(shù)量的時隙幀之后生成的分組的平均數(shù)。數(shù)學(xué)上,由以下公式定義:
2.1 2組治療前后中醫(yī)證候積分比較 2組治療后反酸噯氣、胃脘脹滿、雙脅疼痛、胸悶、食欲不振及大便不暢等中醫(yī)證候積分比較。中年治療組與對照組比較,χ2=6.624,P=0.010(P<0.05)差異具有統(tǒng)計學(xué)意義;老年治療組與對照組比較,χ2=6.624,P=0.010(P<0.05),差異具有統(tǒng)計學(xué)意義;中老年治療組比較,χ2=5.875,P=0.017(P<0.05),差異具有統(tǒng)計學(xué)意義; 中老年對照組比較,χ2=2.43,P=0.119(P>0.05),差異無統(tǒng)計學(xué)意義。詳見表1。
其中,T 是實際時刻,Ai(t)是時刻T=t中節(jié)點生成的分組數(shù)量,β是可以通過仿真驗證的先前時隙幀數(shù)量的總和。為了得到λ的精確值,協(xié)議將在K個時隙幀之后執(zhí)行其調(diào)度算法。
傳感器從終端或者其他傳感器節(jié)點接收數(shù)據(jù)包,從時隙幀K=10 開始,傳感器節(jié)點確定自接收開始,在之前的時隙幀中接收的實時數(shù)據(jù)包的平均數(shù),如式(3)所示。然后在式(2)中,使用平均數(shù)量,以得到確定數(shù)量包的概率,然后重復(fù)進(jìn)行式(4)的計算,直到達(dá)到最大的概率值,計算終止,得到最大值PMAX。
在時刻T=t,實時數(shù)據(jù)量和預(yù)測即將到達(dá)的實時數(shù)據(jù)量的和為
根據(jù)式(5),在時刻T=t,預(yù)測的實時數(shù)據(jù)隊列占用率為
同理,非實時鏈路隊列預(yù)測占用率為Onr(t)。
其中Iij(·),jK是指標(biāo)函數(shù),Tdij是數(shù)據(jù)包的生成時間,wij(t)是pij由傳感器在傳輸前的等待時間。因為網(wǎng)絡(luò)是動態(tài)變化的,在此我們只計算最近傳輸?shù)腒個數(shù)據(jù)包的丟失率,對丟失率進(jìn)行實時動態(tài)更新。
Tij(t)是數(shù)據(jù)包的剩余生存時間,其計算如式(8):
其中Tcij和Tdij分別是數(shù)據(jù)包的生成時間和延遲閾值,t是當(dāng)前時間。
時隙t中的實時數(shù)據(jù)包pij的優(yōu)先級表示為Pij(t),其定義如式(9)所示:
Tij(t)的值越小,數(shù)據(jù)包的剩余生存時間越短,調(diào)度優(yōu)先級更高。參數(shù)δ從區(qū)間(0,1)中取值以反映優(yōu)先級的緊急性,具有較小Tij(t)值的數(shù)據(jù)包優(yōu)先級更高。ω1和ω2是當(dāng)前數(shù)據(jù)包隊列預(yù)測占用率特征和丟包率特征在數(shù)據(jù)優(yōu)先級中的權(quán)衡因子,ω1越大,意味著丟包率在數(shù)據(jù)優(yōu)先級中占主要地位,ω2越大,意味著數(shù)據(jù)包的隊列預(yù)測占用率在數(shù)據(jù)優(yōu)先級中占主要地位。
非實時數(shù)據(jù)包的優(yōu)先級定義如式(10)所示:
非實時數(shù)據(jù)包相對實時數(shù)據(jù)包的優(yōu)先級較低,在傳輸過程中,當(dāng)非實時數(shù)據(jù)包的等待時間超過延遲閾值時間時,非實時數(shù)據(jù)包不會因為截止時間到期而被丟棄,因此在非實時鏈路中不需要進(jìn)行歷史丟失率的計算(不考慮網(wǎng)絡(luò)的其他因素)。當(dāng)實時隊列數(shù)據(jù)量較少且在未來一段時間內(nèi)即將到達(dá)的數(shù)據(jù)量較小時,非實時隊列中積壓較多數(shù)據(jù)且預(yù)測的到達(dá)數(shù)據(jù)量較大會對數(shù)據(jù)優(yōu)先級起重要作用,這使得非實時隊列中的數(shù)據(jù)包傳輸競爭力增強(qiáng),有更多機(jī)會傳輸數(shù)據(jù),并將隊列保持在較低水平,降低隊列延遲和丟包率。
本文提出的數(shù)據(jù)優(yōu)先級方案綜合考慮了數(shù)據(jù)截止時間、隊列預(yù)測占用率和隊列丟包率,目的是計算數(shù)據(jù)包的綜合優(yōu)先級,根據(jù)優(yōu)先級對傳輸進(jìn)行動態(tài)調(diào)度。在保證數(shù)據(jù)包時間約束的情況下,使鏈路服務(wù)速率能夠與鏈路的數(shù)據(jù)產(chǎn)生速率相匹配,避免鏈路饑餓,縮短鏈路隊列長度,降低傳輸時延和丟包。
該在此介紹我們提出的基于動態(tài)隊列感知的CSMA 算法(QACSMA),該算法的基本思想是為緊急程度較大的鏈路分配較小的退避時間,避免具有相同緊急程度的鏈路因同時傳輸而產(chǎn)生沖突,每條鏈路在指定的間隔內(nèi)隨機(jī)選擇退避時間,形成無沖突的調(diào)度機(jī)制,優(yōu)先級越高得數(shù)據(jù),退避時間越短,傳輸優(yōu)先級越高。
在算法中,我們將時隙劃分為兩個部分,一部分是控制子時隙,每個控制子時隙被分成B幀,并且每一幀被再次劃分為W個微時隙。另一部分是傳輸子時隙,當(dāng)傳感器節(jié)點在控制時隙中等待一定時間后,在傳輸時隙進(jìn)行數(shù)據(jù)傳輸。Pi1被劃分成不同的間隔并映射到不同的幀。每個鏈路Li將根據(jù)Pi1在指定的映射幀中隨機(jī)選擇退避時間wi,算法將產(chǎn)生一組最佳的可行調(diào)度集合。退避時間wi由公式wi=f(w)+NW定義[14],中w在[0,W?1]上離散均勻分布,根據(jù)以上公式可得到wi與Pi1的映射關(guān)系。
QACSMA算法分為兩個部分,第一部分根據(jù)數(shù)據(jù)包的優(yōu)先級對鏈路i中的數(shù)據(jù)包進(jìn)行排序。優(yōu)先級最高的數(shù)據(jù)包Pi1排在每條鏈路的最前面。第二部分是鏈路i根據(jù)鏈路上第一個數(shù)據(jù)包的優(yōu)先級在指定幀中選擇退避時間wi,優(yōu)先級越高的數(shù)據(jù)包,退避時間越短,也就具有更多的傳輸機(jī)會。同一沖突集中的鏈路將優(yōu)先傳輸退避時間最短的數(shù)據(jù)包,不同沖突集中的鏈路可以同時傳輸數(shù)據(jù)包。經(jīng)過以上算法,在時隙t中可以同時將最大可行調(diào)度集合中鏈路的第一個數(shù)據(jù)包發(fā)送到融合中心。
我們使用以下指標(biāo)來評估提出算法的各項性能:
指標(biāo)一:鏈路Li的吞吐量Ti定義如式(11):
指標(biāo)二:鏈路Li的平均隊列長度Ni定義如式(12):
該算法在相互干擾的鏈路集合中,優(yōu)先傳輸緊急度較高的數(shù)據(jù)包,同時考慮了各隊列間數(shù)據(jù)包傳輸?shù)臎_突問題,將控制子時隙劃分區(qū)間,針對不同緊急度的數(shù)據(jù)隊列,通過各隊列數(shù)據(jù)頭包的優(yōu)先級映射到不同的退避區(qū)間,該方法大大降低了各隊列間的沖突,避免了因同時傳輸造成的數(shù)據(jù)擁堵。該調(diào)度算法有利于為數(shù)據(jù)緊急度較高且隊列預(yù)測占用率較高也就是數(shù)據(jù)流量較大的鏈路提供更多的傳輸時間,增大緊急度較高鏈路的傳輸機(jī)會。同時可以根據(jù)各隊列的數(shù)據(jù)包優(yōu)先級的調(diào)整,動態(tài)調(diào)整退避時間,使得隊列的實時服務(wù)效率跟隨鏈路數(shù)據(jù)接收效率隨時變化,具有良好的適應(yīng)性。
本文使用Matlab 模擬了一個有6 條鏈路的網(wǎng)絡(luò),其中鏈路1,2,3模擬為實時鏈路,鏈路4,5,6模擬為非實時鏈路。干擾集C(i)定義如下:C( )1 ={2 ,5},C( 2 )={1 ,3,4,5,6},C( 3) ={2 ,4,5},C( 4 )={2 ,3,5},C( 5) ={1 ,2,3,4,6},C( 6 )={2,5}。
數(shù)據(jù)包在時隙中到達(dá)鏈路的概率服從參數(shù)為v的伯努利分布。在不同網(wǎng)絡(luò)流量負(fù)載下測試性能,實驗更強(qiáng)調(diào)突出隊列長度預(yù)測占用率在數(shù)據(jù)優(yōu)先級中的作用,因此將w1設(shè)置為0.3,w2設(shè)置為0.7,K=100 ,β=10 。參與對比實驗的算法為DMS、QCSMA、GDCSMA、VDCSMA。
本文的仿真實驗,統(tǒng)計了不同網(wǎng)絡(luò)負(fù)載下的總吞吐量和平均隊列長度。圖1 顯示,網(wǎng)絡(luò)流量較小時,本文提出的算法與其他算法總吞吐量基本一致,當(dāng)數(shù)據(jù)包到達(dá)率超過0.25 時,本文提出的算法相對其他算法吞吐量較高,表現(xiàn)更好,主要是因為本文提出的算法根據(jù)隊列預(yù)測信息進(jìn)行動態(tài)調(diào)度,使得算法的實時服務(wù)效率能夠跟隨各隊列的數(shù)據(jù)接收效率而動態(tài)變化。確保了各傳輸節(jié)點的分組隊列長度保持在最低水平,即最大限度地發(fā)送分組,避免了隊列溢出。
圖1 總吞吐量統(tǒng)計
圖2 表明,在中低負(fù)載下,對比算法均具有較小的平均隊列長度。當(dāng)負(fù)載逐漸增大時,其他算法的平均隊列長度會急劇增加,表明其時延性能較差。
圖2 中低網(wǎng)絡(luò)負(fù)載下的鏈路平均隊列長度
在圖3 中,QACSMA 比其他算法具有更短的平均隊列長度。當(dāng)分組到達(dá)率大于0.84時,其他算法的平均隊列長度會隨著分組到達(dá)率線性增加,本文提出的算法平均隊列長度相對更短且相對穩(wěn)定,側(cè)面表明我們所提出算法的數(shù)據(jù)傳輸效率更高,數(shù)據(jù)在傳感器節(jié)點的等待時間更短,延遲更低。
圖3 高網(wǎng)絡(luò)負(fù)載下的鏈路平均隊列長度
本文提出了一種基于動態(tài)隊列感知的分布式CSMA 調(diào)度算法,該算法根據(jù)鏈路預(yù)測占用率和數(shù)據(jù)優(yōu)先級,動態(tài)調(diào)整競爭傳輸窗口,當(dāng)傳輸隊列變長時,鏈路競爭優(yōu)先級更高,傳輸概率更高。該算法盡可能將傳感器的隊列保持在較低水平,提高了較長隊列的鏈路服務(wù)效率,降低了數(shù)據(jù)丟包率和傳輸延遲,保證了緊急數(shù)據(jù)包的優(yōu)先傳輸,同時傳感器會實時監(jiān)測隊列變化情況和數(shù)據(jù)到達(dá)速率,很好的考慮了網(wǎng)絡(luò)流量在下一時刻的狀態(tài),在一定程度上預(yù)測了網(wǎng)絡(luò)變化情況,及時針對網(wǎng)絡(luò)變化對調(diào)度機(jī)制作出調(diào)整,滿足了不同鏈路的實時服務(wù)效率,在吞吐量和延遲性能上均有所提高。大量的仿真結(jié)果表明,該方案在不同網(wǎng)絡(luò)負(fù)載下均能獲得較好的性能,尤其在高負(fù)載下,相對其他算法有更好的表現(xiàn)。