无线传感器网络各类路由协议仿真

合集下载

无线传感器网络路由协议的设计与仿真

无线传感器网络路由协议的设计与仿真

无线传感器网络路由协议的设计流程:
1、确定网络拓扑和节点部署:根据实际应用场景,确定传感器节点的部署 位置和网络拓扑结构。
2、选择路由协议类型:根据应用需求和网络特点,选择适合的路由协议类 型,如按需路由、表驱动路由、基于位置的路由等。
3、设计路由算法:根据所选路由协议类型,设计相应的路由算法,包括节 点间的通信方式、路由发现和维护机制等。
感谢观看
在仿真过程中,我们发现所设计的路由协议在能量消耗和延迟时间方面表现 较好,但容错能力有待提高。为了优化协议性能,我们针对容错性进行了深入研 究。
协议优化
针对仿真中发现的容错性问题,我们采取了以下优化措施:
1、引入多路径机制:通过设计多路径路由协议,使数据能够沿着多个路径 传输,降低因单个节点或链路故障导致的数据传输中断风险。
4、实现协议模块:将设计的路由算法通过编程实现为网络协议模块,并集 成到网络操作系统中。
协议仿真
为了评估无线传感器网络路由协议的性能,我们使用NS2仿真工具对其进行 了仿真。以下是仿真步骤:
1、配置网络拓扑和参数:根据实际应用场景,我们在NS2中配置了相应的网 络拓扑结构和节点部署位置,并设置了节点间通信的物理和链路层参数。
2、优化节点调度算法:改进节点调度算法,使节点能够更加合理地分配能 量,避免出现能量消耗不均的情况,从而提高整个网络的能量利用效率。
3、加强错误恢复机制:在协议中加入错误恢复机制,当检测到数据传输错 误时,能够及时采取措施进行纠正,提高数据传输的可靠性。
经过优化后,我们再次使用NS2对优化后的路由协议进行了仿真验证。通过 对比优化前后的仿真结果,发现优化后的路由协议在容错性和能量消耗方面均得 到了显著改善。这表明我们的优化方案是可行的,提高了无线传感器网络路由协 议的性能。

无线传感器网络分簇协议在OPNET平台上的模拟仿真

无线传感器网络分簇协议在OPNET平台上的模拟仿真

目录目录............................................................................................................................................ - 1 -【论文摘要】............................................................................................................................ - 3 -【关键字】................................................................................................................................ - 3 -【Abstract】 .............................................................................................................................. - 4 -【Keywords】 ........................................................................................................................... - 4 -论文正文.................................................................................................................................... - 5 -1 前言................................................................................................................................ - 5 -1.1 无线传感器网络简介................................................................................................ - 5 -1.2 无线传感器网络仿真工具........................................................................................ - 5 -1.3 OPNET Modeler的简介............................................................................................ - 5 -1.4 主要研究工作与内容安排........................................................................................ - 6 -2 无线传感器网络................................................................................................................ - 7 -2.1 无线传感器网络的概述............................................................................................ - 7 -2.2 无线传感器网络的路由协议.................................................................................... - 9 -2.3 LEACH协议............................................................................................................ - 10 -2.3.1 LEACH协议算法分析.................................................................................. - 10 -2.3.2 LEACH协议优缺点讨论及改进方案.......................................................... - 11 -3 OPNET Modeler 网络仿真技术....................................................................................... - 13 -3.1 OPNET Modeler 网络仿真技术中的基本概念..................................................... - 13 -3.2 OPNET Modeler 的安装......................................................................................... - 14 -3.3 OPNET Modeler 的基本应用技术......................................................................... - 15 -3.4 OPNET Modeler 建立网络拓扑结构分析............................................................. - 18 -3.4.1 建立网络拓扑结构的步骤.............................................................................. - 18 -3.4.2 建立一个简单的网络拓扑结构.................................................................... - 18 -3.5 无线传感器在OPNET Modeler 上的仿真实现.................................................... - 23 -3.5.1 进程模型........................................................................................................ - 24 -3.5.2 节点模型........................................................................................................ - 25 -3.5.3 网络模型........................................................................................................ - 26 -3.5.4 仿真结果分析及讨论.................................................................................... - 27 -4 实验完成情况.................................................................................................................. - 29 -参考文献.................................................................................................................................. - 31 -致谢...................................................................................................................................... - 32 -评语...................................................................................................................................... - 33 -无线传感器网络分簇协议在OPNET平台上的模拟仿真【论文摘要】目的本论文的目的是为了研究无线传感器网络在OPNET上的仿真。

无线传感器网络DD协议及仿真

无线传感器网络DD协议及仿真



路径加强和数据传输

源节点沿着已建立好的梯度,以较低速率发送数据信息。 sink节点会给最先收到新数据的邻居节点发送加强兴趣消息。 接收加强兴趣消息的邻居节点依照同样的规则,加强它最先收 到新数据的邻居节点,从而形成一条“梯度”值最大的加强路 径。 后续数据就可以沿着这条加强路径以较高的数据传输速率进行 数据传输。

收到兴趣报文的节点查询自己的缓冲区是否有相同的记录,如 果没有,就往缓存中加入一条新纪录;否则,丢弃报文。然后 将兴趣转发给邻居节点,最终洪泛到整个网络,找到所匹配的 查询数据。
梯度建立

梯度:定义了一个数据传输方向和传输速率。 兴趣扩散的同时反向建立从源节点到sink节点的数据传输梯度。 一个节点接收到起邻居节点发来的兴趣消息时,会将该兴趣消 息发送给所有的邻居节点,这就使得每一对邻居节点都建立了 一个指向对方的梯度。
第4章 数据传输路由
定向扩散路由协议及OPNET仿真
定向扩散(DD)路由协议 DD的OPNET仿真

定向扩散(DD)路由协议
兴趣消息扩散 梯度建立 路径加强 数据传输


兴趣扩散

Sink节点根据不同的应用需求定义不同的兴趣报文,采用属性值对(对象类型、对象实例、数据发送间隔时间、持续时间、 位置区域等)来命名查询任务,讲查询任务封装成兴趣报文。 Sink节点将兴趣报文通过洪泛逐级扩散。


定向扩散(DD)路由协议 DD的OPNET仿真

数据包

数据包DATA
网络层封装数据
应用层感知数据

兴趣包SINK_INTEREST
节点属性

兴趣包更新时间
应用层模型

无线传感器网络GPSR协议及仿真

无线传感器网络GPSR协议及仿真


