第五章 网络层仿真.........................................................................................................................3
概述...........................................................................................................................................3
5.1 无线传感器网络路由协议研究........................................................................................3
5.1.1 无线传感器网络协议分类.....................................................................................3
5.1.2 无线传感器网络中平面路由.................................................................................5
5.1.3 无线传感器网络中层次化路由.............................................................................6
5.1.4 经典算法的 OMNET 仿真.....................................................................................8
5.2 无线传感器网络路由协议研究的发展趋势..................................................................18
5.3 无线传感器网络层路由协议与 OMNET++仿真 ..........................................................19
5.3.1 无线传感器网络层路由与 OMNET++仿真的基本概念[19]...............................19
5.3.2 传感器网络层路由协议的基本概念...................................................................21
5.3.3 OMNET++仿真软件的基本概念 .........................................................................24
5.4 无线传感器网络路由协议介绍......................................................................................25
5.4.1 泛洪法(Flooding)[32] .............................................................................................26
5.4.2 定向扩散(Directed Diffusion:DD)[33]................................................................26
5.4.3 LEACH( Energy Adaptive Clustering Hierarchy)[34].............................................27
5.5. OMNET++仿真实例.......................................................................................................28
5.5.1 泛洪法...................................................................................................................28
5.5.2 gossiping 协议 .......................................................................................................34
5.6 本章总结..........................................................................................................................35
参考文献.................................................................................................................................35
第六章 应用层仿真.......................................................................................................................39
6.1 无线传感器网络节点定位..............................................................................................39
6.1.1 节点定位的基本概念...........................................................................................39
6.1.2 节点定位的研究...................................................................................................40
6.1.3 基于 OMNET++的 DV—Hop 定位算法仿真......................................................46
6.2 网络管理..........................................................................................................................54
6.2.1 概叙........................................................................................................................54
6.2.2 wsn 网络管理系统 ................................................................................................60
6.2.3 典型网络管理算法的 Omnet 模拟......................................................................65
6.2.4 结论.......................................................................................................................70
6.3 基于路由层安全协议的 OMNeT++仿真.......................................................................71
6.3.1 基础知识介绍.......................................................................................................71
6.3.2 在 OMNeT++ 中的仿真......................................................................................78
6.3.3 总结.......................................................................................................................86
参考文献.................................................................................................................................87
第七章 实例(无线传感器网络移动节点定位仿真)...............................................................93
概述.........................................................................................................................................93
7.1 移动定位算法介绍..........................................................................................................94
7.1.1 室内移动节点定位算法.......................................................................................94
7.1.2 室外移动节点定位算法.......................................................................................95
7.2 移动定位算法的 OMNeT++仿真...................................................................................97
7.2.1 MCL(Monte Carlo Localization)定位算法简介..............................................97
7.2.2 MCL(Monte Carlo Localization)的 OMNeT++仿真.......................................99
7.3.总结和发展趋势.............................................................................................................109
参考文献...............................................................................................................................109
概述
第五章 网络层仿真
无线传感器网络中的路由协议主要任务是将数据分组从事件节点通过网络转发到目的
节点,它主要包括两个方面的功能:寻找事件节点和目的节点间的优化路径,并将数据分组
沿着优化路径正确转发。传统的无线网络的路由协议主要以避免网络拥塞、保持网络的连通
性、提高网络 QOS 为主要目标[1],原因是:
(1) 节点数量众多,分布密集。由于传感器网络通常工作在人难以接近或者危险的区域
内,为了对一个区域执行监测任务,往往有成千上万传感器节点空投到该区域,外界的不确
定性使得必须布置大量的传感节点并使之协同工作才能完成信息收集等任务;同时利用节点
之间高度连接性来保证系统的容错性和抗毁性。
(2) 传感器节点的存储空间、计算能力和能量非常有限。节点由于受价格、体积和功耗
的限制,其计算能力、程序空间和内存空间比普通的计算机功能要弱很多。技术的进步会降
低器件的成本,但就目前的现状而言传感器节点资源紧张的状况还不会得到迅速的缓解。
(3) 电源容量有限,能耗是被首要考虑的因素。传感器网络特殊的应用领域决定了节点
散布之后,不能更换电池或给电池充电,一旦电池能量用完,这个节点也就失去了作用(死
亡)。因此,降低和平衡节点能耗,延长网络的生存时间就成为传感器网络研究中的一个关
键领域,在传感器网络设计过程中,任何技术和协议的使用都要以节能为前提。
5.1 无线传感器网络路由协议研究
5.1.1 无线传感器网络协议分类
WSNs 路由协议负责在 sink 点和其余节点间可靠地传输数据。由于 WSNs 与应用高
度相关,单一的路由协议不能满足各种应用需求,因而人们研究了众多的路由协议。为揭示
协议特点,我们根据路由协议采用的通信模式、路由结构、路由建立时机、状态维护、节点
标识和投递方式等策略,运用多种分类方法对其进行了分类。由于研究人员组合多种策略来
实现路由机制,故同一路由协议可分属不同类别 [2-4]. :
(1) 根据传输过程中采用路径的多少,可分为单路径路由协议和多路径路由协议。单路
径路由节约存储空间,数据通信量少;多路径路由容错性强,健壮性好,且可从众多路由中
选择一条最优路由。
(2) 根据节点在路由过程中是否有层次结构、作用是否有差异,可分为平面路由协议和层
次路由协议。平面路由简单,健壮性好,但建立、维护路由的开销大,数据传输跳数多,适
合小规模网络;层次路由扩展性好,适合大规模网络,但簇的维护开销大,且簇头是路由的
关键节点,其失效将导致路由失败。
(3) 根据路由建立时机与数据发送的关系,可分为主动路由协议、按需路由协议和混合
路由协议。主动路由建立、维护路由的开销大,资源要求高;按需路由在传输前需计算路由,
时延大;混合路由则综合利用这两种方式。
(4) 根据是否以地理位置来标识目的地、路由计算中是否利用地理位置信息,可分为基
于位置的路由协议和非基于位置的路由协议。.有大量 WSNs 应用需要知道突发事件的地理
位置,这是基于位置的路由协议的应用基础,但需要 GPS 定位系统或者其他定位方法协助
节点计算位置信息。
(5) 根据是否以数据来标识目的地,可分为基于数据的路由协议和非基于数据的路由协
议。有大量 WSNs 应用要求查询或上报具有某种类型的数据,这是基于数据的路由协议的
应用基础,但需要分类机制对数据类型进行命名。
(6) 根据节点是否编址、是否以地址标识目的地,可分为基于地址的路由协议和非基于
地址的路由协议。基于地址的路由在传统路由协议中较常见,而在 WSNs 中一般不单独使
用而与其他策略结合使用。
(7) 根据路由选择是否考虑 QoS 约束,可分为保证 QoS 的路由协议和不保证 QoS 的路由
协议。保证 QoS 的路由协议是指在路由建立时,考虑时延、丢包率等 QoS 参数,从众多可
行路由中选择一条最适合 QoS 应用要求的路由。
(8) 根据数据在传输过程中是否进行聚合处理,可分为数据聚合的路由协议和非数据聚
合的路由协议。数据聚合能减少通信量,但需要时间同步技术的支持,并使传输时延增加。
(9) 根据路由是否由源节点指定,可分为源站路由协议和非源站路由协议。源站路由协
议节点无须建立、维护路由信息,从而节约存储空间,减少通信开销。但如果网络规模较大,
数据包头的路由信息开销也大,而且如果网络拓扑变化频繁,将导致路由失败。
(10) 根据路由建立时机是否与查询有关,可分为查询驱动的路由协议和非查询驱动的
路由协议。查询驱动的路由协议能够节约节点存储空间,但数据时延较大,且不适合环境监
测等需紧急上报的应用。
5.1.2 无线传感器网络中平面路由
平面路由算法主要特点有:所需的信息域较小,一般仅需一跳(1 hop)内的信息;无
需进行周期性的路由信息维护;复杂度较低。
(1)扩散法(Flooding)[5]:扩散法是一种传统的网络通信路由协议。源节点 Source
将报文传送给它的每一个邻居节点, 每一个邻居节点又将其传输给各自的所有邻居节点。如
此继续下去, 直到将数据传输到汇集点 Sink 或为该报文所设定的生命期限变为零为止。
(2)闲聊法(Gossiping)[5]:Gossiping 是对 Flooding 算法的一种改进,算法中节点随
机选取一个相邻节点转发它接收到的分组,而不是采用广播形式。这种方法避免了消息的“内
爆”现象,但有可能增加端到端的传输延时。
(3)SAR(Sequential Assignment Routing):算法创建多棵树,每棵树的树根都是 Sink
的一跳邻居。在算法的初始阶段,树从根节点开始,不断吸收新的节点加入。在树延伸的过
程中,将避免那些 QoS 不好及能量已经消耗较多的节点。初始阶段结束后,大多数节点都
加入了某个树,各节点只需要知道自己的上一跳邻居,以转发报文。在网络工作过程中,一
些树可能由于中间节点能量耗尽而断开,也可能有新的节点加入网络而使网络拓扑结构发生
变化。所以网关周期性的发起“重新建立路径”的命令,以保证网络的连通性和最优的服务
质量。
(4)SPIN ( Sensor Protocol for Information via Negotiation)[6]:算法用临时的请求/应答
方式转发数据。Source 和收到数据的节点向其邻接点发广告报文 ADV 表示自己有数据要发
送(ADV 中包括了对即将发送数据的描述);有兴趣的邻接点发 REQ 报文响应;而后发送
节点将数据封装为 DATA 发送过去,如此转发直到 Sink。
算法通过使用节点间的协商制度和资源自适应机制, 解决了 Flooding 中存在的不足之
处,即为了避免出现扩散法的信息爆炸问题和部分重叠现象, 传感器节点在传送数据之前彼
此进行协商, 协商制度可确保传输有用数据。另外,节点间通过发送源数据(即描述传感器
节点采集的数据属性的数据)而不是采集的整个数据进行协商。
(5)定向扩散(Directed Diffusion, DD)[7]:该模型是 Estrin 等人针对传感器节点资源
有限等特点设计的路由策略。其实现机制如下:Sink 向所有传感器节点发送兴趣(兴趣是通
过分配不同的属性值来表示不同任务的描述符) , 每个传感器节点在收到兴趣后将其保存在
各自的 CACHE 中。每个兴趣项包含一个时间标签域和若干个梯度域。当一个兴趣传遍整
个网络后, 从 Source 到 Sink 之间的梯度就建立起来了,梯度反映了网络中节点对匹配请
求条件的数据源的近似判断。一旦 Source 采集到兴趣所需的数据, 那么它将沿着该兴趣的
梯度路径传输数据到汇集点或基站。
DD 中的网络梯度思想源自生物学中的蚂蚁种群模型。研究人员在实验过程中发现绝大
多数盲蚂蚁在擦肩而过时通过彼此发送信息激素可找到一条从源点到目标点的最短路径。透
过这一现象, 将其思想引用到网络中就产生了网络梯度的概念。图 5.1 描述了定向扩散模型
的基本工作原理。
A.兴趣传播阶段 B.初始梯度的建立 C.数据沿增强路径传输
图 5.1 DD 的实现机制
(6)Rumor 协议[8] :如果 sink 点的一次查询只需一次上报,Directed Diffusion 协议开
销就太大了,Rumor 协议正是为解决此问题而设计的。该协议借鉴了欧氏平面图上任意两条
曲线交叉几率很大的思想。当节点监测到事件后将其保存,并创建称为 Agent 的生命周期较
长的包括事件和源节点信息的数据包,将其按一条或多条随机路径在网络中转发。收到
Agent 的节点根据事件和源节点信息建立反向路径,并将 Agent 再次随机发送到相邻节点,
并可在再次发送前在 Agent 中增加其已知的事件信息。sink 点的查询请求也沿着一条随机路
径转发,当两路径交叉时则路由建立;如不交叉,sink 点可 flooding 查询请求。在多 sink
点、查询请求数目很大、网络事件很少的情况下,Rumor 协议较为有效。但如果事件非常多,
维护事件表和收发 Agent 带来的开销会很大。图 3 表示了 Rumor 协议中 Agent 传播和 Agent
路径与查询路径的交叉情形。.
5.1.3 无线传感器网络中层次化路由
在层次路由算法中,网络通常被划分为簇(cluster),每个簇由一个簇头(cluster-head)
和多个簇成员(cluster-member)组成,低一级网络的簇头是高一级网络中的簇成员。在这
种分级结构中,簇头不仅负责簇内信息的收集和融合处理,还负责簇间数据转发。层次路由
协议中簇的形成通常是基于节点的能量和其与簇头间的距离。为了延长整个网络的生存期,
簇头节点需要周期更新。层次路由的优点是便于管理,可以对系统变化做出快速反应,能够
提供高质量的通信服务,能量利用率较高。但簇的维护开销较大。
(1)LEACH(Low-Energy Adaptive Clustering Hierarchy)[9]:该协议是由 Heinzelman 等
人提出的。协议将操作分为若干轮(round),每轮包括创建阶段和稳定运行阶段。在创建阶
段,每个节点取一个介于 0 和 1 之间的随机数 q。若 q 大于门限值 T(n)则该节点成为簇头。
当节点 n∈G 时门限值 T(n) =1/{1-P×[r mod (1/p)]};否则 T(n) = 0。其中 p 是簇头总数占全
部节点总数的百分比;r 是当前的轮次;G 是在最近轮没有成为簇头的节点集合而后,簇头
向所有节点广播这一消息。依据接收信号的强度,节点选择它所要加入的组,并告知相应的
簇头。在稳定工作阶段,节点持续采集监测数据,传给本簇簇头,簇头进行数据融合处理后
将数据发送到 Sink。稳定工作阶段持续一段时间后,整个网络进入下一轮工作周期,重新
选择簇头并分簇。
(2)TEEN(Threshold Sensitive Energy Efficient Sensornetwork Protocol)[11]:TEEN 和
LEACH 的实现机制非常相似,只是 TEEN 中定义了硬、软两个门限值,以确定是否需要发
送监测数据。只有当传感器检测的信息超过了设定的门限时才向簇头发送数据。当监测数据
第一次超过设定的硬门限时,节点用它作为新的硬门限,并在接着到来的时隙内发送它。在
接下来的过程中,如果监测数据的变化幅度大于软门限界定的范围,则节点传送最新采集的
数据,并将它设定为新的硬门限。通过调节软门限值的大小,可以在监测精度和系统能耗之
间取得合理的平衡。当检测的值超过了硬门槛,它被立刻发送出去;如果当前检测的值与上
一次之差超过了软门限,也被立刻发送出去。采用这样的方法,可以监视一些突发事件和热
点地区,减小网络内传输的报文数量。
(3)PEGASIS(Power-Efficient Gathering in Sensor Information Systems)[10]:PEGASIS
也是由 LEACH 发展而来。它假定组成网络的传感器节点是同构且静止的,节点发送能量递
减的测试信号,通过检测应答来确定离自己最近的相邻节点。通过这种方式使网络中的所有
节点了解彼此的位置关系,进而每个节点依据自己的位置选择要加入的簇。簇头参照位置关
系优化出到 Sink 节点的最佳链路。因为 PEGASIS 中每个节点都以最小功率发送数据分组,
并有条件完成必要的数据融合,减小业务流量,因此整个网络的功耗较小。但其缺点在于节
点维护位置信息需要额外的资源,而这一位置信息相当于传统网络中的拓扑信息。
(4) TTDD 协议[12] :这是一个层次路由协议,主要是解决网络中存在多 sink 点及 sink
点移动问题。当多个节点探测到事件发生时,选择一个节点作为发送数据的源节点,源节点
以自身作为格状网(grid)的一个交叉点构造一个格状网。其过程是:源节点先计算出相邻交
叉点位置,利用贪心算法请求最接近该位置的节点成为新交叉点,新交叉点继续该过程直至
请求过期或到达网络边缘。交叉点保存了事件和源节点信息。进行数据查询时,sink 点本地
flooding 查询请求到最近的交叉节点,此后查询请求在交叉点间传播,最终源节点收到查询
请求,数据反向传送到 sink 点。Sink 点在等待数据时,可继续移动,并采用代理(Agent)机
制保证数据可靠传递。与 Directed Diffusion 协议相比,该协议采用单路径,能够提高网络生
存时间,但计算与维护格状网的开销较大;节点必须知道自身位置;非 sink 点位置不能移
动;要求节点密度较大。图 8 表示 TTDD 协议的格状网建立与数据查询情况。
(5)Estrin 等人提出了多层分簇算法——一种新型的分簇实现机制。工作在网络中的
传感器节点处于不同的层,所处层次越高,传感器能覆盖的面积就越大。开始时所有节点均
在最低层,通过竞争获得提升高层的机会。在每个工作周期结束后,高层节点将视自己的状
态信息(如有无子节点,功率是否充足等)决定是否让出簇头位置。
(6)Younis 等人提出了基于三层体系结构的路由协议。与 LEACH 不同的是,该协议
要求在网络运行前由终端用户将传感器节点划分成簇,并通知每个簇头节点的 ID 标识和簇
内所分配节点的位置信息。簇内节点可以以感知、转发、感知并转发、休眠这四种方式之一
存在。簇头不受能量的限制,它可以监控节点的能量变化,决定并维护传感器的四种状态,
并利用代价函数作为链路成本,选择最小成本的路径作为节点与其通信的最优路径。
5.1.4 经典算法的 OMNET 仿真
图 5.2 OMNET 仿真框架图
用 OMNET 仿真路由算法的模块图如图 5.2 所示,传感器节点由四个模块构成,
sm_application 主要是应用层模块的程序,sm_cordinator 模块是一个协调模块,协调各部分