无线传感器网络(Wireless Sensor Network, WSN)是由部署在监测区内大量移动或静止的微型传感器节点构成的分布式网络, 通过多跳和自组织的方式将感知对象的信息发送给网络的需求者, 其关键技术包括传感器、能量收集、嵌入式操作系统、低功耗、多跳自组织的路由协议、数据融合、数据管理以及信息安全等[1–3]. WSN当前的研究焦点涵盖网络生命周期、覆盖和连通、安全和故障、能量效率和收敛时间、能量均衡和扩展性等[4,5].
由于网络的规模性, 通常情况下节点的位置不能精确设定, 相互之间的邻居关系也不可预知, 另外在实际应用中部分传感器节点由于能量耗尽或环境因素造成失效, 同时也有一些节点补充到网络中来, 由于节点数目动态地增加或减少, 导致网络的拓扑结构随之动态地发生变化. 在真实的环境中, 包含成千上万节点的大规模无线传感器网络, 研究和评价其性能将是一项耗时费力的工作, 实际上几百个节点的实验己经相当难以管理与实现, 而目前流行的网络仿真平台恰好能解决这一难题, 通过虚拟各个物理设备的模型, 然后构建仿真系统, 具有耗资少、配置灵活、人机交互能力强和可视化程度高等优势. 当前主流的无线传感器网络仿真平台包括OPNET、NS-2、OMNet++等[6]. OPNET采用网络、节点和过程三层模型实现对网络行为的仿真, 自带各种分析工具, 提供大量网络设备模型, 用户可以在网络模型的任意位置插入探头采集数据和进行统计, 能够准确分析复杂网络的性能和行为, , 仿真输出以图形化方式显示, 能够为网络的规划设计提供可靠的定量依据, 验证实际方案或比较多个不同的设计方案, 非常适用于分析网络的性能[7,8].
文章基于传感器仿真节点模型, 利用OPNET仿真平台, 在较小空间部署高密度节点时, 通过接收信号强度指示(Received Signal Strength Indication, RSSI)来控制传感器节点间的传输距离, 使得节点彼此之间不会相距太近或太远, 聚焦于WSN的能量效率和收敛时间方面若干问题, 包括传输半径、传输半径与网络能耗的关系、网络时延和网络吞吐量等网络性能.
1 传感器节点仿真模型传感器、被感知对象和观察者构成WSN三要素, 传感器系统一般包括传感器节点(Sensor Node)、汇聚节点(Sink Node)和管理节点(Management Node)[9]. 大量传感器节点随机部署在监测区, 其监测的数据通过自组织方式多跳中继转发, 路由到汇聚节点, 最后通过互联网或卫星到达管理节点, 用户通过管理节点对传感器网络进行配置和管理, 发布监测任务以及收集监测数据, 因此传感器节点是WSN和信息来源的基础. 基于OPNET平台的感器节点仿真模型如图1所示. 节点模型从上至下分为应用层、网络层、数据链路层和物理层. 应用层(sensor)将传感器监测到的数据发往网络层, 网络层(network)负责将数据分组按照设定的路由策略发送到下一跳(next hop), 数据链路层(waln_mac_intf)主要起到将来自网络层和物理层的数据分组相互转发的中间桥梁作用, 物理层(wireless_lan_mac)负责处理多个节点如何有效共享信道资源的问题. waln_port_rx_o和waln_port_tx_o分别为节点的接收机(receiver)和发射机(transmitter). 在仿真节点中设置数据速率1000 000 bps, 频道带宽22 000 kHz, 主频2401 MHz.
仿真传感器节点的应用层进程模型如图2所示. 模型运行时, 整个程序进入Wait模块等待0.02 s, 然后所有节点进行初始化并开始竞争. Wait模块在接收网络层的NETWORK_READY中断信号后进入Init状态. Init模块初始化变量, 获得节点属性以及设置数据分组的中断计划, 在接收源节点发送的GEN_PKT中断信号后进入Idle状态, Idle模块按不同的转移条件进入不同的状态: 接到PKT_GEN中断信号进入Generate状态, 接到NETWORK_DATA_ARV中断信号进入Sink状态, 接到NETWORK_STOP中断信号进入Stop状态. Generate模块创建并发送数据分组, 收到PKT_GEN中断信号则进入, 结束后返回Idle状态. Sink模块接收网络层发送的数据分组, 收到NETWORK_READY中断信号则进入, 结束后返回Idle状态. Stop模块负责数据分组的停止发送, 收到NETWORK_STOP中断信号则进入, 结束后返回Idle状态. 模型中, 除了源节点和目标节点会发送中断信号给应用层, 进入Init及其后续状态完成相关任务外, 其它节点则一直处于Wait等待状态. 源节点会在Idle和Generate两个状态之间循环切换, 直到接收NETWORK_STOP中断信号进入Stop状态为止, 而目标节点则在Idle和Sink两个状态之间循环切换, 直到接收NETWORK_STOP中断信号进入Stop状态为止.
2 传感器节点传输距离控制
大规模无线传感器网络中, 有效控制传感器节点每一跳传输距离是满足路由协议鲁棒性的基本要求, 图3是一个随机布点、自组网络的多跳WSN传输距离控制模型. 源节点A采集监测区数据, 经过路由中间节点B、C、D、E、F…的多跳转发, 直至目的节点N基站, 数据分组在传输过程中, 采取RSSI测距定位算法[10], 选择可达最大传输距离
RSSI测距算法在实际应用中一般采用简化的渐变公式(1):
${[p(d)]_{dBm}}\, = \,{[p({d_0})]_{dBm}} - 10n {\rm lg}\left( {\frac{d}{{{d_0}}}} \right)$ | (1) |
式(1)中,
为便于表达和计算, 通常取
${[p(d)]_{dBm}}\, = A - 10n{\rm lg}(d) = RSSI$ | (2) |
式(2)中,
3 大规模节点随机仿真部署实现方法
WSN的规模性包括两方面的含义: 一是传感器节点分布在较广阔的地理区域内; 二是在较小的空间范围内部署了大量的节点, 密度较大[11]. 仿真场景适合第二种情况.
利用OPNET仿真平台, 设置一个长×宽为750 m×500 m的网络区间, 节点数量为500个. 在部署仿真传感器节点时, 采用平台自带的外部模块访问(External Model Access, EMA)文本用类似C语言的方式来建模, 首先使用循环语句来确定各个节点编号, 然后用rand()函数随机部署节点簇, 同时随机生成对应的节点坐标(x_pos, y_pos), 根据RSSI算法, 如果节点之间距离太近或太远时, 都将重新生成新的节点坐标, 仿真生成的大规模传感器节点场景如图4所示. 模型运行时, 传感器节点根据状态流程可分为4类: 源节点(Source)、目标节点(Sink)、中间转发节点和其它节点. 源节点发送数据分组, 目标节点接收数据分组, 中间节点转发数据分组, 其它节点则一直停留在Idle状态. 主要伪代码如下:
(1) 节点编号初始化;
(2) for循环随机生成节点坐标x_pos, y_pos;
(3) if函数判断节点坐标之间的距离, 如果新节点坐标距离已有节点坐标太近或太远, 则重新生成x_pos, y_pos;
(4) if函数判断节点数是否满足仿真部署要求, 直至执行完全部循环;
(5) 将节点坐标x_pos, y_pos保存在坐标矩阵中;
(6) 创建节点.
4 网络应用层若干性能分析 4.1 网络传输半径
已知网络场景面积为375 000 m2, 节点500个, 则节点密度为500/375 000=0.001 33个/m2. 当数据分组传输半径从30 m逐渐扩展到100 m时, 根据半径和密度可计算出邻居节点数如表1所示, 可以看出, 随着数据分组传输半径的增加, 邻居数也随之增加, 增幅在1~4之间. 仿真部署时, 已设置最大邻居数为50个, 因此每个节点在初始化时就预留了50个邻居节点的内存空间, 模型运行时, 扫描位于自己传输半径范围内的可路由节点并存放在邻居列表中. 根据最大传输半径公式
4.2 传输半径与网络能耗的关系
MIT学者Chandrakasan 等人提出的低功耗自适应集簇分层型协议(Low Energy Adaptive Clustering Hierarchy, LEACH)是为无线传感器网络设计的低功耗自适应聚类路由协议, 主要分为两个阶段: 簇建立阶段(Setup Phase)和稳定运行阶段(Ready Phase), 两个阶段所持续的时间总和为一轮(round). 在簇建立阶段, 传感器节点生成一个0和1之间的随机数, 并且与阈值T(n)做比较, 如果小于阈值, 则该节点就会当选为簇头[13,14]. T(n)的计算公式(3)如下:
$T(n) = \left\{ {\begin{aligned}& {\frac{p}{{1 - p \times (r\;\,od \,\;\frac{1}{p})}}\;} & {\{ N \in G\} }\\& 0 & {\{ N \notin G\} }\end{aligned}} \right.$ | (3) |
式(3)中,
在 LEACH 协议中, 使用的能耗公式是一阶无线电模型[14,15](First Order Radio Model, FORM), 节点发送kbit数据能耗公式如(4)所示:
${E_T} = l{E_{elec}}\, + \,l{\varepsilon _{amp}}{d^n}$ | (4) |
式(4)中,
数据分组在信号传输过程中的能量消耗与邻居节点的距离
设定节点模型中的
网络时延的仿真效果如图6所示. 可以看到, 在较小区域内部署大量传感器节点后, 由于控制在有效传输范围内, 节点之间的邻居建立以及数据传输相对都比较迅速, 整个网络的时延在3.5到4.0 ms之间, 网络处理数据分组的速度较快, 性能较为优良, 说明仿真节点拓扑结构比较合理. 当仿真节点从500增加到800时, 虽然整个网络的传输速率增大, 网络时延降低, 但基本上控制在3.25到3.75 ms之间, 如图7所示. 说明在一定数量范围内, 网络节点的增加对网络时延的影响不明显.
4.4 网络吞吐量
网络吞吐量的仿真效果如图7所示. 仿真开始时, 网络的吞吐量急剧增加, 在不到1 s的时间内, 从0 bit/sec快速增加到52 000 bit/sec左右, 但4s以后, 吞吐量稳定在60 000 bit/sec左右, 说明网络拓扑具有较好的收敛性, 节点部署较为理想. 当仿真节点增加到800时, 在2 s以内, 网络吞吐量产生波动, 之后则稳定在72 000 bit/sec左右, 如图9所示. 说明在一定的节点范围内, WSN网络的吞吐量能保持在一个较为稳定的水平.
4.5 数据端到端延迟
数据端到端延迟为源节点产生数据包的时间与该数据包到达目的节点时间之差的绝对值. 图10和图11分别为仿真节点500和800时的网络延迟时间, 对比两者可以看出, 在一定节点密度范围内, 网络延迟时间变化不明显, 在预定空间中, 调整源节点和目的节点的位置, 不会对整个WSN网络的延迟时间产生较大影响.
5 结论与展望
无线传感器网络是新一代的传感器网络, 具有非常广泛的应用前景, 可以预计, 未来无线传感器网络将无处不在, 完全融入我们的生活, 给人类社会带来极大的变革. 针对大规模、随机化的无线传感器网络的研究和应用费时费力, 甚至无法达到预期目标, 而采用仿真的方法则可以达到事半功倍. 文章基于OPNET平台, 采用RSSI测距定位技术控制节点传输距离, 在一个375 000 m2的仿真场景上随机部署500个传感器节点, 通过分析网络应用层性能, 得到以下结论:
(1)当邻居数为N时, 节点传输半径
(2)根据多路衰减模型, 考虑网络能耗因素, 节点传输半径尽量为最大传输半径
(3)网络时延和网络吞吐量结果表明, 采取RSSI测距定位技术, 以二维泊松方式随机节点生成的无线传感器网络拓扑处理数据分组的速度较快, 具有较好的收敛性.
(4)在一定的可控节点密度范围内, 节点数量的增加, 对网络时延、数据端到端延迟的影响不明显, 网络吞吐量虽然会产生波动, 但在较短的时间内稳定下来.
(5)仿真实验需要通过真实实验进行比对和验证, 以提供更符合实际的结果, 这是下一步工作的重点.
[1] |
Wang ZW, Li ZM, Liu HY, et al. WSN layer-cluster sensor deployment for frozen soil data acquisition. Proceedings of 2016 International Conference on Computer, Mechatronics and Electronic Engineering (CMEE 2016). Beijing, China. 2016.
|
[2] |
林炳. 大规模无线传感器网络组网研究[硕士学位论文]. 杭州: 杭州电子科技大学, 2012. 1–5.
|
[3] |
姚向民. 无线传感器网络大规模组网技术研究[硕士学位论文]. 成都: 电子科技大学, 2009. 1–5, 7–9.
|
[4] |
韩鸿泉, 朱红松, 孟军. 无线传感器网络技术. 计算机系统应用, 2005(2): 38-41. |
[5] |
杨森. 大规模无线传感器网络性能分析[硕士学位论文]. 上海: 上海交通大学, 2013. 9–10, 18–23.
|
[6] |
李清平. 基于进程核心的网络仿真建模及统计分析. 武汉理工大学学报(信息与管理工程版), 2012, 34(6): 680-683, 707. |
[7] |
李长连, 王福豹, 何戟. 无线传感器网络仿真模拟技术比较分析. 计算机应用研究, 2007, 24(3): 6-9. |
[8] |
刘波. 基于OPNET的无线传感器网络建模与仿真[硕士学位论文]. 广州: 华南理工大学, 2010. 11–15.
|
[9] |
刘彬, 许屏, 裴大刚, 等. 无线传感器网络的节点部署方法的研究进展. 传感器世界, 2009, 15(8): 10-14. |
[10] |
殷贞玲, 王汝传, 黄海平, 等. 基于无线传感器网络的传输距离控制方法. 计算机科学, 2012, 37(6): 97-101. |
[11] |
秦小虎, 辛云宏, 夏海峰, 等. 无线传感器网络节点定位技术. 计算机系统应用, 2011, 20(9): 117-121. |
[12] |
乔俊峰, 刘三阳. 无线传感器网络中最小连通通信半径的研究. 网络安全技术与应用, 2014(7): 30-31, 33. |
[13] |
陈敏. OPNET物联网仿真. 武汉: 华中科技大学出版社, 2015. 110–121, 155–156.
|
[14] |
夏中林. 基于LEACH协议的最少能量消耗算法的研究[硕士学位论文]. 湘潭: 湖南科技大学, 2014. 20–22.
|
[15] |
Shang RZ, Zhang N. A wireless sensor network for prognostics and health management. Proceedings of 2016 International Conference on Power, Energy Engineering and Management (PEEM 2016). Bangkok, Thailand. 2016.
|