基于位置信息的路由协议
– 贪婪路由算法 – 定向区域泛洪 – 分层路由协议
定向区域泛洪

节点向目标节点方向的所有邻居节点转发数据分组。 鲁棒性强,但网络负载重。 典型算法:DREAM Nhomakorabea

DREAM

DREAM:Distance Routing Effect Algorithm for Mobility,移动距离效应路由算法:
– 基于LS的路由协议:会因路由中若干节点的失效、移动而
经常中断路由控制负担较大,带宽资源消耗过多。 – 层次化路由策略:
» 局部的先应式路由与全局的反应式路由的结合,以期达到提高数据 传输效率和网络可扩展性的目的。 » 需要维护端到端路由协议,对动态变化网络的适应能力有限。
地理路由概述

基于位置信息的路由协议(地理路由):
– 需要定位技术支持,节点通过定位技术获得自身、 邻居节点以及目标节点的地理位置信息。 – 节点利用这些地理位置信息,可以避免路由探测包 的盲目洪泛,从而进行有效的路由发现和路由维护 ,甚至可以基于无状态的分布式的非端到端的数据 转发。
地理路由概述

贪婪路由算法:
– 在整个数据传输中不需要建立端到端的基于全局链 路状态的路由,不需要存储路由信息表,也不需要 发送路由更新信息。

若DISTi <= DISTs+d (d为一给定的常数),I对请求分组进行处理,用 DISTi 替换DISTs并转发。随后的节点以相同的方法确定是否转发。 若DISTi > DISTs+d ,I丢弃该分组。
» 若I为目的节点,则发“路由应答”给S。
LAR协议评价

优点:
– 将路由查找限制在RZ中,在RZ之外的节点不受路由请求的干 扰,因此查找速度快,开销小,网络的扩展性能好。 – 只提出策略,不拘泥于某一种确定的协议,适用范围广。

无线传感器网络的S-MAC协议仿真

无线传感器网络的S-MAC协议仿真

《无线网络技术》实验四报告单班级____ ___ 姓名_____ ___ 学号__ ___实验日期__ ___ 评分____ 教师签名______ _______实验名称:无线传感器网络的S-MAC协议仿真实验目的:了解无线传感器网络的S-MAC协议及提出一种消息节点睡眠机制和退避策略,然后通过在NS2平台上的仿真,可发现对能量消耗和网络延迟有部分改善。

实验内容:1 .无线传感器网络概述无线传感器网络(witeleSs Sensor Networks,WSN)是集信息采集、信息传输、信息处理于一体的综合智能信息系统。

它综合了微机电系统(Micro—Elec— tron Mechanical System,MS)、传感器技术、嵌入式技术、现代网络及无线通信技术、分布式信息处理技术等,能够通过各类集成化的微型传感器协作地实时监控、感知和采集各种环境或监控对象的信息。

在军事领域、工业领域、农业领域、环境检测、医疗监护、智能家具系统等许多领域都有十分广阔的发展前景。

2.无线传感器网络结构无线传感器网络包括传感器节点(Sensor Node)、汇聚节点(Sink Node)和管理节点(Manager node)。

无线传感器网络的协议栈采用5层的分层结构,分别为:物理层、数据链路层、网络层、传输层和应用层。

在网络协议栈中,MAC子层位于数据链路层,直接与物理层接口,负责控制和接入物理介质。

提供无线传感器网络中节点到节点的连接方式,确保传感器节点间通信资源分配的公平性和有效性。

