目
录
第一章 无线传感器网络概述 ································································ 6
概述 ·························································································································6
1.1 NS-2 ····················································································································6
1.2 OPNET ················································································································6
1.3 SensorSim ············································································································ 7
1.4 EmStar ················································································································7
1.5 GloMoSim ············································································································7
1.6 TOSSIM ·············································································································· 7
1.7 PowerTOSSIM ······································································································8
第二章 OMNET++简介 ·····································································9
概述 ·························································································································9
2.1 OMNeT++框架 ····································································································· 9
2.1.1 OMNeT++组成 ································································································ 9
2.1.2 OMNeT++结构 ·······························································································10
2.2 OMNeT++的安装 ·································································································11
2.3 OMNeT++语法 ····································································································12
2.3.1 NED 语言 ······································································································12
2.3.1.1 NED 总概述 ····························································································· 12
2.3.1.2 Ned 描述的组件 ························································································13
2.3.1.3 函数 ······································································································· 15
2.3.2 简单模块 ······································································································17
2.3.2.1 OMNET++中离散事件 ·············································································17
2.3.2.2 包传输模型 ····························································································· 17
2.3.2.3 定义简单模块 ···························································································18
2.3.2.4 简单模块中的主要成员函数 ······································································· 20
2.3.3 消息 ············································································································ 21
2.3.3.1 cMessage 类 ····························································································· 21
2.3.3.2 消息定义 ································································································ 21
2.3.3.3 消息的收发 ····························································································· 22
2.3.4 模块参数、门及连接的访问 ·············································································23
1
2.3.4.1 消息参数的访问 ························································································23
2.3.4.2 门和连接的访问 ························································································24
2.3.4.3 门的传输状态 ···························································································26
2.3.3.4 连接的状态 ······························································································26
2.4 仿真过程 ········································································································ 27
2.5 配置文件 omnetpp.ini ························································································ 28
2.6 结果分析工具 ·································································································· 29
2.6.1 矢量描绘工具 Plove ···················································································· 29
2.6.2 标量工具 Scalar ·························································································· 29
27、结束语 ···········································································································30
第三章 物理层仿真(信道) ·······························································32
3.1 UWB 的基础知识 ·································································································32
3.1.1 UWB 信号的应用背景 ····················································································· 32
3.1.2 UWB 信号的定义 ····························································································32
3.1.3 UWB 的脉冲生成方式(高斯脉冲,非高斯脉冲) ····················································34
3.1.4 UWB 的调制方式 ························································································· 34
3.1.5 用功率控制多址接入方法来进行链路的建立控制 ··············································· 36
3.2 用 OMNeT++对 UWB 进行仿真 ·············································································37
3.2.1 算法仿真的概述 ·····························································································37
3.2.2 算法的具体流程 ·····························································································39
3.2.3 算法的主要代码 ·····························································································41
3.2.4 仿真结果分析 ································································································58
3.2.5 应用前景 ······································································································58
参考文献 ·················································································································59
第四章 MAC 层仿真 ········································································· 60
概述 ······················································································································· 60
4.1 无线传感器网络 MAC 层特性及分类 ······································································ 60
4.1.1 无线信道特性 ································································································60
4.1.2 MAC 设计特性分析 ························································································61
4.1.3 无线传感器网络典型 MAC 协议的分类 ······························································ 61
4.2 基于随机竞争的 MAC 协议 ···················································································62
4.2.1 S-MAC 协议[12] ·······························································································62
4.2.2 T-MAC 协议 ·································································································· 64
4.2.3 AC-MAC 协议 ································································································65
4.3 基于时分复用的 MAC 协议 ···················································································65
4.3.1 D-MAC 协议 ··································································································65
2
4.3.2 TRAMA 协议 ·································································································66
4.3.3 AI-LMAC 协议 ······························································································· 66
4.4 其他类型的 MAC 协议 ························································································· 67
4.4.1 SMACS/EAR 协议 ·························································································· 67
4.4.2 基于 CDMA 技术的 MAC 协议 ·········································································67
4.4.3 DCC-MAC ·····································································································68
4.5 基于 OMNeT++的 MAC 层协议仿真 ······································································ 69
4.5.1 S-MAC 协议的仿真 ·························································································69
4.5.2 S-MAC 协议流程图 ·························································································70
4.5.3 S-MAC 协议的分析 ·························································································71
4.6 小结 ··················································································································86
参考文献 ·················································································································86
第五章 网络层仿真 ···········································································88
概述 ······················································································································· 88
5.1 无线传感器网络路由协议研究 ··············································································· 88
5.1.1 无线传感器网络协议分类 ················································································ 88
5.1.2 无线传感器网络中平面路由 ··············································································90
5.1.3 无线传感器网络中层次化路由 ···········································································91
5.1.4 经典算法的 OMNET 仿真 ················································································93
5.2 无线传感器网络路由协议研究的发展趋势 ······························································ 104
5.3 无线传感器网络层路由协议与 OMNET++仿真 ······················································· 104
5.3.1 无线传感器网络层路由与 OMNET++仿真的基本概念[19] ······································104
5.3.1.1 传感器网络的体系结构 ············································································ 105
5.3.1.1.1 传感节点的物理结构 ········································································· 105
5.3.1.1.2 传感器网络的体系结构与网络模型 ·······················································106
5.3.2 传感器网络层路由协议的基本概念 ·································································· 106
5.3.2.1 网络通信模式[28] ····················································································· 106
5.3.2.1.1 单播: ···························································································· 107
5.3.2.1.2 广播: ···························································································· 107
5.3.2.1.3 组播: ···························································································· 108
5.3.2.2 传感器网络层设计[29] ················································································108
5.3.3 OMNET++仿真软件的基本概念 ·······································································109
5.4 无线传感器网络路由协议介绍 ··············································································110
5.4.1 泛洪法(Flooding)[32] ······················································································· 111
5.4.2 定向扩散(Directed Diffusion:DD)[33] ································································112
3
5.4.3 LEACH( Energy Adaptive Clustering Hierarchy)[34] ················································· 113
5.5. OMNET++仿真实例 ···························································································114
5.5.1 泛洪法 ········································································································114
5.5.2 gossiping 协议 ·······························································································119
5.6 本章总结 ··········································································································121
参考文献 ··············································································································· 121
第六章 应用层仿真 ········································································· 125
6.1 无线传感器网络节点定位 ···················································································· 125
6.1.1 节点定位的基本概念 ·····················································································125
6.1.1.1 节点定位的定义 ····················································································· 125
6.1.1.2 节点定位的重要性 ·················································································· 126
6.1.2 节点定位的研究 ··························································································· 126
6.1.2.1 测距方法 ·······························································································126
6.1.2.2 节点定位原理 ························································································ 127
6.1.2.3 节点定位算法分类 ·················································································· 128
6.1.2.3.1 锚节点分类 ······················································································ 128
6.1.2.3.2 计算方式分类 ···················································································129
6.1.2.3.3 测距分类 ························································································· 130
6.1.2.3.4 节点移动性分类 ················································································130
6.1.2.4 节点定位性能评价[37] ···············································································130
6.1.3 基于 OMNET++的 DV—Hop 定位算法仿真 ························································132
6.1.3.1 DV—Hop 定位算法的基本思想 ·································································· 132
6.1.3.2 DV—Hop 定位算法仿真 ··········································································· 133
6.2 网络管理 ··········································································································141
6.2.1 概叙 ··········································································································· 141
6.2.1.1 wsn 网络管理的定义及范畴 ·······································································142
6.2.1.2 wsn 网络管理系统的分类 ·········································································· 143
6.2.1.3 wsn 网络管理系统的设计标准 ····································································144
6.2.2 wsn 网络管理系统 ························································································· 145
6.2.2.1 能量管理系统 ························································································ 145
6.2.2.1.1 SenOs[5] ····························································································145
6.2.2.2 拓扑控制系统 ························································································ 146
6.2.2.2.1 TopDisc 算法 ···················································································· 146
6.2.2.3 可调试、可配置、可编程系统 ···································································148
6.2.2.2.1 sympathy 系统[42] ··············································································· 148
6.2.2.2.2 Agilla 系统[7] ····················································································· 149
6.2.3 典型网络管理算法的 Omnet 模拟 ···································································· 150
6.2.3.1 基于 Wsn 的一个简单拓扑查找算法算法模拟 ···············································150
4
6.2.4 结论 ···········································································································155
6.3 基于路由层安全协议的 OMNeT++仿真 ································································· 156
6.3.1 基础知识介绍 ······························································································ 156
6.3.1.1 无线传感器网络安全性的重要性和必要性 ····················································156
6.3.1.2 无线传感器网络的安全目标 ······································································156
6.3.1.3 无线传感器网络中的路由协议概述 ····························································· 157
6.3.1.4 无线传感器网络路由协议的攻击方法 ·························································· 157
6.3.1.5 无线传感器网络中经典路由协议安全性分析 ·················································160
6.3.1.6 安全路由技术分析 ·················································································· 162
6.3.1.6.1 密钥管理技术[20, 23, 24, 25] ······································································ 162
6.3.1.6.2 安全路由协议 ···················································································162
6.3.2 在 OMNeT++ 中的仿真 ·················································································163
6.3.3 总结 ···········································································································172
参考文献 ··············································································································· 172
第七章 实例(无线传感器网络移动节点定位仿真) ······························ 179
概述 ······················································································································179
7.1 移动定位算法介绍 ····························································································· 179
7.1.1 室内移动节点定位算法 ··················································································179
7.1.1.1 Active Badge 系统 ···················································································· 180
7.1.1.2 RADAR 系统 ·························································································· 180
7.1.1.3 Cricket 系统 ····························································································180
7.1.2 室外移动节点定位算法 ··················································································181
7.1.2.1 基于静态定位的移动定位算法 ···································································181
7.1.2.2 纯移动定位算法 ····················································································· 182
7.2 移动定位算法的 OMNeT++仿真 ···········································································183
7.2.1 MCL(Monte Carlo Localization)定位算法简介 ··················································183
7.2.2 MCL(Monte Carlo Localization)的 OMNeT++仿真 ············································ 185
7.2.2.1 建立网络拓扑 ························································································ 185
7.2.2.2 编码阶段 ·······························································································190
7.3.总结和发展趋势 ································································································· 195
参考文献 ··············································································································· 195
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 的性能评价。
6
1.3 SensorSim
SensorSim 是建立在 NS-2 的一个采用 DSR 的 802.11 网络模型上的。SensorSim 是用于
WINS 平台的,需要用 SensorWare Tel 脚本进行设计。SensorSim 在仿真时跟踪了节点的能
量使用情况,其能量模型来自 WINS 节点,使得其无法用于 Mote 平台的仿真。另外,SensorSim
已经停止开发和支持,也无法下载到程序代码。
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 的缺点是没有提供能量模型,无
法对能耗有效性进行评价。
7
1.7 PowerTOSSIM
PowerTOSSIM 是对 TOSSIM 的扩展,采用实测的 MICA2 节点的能耗模型对节点的各
种操作所消耗的能量进行跟踪,从而实现无线传感器网络的能耗性能评价。PowerTOSSIM
的缺点是,所有节点的程序代码必须是相同的,而且无法实现网络级的抽象算法的仿真。
8