駱 堅(jiān),席 望,謝 鯤
(湖南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙410082)
多跳匯聚的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(WSNs)中,數(shù)據(jù)多對(duì)一傳輸至Sink 節(jié)點(diǎn),形成漏斗效應(yīng)[1]。在漏斗區(qū)域中,隨流量增加,包間隔時(shí)間(數(shù)據(jù)包相繼到達(dá)MAC 層的時(shí)間間隔[2])減小,包處理時(shí)間(數(shù)據(jù)包從到達(dá)MAC 層到轉(zhuǎn)發(fā)完畢之間的時(shí)間間隔[2])增大,超過(guò)轉(zhuǎn)發(fā)節(jié)點(diǎn)的處理能力[3],加重了節(jié)點(diǎn)級(jí)擁塞[4],造成包延時(shí)和重傳,降低了Sink 節(jié)點(diǎn)的吞吐量,增加了漏斗區(qū)域的能量開(kāi)銷(xiāo),縮短了網(wǎng)絡(luò)的生存周期。
現(xiàn)有研究針對(duì)漏斗效應(yīng)采用源流量控制[5~7]、網(wǎng)絡(luò)層均衡[8,9]、MAC 層調(diào)度[1],以及強(qiáng)功能節(jié)點(diǎn)部署[10]等方法緩解能耗和擁塞,但對(duì)節(jié)點(diǎn)計(jì)算能力要求較高,降低了通信效率,或需要額外的通信硬件進(jìn)行特定部署。
本文提出異構(gòu)比特速率(heterogeneous-bit-rate)傳輸方式,逐跳增大Sink 節(jié)點(diǎn)附近高流量轉(zhuǎn)發(fā)節(jié)點(diǎn)的發(fā)送比特速率,使節(jié)點(diǎn)的比特速率與流量匹配,降低高流量區(qū)域的節(jié)點(diǎn)級(jí)擁塞。針對(duì)現(xiàn)有傳感器節(jié)點(diǎn)比特速率單一性,設(shè)計(jì)了基于ATmega128 微處理器和CC1100 射頻芯片的傳感器節(jié)點(diǎn),改進(jìn)了TinyOS 系統(tǒng)組件,實(shí)現(xiàn)多種比特速率在數(shù)據(jù)收發(fā)時(shí)動(dòng)態(tài)切換。在真實(shí)環(huán)境下進(jìn)行了實(shí)驗(yàn)測(cè)量,結(jié)果表明:該網(wǎng)絡(luò)能夠有效緩解網(wǎng)絡(luò)擁塞,提高了網(wǎng)絡(luò)吞吐量。
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)一般為同構(gòu)比特速率,即所有節(jié)點(diǎn)配置為相同的比特速率,如圖1(a)所示,源節(jié)點(diǎn)1,2 與轉(zhuǎn)發(fā)節(jié)點(diǎn)3 采用相同比特速率,節(jié)點(diǎn)3 對(duì)數(shù)據(jù)包接收和轉(zhuǎn)發(fā)需要相同的處理時(shí)間,包間隔時(shí)間小于節(jié)點(diǎn)1,2,包服務(wù)時(shí)間大于節(jié)點(diǎn)1,2。因此,轉(zhuǎn)發(fā)節(jié)點(diǎn)對(duì)數(shù)據(jù)包處理的時(shí)間要大于其子節(jié)點(diǎn)之和,隨著流量增大,使Sink 節(jié)點(diǎn)附近的轉(zhuǎn)發(fā)節(jié)點(diǎn)擁塞加劇。
圖1 匯聚網(wǎng)絡(luò)傳輸模型Fig 1 Aggregation network transmission model
異構(gòu)比特速率傳輸提高了節(jié)點(diǎn)的轉(zhuǎn)發(fā)比特速率,如圖1(b)所示,節(jié)點(diǎn)1,2 采用速率3 發(fā)送數(shù)據(jù),節(jié)點(diǎn)3 采用速率2(速率2 >速率3)轉(zhuǎn)發(fā)數(shù)據(jù),轉(zhuǎn)發(fā)數(shù)據(jù)包所需時(shí)間減少,數(shù)據(jù)包處理速度提高,進(jìn)而緩解擁塞。
異構(gòu)比特速率節(jié)點(diǎn)需發(fā)送、接收和ACK 三種比特速率。如圖1(b)所示,節(jié)點(diǎn)5 以速率1 發(fā)送數(shù)據(jù),以速率2接收數(shù)據(jù),以速率3 反饋ACK,要求節(jié)點(diǎn)多種比特速率切換。MicaZ,Telosb 等現(xiàn)有常用的傳感器節(jié)點(diǎn)并不支持多種比特速率通信,僅CC1100 等芯片具備該功能,而這些芯片一般用于同構(gòu)比特速率網(wǎng)絡(luò),不能實(shí)時(shí)切換速率。本文針對(duì)該問(wèn)題設(shè)計(jì)了支持多種比特速率實(shí)時(shí)切換的傳感器節(jié)點(diǎn)。
根據(jù)對(duì)多種比特速率實(shí)時(shí)切換的需求,本文采用CC1100 射頻芯片和ATmega128 微處理器、嵌入TinyOS[11]操作系統(tǒng),設(shè)計(jì)專(zhuān)門(mén)的接口和組件,通過(guò)寄存器編程控制1.2 ~500 kB/s 比特速率,實(shí)現(xiàn)傳感器節(jié)點(diǎn)多速率切換。節(jié)點(diǎn)硬件實(shí)現(xiàn)的引腳連接如圖2 所示,通過(guò)串行接口總線(xiàn)SPI,ATmega128 的PB2(MOSI 主機(jī)向從機(jī)輸入)、PB3(MISO 從機(jī)向主機(jī)輸入)、PB1(SCLK 時(shí)鐘)、PB0(SS 片選)引腳分別與CC1100 的SI,SO,CLK,CSn 引腳連接,用于數(shù)據(jù)輸入輸出、時(shí)鐘以及片選控制。
圖2 CC1100 與ATmega128 系統(tǒng)組成Fig 2 System composition of CC1100 and ATmega128
CC1100 的比特速率由MDMCFG3 和MDMCFG4 寄存器進(jìn)行配置,計(jì)算方法如式(1)所示
其中,RM 表示寄存器MDMCFG3 全8 位二進(jìn)制的值,RE 代表寄存器MDMCFG4 低4 位二進(jìn)制的值,fxosc表示處理器的晶振頻率。
為實(shí)現(xiàn)比特速率切換,本文改進(jìn)了TinyOS 系統(tǒng)通信流程。如圖3 所示,CC1100 芯片包含發(fā)送與接收兩種通信模式,由數(shù)據(jù)發(fā)送事件觸發(fā)進(jìn)入發(fā)送模式,由數(shù)據(jù)接收事件觸發(fā)進(jìn)行數(shù)據(jù)接收,接收完成后發(fā)送ACK。同構(gòu)速率系統(tǒng)比特速率僅在初始化階段配置一次(速率(n+1)),異構(gòu)比特速率系統(tǒng)在向發(fā)送或接收模式轉(zhuǎn)變時(shí),均進(jìn)行比特速率更改,分別對(duì)發(fā)送、接收和ACK 配置比特速率為速率(n)、速率(n+1)、速率(n+2)。
圖3 異構(gòu)比特速率的TinyOS 系統(tǒng)Fig 3 TinyOS system of heterogeneous-bit-rate
為實(shí)現(xiàn)該通信流程,本文設(shè)計(jì)了多速率接口和組件。如圖4 所示,TinyOS 系統(tǒng)由TransmitP 模塊管理通信,通過(guò)SpiC 組件實(shí)現(xiàn)對(duì)CC1100 寄存器配置等操作。本文在TransmitP 通信模塊中為其SpiC 組件設(shè)計(jì)了寄存器接口Multi 及其連接的寄存器改寫(xiě)組件Bitrate,在Bitrate 組件中設(shè)計(jì)了不同比特速率對(duì)應(yīng)的MDMCF3 與MDMCF4 寄存器值,系統(tǒng)在每次通信模式轉(zhuǎn)變時(shí),都將調(diào)用Multi.Bitrate(速率n),即可對(duì)CC1100 的寄存器進(jìn)行讀寫(xiě)操作,例如:系統(tǒng)調(diào)用Multi.Bitrate(19.2),則組件中會(huì)對(duì)MDMCF3 和MDMCF4 分別配置為19.2 kB/s 比特速率對(duì)應(yīng)的寄存器值0xCA和0x83。
圖4 異構(gòu)比特速率組件與接口Fig 4 Components and interfaces of heterogeneous-bit-rate
異構(gòu)比特速率網(wǎng)絡(luò)中節(jié)點(diǎn)需確定自身位置和相應(yīng)的比特速率。本文設(shè)計(jì)了異構(gòu)比特速率網(wǎng)絡(luò)組建和拓?fù)淇刂品桨浮?/p>
根據(jù)網(wǎng)絡(luò)流量向Sink 節(jié)點(diǎn)匯聚的特點(diǎn),異構(gòu)比特速率網(wǎng)絡(luò)按與Sink 節(jié)點(diǎn)的通信距離對(duì)節(jié)點(diǎn)進(jìn)行速率分層,如圖5所示,與Sink 節(jié)點(diǎn)距離為n 跳的節(jié)點(diǎn)劃分為層次(n),層次(n)對(duì)層次(n-1)以比特速率(n)進(jìn)行通信(速率(n)>速率(n+1)),距離越近,n 值越小,速率(n)也越大。
圖5 異構(gòu)比特速率傳輸網(wǎng)絡(luò)Fig 5 Heterogeneous-bit-rate transmission network
組網(wǎng)機(jī)制:1)Sink 節(jié)點(diǎn)在部署時(shí)已設(shè)定自身位于層次(0)且以速率1 接收數(shù)據(jù),以速率2 反饋ACK;2)任意新加入的節(jié)點(diǎn)首先進(jìn)行層次定位,依次以速率(1)到速率(n)速率發(fā)送探測(cè)信息,并分別以速率(n+1)速率等待附近已確定層次節(jié)點(diǎn)的ACK 回復(fù);3)根據(jù)ACK 信息中包含的節(jié)點(diǎn)層次和地址信息確定自身層次。
如圖5 所示,Sink 節(jié)點(diǎn)會(huì)收到一跳范圍內(nèi)節(jié)點(diǎn)2,3 以速率1 發(fā)送的探測(cè)信息,并對(duì)這些節(jié)點(diǎn)回復(fù)ACK。節(jié)點(diǎn)2,3 收到ACK 中包含的層次信息(層次(0))和地址信息(Sink),則將自身設(shè)定為層次(1)。同理,層次(1)節(jié)點(diǎn)會(huì)收到一跳范圍內(nèi)節(jié)點(diǎn)4,5,6 以速率2 發(fā)送的探測(cè)信息,并反饋ACK。節(jié)點(diǎn)4,5,6 根據(jù)ACK 確定自身為層次(2),以層次(1)中的節(jié)點(diǎn)作為下一跳地址。
拓?fù)淇刂?節(jié)點(diǎn)在通信中若3 次未收到ACK 信息,則表示該鏈路已斷開(kāi)(下一跳死亡或擁塞等情況),節(jié)點(diǎn)將重新啟動(dòng)速率探測(cè),以重新確定自身層次和下一跳地址。
本文根據(jù)節(jié)點(diǎn)設(shè)計(jì)方案組成了25 個(gè)如圖6 所示基于CC1100 與ATmega128 的傳感器節(jié)點(diǎn),在實(shí)際環(huán)境中的部署如下:
圖6 實(shí)驗(yàn)節(jié)點(diǎn)Fig 6 Experimental node
實(shí)驗(yàn)布置于湖南大學(xué)工程訓(xùn)練中心3 樓實(shí)驗(yàn)室,由8 個(gè)節(jié)點(diǎn)于2 m×3 m 桌面部署了圖7(a)所示偏二叉樹(shù)網(wǎng)絡(luò),以部署在不同層次的葉節(jié)點(diǎn)作為數(shù)據(jù)源;由25 節(jié)點(diǎn)部署于8 m×8 m 地面部署了圖7(b)所示漏斗結(jié)構(gòu)網(wǎng)絡(luò),以層次(4)的10 個(gè)節(jié)點(diǎn)作為數(shù)據(jù)源,由層次(3),(2),(1)轉(zhuǎn)發(fā)。節(jié)點(diǎn)工作頻率設(shè)置為915 MHz,功率為-20 dBm,數(shù)據(jù)包長(zhǎng)度為20 byte。
圖7 實(shí)驗(yàn)網(wǎng)絡(luò)部署Fig 7 Experimental network deployment
同構(gòu)比特速率實(shí)驗(yàn)對(duì)所有節(jié)點(diǎn)配置為相同比特速率1(150 kB/s),異構(gòu)比特速率實(shí)驗(yàn)對(duì)距離Sink 節(jié)點(diǎn)1 ~4 跳范圍節(jié)點(diǎn)預(yù)設(shè)比特速率1 ~速率4,分別選擇為150,76.8,38.4,19.2 kB/s,通過(guò)組網(wǎng)機(jī)制確定層次和比特速率。實(shí)驗(yàn)在不同源數(shù)據(jù)流量下對(duì)同異構(gòu)比特速率網(wǎng)絡(luò)Sink 節(jié)點(diǎn)的吞吐量進(jìn)行測(cè)量,結(jié)果如下:
在低流量環(huán)境下,網(wǎng)絡(luò)擁塞較小,同異構(gòu)比特速率網(wǎng)絡(luò)吞吐量較為接近。隨著源節(jié)點(diǎn)流量增大,網(wǎng)絡(luò)擁塞加劇,異構(gòu)比特速率網(wǎng)絡(luò)吞吐量逐漸提高。在流量達(dá)到一定程度時(shí),網(wǎng)絡(luò)吞吐量趨于飽和,如圖8 所示,偏二叉樹(shù)網(wǎng)絡(luò)在5 PPS流量下趨于飽和,Sink 節(jié)點(diǎn)的吞吐量約提高了10.9%,漏斗網(wǎng)絡(luò)源節(jié)點(diǎn)較多,在2.5 PPS 流量下趨于飽和,Sink 節(jié)點(diǎn)吞吐量約提高了18.6%,有效緩解了網(wǎng)絡(luò)擁塞,提高了網(wǎng)絡(luò)吞吐量。
圖8 實(shí)驗(yàn)結(jié)果Fig 8 Experimental result
本文針對(duì)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的漏斗效應(yīng),提出基于異構(gòu)比特速率的擁塞控制技術(shù),突破現(xiàn)有節(jié)點(diǎn)通信比特速率的局限性,實(shí)現(xiàn)了支持異構(gòu)比特速率傳輸?shù)膫鞲衅鞴?jié)點(diǎn),實(shí)際網(wǎng)絡(luò)實(shí)驗(yàn)表明:在趨于飽和的流量下有效緩解了網(wǎng)絡(luò)擁塞,提高了網(wǎng)絡(luò)吞吐量。
[1] Ahn G S,Hong S G,Miluzzo E,et al.Funneling-MAC:A localized,sink-oriented MAC for boosting fidelity in sensor networks[C]∥Proceedings of the 4th Iinternational Conference on Embedded Networked Sensor Systems:ACM,2006:293-306.
[2] 余小華,陳 瑛.一種新的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)擁塞控制算法[J].計(jì)算機(jī)工程,2011,37(11):108-110,113.
[3] 孫利民,李 波,周新運(yùn).無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的擁塞控制技術(shù)[J].計(jì)算機(jī)研究與發(fā)展,2008,45(1):63-72.
[4] Wang C G,Li B,Sohraby K,et al.Upstream congestion control in wireless sensor networks through cross-layer optimization[J].IEEE Journal on Selected Areas in Communications:Special Issue on Cross-Layer Optimized Wireless Multimedia Communications,2007,25(4):786-796.
[5] Wan C Y,Eisenman S B,Campbell A T.Energy-efficient congestion detection and avoidance in sensor networks[J].ACM Transactions on Sensor Networks(TOSN),2011,7(4):32.
[6] 牛玉剛,甘峰浩,胡 源.基于壓縮感知的擁塞控制機(jī)制[J].控制與決策,2015(2):246-250.
[7] Charalambos Sergiou,Vasos Vassiliou.Hierarchical tree alternative path(HTAP)algorithm for congestion control in wireless sensor networks[J].Ad Hoc Networks,2013,11:257-272.
[8] 劉安豐,陽(yáng)國(guó)軍,陳志剛.基于不等簇半徑輪換工作的傳感器網(wǎng)絡(luò)能量空洞避免研究[J].通信學(xué)報(bào),2010(1):1-6.
[9] 蔣 陽(yáng),韓飛飛,閆藝倩,等.基于協(xié)作傳輸?shù)拇蠓秶鶺SNs能耗均衡分簇算法[J].傳感器與微系統(tǒng),2014,33(7):137-140.
[10]葉 進(jìn),楊 婧,宋曉燕.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中基于定向擴(kuò)散協(xié)議的跨層擁塞控制方法[J].傳感技術(shù)學(xué)報(bào),2012,25(1):124-128.
[11]吳小娜,王 漫.無(wú)線(xiàn)傳感器網(wǎng)絡(luò)操作系統(tǒng)TinyOS 綜述[J].計(jì)算機(jī)與現(xiàn)代化,2011(2):103-105.