3.基于竞争的MAC协议分析S-MAC(sensor MAC)[协议是针对IEEE802.11中节点处于侦听状态,消耗大量能量的问题,提出的周期性的休眠/活动调度机制。

S-MAC由一个开始的同步时间段开始,交换SYNC消息形成虚拟簇。

相同虚拟簇下的节点可以传输数据。

节点只有在活动阶段才发送消息,如图1.1SMAC采用数据传递机制,通过这种周期性的修眠/活动工作机制,节点降低了闲置侦听,降低了能耗。

无线传感器网络安全路由协议SNEP的分析与仿真实现_王芳

无线传感器网络安全路由协议SNEP的分析与仿真实现_王芳

第23卷第5期2009年10月江苏科技大学学报(自然科学版)Journa l of J i angsu U niversity of Science and T echno l ogy(N atura l Sc i ence Editi on)V o.l 23N o .5O c t .2009无线传感器网络安全路由协议S NEP 的分析与仿真实现王 芳,华 伟,宋晓宁(江苏科技大学计算机科学与工程学院,江苏镇江212003)摘 要:以提供可靠保密通信为目标的安全路由协议的分析是无线传感器网络安全基本研究领域之一.阐述了针对无线传感器网络的攻击手段所采取的措施,研究了安全路由协议,重点研究了其中的传感网络加密协议(Sensor N et wo rk Encryp -ti on P rotoco ,l SNEP),并进行了仿真实现,最后针对无线传感网络的攻击方式对S NEP 的安全性进行了分析.结果证明SNEP 协议具有数据机密性、数据认证、防御重放攻击等安全服务.关键词:无线传感器网络;网络仿真;安全;路由协议中图分类号:TP393 08 文献标志码:A 文章编号:1673-4807(2009)05-0425-05收稿日期:2009-02-24基金项目:国家863高技术计划基金资助项目(2006AA01Z436)作者简介:王 芳(1971 ),女,江苏镇江人,讲师,研究方向为网络安全.E-m ai:l hu ashan3010@sina .co mSecurit y routi ng prot ocol S NEP anal ysis and simul ationfor w ireless sens or networksW ang Fang ,HuaW e,i Song X iaon i n g(School of Co m puter Sci en ce and E ngi neeri ng ,Jiangs u Un i versity of Science and Techno l ogy ,Zhen jiang J i angs u 212003,Ch i na)Abst ract :The analysis of security routi n g protocolw hose m ain ob jective is to provide re li a b le co mm unication is one of the basic research field of secure w ire less sensor net w orks .This paper descri b ed the solutions of vari o us attacks for w ire less sensor net w o r ks ,and investigated security routi n g pr o toco.l It espec i a ll y focused on sensor net w or k encrypti o n pr o toco l SNEP ,and si m ulated the protoco.l Further m ore ,the aut h ors analyzed the security for SNEP .The results sho w tha t SNEP has security serv ices i n cluding data confidentiality ,data authenticati o n,and rep lay a ttacks .K ey w ords :w ireless sensor net w ork ;net w ork si m ulation ;security ;routi n g protocol 无线传感器网络(W ireless Senso r N et w o r k ,W SN )是新兴的一代传感器网络,综合了微电子技术、嵌入式计算技术、现代网络及无线通信技术、分布式信息处理技术等先进技术.与传统无线通讯网络Ad H oc 网络相比,W SN 的自组织性、动态性、协作性和以数据为中心等特点,使其可以应用到人员无法到达的地方,比如战场,沙漠等.因此W SN 被广泛应用于国防军事、环境检测、交通管理等领域.无线传感器网络是一种特殊的无线网络,不仅面临着传统网络所受到的安全威胁,而且面临着自身一些特殊的安全威胁,主要表现[1]: 无线通信很容易受到攻击; 节点可能失效或被敌方俘获; 网络拓扑结构变化使节点信任关系也随之变化,特别是有节点被检测出为破坏节点时;网络决策和算法的执行往往需要多个节点协作实现,敌方可以针对协作过程实施新类型的攻击,破坏协作的完成.目前针对各种潜在的攻击和安全威胁采取的相应的防范和管理措施为:密钥建立和管理、安全路由、入侵检测、安全广播和组播、防止窃听、安全数据汇聚、安全定位、防止物理攻击和防范拒绝服务(Denia l o f Ser v ice ,DoS)攻击等.从2000年开始,国内外科技工作者对W SN 的研究越来越热烈,在基础理论和工程技术2个方面提出了大量问题[2],尤其在路由协议方面仍然有很多关键问题没有解决,例如结构频繁改变的路由协议、面向应用的路由协议、安全路由协议等问题.分析了入侵容忍路由协议(I ntr usi o n -to lerant r outi n g pr o tocol for w ireless sensor net w or ks ,I NSE NS)[3],基426江苏科技大学学报(自然科学版)第23卷于位置的可信传感网络路由协议(Trusted routi n g for location a w are sensor net w orks,TRANS)[4],通过协商的信息传感网络协议(Sensor Protoco l for I nfor m ati o n via Negotiation,SPI N)以及传感网络加密协议(Sen-sor Net w ork Encr yption Protoco,l SNEP),认为安全路由协议在配置网络节点拓扑结构、定义报文内容格式、识别节点身份等方面具有非常重要的作用,并且SNEP协议本身只描述安全实施的协议过程,并不规定实际使用的算法[5],具体的算法在具体实现的时候考虑.因此本文对SNEP进行了仿真实现,并给出了SNEP的安全分析.结果表明SNEP协议是个低通信开销的、简单高效的安全通信协议.1 S NEP安全协议传感网络加密协议SNEP的功能是提供节点到接收机之间数据的鉴权、加密和刷新.SNEP有许多特有的优势: 对通信的负担比较小,因为SNEP只是在每条信息后面加了一些位的数据; 使用了计数功能,但是避免了传输这些值,而是在节点间通过状态来检验; SNEP保持了语义上的安全,可以防止窃听; SNEP能提供认证,重放保护,以及新鲜性等.目前科技工作者研究较多的SPI NS协议是可选的传感器网络安全框架之一,是基于时间的、高效的、容忍丢包的流认证协议(m icro T i m ed E fficient Strea m i n g Loss-to lerant A uthen tica ti o n Protoco,l -TESLA)和SNEP协议相结合的产物,通过 -TESLA来完成广播的认证,再通过SNEP来完成数据保密性、完整性和新鲜性的保护[6].射频信道发送随机数据需要更多的能量,因此SNEP设计了一种加密机制,通过不需要增加传输量的方法来达到保护语义安全的目的.SNEP使用的方式是在发送者和接收者之间共享计数器.通信方都有共享的计数器,并且在每次加密块之后都会增加计数器的值,所以计数器的值不需要包含在被传输的消息中.为了达到双向认证和数据完整性的保护,SNEP采用了信息的认证码(M essage Authen-tication Code,MAC)方式.以上机制的组合形成了传感网络加密协议SNEP.加密数据的格式为:E={D}(K encr,C),其中, D是需要传送的数据,K en cr为使用的加密密钥,而C就是计数器.MAC的值是M=MAC(K mac,C|E),其中,K mac表示消息认证算法的密钥,C|E为计数器值C和密文E的粘接,表明消息认证码是对计数器和密文一起进行运算.K encr和K mac是通过主密钥K生成出来的.从节点A发送到节点B的消息R A格式如下[5]A B:{D}(K encr,C),MAC(K mac,C|{D}(K en cr,C))SNEP协议具有的特性:1)语义安全 计数器的值在每个消息发送之后都会增加,所以每次消息加密后都不一样.而计数器的长度足够长,从而保证在节点的生命周期内不会重复.2)数据认证 若MAC值验证通过,接收者可确定消息是正确的发送者所发出的.3)重放攻击保护 MAC中计数器的值防止了旧信息的重放.这是因为如果计数器的值不放在MAC中进行加密,攻击者就能很容易采取重放攻击.4)低通信量 计数器的状态是存储在每个节点自身,所以不必在每条消息中都发送.因为只采用了在节点A发往节点B的消息中加入计数器的方法,而没有保证节点A所响应的信息的确是由节点B发出的,所以简易版的SNEP 只能提供弱数据新鲜性.这种新鲜性认证存在一个问题,如果节点A收到的回复消息不是按照其请求包发送顺序给出的,那么它将不能为每个请求回送正确的响应[7].为此,SNEP定义了强新鲜认证方法.2 S NEP协议仿真实现针对无线传感网络的不同应用有不同的仿真工具,如J-Si m,OMN e T++,SE NSE,TOSSI M,Sha w n 等[8].NS-2是一个基于离散事件的网络仿真器,具有丰富的构件库,能够仿真网络运行的全过程.但其构件库不可能包括所有特定用户所需要的模块.因此,对于从事网络研究的用户来说,在NS-2的基础上进行源代码的修改和再开发是不可避免的. NS-2具有的仿真功能允许一个运行的模拟器和真实的网络节点交互,在协议设计上是一个很强的工具.本文采用NS-2网络模拟平台来进行模拟仿真.首先使用一个简单的泛洪F l o od i n g协议作为通信协议,在此上进行SNEP的加密.系统中维护了一张路由表来记录以前转发过的包.每个节点在路由过程中维护一个计数器,每发送一个包后就将计数器增加1,并且把该计数器通过MAC算法加密后进行传递.考虑到重用性,对数据的对称加密使用了数据加密标准(Data Encr yption Standard, DES)算法,而MAC算法则使用了DES的密码分第5期王 芳,等:无线传感器网络安全路由协议SNEP 的分析与仿真实现427组链接下的信息认证码(C ipher B l o ck Cha i n ing M essage Authenticati o n Code ,CBC -MAC )模式.本文模拟的是较简单的情况,即节点A 发送消息D A 给节点B,然后节点B 发送一个反馈消息给节点A.具体步骤为:1)A 发送信息给B.节点A 通过在发往节点B 的消息中加入新鲜数N A 的方式来达到强新鲜性的保护(N A 是一个随机选取而且足够长的数字,从而保证它是不能被预测出的).A 随机产生新鲜数N A ,然后把它一起随请求信息R A 发送给节点B (图1).图1 节点A 发送请求消息的流程图F i g .1 Flo w char t of node A send i ng request m essage2)B 接收和认证.在节点B 完成了认证以后,如果不成功,则B 会把这个A 发送的消息丢弃,如果认证成功,则B 将准备反馈信息.B 用认证的协议在返回给A 的信息R B 中加入A 发送给B 的新鲜数.为了避免在B 反馈给A 的信息中直接把新鲜数放进去,在SNEP 协议中把新鲜数放入MAC 编码中用MAC 算法进行加密(图2).SNEP 协议提供的强新鲜性消息格式是A B :N A ,{D A }(K encr ,C),MAC(K mac ,C |{D A }(K encr ,C))BA :{DB }(K encr ,C),MAC(K mac ,N A |C |{D B }(Kencr ,C))图2 节点B 反馈消息的流程图Fig .2 F l ow chart of node B send i ng feedback m essage3)A 在接收到B 的反馈信息后,如果MAC 值验证正确,节点A 就知道是节点B 在收到了请求信息后发送了这个反馈信息(图3).在NS-2平台上,光有协议代码是不够的,还需要写一些T cl 代码来验证所写的协议程序是否正确.采用最简单的场景测试,用3个节点A,B,C 构成一个2跳的拓扑结构.以A 作为发送源,C 为接收者,B 为中间转发节点.运行后产生的trace 结果如下s 10 000000000_0_AGT ---0cbr 512[0000]-------[0:02:0320][0]00r 10 000000000_0_RTR---0cbr 512[0000]-------[0:02:0320][0]00s 10 000000000_0_RTR ---0cbr 532[0000]-------[0:02:0300][0]00f 10 005056593_0_RTR ---0cbr 532[0ffffffff 0800]------[0:02:0290]10r 10 009829093_2_AGT---0cbr 532[0ffffffff 1800]------[0:02:0290]20其中,s ,r ,f 分别标记发送、接受和转发.后面依次是触发的时间、节点号、包的类型、大小、序列号, 0:02:0 表示的是 源地址:端口目标地址:端口 .428江苏科技大学学报(自然科学版)第23卷图3 节点A认证节点B反馈信息的流程图F ig.3 Flo w chart of node A s au thentication ofnode B s feedback从上述仿真过程可以看出,在设计的场景中, SNEP安全协议的加密是可以在一个简单的泛洪协议的基础上叠加的.SNEP协议的计算开销为1次加密和1次MAC计算.29字节负载的各类密码算法对微处理器ATm ega128L工作在7 3728MH z频率的CP U 的影响结果见表1.表2则是计算29字节分组MAC对CP U的影响.由于SNEP不规定实际使用的算法,各密码算法和MAC对CPU的影响也不尽相同.考虑到重用性,对数据的对称加密选用了DES 算法,通过比较发现采用DES算法来实现加密和MAC占用了大量CPU资源,因此SNEP协议最好选取算法SkipJac k,RC5或者TEA来进行加密和消息认证的实现才能充分减少CP U计算开销[6].在能量开销方面,假设发送的分组包长度为30字节,MAC增加了8字节,而且MAC能够进行完整性保护,这样就不需要额外的2字节循环冗余校验(Cyc lic Redundancy Check,CRC),故网络净开销只有6字节,因此需要总发射能量的20%开销.其余能量开销为用于数据传输的能量占总能量的71%,用于保持数据新鲜性的随机数传输占7%,还有2%的能量开销用于MAC和加密计算.表1 29字节负载的各类密码算法对CPU的影响Tab le1 The i m pact of29-byte s p ayload ciph eron CPU consump tion算法时间/m s CP U周期Sk i p J ack2 1615925 2RC51 5011059 2RC610 7879478 7TEA2 5618874.4DES608 004482662 4表2 计算29字节分组M AC对CPU的影响T ab le2 Th e i mpact of calcu lati ng29-by te packetMAC on CPU consump ti on算法时间/m s CP U周期Sk i p J ack299 0022044 6RC52 0815335 4RC615 84116785 2TEA25 0737380 1DES1208 008906342 4总之,SNEP协议提供了点到点通信认证、数据机密性、完整性和新鲜性等安全服务,是一个低通信开销的简单高效的安全通信协议.3 S NEP协议安全性分析3.1 数据机密性针对机密性的主要攻击方式是监视与窃听攻击.仿真时对数据包采用的是DES加密,虽然是比较简单的对称加密,而且已经有了破解的算法,但是基于节点非常有限的资源,破解的可能性就比较小,因此可以认为窃听、监视的攻击是没有效果的.3.2 数据认证针对数据认证的攻击主要是用来防止伪装.攻击者有可能伪装成传输过程中的一员来进行传输,企图达到获得消息的目的.但是因为SNEP协议中的节点加密所采用的密钥都是事先由一个主密钥生成,所以一个外来的攻击者即使伪装成网络中的一员,也会因为它没有密钥而无法获得MAC码和DES密文的破译过程.3.3 重放攻击SNEP对于重放攻击的防御非常有效.不仅采用了计数器,并且采用了在端和端之间保存状态的方法,使得计数器的使用更符合无线传感网络的特点.每次在传输的数据末尾加上了计数器之后再进行加密,使得相同的明文和密钥加密得出的密文也是不同的,解决了重放攻击可能造成的问题.第5期王 芳,等:无线传感器网络安全路由协议SNEP的分析与仿真实现4294 结论1)研究了安全路由协议,对其中的传感网络加密协议SNEP进行了较深入的研究.2)仿真实现了SNEP协议3)针对无线传感网络的攻击方式对SNEP的安全性进行了分析.结果证明SNEP协议具有数据机密性、数据认证、防御重放攻击等安全服务.参考文献(References)[1]王芳,史金龙,刘同明.无线城域网络安全架构及其认证方法研究[J].江苏科技大学学报:自然科学版,2007,21(5):76-79.W ang F ang,Sh i Ji n l ong,L i u T ongm i ng.R esearch on se-cur i ty architec t ure and authen ticati on m e t hods for w i re l ess m etropo li tan area net wo rk[J].J ournal of J iangsu Univer-sit y of Science and T echnology:N at ural S cience Edition,2007,21(5):76-79.(i n Ch i nese)[2]李建中,高宏.无线传感器网络的研究进展[J].计算机研究与发展,2008,45(1):1-15.L i Ji anzhong,G ao H ong.Survey on sensor ne t w ork re-search[J].Journal of Computer R esearch and D evelop-m ent,2008,45(1):1-15.(i n Chi nese)[3]D eng J,H an R,M is hra S.I N SE N S:i ntrusion-to l eran trouti ng i n w ireless sensor ne t w orks[R].T echn ical R e p ort CUCS-939-02.U SA:D epart m ent o f Co m puter Sc ienceof U niversity of Colorado,2002.[4]T anachai w i w at S,Dave P,Bhind w a l e R,et a.l Poster ab-strac t secure locati ons:routi ng on trust and i so lati ng com-pro m ised senso rs i n l ocation-aw are senso r net wo rks[C]// P roceedings of the1st International Conf erence on Embed-d e d N et w orked Sensor Sy ste m s.[S..l]:AC M P ress,2003:324-325.[5]裴庆褀,沈玉龙,马建峰.无线传感器网络安全技术综述[J].通信学报,2007,28(8):113-122.P ei Q i ngq,i Shen Y u l ong,M a Ji anfeng.Survey of w ire-l ess senso r net wo rk security techniques[J].Journal on Comm unication,2007,28(8):113-122.(in Chi nese) [6]Gu i m araes G,Souto E,Sadok D,et a.l Evalua ti on o f se-cur ity m echan is m s i n w ireless sensor net works sy stem s co mm un i ca tions[C]//Proceedings of the2005Sy ste m s Comm unication.[s.n.],2005:428-433.[7]孙利民.无线传感器网络[M].北京:清华大学出版社,2005.[8]袁凌云,朱云龙.基于N S2的无线传感器交通监控网络仿真[J].系统仿真学报,2007,19(3):660-664.Y uan L i ngyun,Zhu Yunlong.W ire l ess sensor transpo rta-ti on mon i to ri ng ne t w ork si m ulation based on NS2[J].J ournal of Sy ste m Si mulation,2007,19(3):660-664.(i n Ch i nese)(责任编辑:曹 莉)。

