基于异构比特速率的无线传感器网络拥塞控制技术*
2015-04-01骆坚,席望,谢鲲
骆 坚,席 望,谢 鲲
(湖南大学 信息科学与工程学院,湖南 长沙410082)
0 引 言
多跳汇聚的无线传感器网络(WSNs)中,数据多对一传输至Sink 节点,形成漏斗效应[1]。在漏斗区域中,随流量增加,包间隔时间(数据包相继到达MAC 层的时间间隔[2])减小,包处理时间(数据包从到达MAC 层到转发完毕之间的时间间隔[2])增大,超过转发节点的处理能力[3],加重了节点级拥塞[4],造成包延时和重传,降低了Sink 节点的吞吐量,增加了漏斗区域的能量开销,缩短了网络的生存周期。
现有研究针对漏斗效应采用源流量控制[5~7]、网络层均衡[8,9]、MAC 层调度[1],以及强功能节点部署[10]等方法缓解能耗和拥塞,但对节点计算能力要求较高,降低了通信效率,或需要额外的通信硬件进行特定部署。
本文提出异构比特速率(heterogeneous-bit-rate)传输方式,逐跳增大Sink 节点附近高流量转发节点的发送比特速率,使节点的比特速率与流量匹配,降低高流量区域的节点级拥塞。针对现有传感器节点比特速率单一性,设计了基于ATmega128 微处理器和CC1100 射频芯片的传感器节点,改进了TinyOS 系统组件,实现多种比特速率在数据收发时动态切换。在真实环境下进行了实验测量,结果表明:该网络能够有效缓解网络拥塞,提高了网络吞吐量。
1 问题描述
无线传感器网络一般为同构比特速率,即所有节点配置为相同的比特速率,如图1(a)所示,源节点1,2 与转发节点3 采用相同比特速率,节点3 对数据包接收和转发需要相同的处理时间,包间隔时间小于节点1,2,包服务时间大于节点1,2。因此,转发节点对数据包处理的时间要大于其子节点之和,随着流量增大,使Sink 节点附近的转发节点拥塞加剧。
图1 汇聚网络传输模型Fig 1 Aggregation network transmission model
异构比特速率传输提高了节点的转发比特速率,如图1(b)所示,节点1,2 采用速率3 发送数据,节点3 采用速率2(速率2 >速率3)转发数据,转发数据包所需时间减少,数据包处理速度提高,进而缓解拥塞。
异构比特速率节点需发送、接收和ACK 三种比特速率。如图1(b)所示,节点5 以速率1 发送数据,以速率2接收数据,以速率3 反馈ACK,要求节点多种比特速率切换。MicaZ,Telosb 等现有常用的传感器节点并不支持多种比特速率通信,仅CC1100 等芯片具备该功能,而这些芯片一般用于同构比特速率网络,不能实时切换速率。本文针对该问题设计了支持多种比特速率实时切换的传感器节点。
2 异构比特速率传感器节点设计
根据对多种比特速率实时切换的需求,本文采用CC1100 射频芯片和ATmega128 微处理器、嵌入TinyOS[11]操作系统,设计专门的接口和组件,通过寄存器编程控制1.2 ~500 kB/s 比特速率,实现传感器节点多速率切换。节点硬件实现的引脚连接如图2 所示,通过串行接口总线SPI,ATmega128 的PB2(MOSI 主机向从机输入)、PB3(MISO 从机向主机输入)、PB1(SCLK 时钟)、PB0(SS 片选)引脚分别与CC1100 的SI,SO,CLK,CSn 引脚连接,用于数据输入输出、时钟以及片选控制。
图2 CC1100 与ATmega128 系统组成Fig 2 System composition of CC1100 and ATmega128
CC1100 的比特速率由MDMCFG3 和MDMCFG4 寄存器进行配置,计算方法如式(1)所示
其中,RM 表示寄存器MDMCFG3 全8 位二进制的值,RE 代表寄存器MDMCFG4 低4 位二进制的值,fxosc表示处理器的晶振频率。
为实现比特速率切换,本文改进了TinyOS 系统通信流程。如图3 所示,CC1100 芯片包含发送与接收两种通信模式,由数据发送事件触发进入发送模式,由数据接收事件触发进行数据接收,接收完成后发送ACK。同构速率系统比特速率仅在初始化阶段配置一次(速率(n+1)),异构比特速率系统在向发送或接收模式转变时,均进行比特速率更改,分别对发送、接收和ACK 配置比特速率为速率(n)、速率(n+1)、速率(n+2)。
图3 异构比特速率的TinyOS 系统Fig 3 TinyOS system of heterogeneous-bit-rate
为实现该通信流程,本文设计了多速率接口和组件。如图4 所示,TinyOS 系统由TransmitP 模块管理通信,通过SpiC 组件实现对CC1100 寄存器配置等操作。本文在TransmitP 通信模块中为其SpiC 组件设计了寄存器接口Multi 及其连接的寄存器改写组件Bitrate,在Bitrate 组件中设计了不同比特速率对应的MDMCF3 与MDMCF4 寄存器值,系统在每次通信模式转变时,都将调用Multi.Bitrate(速率n),即可对CC1100 的寄存器进行读写操作,例如:系统调用Multi.Bitrate(19.2),则组件中会对MDMCF3 和MDMCF4 分别配置为19.2 kB/s 比特速率对应的寄存器值0xCA和0x83。
图4 异构比特速率组件与接口Fig 4 Components and interfaces of heterogeneous-bit-rate
3 异构比特速率网络设计
异构比特速率网络中节点需确定自身位置和相应的比特速率。本文设计了异构比特速率网络组建和拓扑控制方案。
根据网络流量向Sink 节点汇聚的特点,异构比特速率网络按与Sink 节点的通信距离对节点进行速率分层,如图5所示,与Sink 节点距离为n 跳的节点划分为层次(n),层次(n)对层次(n-1)以比特速率(n)进行通信(速率(n)>速率(n+1)),距离越近,n 值越小,速率(n)也越大。
图5 异构比特速率传输网络Fig 5 Heterogeneous-bit-rate transmission network
组网机制:1)Sink 节点在部署时已设定自身位于层次(0)且以速率1 接收数据,以速率2 反馈ACK;2)任意新加入的节点首先进行层次定位,依次以速率(1)到速率(n)速率发送探测信息,并分别以速率(n+1)速率等待附近已确定层次节点的ACK 回复;3)根据ACK 信息中包含的节点层次和地址信息确定自身层次。
如图5 所示,Sink 节点会收到一跳范围内节点2,3 以速率1 发送的探测信息,并对这些节点回复ACK。节点2,3 收到ACK 中包含的层次信息(层次(0))和地址信息(Sink),则将自身设定为层次(1)。同理,层次(1)节点会收到一跳范围内节点4,5,6 以速率2 发送的探测信息,并反馈ACK。节点4,5,6 根据ACK 确定自身为层次(2),以层次(1)中的节点作为下一跳地址。
拓扑控制:节点在通信中若3 次未收到ACK 信息,则表示该链路已断开(下一跳死亡或拥塞等情况),节点将重新启动速率探测,以重新确定自身层次和下一跳地址。
4 实验与分析
本文根据节点设计方案组成了25 个如图6 所示基于CC1100 与ATmega128 的传感器节点,在实际环境中的部署如下:
图6 实验节点Fig 6 Experimental node
实验布置于湖南大学工程训练中心3 楼实验室,由8 个节点于2 m×3 m 桌面部署了图7(a)所示偏二叉树网络,以部署在不同层次的叶节点作为数据源;由25 节点部署于8 m×8 m 地面部署了图7(b)所示漏斗结构网络,以层次(4)的10 个节点作为数据源,由层次(3),(2),(1)转发。节点工作频率设置为915 MHz,功率为-20 dBm,数据包长度为20 byte。
图7 实验网络部署Fig 7 Experimental network deployment
同构比特速率实验对所有节点配置为相同比特速率1(150 kB/s),异构比特速率实验对距离Sink 节点1 ~4 跳范围节点预设比特速率1 ~速率4,分别选择为150,76.8,38.4,19.2 kB/s,通过组网机制确定层次和比特速率。实验在不同源数据流量下对同异构比特速率网络Sink 节点的吞吐量进行测量,结果如下:
在低流量环境下,网络拥塞较小,同异构比特速率网络吞吐量较为接近。随着源节点流量增大,网络拥塞加剧,异构比特速率网络吞吐量逐渐提高。在流量达到一定程度时,网络吞吐量趋于饱和,如图8 所示,偏二叉树网络在5 PPS流量下趋于饱和,Sink 节点的吞吐量约提高了10.9%,漏斗网络源节点较多,在2.5 PPS 流量下趋于饱和,Sink 节点吞吐量约提高了18.6%,有效缓解了网络拥塞,提高了网络吞吐量。
图8 实验结果Fig 8 Experimental result
5 结束语
本文针对无线传感器网络的漏斗效应,提出基于异构比特速率的拥塞控制技术,突破现有节点通信比特速率的局限性,实现了支持异构比特速率传输的传感器节点,实际网络实验表明:在趋于饱和的流量下有效缓解了网络拥塞,提高了网络吞吐量。
[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] 余小华,陈 瑛.一种新的无线传感器网络拥塞控制算法[J].计算机工程,2011,37(11):108-110,113.
[3] 孙利民,李 波,周新运.无线传感器网络的拥塞控制技术[J].计算机研究与发展,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] 刘安丰,阳国军,陈志刚.基于不等簇半径轮换工作的传感器网络能量空洞避免研究[J].通信学报,2010(1):1-6.
[9] 蒋 阳,韩飞飞,闫艺倩,等.基于协作传输的大范围WSNs能耗均衡分簇算法[J].传感器与微系统,2014,33(7):137-140.
[10]叶 进,杨 婧,宋晓燕.无线传感器网络中基于定向扩散协议的跨层拥塞控制方法[J].传感技术学报,2012,25(1):124-128.
[11]吴小娜,王 漫.无线传感器网络操作系统TinyOS 综述[J].计算机与现代化,2011(2):103-105.