劉樂鈺,汪祖民,鄭祖朋,秦靜,季長清
1.大連大學(xué)信息工程學(xué)院,遼寧大連116622
2.大連大學(xué)物理科學(xué)與技術(shù)學(xué)院,遼寧大連116622
傳統(tǒng)的無線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)由電池供電,其能量資源、性能都嚴重受限于電池容量。為了延長WSN的使用壽命并解決能源效率問題,先后出現(xiàn)了多種介質(zhì)訪問控制(medium accesscontrol,MAC)協(xié)議,如S-MAC[1]、Z-MAC[2]、P-MAC[3],EERCMAC[4]等。這些協(xié)議只是在有限的電池容量基礎(chǔ)上延長了網(wǎng)絡(luò)的使用壽命,但并未有效提高網(wǎng)絡(luò)的性能。近年來,環(huán)境能量捕獲技術(shù)的出現(xiàn)為WSN能源受限問題提供了很好的解決方案[5],同時也改變了MAC協(xié)議的設(shè)計標準。在能量捕獲環(huán)境下的MAC協(xié)議以提高網(wǎng)絡(luò)性能為主要目標,用短暫時間內(nèi)的有限能量最大限度地提高WSN的能量效率、數(shù)據(jù)傳輸可靠性及延遲率。關(guān)于捕獲環(huán)境射頻能量為無線傳感器網(wǎng)絡(luò)中節(jié)點供電[6-9]的研究越來越多,這為本文設(shè)計MAC協(xié)議提供了參考依據(jù)。
由于射頻能源的隨機特性和節(jié)點存儲能量的限制,每個節(jié)點在實際應(yīng)用中的可用能量受到了約束。節(jié)點在能源供應(yīng)上具有間歇性特點[10],在數(shù)據(jù)傳輸上具有時間不對稱性特點,因此在大部分時間內(nèi)處于離線狀態(tài),喪失了互相通信的能力。為了解決上述問題,本文從現(xiàn)有的MAC協(xié)議中吸取靈感,根據(jù)本地化時分多址(time division multiple access,TDMA)[11-12]、重新配置占空比[14]等概念,設(shè)計了基于RF的無線傳感器網(wǎng)絡(luò)的MAC協(xié)議。節(jié)點可以動態(tài)調(diào)整自身占空比并在通信過程中確定角色轉(zhuǎn)換身份,實現(xiàn)相鄰節(jié)點間時間同步的目的,從而有效解決由射頻能源帶來的數(shù)據(jù)傳輸時間不對稱問題。
射頻能量采集環(huán)境中的節(jié)點不再由電池提供能量,而是從周圍射頻能源中獲取能量,雖然一次只需幾微瓦的能量,但捕獲能量的時間很長,因此睡眠與喚醒的時間比有時甚至低于1:200。這些節(jié)點在大部分時間內(nèi)處于非活動狀態(tài),而只在一個很短的時間內(nèi)執(zhí)行感知和數(shù)據(jù)傳輸任務(wù)。
每個節(jié)點接收射頻信號的強度不同,這與節(jié)點到射頻源的距離有關(guān)。另外,每個節(jié)點獲取能量的速率也不相同,即使它們同時開始工作,它們的喚醒時間也會隨著充電時間長度的不同而不能同步。
數(shù)據(jù)包可能在傳輸過程中丟失,也可能因緩沖區(qū)有限或在一個節(jié)點上暫停時間過長而被丟棄,因此節(jié)點需要找到一個可以接收數(shù)據(jù)的可用父鄰居節(jié)點才能轉(zhuǎn)發(fā)數(shù)據(jù)。在決定是否接收新分組或者轉(zhuǎn)發(fā)現(xiàn)有分組之前,節(jié)點還需要考慮其有限的緩沖區(qū)大小、當(dāng)前緩沖區(qū)中數(shù)據(jù)包的數(shù)量。
在本文網(wǎng)絡(luò)中,節(jié)點具有超低占空比特點,表現(xiàn)為短時間內(nèi)放電和長時間內(nèi)充電,如圖1所示。為了能預(yù)測節(jié)點在傳感、處理、傳輸和接收等階段消耗的能量,并預(yù)先確定節(jié)點在一個占空比中處于喚醒狀態(tài)的任何操作所需要的時間,需要將節(jié)點放置在具有均勻發(fā)射射頻源的場景下來確保恒定的能量捕獲率,同時節(jié)點以相同的發(fā)射功率傳輸數(shù)據(jù),從而達到恒定的能量消耗率。
圖1 節(jié)點占空比Figure 1 Node duty cycle
節(jié)點在喚醒狀態(tài)下消耗捕獲的最高能量所需的時間Tc為
式中:Ec為節(jié)點捕獲的最高能量,Rc為能量消耗率。
在睡眠狀態(tài)下,節(jié)點捕獲能量達到最高值時所需的時間Th為
式中:Rh為能量捕獲率。
節(jié)點完成一個占空比所需要的總時間Tcycle為
從式(3)中可以看出,節(jié)點在喚醒時間內(nèi)消耗的能量可以控制其占空比。
在現(xiàn)實世界中,任何兩個相鄰節(jié)點捕獲到的能量之間總有微小差別,因此這兩個相鄰節(jié)點的超幀也會有所不同。由于這種差異,節(jié)點將無法保持彼此之間的通信連接,也不能在隨后的占空比保持時間同步,于是本文嘗試設(shè)計其中一個節(jié)點的超幀,同時保持另一個節(jié)點的超幀不變來解決這個問題。
2.2.1 超幀擴展
為了將超幀擴展到預(yù)定的值,子節(jié)點應(yīng)該精確地計算它在第2占空比中需要消耗的能量。當(dāng)一個子節(jié)點搜索它的鄰居父節(jié)點時,子節(jié)點在每個工作周期結(jié)束之后開始調(diào)整幀移位,直至找到父節(jié)點。如圖2所示,子節(jié)點在第2個占空比中找到一個父節(jié)點,并決定與該父節(jié)點對齊,于是它接收父節(jié)點發(fā)送的信標消息。該信標消息包含父節(jié)點超幀信息,可用于子節(jié)點確定父節(jié)點下一幀的開始時間。此時,子節(jié)點以此信標消息控制自身的超幀調(diào)整,確保自己的幀開始時間與父節(jié)點的幀開始時間對齊。
圖2 超幀擴展Figure 2 Hyperframe extension
當(dāng)子超幀大于父超幀時,子節(jié)點決定擴展自身的超幀。在子節(jié)點收到信標消息之前,其幀中已經(jīng)過了t個時隙的時間。設(shè)T1為當(dāng)前幀中剩余的時間;T2為此占空比中的睡眠時間;T3為二次占空比所用的時間,分為消耗特定能量所需的時間T_c和充滿能量所需的時間T_h,可以表示為
為了使自己的幀開始時間與父節(jié)點的幀開始時間對齊,子節(jié)點花費的時間T1、T2、T3總和應(yīng)該等于父節(jié)點開始下一幀的時間Tparent,可以表示為
將式(4)代入式(5)可得
在這個二次占空比或調(diào)整時間內(nèi)消耗的能量Ec必須等于在同一個占空比中獲得的能量Eh,即
將式(8)代入式(6)可得
子節(jié)點在該超幀中所花費的總時間等于子節(jié)點Tchild已經(jīng)花費的時間、當(dāng)前喚醒狀態(tài)下剩余的時間以及子節(jié)點完全充電所需的時間之和,即
將式(10)代入式(9)可得
子節(jié)點根據(jù)式(11)可以擴展自己的超幀,并與父節(jié)點對齊。
2.2.2 超幀縮減
當(dāng)子超幀大于父超幀時,需要進行超幀縮減,這可以通過減小子超幀來實現(xiàn)??s短幀雖然會降低子節(jié)點的數(shù)據(jù)傳輸能力,增加數(shù)據(jù)傳輸延遲時間和數(shù)據(jù)丟包率,但這種折衷有利于保持節(jié)點時間的同步。
與超幀擴展中子節(jié)點搜索父節(jié)點方法類似,超幀縮減需要計算T1的值,如圖3所示。
圖3 超幀縮減Figure 3 Hyperframe reduction
子節(jié)點應(yīng)完成其剩余的工作周期,以便與父節(jié)點的下一幀對齊,于是有
子節(jié)點從父節(jié)點接收信標消息時剩余的能量Eleft為
式中:Efull為充滿電時存儲的能量。
子節(jié)點必須在充滿電時才能被喚醒,于是可以得出子節(jié)點消耗能量、收獲能量與剩余能量之和等于其充滿電的能量,即
式中:Rc1為子節(jié)點的能量消耗率,Rh1為子節(jié)點的能量獲取率。將式(14)代入式(15)可得
將式(12)代入式(15)可得
子節(jié)點可以根據(jù)式(16)收縮其自身的超幀并與父節(jié)點對齊。
2.2.3 超幀移位
當(dāng)一個節(jié)點第1次被喚醒或者剛進入網(wǎng)絡(luò)時,它沒有任何關(guān)于相鄰節(jié)點的信息。此時,它需要找到一個父節(jié)點才開始感知并收集數(shù)據(jù)。每個節(jié)點都需要保留第1次喚醒時間的記錄,并以此作為它轉(zhuǎn)變?yōu)楦腹?jié)點時與自身幀開始時間的參考依據(jù)。子節(jié)點在發(fā)現(xiàn)父節(jié)點階段需要移動自身的幀以搜索父節(jié)點,在整個幀中保持無線電接收模式來監(jiān)聽信道是否空閑;父節(jié)點在每幀的第1個時隙中持續(xù)發(fā)送信標消息,保持固定的占空比不變以確定自身在時間維度中的位置,并幫助子節(jié)點及時找到自己。
圖4 相鄰節(jié)點交互時的超幀移位Figure 4 Hyperframe shift when adjacent nodes interact
如2.1節(jié)所述,如果一個節(jié)點既沒有受到干擾也沒有采取任何行動,那么保持自己的超幀不變。因為從睡眠時間到喚醒時間的差異很大,兩個相鄰節(jié)點之間無法檢測到彼此的存在,所以本文在每個節(jié)點上執(zhí)行線性搜索機制來查找它們周圍的節(jié)點,根據(jù)式(11)求時間T_c。由于Tparent等于Tchild,式(11)可以簡化為
節(jié)點通過空閑監(jiān)聽信道來獲取鄰居節(jié)點的能量捕獲率,使子節(jié)點在一個超幀中移動一個完整的幀。一個完整的幀時間可表示為Tframe,則式(15)可簡化為
為了提高數(shù)據(jù)傳輸?shù)目煽啃?,父?jié)點在接收到子節(jié)點傳輸?shù)臄?shù)據(jù)之后要返回確認消息ACK給子節(jié)點。為了減少發(fā)送ACK消息消耗的能量,父節(jié)點在接收到每個數(shù)據(jù)包之后不必單獨發(fā)送ACK消息,而是將所有ACK消息捎帶到信標消息中在下一個幀時廣播出去,因此父節(jié)點只需確認它在每個時隙中是否正確接收到數(shù)據(jù)包,而不必尋址解析每個數(shù)據(jù)包的內(nèi)容。所有子節(jié)點都保留最后一次調(diào)度信息,并且檢索在哪些時隙中有消息發(fā)送,以便于查找上一個周期中發(fā)送數(shù)據(jù)的時隙位置,并在父節(jié)點最后一次確認數(shù)據(jù)包正確接收后發(fā)送ACK消息。
子節(jié)點將數(shù)據(jù)保存在緩沖區(qū)中,直至父節(jié)點成功確認才能刪除數(shù)據(jù)。這種將所有ACK消息整合到一個信標幀中并通過父節(jié)點發(fā)送出去的消息控制技術(shù),有助于實現(xiàn)能量消耗最小化和確認消息數(shù)量最少化。
在圖5所示的線型拓撲網(wǎng)絡(luò)中,一個節(jié)點只能與相鄰節(jié)點通信。如果將數(shù)據(jù)從節(jié)點4發(fā)送到節(jié)點2,節(jié)點4必須將數(shù)據(jù)發(fā)送到節(jié)點3。節(jié)點3先將此數(shù)據(jù)存儲在緩沖區(qū)中,再將其傳遞給節(jié)點2。這是一個連續(xù)的消息流,消息可以依次傳遞到單個節(jié)點。因此,一個節(jié)點必須轉(zhuǎn)換成兩個不同的角色--父節(jié)點和子節(jié)點。首先,節(jié)點3充當(dāng)父節(jié)點接收來自節(jié)點4的數(shù)據(jù)包,然后切換到子節(jié)點并將該數(shù)據(jù)包轉(zhuǎn)發(fā)到節(jié)點2。在數(shù)據(jù)傳輸階段,當(dāng)子節(jié)點希望向父節(jié)點發(fā)送數(shù)據(jù)時,它會將自身幀與父節(jié)點的幀對齊并在第1時隙中接收信標消息。這個信標消息包括該父節(jié)點服務(wù)的所有子節(jié)點的數(shù)據(jù)調(diào)度信息。當(dāng)子節(jié)點需要傳輸數(shù)據(jù)時,它可以在第2個時隙向父節(jié)點發(fā)送消息請求。這個消息請求是父節(jié)點關(guān)于子節(jié)點可用性和子節(jié)點是否可以發(fā)送數(shù)據(jù)包的指示器。在這個父節(jié)點下的所有子節(jié)點僅根據(jù)上述調(diào)度操作,并且只能在父節(jié)點分配的時隙上傳輸數(shù)據(jù)。
圖5 線型網(wǎng)絡(luò)拓撲Figure 5 Linear network topology
在本文模型中,節(jié)點可以根據(jù)特定條件轉(zhuǎn)換成這兩個角色中的任何一個。節(jié)點的緩沖區(qū)大小用于決定節(jié)點需要轉(zhuǎn)換的角色。當(dāng)節(jié)點中的緩沖區(qū)空間充足并且可以接收來自其他節(jié)點的數(shù)據(jù)時,節(jié)點將轉(zhuǎn)換成父節(jié)點。當(dāng)緩沖區(qū)已滿且無法接收更多數(shù)據(jù)包時,節(jié)點將轉(zhuǎn)換成子節(jié)點。子節(jié)點需要向父節(jié)點發(fā)送數(shù)據(jù),以釋放緩沖區(qū)空間。從父節(jié)點切換到子節(jié)點的閾值為滿容量的80%,子節(jié)點切換到父節(jié)點的閾值為滿容量的10%。設(shè)置較高的閾值可以確保一些緩沖區(qū)能自由地接收數(shù)據(jù),設(shè)置較低的閾值可以最大化數(shù)據(jù)傳輸。
角色轉(zhuǎn)換技術(shù)是本文協(xié)議設(shè)計的重要部分之一。除了sink節(jié)點之外,網(wǎng)絡(luò)中的每個節(jié)點都必須將其角色從父節(jié)點切換到子節(jié)點,以便從較低層收集數(shù)據(jù)后傳遞到自己的上層。子節(jié)點在緩沖區(qū)幾乎為空并準備接收新數(shù)據(jù)消息時切換到父節(jié)點。類似地,當(dāng)父節(jié)點不能接收來自任何子節(jié)點的新消息并且需要將數(shù)據(jù)從緩沖區(qū)轉(zhuǎn)發(fā)到自己的父節(jié)點時,它會切換成子節(jié)點。父節(jié)點在存儲器中緩存數(shù)據(jù),直至達到設(shè)置的緩沖區(qū)最高閾值,然后只是將數(shù)據(jù)轉(zhuǎn)發(fā)給它的父節(jié)點,這種臨時存儲導(dǎo)致的延遲增加在延遲容忍網(wǎng)絡(luò)中是可以接受的。當(dāng)節(jié)點從父節(jié)點切換到子節(jié)點時,它希望搜索父節(jié)點。子節(jié)點在時間維度上移動若干幀位移,可以實現(xiàn)與父節(jié)點的時間同步。在搜索時,子節(jié)點應(yīng)保存這些幀移位的計數(shù)值。
較為理想的酒用乳酸菌,在蘋-乳發(fā)酵的過程中需具備較強的蘋果酸降解能力,同時還不能分解果實中的酒石酸,且不產(chǎn)或少產(chǎn)乙酸。如果酒石酸大量分解,會導(dǎo)致葡萄酒的腐敗。乙酸的產(chǎn)生不僅會影響葡萄酒的口感,而且會改變葡萄酒的性質(zhì),影響口感。研究利用模擬酒培養(yǎng)基來模擬剛完成酒精發(fā)酵的葡萄初酒,按1%的接種量接種乳酸菌泥,以20℃發(fā)酵20 d后,用HPLC方法測定培養(yǎng)液中各有機酸的含量,結(jié)果見表4。
圖6給出了一個節(jié)點在4個占空比內(nèi)完成的角色轉(zhuǎn)換示例。第1行為父節(jié)點超幀,第2行為子節(jié)點超幀。第1個占空比僅供參考,以證明因幀移位而引起的占空比移動;第2個占空比是節(jié)點使用的實際占空比。第2行的節(jié)點在前兩個占空比期間處于子節(jié)點角色,并執(zhí)行兩個幀移位以搜索父節(jié)點,在第3個占空比時決定切換到父角色。該節(jié)點需要計算幀移位,以便重新將自身對齊回到參考點。
圖6 節(jié)點在連續(xù)占空比中執(zhí)行的角色切換Figure 6 Role switching performed by a node during a continuous duty cycle
為驗證本文提出的MAC協(xié)議的有效性,將本文方法與AT-MAC[15]協(xié)議中提出的可變幀長(variable frame length)和固定幀長(f ixed frame length)這兩種方法進行仿真比較。AT-MAC協(xié)議的實驗環(huán)境是星型的網(wǎng)絡(luò)拓撲結(jié)構(gòu)(單跳),該結(jié)構(gòu)可以看成是樹型結(jié)構(gòu)的一種特例,因此將其與本文的樹型網(wǎng)絡(luò)拓撲結(jié)構(gòu)的特殊情況進行對比,研究網(wǎng)絡(luò)全部節(jié)點數(shù)量與數(shù)據(jù)傳輸延遲時間之間的關(guān)系。
在Linux操作系統(tǒng)下運用網(wǎng)絡(luò)仿真器3(NS-3)進行仿真實驗。本文協(xié)議設(shè)計采用C++語言編寫,選擇LR-WPAN模塊并改進其中的MAC層,對其他層協(xié)議則稍作改動,使本文設(shè)計的MAC協(xié)議能正常運行。
節(jié)點在物理層傳輸?shù)臄?shù)據(jù)速率保持為250 000 bit/s,MAC幀頭長度為16 byte。有效負載是從上層接收的數(shù)據(jù)塊,在發(fā)送之前以MAC頭封裝。該協(xié)議的最大固定負載長度設(shè)置為127 byte,時隙設(shè)置為0.002 4 s。一幀最多可以有10個插槽,前兩個插槽用于控制消息,其余8個用于數(shù)據(jù)傳輸。節(jié)點捕獲的最高能量設(shè)置為0.001 5 W,在傳輸或接收數(shù)據(jù)過程中所消耗的能量設(shè)置為0.058 8 W/s,能量捕獲速率設(shè)置為0.001 W/s,緩沖區(qū)大小為20個包。
線型拓撲結(jié)構(gòu)的模擬是用來驗證角色轉(zhuǎn)換技術(shù)在傳輸數(shù)據(jù)包數(shù)量和跳數(shù)都增加的情況下是否達到網(wǎng)絡(luò)性能的要求。在給定數(shù)據(jù)生成間隔條件下,線型拓撲網(wǎng)絡(luò)中的延遲率隨著節(jié)點跳數(shù)和緩存數(shù)據(jù)的增加而增加,如圖7所示。在線型拓撲網(wǎng)絡(luò)中,丟包率隨著數(shù)據(jù)生成間隔的增加而增加,但是增加的幅度趨于平緩,如圖8所示。
圖7 線型拓撲的延遲率Figure 7 Delay rate of linear topology
圖8 線型拓撲的丟包率Figure 8 Packet loss rate of linear topology
3.3.1 各節(jié)點數(shù)據(jù)生成
樹型網(wǎng)絡(luò)的性能取決于節(jié)點產(chǎn)生的流量負載和網(wǎng)絡(luò)中的節(jié)點總數(shù)量。本文比較了以下兩種情況下的延遲時間和丟包率:1)在整個網(wǎng)絡(luò)邊緣節(jié)點上生成數(shù)據(jù);2)在整個網(wǎng)絡(luò)節(jié)點上生成數(shù)據(jù)。在整個網(wǎng)絡(luò)節(jié)點數(shù)量不變且節(jié)點都具有相同網(wǎng)絡(luò)資源的情況下,因為生成數(shù)據(jù)的節(jié)點數(shù)量發(fā)生變化,所以網(wǎng)絡(luò)延遲時間和丟包率也隨之發(fā)生變化。
3.3.1.1 在整個網(wǎng)絡(luò)邊緣節(jié)點上生成數(shù)據(jù)
在整個網(wǎng)絡(luò)邊緣節(jié)點上生成數(shù)據(jù)時,樹型拓撲網(wǎng)絡(luò)延遲時間的模擬結(jié)果如圖9所示,可以看到延遲時間隨著數(shù)據(jù)生成的增加而增加。與線型拓撲網(wǎng)絡(luò)相比,延遲時間增加的速度較小,這歸因于父節(jié)點通過子節(jié)點共享資源。當(dāng)網(wǎng)絡(luò)中的節(jié)點數(shù)量為15時,延遲時間在更大的數(shù)據(jù)生成間隔中意外減少,這需要進一步分析,找出在數(shù)據(jù)生成間隔為10~20 s時延遲時間減少的原因。
圖9 樹型拓撲中邊緣節(jié)點數(shù)據(jù)生成的延遲時間Figure 9 Delay time of edge node data generation in tree topology
在整個網(wǎng)絡(luò)邊緣節(jié)點上生成數(shù)據(jù)時,樹型拓撲網(wǎng)絡(luò)的丟包率與數(shù)據(jù)生成間隔之間關(guān)系的模擬結(jié)果如圖10所示。在3種不同節(jié)點數(shù)量的情況下,丟包率的下降趨勢是相似的。隨著節(jié)點數(shù)量的增加,網(wǎng)絡(luò)在相同的數(shù)據(jù)生成間隔內(nèi)丟棄更多的數(shù)據(jù)包。這種較高的丟包率是由附近節(jié)點的擁塞造成的,此時節(jié)點上的流量呈指數(shù)級增長。
圖10 樹型拓撲中邊緣節(jié)點數(shù)據(jù)生成的丟包率Figure 10 Packet loss rate of edge node data generation in tree topology
3.3.1.2 在整個網(wǎng)絡(luò)節(jié)點上生成數(shù)據(jù)
在所有節(jié)點上生成數(shù)據(jù)的樹型網(wǎng)絡(luò)與僅從邊緣節(jié)點上生成數(shù)據(jù)的樹型網(wǎng)絡(luò)相比,數(shù)據(jù)生成間隔的延遲時間有所增加,如圖11所示。這是因為網(wǎng)絡(luò)中所有節(jié)點都工作時,父節(jié)點的資源可以在子節(jié)點和父節(jié)點之間共享,所以網(wǎng)絡(luò)中產(chǎn)生了更多的數(shù)據(jù)流量。當(dāng)生成數(shù)據(jù)的節(jié)點數(shù)量增加時,任意規(guī)模的網(wǎng)絡(luò)中節(jié)點生成每個數(shù)據(jù)的間隔延遲也會增加。圖12顯示了數(shù)據(jù)丟包率的變化趨勢,這一趨勢與邊緣節(jié)點生成數(shù)據(jù)的樹型拓撲相似。
圖11 樹型拓撲中所有節(jié)點的數(shù)據(jù)生成延遲時間Figure 11 Delay time of data generation of all nodes in tree topology
圖12 樹型拓撲中所有節(jié)點的數(shù)據(jù)生成丟包率Figure 12 Packet loss rate of data generation of all nodes in tree topology
為了研究AT-MAC協(xié)議與本文MAC協(xié)議在星型拓撲結(jié)構(gòu)下的節(jié)點數(shù)量與數(shù)據(jù)傳輸延遲率之間的關(guān)系,將實驗參數(shù)設(shè)置如下:節(jié)點的緩存數(shù)據(jù)包為20個,其他參數(shù)不變。AT-MAC協(xié)議在匯聚節(jié)點給子節(jié)點分配時隙時存在浪費現(xiàn)象,而本文MAC協(xié)議在匯聚節(jié)點分配時隙時不存在浪費現(xiàn)象,因此在傳輸延遲率這個指標上小于AT-MAC,實驗結(jié)果如圖13所示。
圖13 星型拓撲中延遲率的比較Figure 13 Comparison of latency rates in star topology
3.3.2 網(wǎng)絡(luò)規(guī)模
為了研究網(wǎng)絡(luò)規(guī)模對網(wǎng)絡(luò)性能的影響,本節(jié)將網(wǎng)絡(luò)擴展到128個節(jié)點進行分析,并比較了垂直縮放和水平縮放兩種方案。在這兩種方案中,允許數(shù)據(jù)包的最大跳數(shù)為5,且父節(jié)點最多可以為8個子節(jié)點分配時隙。
3.3.2.1 垂直縮放
本文方案采用深度優(yōu)先的方法,即只有在子樹已滿的情況下才會向sink節(jié)點添加新的分支,有助于評估樹型拓撲中跳數(shù)的增加對延遲率和丟包率的影響。
圖14顯示了在樹型拓撲中垂直縮放的延遲率,可以看出延遲率隨著數(shù)據(jù)生成間隔的增加而增加,在間隔中每增加5 s,延遲率大約增長1.8%。圖15顯示了數(shù)據(jù)丟失現(xiàn)象隨著數(shù)據(jù)生成間隔的增加而減少,這是因為網(wǎng)絡(luò)中數(shù)據(jù)生成速率較小,所以擁塞也較少。仿真結(jié)果表明,該方案適用于時延容忍網(wǎng)絡(luò)。
圖14 樹型拓撲中垂直縮放的延遲率Figure 14 Delay rate of vertical scaling in tree topology
圖15 樹型拓撲中垂直伸縮的丟包率Figure 15 Packet loss rate of vertical scaling in tree topology
3.3.2.2 水平縮放
本文方案采用廣度優(yōu)先的方法來最小化網(wǎng)絡(luò)中的跳數(shù)。如果數(shù)據(jù)生成間隔和緩沖區(qū)大小等其他參數(shù)保持不變,則網(wǎng)絡(luò)中的延遲率將隨著網(wǎng)絡(luò)中節(jié)點數(shù)量的增加而以穩(wěn)定的速率增加,如圖16所示。同時,隨著節(jié)點數(shù)量的增加,丟棄的數(shù)據(jù)也增多,如圖17所示。此數(shù)據(jù)丟失是sink節(jié)點附近的擁塞和資源限制造成的。因此,水平縮放有利于網(wǎng)絡(luò)的增長。
圖16 樹型拓撲中水平縮放的延遲率Figure 16 Delay rate of horizontal scaling in tree topology
圖17 樹型拓撲中水平縮放的丟包率Figure 17 Packet loss rate of horizontal scaling in tree topology
本文設(shè)計的MAC協(xié)議滿足了無線傳感器網(wǎng)絡(luò)的要求,并在源節(jié)點和匯聚節(jié)點之間提供了可靠的無爭用路徑。實驗結(jié)果表明:1)該協(xié)議所采用的技術(shù)能夠可靠地在線型拓撲和樹型拓撲結(jié)構(gòu)中傳輸數(shù)據(jù)。2)與AT-MAC協(xié)議的可變和固定時隙數(shù)的設(shè)計方法相比,本文協(xié)議的設(shè)計更接近于現(xiàn)實環(huán)境能量捕獲網(wǎng)絡(luò)。3)與其他研究TDMA的時隙分配方法相比,本文方法能高效地傳輸數(shù)據(jù)。
該協(xié)議的設(shè)計是開發(fā)一個能夠以樹型拓撲結(jié)構(gòu)傳輸數(shù)據(jù)的無電池?zé)o線傳感器網(wǎng)絡(luò)的有益探索。今后設(shè)計協(xié)議時可以從以下兩方面加以改進:1)采用相同的技術(shù)開發(fā)mesh網(wǎng)絡(luò)MAC協(xié)議,提高數(shù)據(jù)傳輸效率。2)加入路由算法來平衡負載網(wǎng)絡(luò),為子節(jié)點提供適當(dāng)?shù)撵`活性,以便在父節(jié)點因某些原因而無法使用時找到替代路由。為了減少鄰居發(fā)現(xiàn)時間,可以在本文MAC協(xié)議的基礎(chǔ)上進一步研究。