基于0MNeT++的无线传感器网络通信协议仿真

基于0MNeT++的无线传感器网络通信协议仿真

基于0MNeT++的无线传感器网络通信协议仿真摘要:本文以0MNeT++为基础,仿真了无线传感器网络通信协议。

主要实现了以下几个方面:首先,搭建了仿真环境,并选择了适宜的仿真参数;其次,建立了基于0MNeT++的无线传感器网络通信协议仿真平台;然后,根据所选的仿真参数和通信协议构建了仿真场景;最后,通过测试和分析得出了有效的结论和解决方法。

本文的研究结果有望为无线传感器网络通信协议的实际应用提供有力的支持。

关键词:0MNeT++,无线传感器网络,通信协议,仿真,结论,解决方法正文:一、引言无线传感器网络(WSN)是目前普遍应用于有限场景下(如室内或建筑)的物联网系统,它的独特之处在于由大量的小型传感器组成。

WSN的传感器单位能够自主采集环境中的各种信息,并根据功能进行数据处理和通信,因此它能够在安防、健康监控、工业等许多领域发挥着越来越重要的作用。

本文主要基于0MNeT++,通过仿真的方式实现WSN的通信协议,包括以下几个步骤:1. 搭建仿真环境,包括电脑软件、0MNeT++交叉编译环境;2. 构建无线传感器网络通信协议仿真平台,包括协议与应用;3. 选择适宜的仿真参数,包括仿真场景、传感器节点数量、仿真步骤等;4. 进行仿真测试,并分析仿真结果;5. 得出有效结论和解决方法。

