駱 堅,席 望,謝 鯤
(湖南大學 信息科學與工程學院,湖南 長沙410082)
多跳匯聚的無線傳感器網(wǎng)絡(WSNs)中,數(shù)據(jù)多對一傳輸至Sink 節(jié)點,形成漏斗效應[1]。在漏斗區(qū)域中,隨流量增加,包間隔時間(數(shù)據(jù)包相繼到達MAC 層的時間間隔[2])減小,包處理時間(數(shù)據(jù)包從到達MAC 層到轉(zhuǎn)發(fā)完畢之間的時間間隔[2])增大,超過轉(zhuǎn)發(fā)節(jié)點的處理能力[3],加重了節(jié)點級擁塞[4],造成包延時和重傳,降低了Sink 節(jié)點的吞吐量,增加了漏斗區(qū)域的能量開銷,縮短了網(wǎng)絡的生存周期。
現(xiàn)有研究針對漏斗效應采用源流量控制[5~7]、網(wǎng)絡層均衡[8,9]、MAC 層調(diào)度[1],以及強功能節(jié)點部署[10]等方法緩解能耗和擁塞,但對節(jié)點計算能力要求較高,降低了通信效率,或需要額外的通信硬件進行特定部署。
本文提出異構(gòu)比特速率(heterogeneous-bit-rate)傳輸方式,逐跳增大Sink 節(jié)點附近高流量轉(zhuǎn)發(fā)節(jié)點的發(fā)送比特速率,使節(jié)點的比特速率與流量匹配,降低高流量區(qū)域的節(jié)點級擁塞。針對現(xiàn)有傳感器節(jié)點比特速率單一性,設計了基于ATmega128 微處理器和CC1100 射頻芯片的傳感器節(jié)點,改進了TinyOS 系統(tǒng)組件,實現(xiàn)多種比特速率在數(shù)據(jù)收發(fā)時動態(tài)切換。在真實環(huán)境下進行了實驗測量,結(jié)果表明:該網(wǎng)絡能夠有效緩解網(wǎng)絡擁塞,提高了網(wǎng)絡吞吐量。
無線傳感器網(wǎng)絡一般為同構(gòu)比特速率,即所有節(jié)點配置為相同的比特速率,如圖1(a)所示,源節(jié)點1,2 與轉(zhuǎn)發(fā)節(jié)點3 采用相同比特速率,節(jié)點3 對數(shù)據(jù)包接收和轉(zhuǎn)發(fā)需要相同的處理時間,包間隔時間小于節(jié)點1,2,包服務時間大于節(jié)點1,2。因此,轉(zhuǎn)發(fā)節(jié)點對數(shù)據(jù)包處理的時間要大于其子節(jié)點之和,隨著流量增大,使Sink 節(jié)點附近的轉(zhuǎn)發(fā)節(jié)點擁塞加劇。
圖1 匯聚網(wǎng)絡傳輸模型Fig 1 Aggregation network transmission model
異構(gòu)比特速率傳輸提高了節(jié)點的轉(zhuǎn)發(fā)比特速率,如圖1(b)所示,節(jié)點1,2 采用速率3 發(fā)送數(shù)據(jù),節(jié)點3 采用速率2(速率2 >速率3)轉(zhuǎn)發(fā)數(shù)據(jù),轉(zhuǎn)發(fā)數(shù)據(jù)包所需時間減少,數(shù)據(jù)包處理速度提高,進而緩解擁塞。
異構(gòu)比特速率節(jié)點需發(fā)送、接收和ACK 三種比特速率。如圖1(b)所示,節(jié)點5 以速率1 發(fā)送數(shù)據(jù),以速率2接收數(shù)據(jù),以速率3 反饋ACK,要求節(jié)點多種比特速率切換。MicaZ,Telosb 等現(xiàn)有常用的傳感器節(jié)點并不支持多種比特速率通信,僅CC1100 等芯片具備該功能,而這些芯片一般用于同構(gòu)比特速率網(wǎng)絡,不能實時切換速率。本文針對該問題設計了支持多種比特速率實時切換的傳感器節(jié)點。
根據(jù)對多種比特速率實時切換的需求,本文采用CC1100 射頻芯片和ATmega128 微處理器、嵌入TinyOS[11]操作系統(tǒng),設計專門的接口和組件,通過寄存器編程控制1.2 ~500 kB/s 比特速率,實現(xiàn)傳感器節(jié)點多速率切換。節(jié)點硬件實現(xiàn)的引腳連接如圖2 所示,通過串行接口總線SPI,ATmega128 的PB2(MOSI 主機向從機輸入)、PB3(MISO 從機向主機輸入)、PB1(SCLK 時鐘)、PB0(SS 片選)引腳分別與CC1100 的SI,SO,CLK,CSn 引腳連接,用于數(shù)據(jù)輸入輸出、時鐘以及片選控制。
圖2 CC1100 與ATmega128 系統(tǒng)組成Fig 2 System composition of CC1100 and ATmega128
CC1100 的比特速率由MDMCFG3 和MDMCFG4 寄存器進行配置,計算方法如式(1)所示
其中,RM 表示寄存器MDMCFG3 全8 位二進制的值,RE 代表寄存器MDMCFG4 低4 位二進制的值,fxosc表示處理器的晶振頻率。
為實現(xiàn)比特速率切換,本文改進了TinyOS 系統(tǒng)通信流程。如圖3 所示,CC1100 芯片包含發(fā)送與接收兩種通信模式,由數(shù)據(jù)發(fā)送事件觸發(fā)進入發(fā)送模式,由數(shù)據(jù)接收事件觸發(fā)進行數(shù)據(jù)接收,接收完成后發(fā)送ACK。同構(gòu)速率系統(tǒng)比特速率僅在初始化階段配置一次(速率(n+1)),異構(gòu)比特速率系統(tǒng)在向發(fā)送或接收模式轉(zhuǎn)變時,均進行比特速率更改,分別對發(fā)送、接收和ACK 配置比特速率為速率(n)、速率(n+1)、速率(n+2)。
圖3 異構(gòu)比特速率的TinyOS 系統(tǒng)Fig 3 TinyOS system of heterogeneous-bit-rate
為實現(xiàn)該通信流程,本文設計了多速率接口和組件。如圖4 所示,TinyOS 系統(tǒng)由TransmitP 模塊管理通信,通過SpiC 組件實現(xiàn)對CC1100 寄存器配置等操作。本文在TransmitP 通信模塊中為其SpiC 組件設計了寄存器接口Multi 及其連接的寄存器改寫組件Bitrate,在Bitrate 組件中設計了不同比特速率對應的MDMCF3 與MDMCF4 寄存器值,系統(tǒng)在每次通信模式轉(zhuǎn)變時,都將調(diào)用Multi.Bitrate(速率n),即可對CC1100 的寄存器進行讀寫操作,例如:系統(tǒng)調(diào)用Multi.Bitrate(19.2),則組件中會對MDMCF3 和MDMCF4 分別配置為19.2 kB/s 比特速率對應的寄存器值0xCA和0x83。
圖4 異構(gòu)比特速率組件與接口Fig 4 Components and interfaces of heterogeneous-bit-rate
異構(gòu)比特速率網(wǎng)絡中節(jié)點需確定自身位置和相應的比特速率。本文設計了異構(gòu)比特速率網(wǎng)絡組建和拓撲控制方案。
根據(jù)網(wǎng)絡流量向Sink 節(jié)點匯聚的特點,異構(gòu)比特速率網(wǎng)絡按與Sink 節(jié)點的通信距離對節(jié)點進行速率分層,如圖5所示,與Sink 節(jié)點距離為n 跳的節(jié)點劃分為層次(n),層次(n)對層次(n-1)以比特速率(n)進行通信(速率(n)>速率(n+1)),距離越近,n 值越小,速率(n)也越大。
圖5 異構(gòu)比特速率傳輸網(wǎng)絡Fig 5 Heterogeneous-bit-rate transmission network
組網(wǎng)機制:1)Sink 節(jié)點在部署時已設定自身位于層次(0)且以速率1 接收數(shù)據(jù),以速率2 反饋ACK;2)任意新加入的節(jié)點首先進行層次定位,依次以速率(1)到速率(n)速率發(fā)送探測信息,并分別以速率(n+1)速率等待附近已確定層次節(jié)點的ACK 回復;3)根據(jù)ACK 信息中包含的節(jié)點層次和地址信息確定自身層次。
如圖5 所示,Sink 節(jié)點會收到一跳范圍內(nèi)節(jié)點2,3 以速率1 發(fā)送的探測信息,并對這些節(jié)點回復ACK。節(jié)點2,3 收到ACK 中包含的層次信息(層次(0))和地址信息(Sink),則將自身設定為層次(1)。同理,層次(1)節(jié)點會收到一跳范圍內(nèi)節(jié)點4,5,6 以速率2 發(fā)送的探測信息,并反饋ACK。節(jié)點4,5,6 根據(jù)ACK 確定自身為層次(2),以層次(1)中的節(jié)點作為下一跳地址。
拓撲控制:節(jié)點在通信中若3 次未收到ACK 信息,則表示該鏈路已斷開(下一跳死亡或擁塞等情況),節(jié)點將重新啟動速率探測,以重新確定自身層次和下一跳地址。
本文根據(jù)節(jié)點設計方案組成了25 個如圖6 所示基于CC1100 與ATmega128 的傳感器節(jié)點,在實際環(huán)境中的部署如下:
圖6 實驗節(jié)點Fig 6 Experimental node
實驗布置于湖南大學工程訓練中心3 樓實驗室,由8 個節(jié)點于2 m×3 m 桌面部署了圖7(a)所示偏二叉樹網(wǎng)絡,以部署在不同層次的葉節(jié)點作為數(shù)據(jù)源;由25 節(jié)點部署于8 m×8 m 地面部署了圖7(b)所示漏斗結(jié)構(gòu)網(wǎng)絡,以層次(4)的10 個節(jié)點作為數(shù)據(jù)源,由層次(3),(2),(1)轉(zhuǎn)發(fā)。節(jié)點工作頻率設置為915 MHz,功率為-20 dBm,數(shù)據(jù)包長度為20 byte。
圖7 實驗網(wǎng)絡部署Fig 7 Experimental network deployment
同構(gòu)比特速率實驗對所有節(jié)點配置為相同比特速率1(150 kB/s),異構(gòu)比特速率實驗對距離Sink 節(jié)點1 ~4 跳范圍節(jié)點預設比特速率1 ~速率4,分別選擇為150,76.8,38.4,19.2 kB/s,通過組網(wǎng)機制確定層次和比特速率。實驗在不同源數(shù)據(jù)流量下對同異構(gòu)比特速率網(wǎng)絡Sink 節(jié)點的吞吐量進行測量,結(jié)果如下:
在低流量環(huán)境下,網(wǎng)絡擁塞較小,同異構(gòu)比特速率網(wǎng)絡吞吐量較為接近。隨著源節(jié)點流量增大,網(wǎng)絡擁塞加劇,異構(gòu)比特速率網(wǎng)絡吞吐量逐漸提高。在流量達到一定程度時,網(wǎng)絡吞吐量趨于飽和,如圖8 所示,偏二叉樹網(wǎng)絡在5 PPS流量下趨于飽和,Sink 節(jié)點的吞吐量約提高了10.9%,漏斗網(wǎng)絡源節(jié)點較多,在2.5 PPS 流量下趨于飽和,Sink 節(jié)點吞吐量約提高了18.6%,有效緩解了網(wǎng)絡擁塞,提高了網(wǎng)絡吞吐量。
圖8 實驗結(jié)果Fig 8 Experimental result
本文針對無線傳感器網(wǎng)絡的漏斗效應,提出基于異構(gòu)比特速率的擁塞控制技術(shù),突破現(xiàn)有節(jié)點通信比特速率的局限性,實現(xiàn)了支持異構(gòu)比特速率傳輸?shù)膫鞲衅鞴?jié)點,實際網(wǎng)絡實驗表明:在趨于飽和的流量下有效緩解了網(wǎng)絡擁塞,提高了網(wǎng)絡吞吐量。
[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ǎng)絡擁塞控制算法[J].計算機工程,2011,37(11):108-110,113.
[3] 孫利民,李 波,周新運.無線傳感器網(wǎng)絡的擁塞控制技術(shù)[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].控制與決策,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] 劉安豐,陽國軍,陳志剛.基于不等簇半徑輪換工作的傳感器網(wǎng)絡能量空洞避免研究[J].通信學報,2010(1):1-6.
[9] 蔣 陽,韓飛飛,閆藝倩,等.基于協(xié)作傳輸?shù)拇蠓秶鶺SNs能耗均衡分簇算法[J].傳感器與微系統(tǒng),2014,33(7):137-140.
[10]葉 進,楊 婧,宋曉燕.無線傳感器網(wǎng)絡中基于定向擴散協(xié)議的跨層擁塞控制方法[J].傳感技術(shù)學報,2012,25(1):124-128.
[11]吳小娜,王 漫.無線傳感器網(wǎng)絡操作系統(tǒng)TinyOS 綜述[J].計算機與現(xiàn)代化,2011(2):103-105.