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

圖1 總吞吐量統計
圖2 表明,在中低負載下,對比算法均具有較小的平均隊列長度。當負載逐漸增大時,其他算法的平均隊列長度會急劇增加,表明其時延性能較差。

圖2 中低網絡負載下的鏈路平均隊列長度
在圖3 中,QACSMA 比其他算法具有更短的平均隊列長度。當分組到達率大于0.84時,其他算法的平均隊列長度會隨著分組到達率線性增加,本文提出的算法平均隊列長度相對更短且相對穩定,側面表明我們所提出算法的數據傳輸效率更高,數據在傳感器節點的等待時間更短,延遲更低。

圖3 高網絡負載下的鏈路平均隊列長度
本文提出了一種基于動態隊列感知的分布式CSMA 調度算法,該算法根據鏈路預測占用率和數據優先級,動態調整競爭傳輸窗口,當傳輸隊列變長時,鏈路競爭優先級更高,傳輸概率更高。該算法盡可能將傳感器的隊列保持在較低水平,提高了較長隊列的鏈路服務效率,降低了數據丟包率和傳輸延遲,保證了緊急數據包的優先傳輸,同時傳感器會實時監測隊列變化情況和數據到達速率,很好的考慮了網絡流量在下一時刻的狀態,在一定程度上預測了網絡變化情況,及時針對網絡變化對調度機制作出調整,滿足了不同鏈路的實時服務效率,在吞吐量和延遲性能上均有所提高。大量的仿真結果表明,該方案在不同網絡負載下均能獲得較好的性能,尤其在高負載下,相對其他算法有更好的表現。