二、仿真环境的搭建本文所用的仿真环境基于0MNeT++开发平台,这是一款开源C++模拟器,可以模拟包括网络性能、节点运行和通信质量在内的各种情况。

三、无线传感器网络通信协议仿真平台的构建本文的无线传感器网络通信协议仿真平台主要基于0MNeT++平台实现,要实现WSN通信协议仿真,必须先经过下述步骤:1. 确定无线传感器网络节点数量与部署;2. 确定应用层通信协议,包括数据格式、应用程序等;3. 实现0MNeT++节点程序和仿真场景。

四、仿真参数的选择在进行0MNeT++之上的无线传感器网络通信协议仿真时,需要从一个合适的传感器场景开始。

无线传感器网络路由协议概述

无线传感器网络路由协议概述

无线传感器网络路由协议概述摘要:该文对无线传感器网络的路由协议进行了简要概述,总结了典型的平面路由协议和层次路由协议(分簇路由协议),重点介绍了leach路由协议和eeuc路由协议,并分析了其基本原理,最后对leach协议、leach-c协议和eeuc协议进行了模拟仿真,并对结果进行了简要分析和总结。

关键词:无线传感器网络;路由协议;leach中图分类号:tp393 文献标识码:a 文章编号:1009-3044(2013)11-2548-031 概述无线传感器网络是继承了计算机、通信和信息感知三大学科中众多科学知识的新兴领域,对无线传感器网络的认识,随着大量的相关研究而不断深入。

简单来说,无线传感器网络就是由传感器节点组成的,通过无线通信方式形成的一个多跳自组织网络[1]。

路由协议解决的是数据传输问题,是无线传感器网络的核心技术之一。

路由协议的性能和整个网络的性能密切相关。

无线传感器网络的路由协议骑着监控网络拓扑变化,建立、维护和删除节点间路由,保证在恶劣环境中节点间信息能准确、高效和及时传递的作用。

无线传感器网络节点间以ad-hoc方式进行通信,每个节点都可以充当路由器的角色,并且每个节点都具备动态搜索、定位和回复连接的能力。

路由协议负责将数据分组从源节点通过网络转发到目的节点。

它主要包括两个方面的功能,一是寻找源节点和目的节点间的优化路径,二是将数据分组沿着优化路径正确地进行转发[2]。

无线传感器网络的路由协议根据网络的拓扑结构的差别,可以分为平面路由协议和层次路由协议[3-4](即分簇结构路由协议)。

