目 录
第一章 无线传感器网络概述 ................ 6
概述 .......................................................................................................................................................... 6
1.1 NS-2 ................................................................................................................................................... 6
1.2 OPNET .............................................................................................................................................. 6
1.3 SensorSim .......................................................................................................................................... 6
1.4 EmStar ............................................................................................................................................... 7
1.5 GloMoSim ......................................................................................................................................... 7
1.6 TOSSIM ............................................................................................................................................. 7
1.7 PowerTOSSIM .................................................................................................................................. 7
第二章 OMNET++简介 ..................... 8
概述 .......................................................................................................................................................... 8
2.1 OMNeT++框架 ................................................................................................................................. 8
2.1.1 OMNeT++组成 ........................................................................................................................... 8
2.1.2 OMNeT++结构 ........................................................................................................................... 9
2.2 OMNeT++的安装 ........................................................................................................................... 10
2.3 OMNeT++语法 ............................................................................................................................... 11
2.3.1 NED 语言 .................................................................................................................................. 11
2.3.1.1 NED 总概述....................................................................................................................... 11
2.3.1.2 Ned 描述的组件 ................................................................................................................ 11
2.3.1.3 函数 .................................................................................................................................... 13
2.3.2 简单模块 .................................................................................................................................. 14
2.3.2.1 OMNET++中离散事件 .................................................................................................. 14
2.3.2.2 包传输模型 ....................................................................................................................... 14
2.3.2.3 定义简单模块 ................................................................................................................... 15
2.3.2.4 简单模块中的主要成员函数 ........................................................................................... 16
2.3.3 消息 .......................................................................................................................................... 17
2.3.3.1 cMessage 类 ....................................................................................................................... 17
2.3.3.2 消息定义 ........................................................................................................................... 17
2.3.3.3 消息的收发 ....................................................................................................................... 17
2.3.4 模块参数、门及连接的访问 .................................................................................................. 18
1
2.3.4.1 消息参数的访问 ................................................................................................................ 18
2.3.4.2 门和连接的访问 ................................................................................................................ 19
2.3.4.3 门的传输状态 .................................................................................................................... 20
2.3.3.4 连接的状态 ........................................................................................................................ 20
2.4 仿真过程 ......................................................................................................................................... 21
2.5 配置文件 omnetpp.ini.................................................................................................................... 22
2.6 结果分析工具 ................................................................................................................................. 22
2.6.1 矢量描绘工具 Plove ............................................................................................................ 22
2.6.2 标量工具 Scalar ................................................................................................................... 22
2.7、结束语 ........................................................................................................................................... 23
第三章 物理层仿真(信道) ............... 24
3.1 UWB 的基础知识 ........................................................................................................................... 24
3.1.1 UWB 信号的应用背景 ............................................................................................................. 24
3.1.2 UWB 信号的定义 ..................................................................................................................... 24
3.1.3 UWB 的脉冲生成方式(高斯脉冲,非高斯脉冲) ..................................................................... 25
3.1.4 UWB 的调制方式 ..................................................................................................................... 25
3.1.5 用功率控制多址接入方法来进行链路的建立控制 .............................................................. 27
3.2 用 OMNeT++对 UWB 进行仿真 .................................................................................................. 28
3.2.1 算法仿真的概述 ...................................................................................................................... 28
3.2.2 算法的具体流程 ...................................................................................................................... 30
3.2.3 算法的主要代码 ...................................................................................................................... 31
3.2.4 仿真结果分析 .......................................................................................................................... 43
3.2.5 应用前景 .................................................................................................................................. 43
参考文献 ................................................................................................................................................ 44
第四章 MAC 层仿真 ....................... 44
概述 ........................................................................................................................................................ 44
4.1 无线传感器网络 MAC 层特性及分类 .......................................................................................... 45
4.1.1 无线信道特性 .......................................................................................................................... 45
4.1.2 MAC 设计特性分析 ................................................................................................................ 45
4.1.3 无线传感器网络典型 MAC 协议的分类 ............................................................................... 45
4.2 基于随机竞争的 MAC 协议.......................................................................................................... 46
4.2.1 S-MAC 协议[12] ......................................................................................................................... 46
4.2.2 T-MAC 协议 ............................................................................................................................. 47
2
4.2.3 AC-MAC 协议 .......................................................................................................................... 48
4.3 基于时分复用的 MAC 协议.......................................................................................................... 48
4.3.1 D-MAC 协议............................................................................................................................. 48
4.3.2 TRAMA 协议............................................................................................................................ 49
4.3.3 AI-LMAC 协议 ......................................................................................................................... 49
4.4 其他类型的 MAC 协议 ................................................................................................................. 49
4.4.1 SMACS/EAR 协议 ................................................................................................................... 49
4.4.2 基于 CDMA 技术的 MAC 协议 ............................................................................................. 50
4.4.3 DCC-MAC ................................................................................................................................ 50
4.5 基于 OMNeT++的 MAC 层协议仿真 .......................................................................................... 51
4.5.1 S-MAC 协议的仿真 ................................................................................................................. 51
4.5.2 S-MAC 协议流程图 ................................................................................................................. 52
4.5.3 S-MAC 协议的分析 ................................................................................................................. 53
4.6 小结 ................................................................................................................................................. 63
参考文献 ................................................................................................................................................ 63
第五章 网络层仿真 ....................... 64
概述 ........................................................................................................................................................ 64
5.1 无线传感器网络路由协议研究 ..................................................................................................... 65
5.1.1 无线传感器网络协议分类 ...................................................................................................... 65
5.1.2 无线传感器网络中平面路由 .................................................................................................. 66
5.1.3 无线传感器网络中层次化路由 .............................................................................................. 67
5.1.4 经典算法的 OMNET 仿真 ...................................................................................................... 69
5.2 无线传感器网络路由协议研究的发展趋势 ................................................................................. 76
5.3 无线传感器网络层路由协议与 OMNET++仿真 ......................................................................... 77
5.3.1 无线传感器网络层路由与 OMNET++仿真的基本概念[19] .................................................. 77
5.3.1.1 传感器网络的体系结构 ................................................................................................... 77
5.3.1.1.1 传感节点的物理结构 ................................................................................................ 77
5.3.1.1.2 传感器网络的体系结构与网络模型 ........................................................................ 78
5.3.2 传感器网络层路由协议的基本概念 ...................................................................................... 79
5.3.2.1 网络通信模式[28] .............................................................................................................. 79
5.3.2.1.1 单播:........................................................................................................................ 79
5.3.2.1.2 广播:........................................................................................................................ 79
5.3.2.1.3 组播:........................................................................................................................ 79
5.3.2.2 传感器网络层设计[29]....................................................................................................... 80
5.3.3 OMNET++仿真软件的基本概念 ............................................................................................ 81
3
5.4 无线传感器网络路由协议介绍 ..................................................................................................... 81
5.4.1 泛洪法(Flooding)[32]................................................................................................................. 82
5.4.2 定向扩散(Directed Diffusion:DD)[33] ................................................................................... 82
5.4.3 LEACH( Energy Adaptive Clustering Hierarchy)[34] ................................................................ 83
5.5. OMNET++仿真实例 ..................................................................................................................... 84
5.5.1 泛洪法 ...................................................................................................................................... 84
5.5.2 gossiping 协议........................................................................................................................... 88
5.6 本章总结 ......................................................................................................................................... 90
参考文献 ................................................................................................................................................ 90
第六章 应用层仿真 ....................... 92
6.1 无线传感器网络节点定位 ............................................................................................................. 92
6.1.1 节点定位的基本概念 .............................................................................................................. 92
6.1.1.1 节点定位的定义 ............................................................................................................... 92
6.1.1.2 节点定位的重要性 ........................................................................................................... 93
6.1.2 节点定位的研究 ...................................................................................................................... 93
6.1.2.1 测距方法 ........................................................................................................................... 93
6.1.2.2 节点定位原理 ................................................................................................................... 94
6.1.2.3 节点定位算法分类 ........................................................................................................... 94
6.1.2.3.1 锚节点分类 ................................................................................................................ 94
6.1.2.3.2 计算方式分类 ............................................................................................................ 95
6.1.2.3.3 测距分类.................................................................................................................... 95
6.1.2.3.4 节点移动性分类 ........................................................................................................ 96
6.1.2.4 节点定位性能评价[37] .................................................................................................... 96
6.1.3 基于 OMNET++的 DV—Hop 定位算法仿真 ......................................................................... 97
6.1.3.1 DV—Hop 定位算法的基本思想 ...................................................................................... 97
6.1.3.2 DV—Hop 定位算法仿真 .................................................................................................. 98
6.2 网络管理 ....................................................................................................................................... 105
6.2.1 概叙 ......................................................................................................................................... 105
6.2.1.1 wsn 网络管理的定义及范畴 .......................................................................................... 106
6.2.1.2 wsn 网络管理系统的分类 .............................................................................................. 106
6.2.1.3 wsn 网络管理系统的设计标准....................................................................................... 107
6.2.2 wsn 网络管理系统 ................................................................................................................. 108
6.2.2.1 能量管理系统 ................................................................................................................. 108
6.2.2.1.1 SenOs[5] ................................................................................................................... 108
6.2.2.2 拓扑控制系统 ................................................................................................................. 109
6.2.2.2.1 TopDisc 算法 ........................................................................................................... 109
6.2.2.3 可调试、可配置、可编程系统 ..................................................................................... 110
6.2.2.2.1 sympathy 系统[42] .................................................................................................. 111
4
6.2.2.2.2 Agilla 系统[7] ........................................................................................................... 111
6.2.3 典型网络管理算法的 Omnet 模拟 ....................................................................................... 112
6.2.3.1 基于 Wsn 的一个简单拓扑查找算法算法模拟 ............................................................ 112
6.2.4 结论 ........................................................................................................................................ 116
6.3 基于路由层安全协议的 OMNeT++仿真 ................................................................................... 116
6.3.1 基础知识介绍 ........................................................................................................................ 116
6.3.1.1 无线传感器网络安全性的重要性和必要性 .................................................................. 116
6.3.1.2 无线传感器网络的安全目标 ......................................................................................... 116
6.3.1.3 无线传感器网络中的路由协议概述 .............................................................................. 117
6.3.1.4 无线传感器网络路由协议的攻击方法 .......................................................................... 117
6.3.1.5 无线传感器网络中经典路由协议安全性分析 .............................................................. 119
6.3.1.6 安全路由技术分析 ......................................................................................................... 121
6.3.1.6.1 密钥管理技术[20, 23, 24, 25] ................................................................................. 121
6.3.1.6.2 安全路由协议 .......................................................................................................... 121
6.3.2 在 OMNeT++ 中的仿真 ....................................................................................................... 122
6.3.3 总结 ........................................................................................................................................ 128
参考文献 .............................................................................................................................................. 129
第七章 实例(无线传感器网络移动节点定位仿真)
................................................................ 133
概述 ...................................................................................................................................................... 133
7.1 移动定位算法介绍 ....................................................................................................................... 134
7.1.1 室内移动节点定位算法 ........................................................................................................ 134
7.1.1.1 Active Badge 系统 ........................................................................................................... 134
7.1.1.2 RADAR 系统 ................................................................................................................... 134
7.1.1.3 Cricket 系统 ..................................................................................................................... 134
7.1.2 室外移动节点定位算法 ........................................................................................................ 135
7.1.2.1 基于静态定位的移动定位算法 ..................................................................................... 135
7.1.2.2 纯移动定位算法 ............................................................................................................. 135
7.2 移动定位算法的 OMNeT++仿真 ............................................................................................... 136
7.2.1 MCL(Monte Carlo Localization)定位算法简介 ............................................................... 136
7.2.2 MCL(Monte Carlo Localization)的 OMNeT++仿真 ........................................................ 138
7.2.2.1 建立网络拓扑 ................................................................................................................. 138
7.2.2.2 编码阶段 ......................................................................................................................... 141
7.3.总结和发展趋势 ............................................................................................................................ 145
参考文献 .............................................................................................................................................. 145
5
第一章 无线传感器网络概述
概述
集成了传感器、微机电系统和网络三大技术而形成的传感器网络是一种全新的信息获取
和处理技术,具有广阔的应用前景。主要表现在军事、环境、医疗、家庭等商业领域,特别
在空间探索和灾难拯救等特殊的领域有其得天独厚的技术优势。为评价传感器网络协议算法
的性能,仅通过实验是无法实现的,特别是包含大量节点的大规模无线传感器网络,更是很
难通过实验来实现(实际上,上百个节点的实验己经比较难以管理与实现)。
为了实现无线传感器网络的仿真,研究人员设计开发了许多的仿真平台(或在现有平台
建立无线传感器网络模型),包括 NS-2, OPNET, SensorSim, EmStar, OMNet++, G1oMoSim,
TOSSIM, PowerTOSSIM 等。
1.1 NS-2
NS-2 (Network Simulator-2)是著名的用于网络研究的离散事件仿真工具,里面包括了大
量的用于在有线或无线、本地连接或通过卫星连接进行 TCP 协议、路由算法、多播协议仿
真的网络协议、调度器和工具。NS-2 主要致力于 OSI 模型的仿真,包括物理层的行为。NS-2
可以对仿真进行详细的跟踪并用仿真工具“网络动画播放器”C Network Animator (NAM)
进行回放。NS-2 是开放源码的自由软件,可以免费下载。有一些研究小组对 NS-2 进行了扩
展,使它能支持无线传感器网络的仿真,包括传感器模型、电池模型、小型的协议栈、混合
仿真的支持和场景工具等。由于 NS-2 对数据包级进行非常详细的仿真,接近于运行时的数
据包数量,使得其无法进行大规模网络的仿真。
1.2 OPNET
OPNET 建模工具是商业化的通信网络仿真平台。OPNET 采用网络、节点和过程三层模
型实现对网络行为的仿真。其无线模型是采用基于流水线的体系结构来确定节点间的连接和
传播,用户可指定频率、带宽、功率和包括天线增益模式和地形模型在内的其它特征。OPNET
提供了很多的模型,包括 TCP/IP, 802.1 1 , 3G 等。并已有一些研究人员在 OPNET 上实现对
TinyOS 的 NesC 程序的仿真。 但要实现无线传感器网络的仿真,还需要添加能量模型,而
OPNET 本身似乎更注重于网络 QoS 的性能评价。
1.3 SensorSim
SensorSim 是建立在 NS-2 的一个采用 DSR 的 802.11 网络模型上的。SensorSim 是用于
WINS 平台的,需要用 SensorWare Tel 脚本进行设计。SensorSim 在仿真时跟踪了节点的能
量使用情况,其能量模型来自 WINS 节点,使得其无法用于 Mote 平台的仿真。另外,SensorSim
已经停止开发和支持,也无法下载到程序代码。
6
1.4 EmStar
EmStar 提供了在仿真和基于 iPAQ 的运行 Liunx 的节点之间灵活切换的环境,用户可
以选择在一个主机上运行多个虚拟节点进行仿真,也可以在一个主机上运行多个与真实的节
点进行桥接的虚拟节点。EmSta:可以将无线传感器网络部署在一个友好的基于 Linux 的环境
中,并进行跟踪和调试程序。EmTOS 是用于在 EmStar 中进行 TinyOS 程序仿真的工具。
EmStar 虽然不是一个真正意义上的无线传感器网络仿真工具,但却是一个很有用的用于对
传感器网络的应用程序进行测试的环境。
1.5 GloMoSim
GloMoSim (Global Mobile Information Systems Simulation Library )是一个可扩展的用于
无线和有线网络的仿真系统,根据 OSI 进行分层的建模设计。应用层、传输层、网络层、
数据链路层、数据包接收模型、无线电模型和无线电波传播模型等不同的层次之间采用标准
的 APIs 进行仿真。GIoMoSim 采用 Parsec 进行设计开发,提供了对并行离散时间仿真的支
持。G1oMoSim 目前仅支持纯无线网络的协议仿真,可用于仿真传感器网络中的物理信道特
征和数据链路协议的时延等特性。
1.6 TOSSIM
TOSSIM (TinyOS mote simulator)是用于对采用 TinyOS 的 Motes 进行 bit 级的仿真的工
具。TOSSIM 将 TinyOS 环境下的 NesC 代码直接编译为可在 PC 环境下运行的可执行文件,
提供了不用将程序下载的真实的 Mote 节点上就可以对程序进行测试的一个平台。TOSSIM
还提供了用于显示仿真情况的用户界面 TinyViz.。TOSSIM 的缺点是没有提供能量模型,无
法对能耗有效性进行评价。
1.7 PowerTOSSIM
PowerTOSSIM 是对 TOSSIM 的扩展,采用实测的 MICA2 节点的能耗模型对节点的各
种操作所消耗的能量进行跟踪,从而实现无线传感器网络的能耗性能评价。PowerTOSSIM
的缺点是,所有节点的程序代码必须是相同的,而且无法实现网络级的抽象算法的仿真。
7
第二章 Omnet++简介
概述
目前,存在的网络通用协议十分有限。Ethernet 普遍用于有线局域网,IEEE 802.11 主要
用于无线局域网,而 TCP 则为不可靠的媒质提供可靠的传输。然而,对于传感器网络来说,
它没有这种权威的协议或算法,将来也未必能有,因为传感器网络通常是基于特定应用的。
另外,无线传感器网络的设计需要同时考虑能量效率、容错率、同步、服务质量、调度方法、
系统拓扑等的影响。因此,ns-2 等网络模拟器对于无线传感器网络的仿真是有局限的。本书
将介绍另一种新的网络模拟器 OMNeT++ ( Objective Modular Network Testbed in C++),并运用
它进行无线传感器网络协议算法的仿真。
OMNeT++是 Objective Modular Network TestBed in C++的英文缩写,它是开源的基于组
件的模块化的开放网络仿真平台,是近年来在科学和工业领域里逐渐流行的一种优秀的网络
仿真平台。OMNeT++作为离散事件仿真器,具备强大完善的图形界面接口和可嵌入式仿真
内核,同 NS2,OPNET 和 JavaSim 等仿真平台相比,OMNeT++可运行于多个操作系统平台,
可以简便定义网络拓扑结构,具备编程,调试和跟踪支持等功能。OMNeT++主要用于通信
网络和分布式系统的仿真,目前最高版本为 OMNeT3.3p1。
2.1 OMNeT++框架
2.1.1 OMNeT++组成
OMNeT++主要由六个部分组成:仿真内核库(simulation kernel library,简称 Sim),
网络描述语言的编译器(network description compiler, nedc),图形化的网络编辑器
(graphical network description editor,GNED),仿真程序的图形化用户接口-Tkenv,
仿真程序的命令行用户接口-Cmdenv,图形化的输出工具-Plove 和 Scalar。 Sim 是仿真
内核和类库,用户编写的仿真程序要同 Sim 连接,Sim 在 OMNeT++中占据最为核心重要的地
位。下面详细介绍的另外两重要组成部分。
(1).网络描述(NED)语言
NED 是模块化的网络描述语言。网络描述包括大量的对组件的描述,如通道,简单和复
合模块的类型。这些组件描述可用于各种不同的网络描述中。NED 语言用来定义模型中的网
络拓扑结构,较为简单的网络拓扑可以使用 GNED,但复杂网络的拓扑描述还应该用 NED 源
文件方式书写。
(2).用户接口
OMNeT++的用户接口用于实现仿真程序的人机交互,OMNeT++允许模型内部机制对用户
可视化,也允许用户启动和终止仿真,并更改模型内部的变量。OMNeT++中的图形化接口是
一个用户工具,可方便用户了解模型内部的运行机制。
用户接口和仿真内核的交互是通过一个已定义的接口实现的。无需改变仿真内核,就可
以实现不同类型的用户接口。同样无需更改模型文件,仿真模型可在不同接口下运行。用户
以在强大图形化用户接口下测试和调试仿真程序,并最后可在简单快速的用户接口中运行,
而且该接口支持批处理。
目前 OMNeT++支持两种用户接口,即 Tkenv 和 Cmdenv。对仿真进行的测试和调试可以
8