该文主要介绍几种常用路由协议,并对其进行仿真实验。

2 平面路由协议在平面路由协议的无线传感器网络中,所有传感器节点的地位平等,逻辑视图是平面结构。

因此不存在特殊节点,网络能耗均衡,鲁棒性好。

洪泛和闲聊(flooding and gossiping)[4]这种路由方式是最原始最传统的路由方式,不需要网络的任何拓扑信息、数据信息和路由信息,是典型的平面路由协议。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告课程无线传感网络各类路由协议仿真1.实验目的网络数据传输离不开路由协议,路由协议是其组网的基础,路由协议是无线传感器网络研究的重点之一,其主要的设计目标是降低节点能量消耗,延长网络的生命周期。

本次实验将仿真各类无线传感器网络路由协议。

2.实验要求争取考虑全面,考虑到各因素对各类协议的影响,以提高无线传感网络的性能。

3.设计思想(1)Flooding泛洪是一种传统的路由技术,不要求维护网络的拓扑结构,并进行路由计算,接收到消息的节点以广播形式转发分组。

对于自组织的传感器网络,泛洪路由是一种较直接的实现方法,但消息的“内爆”(implosion)和“重叠”(overlap)是其固有的缺陷。

为了克服这些缺陷,S.hedetniemi等人提出了Gossiping策略,节点随机选取一个相邻节点转发它接收到的分组,而不是采用广播形式。

这种方法避免了消息的“内爆”现象,但有可能增加端到端的传输延时。

Flooding路由协议中的内爆和重叠问题(2)SPIN (sensor protocol for information via negotiation)SPIN是以数据为中心的自适应路由协议,通过协商机制来解决泛洪算法中的“内爆”和“重叠”问题。

传感器节点仅广播采集数据的描述信息,当有相应的请求时,才有目的地发送数据信息。

SPIN协议中有3种类型的消息,即ADV,REQ和DATA。

ADV—用于新数据广播。

当一个节点有数据可共享时,它以广播方式向外发送DATA数据包中的元数据。

REQ—用于请求发送数据。

当一个节点希望接收DATA数据包时,发送REQ数据包。

DATA—包含附上元数据头(meta一header)的实际数据包。

SPIN协议有4种不同的形式:• SPIN-PP:采用点到点的通信模式,并假定两节点间的通信不受其他节点的干扰,分组不会丢失,功率没有任何限制。

要发送数据的节点通过ADV向它的相邻节点广播消息,感兴趣的节点通过REQ 发送请求,数据源向请求者发送数据。

接收到数据的节点再向它的相邻节点广播ADV消息,如此重复,使所有节点都有机会接收到任何数据。

• SPIN-EC:在SPIN-PP的基础上考虑了节点的功耗,只有能够顺利完成所有任务且能量不低于设定阈值的节点才可参与数据交换。

• SPIN-BC:设计了广播信道,使所有在有效半径内的节点可以同时完成数据交换。

为了防止产生重复的REQ请求,节点在听到ADV消息以后,设定一个随机定时器来控制REQ请求的发送,其他节点听到该请求,主动放弃请求权利。

• SPIN-RL:它是对SPIN-BC的完善,主要考虑如何恢复无线链路引入的分组差错与丢失。

记录ADV 消息的相关状态,如果在确定时间间隔内接收不到请求数据,则发送重传请求,重传请求的次数有一定的限制。

图3.2表明了SPIN协议的路由建立与数据传送。

SPIN协议的路由建立与数据传送基于数据描述的协商机制和能量自适应机制的SP创协议能够很好地解决传统的Flooding协议所带来的信息爆炸、信息重复和资源浪费等问题。

此外,由于协议中每个节点只需知道其单跳邻居节点的信息,拓扑改变呈现本地化特征。

SP州协议的缺点是数据广告机制不能保证数据的可靠传递,如果对数据感兴趣的节点远离源节点或者在源节点和目的节点中间的节点对数据不感兴趣,那么数据就不可能被传递到目的地。

因此,对于入侵发现等需要在定期间隔内可靠传递数据的应用系统来说,SP州并不是一个很好的选择。

(3)SAR (sequential assignment routing)在选择路径时,有序分配路由(SAR)策略充分考虑了功耗、QoS和分组优先权等特殊要求,采用局部路径恢复和多路经备份策略,避免节点或链路失败时进行路由重计算需要的过量计算开销。

为了在每个节点与sink节点间生成多条路经,需要维护多个树结构,每个树以落在sink节点有效传输半径内的节点为根向外生长,枝干的选择需满足一定QOS要求并要有一定的能量储备。

这一处理使大多数传感器节点可能同时属于多个树,可任选其一将采集数据回传到sink节点。

(4) LEACH (low energy adaptive clustering hierarchy)LEACH是MIT的Chandrakasan等人为无线传感器网络设计的低功耗自适应聚类路由算法。

与一般的平面多跳路由协议和静态聚类算法相比,LEACH可以将网络生命周期延长15%,主要通过随机选择聚类首领,平均分担中继通信业务来实现。

LEACH定义了“轮”(round)的概念,一轮由初始化和稳定工作两个阶段组成。

为了避免额外的处理开销,稳定态一般持续相对较长的时间。

如图3.4所示:LEACH 协议的时序图在初始化阶段,聚类首领是通过下面的机制产生的。

传感器节点生成0,1之间的随机数,如果大于阈值T,则选该节点为聚类首领.T 的计算方法如下:()[]pr P PT 1mod 1-=(3.1)其中p 为节点中成为聚类首领的百分数,r 是当前的轮数。

当簇头选定之后,簇头节点主动向网络中节点广播自己成为簇头的消息(ADV_CH)。

接收到此消息的节点,依据接收信号的强度,选择它所要加入的簇,并发消息通知相应的簇头(JOIN_REQ)。

基于时分多址(Time Division Multiple Address ,简称TDMA)的方式,簇头节点为其中的每个成员分配通信时隙,并以广播的形式通知所有的簇内节点(ADVSCH)。

这样保证了簇内每个节点在指定的传输时隙进行数据传输,而在其他时间进入休眠状态,减少了能量消耗。

在稳定工作阶段,节点持续采集监测数据,在自身传输时隙到来时把监测数据传给簇头节点(DATA),如图3.5所示。

簇头节点对接收到数据进行融合处理之后,发送到Sink 节点,这是一种减小通信业务量的合理工作模式。

持续一段时间以后,整个网络进入下一轮工作周期,重新选择簇头节点。

LEACH协议采用动态转换簇头的方法来平均网络节点的能量消耗,使因能量耗尽而失效的节点呈随机分布状态,因而与一般的多跳路由协议和静态簇算法相比,LEACH可以将网络生命周期延长15%。

但是LEACH协议在每轮固定簇头节点后在划分簇的过程中,簇头节点开销较大。

并且簇头节点的选择无法达到最优,有可能簇头节点位于网络的边缘或者几个簇头节点相邻,某些节点不得不传输较远的距离来与簇头通信,这就导致了大量能量消耗。

而且LEACH协议所有簇头节点直接与Sink节点通信,采用连续数据发送模式和单跳路径选择模式,使得每轮中簇头节点能耗巨大,因此不适合在大规模的传感器网络中应用。

(5) TEEN (threshold sensitive energy efficient sensor network protocol)依照应用模式的不同,通常可以简单地将无线自组织网络(包括传感器网络和Ad-hoc网络)分为主动(proactive)和响应(reactive)两种类型。

主动型传感器网络持续监测周围的物质现象,并以恒定速率发送监测数据;而响应型传感器网络只是在被观测变量发生突变时才传送数据。

相比之下,响应型传感器网络更适合应用在敏感时间的应用中。

TEEN和LEACH的实现机制非常相似,只是前者是响应型的,而后者属于主动型传感器网络。

在TEEN中定义了硬、软两个门限值,以确定是否需要发送监测数据。

当监测数据第一次超过设定的硬门限时,节点用它作为新的硬门限,并在接着到来的时隙内发送它。

在接下来的过程中,如果监测数据的变化幅度大于软门限界定的范围,则节点传送最新采集的数据,并将它设定为新的硬门限。

通过调节软门限值的大小,可以在监测精度和系统能耗之间取得合理的平衡。

图3.6表示的是TEEN协议中由聚簇构成的层次结构。

TEEN协议中由聚簇构成的层次结构TENE适用于实时性要求较高的应用场合,比如入侵警报,爆炸预警等,用户可以及时获取感兴趣的信息。

而且用户可以通过设置不同的软门限方便地平衡监测的准确性与系统节能性两项指标。

但是这个方案也有一些不足之处,例如门限值达不到,节点就永远不会和簇头节点通信,用户就无法从网络得到任何数据;没有相应的机制去区分那些没有感应到足够大变化的节点和处于关闭状态的节点,所以TEEN协议不适合应用在。

(6) PEGAGIS (power-efficient gathering in sensor information system)PEGASIS由LEACH发展而来。

它假定组成网络的传感器节点是同构且静止的。

节点发送能量递减的测试信号,通过检测应答来确定离自己最近的相邻节点。

在收集数据前,首先利用贪心算法将网络中的所有节点连接成一条单链。

通过这种方式,网络中的所有节点能够了解彼此的位置关系,进而每个节点依据自己的位置选择所属的聚类,聚类的首领向链的两端发出收集数据的请求,数据从单链的两个端点向首领流动。

中间节点在传递数据前要执行融合操作,最终由首领节点将结果数据传送给Sink节点。

因为PEGASIS中每个节点都以最小功率发送数据分组,并有条件完成必要的数据融合,减小业务流量。

因此,整个网络的功耗较小。

研究结果表明,PEGASIS支持的传感器网络的生命周期是LEACH的近两倍。

4.实验器材与工具MATLAB5.程序源代码function x=animation_datasmall=5; medium=20; large=50;% Event_name Animated Color/{on/off/toggle} Size anim_def={...{'Init_Application', 0, [0 0 0 ], small}, ...{'Packet_Sent', 1, [0 1 0 ], small}, ...{'Packet_Received', 1, [0 1 0 ], small}, ...{'Collided_Packet_Received', 0, [1 0 0 ], small}, ...{'Clock_Tick', 0, [0 0 0 ], small}, ...{'Channel_Request', 0, [0 0 0 ], small}, ...{'Channel_Idle_Check', 1, [1 0 0 ], small}, ...{'Packet_Receive_Start', 0, [0 1 0 ], small}, ...{'Packet_Receive_End', 0, [0 0 0 ], small}, ...{'Packet_Transmit_Start', 1, [1 0 0 ], medium}, ...{'Packet_Transmit_End', 0, [0 1 0 ], small}};for i=1:length(anim_def)a=anim_def{i};x(i)=struct('event', a{1}, 'animated', a{2}, 'color', a{3}, 'size', a{4}); endfunction application(S)% DO NOT edit simulator code (lines that begin with S;)S; persistent app_dataS; global ID tS; [t, event, ID, data]=get_event(S);S; [topology, mote_IDs]=prowler('GetTopologyInfo');S; ix=find(mote_IDs==ID);S; if ~strcmp(event, 'Init_Application')S; try memory=app_data{ix}; catch memory=[]; end,S; endS;switch eventcase 'Init_Application'signal_strength=1;if ID==1 % first node starts floodSet_Clock(1000)endPrintMessage('i')case 'Packet_Sent'PrintMessage('s')case 'Packet_Received'% data.data % message% data.signal_strength % received signal strengthif memory.sendp=sim_params('get_app', 'P');if isempty(p); p=.5; endif rand<pSend_Packet(radiostream(data.data, memory.signal_strength));endmemory.send=0;PrintMessage('r')endcase 'Collided_Packet_Received'% this is for debug purposes onlycase 'Clock_Tick'Send_Packet(radiostream('Message for 00111 from Golomb', memory.signal_strength));case 'GuiInfoRequest'disp(sprintf('Memory Dump of mote ID# %d:\n',ID)); disp(memory)case 'Application_Stopped'% this event is called when simulation is stopped/suspendedcase 'Application_Finished'% this event is called when simulation is finishedotherwiseerror(['Bad event name for application: ' event])endS; app_data{ix}=memory;function b=Send_Packet(data);global ID tradio=prowler('GetRadioName');b=feval(radio, 'Send_Packet', ID, data, t);function b=Set_Clock(alarm_time);global IDprowler('InsertEvents2Q', make_event(alarm_time, 'Clock_Tick', ID));function PrintMessage(msg)global IDprowler('TextMessage', ID, msg)function LED(msg)global IDprowler('LED', ID, msg)function varargout=infotitle1='Application FLOOD1D';str1={ 'This application illustrates the simple flooding algorithm.'; ...'';...'The sender mote transmits a message. Each mote receiving the';...'message retransmits it with probability p.' ;...'The value of p can be set in the ''Application Parameters''';...'window. The default value is p=0.5';...'';...'If p is too low, the flood dies out before every mote could';...'receive the message. If p it too high, the message is';...'retransmitted several times after every mote have received it,' ;...'thus causing an unnecessarily high settling time.';...'';...'The optimal value of p highly depends on topology.';...'';...'You can change the topology by editing the file FLOOD1D_TOPOLOGY.';...'';...'See also FLOOD2D.';...''};if nargout==0helpwin({ title1, str1}, 'Application Info')elsevarargout={ title1, str1};endfunction param=params;param(1).name='P'; param(1).default=0.5;function [topology,mote_IDs]=topology(varargin);Nx=10; Ny=1; % number of points on the gridix=1;t=[];distx=1;disty=5;X=1:distx:(Nx-1)*distx+1;Y=1:disty:(Ny-1)*disty+1;for i=Xfor j=Yt=[t; i,j];endendtopology=t;mote_IDs=1:Nx*Ny;function x=animationpersistent anim_dataif isempty(anim_data)small=5; medium=20; large=50;% Event_name Animated Color/{on/off/toggle} Size anim_def={...{'Init_Application', 1, [0 0 0 ], small}, ...{'Packet_Sent', 2, [1 0 0 ], small}, ...{'Packet_Received', 3, [1 0 0 ], small}, ...{'Collided_Packet_Received', 4, [1 0 0 ], small}, ...{'Clock_Tick', 0, [0 0 0 ], small}, ...{'Channel_Request', 0, [0 0 0 ], small}, ...{'Channel_Idle_Check', 1, [1 0 0 ], small}, ...{'Packet_Receive_Start', 0, [0 1 0 ], small}, ...{'Packet_Receive_End', 0, [0 0 0 ], small}, ...{'Packet_Transmit_Start', 1, [1 0 0 ], medium}, ...{'Packet_Transmit_End', 1, [0 1 0 ], small}};for i=1:length(anim_def)a=anim_def{i};if i==1anim_data=struct('event', a{1}, 'animated', a{2}, 'color', a{3}, 'size', a{4});elseanim_data(i)=struct('event', a{1}, 'animated', a{2}, 'color', a{3}, 'size', a{4});endendx=anim_data;function application(S)S; persistent app_dataS; global ID tS; [t, event, ID, data]=get_event(S);S; [topology, mote_IDs]=prowler('GetTopologyInfo');S; ix=find(mote_IDs==ID);S; if ~strcmp(event, 'Init_Application')S; try memory=app_data{ix}; catch memory=[]; end, S; endS;SENDER_ID=sim_params('get_app', 'Start_Mote');if isempty(SENDER_ID), SENDER_ID=1; endswitch eventcase 'Init_Application'signal_strength=1;memory=struct('send',1, 'signal_strength', signal_strength);if ID==SENDER_ID % this node starts floodSet_Clock(1000)PrintMessage('i')case 'Packet_Sent'memory.send=0;PrintMessage('s')case 'Packet_Received'% data.data % message% data.signal_strength % received signal strengthif memory.sendp=sim_params('get_app', 'P');if isempty(p); p=.3; end% p=0.3; % p is forced to 0.3 / Comment this line if you want to use it for optimizationif rand<pSend_Packet(radiostream(data.data, memory.signal_strength));endmemory.send=0;PrintMessage('r')endcase 'Collided_Packet_Received'% this is for debug purposes onlycase 'Clock_Tick'Send_Packet(radiostream('this is the message', memory.signal_strength));case 'GuiInfoRequest'if ~isempty(memory)disp(sprintf('Memory Dump of mote ID# %d:\n',ID)); disp(memory) elsedisp(sprintf('No memory dump available for node %d.\n',ID));endcase 'Application_Stopped'% this event is called when simulation is stopped/suspendedcase 'Application_Finished'% this event is called when simulation is finishedotherwiseerror(['Bad event name for application: ' event])endS; app_data{ix}=memory;S;function b=Send_Packet(data);global ID tradio=prowler('GetRadioName');b=feval(radio, 'Send_Packet', ID, data, t);function b=Set_Clock(alarm_time);global IDprowler('InsertEvents2Q', make_event(alarm_time, 'Clock_Tick', ID));function PrintMessage(msg)global IDprowler('TextMessage', ID, msg)function varargout=infotitle1='Application FLOOD2D';str1={ 'This application illustrates the flooding algorithm in 2D.'; ...'';...'The sender mote transmits a message. Each mote receiving the';...'message retransmits it with probability p.' ;...'The value of p can be set in the ''Application Parameters''';...'window. The default value is p=0.5.';...'';...'The starting node can also be selected (parameter Start_Mote).';...'Try 1 to start from the lower left corner, and 55 to start from';...'the center of the (10x10) grid.';...'';...'If p is too low, the flood dies out before every mote could';...'receive the message. If p it too high, the message is';...'retransmitted several times after every mote have received it,' ;...'thus causing an unnecessarily high settling time.';...'';...'The optimal value of p highly depends on topology.';...'';...'You can change the topology by changing the parameters X_Number,';...'Y_Number, and Distance.';...''};if nargout==0helpwin({ title1, str1}, 'Application Info')elsevarargout={ title1, str1};endfunction param=params;param(1).name='P'; param(1).default=0.5;param(2).name='Start_Mote'; param(2).default=1;param(3).name='X_Number'; param(3).default=10;param(4).name='Y_Number'; param(4).default=10;param(5).name='Distance'; param(5).default=1;function [topology,mote_IDs]=topology(varargin);ix=1;t=[];%dist=1;% Nx=10; Ny=10; % number of points on the gridNx =sim_params('get_app', 'X_Number'); if isempty(Nx), Nx=10; end Ny =sim_params('get_app', 'Y_Number'); if isempty(Ny), Ny=10; end dist=sim_params('get_app', 'Distance'); if isempty(dist), dist=1; endX=1:dist:(Nx-1)*dist+1;Y=1:dist:(Ny-1)*dist+1;for i=Xfor j=Yt=[t; i,j];endendtopology=t;mote_IDs=1:Nx*Ny;6.实验结果7.结论名称主要思想Flooding 收到数据的节点向所有邻居节点广播报文Gossiping 收到的数据节点随机选取地选择一个邻节点转发报文SAR 依据每条路径上的能量资源和QoS要求来决策路由SPIN 根据临时的请求、应答的方式转发数据Flooding中节点的能耗较快。

相关文档
最新文档