《基于MATLAB的SPIN协议仿真.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的SPIN协议仿真.docx(36页珍藏版)》请在课桌文档上搜索。
1、摘要SPlN协议,全称SenSorprotocolforinformationvianegotiation1,译文为信息协商的传感器协议,这是一种自适应通信路由协议,该协议把数据作为中心,他的存在是为了解决传统路由协议所存在的弊端,如信息内爆和信息重叠问题。为了使高新技术更好服务于人类,人们开发了许多软件进行模拟仿真,极大地缩短了涉及协议的周期也降低了难度。MATLAB仿真器作为目前已知的三大数学软件之一能够极大地方便我们的研究,也在一定程度上验证了协议的可用性。本文将利用MATLAB仿真软件对SPIN协议(信息协商的传感器协议)进行仿真,进一步验证协议的可用性、正确性以及优缺点。关键词:路由
2、协议SPIN仿真MATLABoAbstractTheSPINprotocol,alsoknownasthesensorprotocolforinformationvianegotiation1,istranslatedasthesensorprotocolforinformationnegotiation.Itisanadaptivecommunicationroutingprotocolthatplacesdataatthecenter,anditsexistenceistoaddressthedrawbacksoftraditionalroutingprotocols,suchasinfo
3、rmationimplosionandinformationoverlap.Inordertobetterservehumanitywithhigh-tech,peoplehavedevelopedmanysoftwareforsimulation,greatlyshorteningthecycleinvolvingprotocolsandreducingdifficulty.TheMATLABsimulator,asoneofthethreeknownmathematicalsoftware,cangreatlyfacilitateourresearchandtosomeextentveri
4、fytheusabilityoftheprotocol.ThisarticlewilluseMATLABsimulationsoftwaretosimulatetheSPINprotocol(sensorprotocolforinformationnegotiation),furtherverifyingtheusability,correctness,andadvantagesanddisadvantagesoftheprotocol.Keywords:routingprotocolSPINSimulationMATLAB。无线传感器网络的应用前景十分广阔,其中的关键技术众多,路由协议因其应
5、用的广泛性、实用性成为了热点话题,研究者众。由于无线传感器网络的应用环境和传感器节点的能量有限,路由协议设计主要围绕寿命以及能源展开,使用周期长且能源充足的协议无疑更加优秀2。因为FIoOding(洪泛路由)协议存在的“重叠”和“内爆”等问题,提高网络生命周期和节点能量效率是必要的。SPIN路由协议为解决上述传统路由协议出现的缺陷,采用了资源自适应机制和协商的方法,也是首个以数据作为核心的协议。出于节省能量的考虑,节点间采用发送元数据而非所有原数据这样的方法来进行协商。而且传感器节点能够实时监控各自的能量变化,以便于随时终止低能量的节点,在一定程度上规避了盲目使用资源的问题。这对于无线传感器的
6、研究与探索无疑是一件好事。但在传输新数据时,由于忽略自身能量,当邻居节点能量不足时,直接向邻居节点发送ADV报文,就无法若转发数据,那么就不能将新数据转发给上一节点,这被称为“数据盲点”,并可能影响整个网络中数据包的收集。无线传感器网络是一门新兴技术,电气与电子工程师协会(InstituteofElectricalandElectronicsEngineers)作为一个国际性的电子技术与信息科学工程师的协会,目前暂无与无线传感器相关的研究组3,美国有关于这方面的研究及公开报道最早也要追溯到2000年,我国在无线传感器网络这方面的研究工作才刚刚开始,由此可见,无线传感器的研究处在一个起步阶段,因
7、此与之相关的技术与掌握技术的人才在那时并不对多见,是一项新兴技术,一切都处于空窗状态。而我国的个别高校已经在进行该领域的研究工作,但目前主要工作集中在推新以及了解全球研究进展方面,尚未有新设计的协议问世,所以在这方面国内外的差距并不大。目前,无线传感器技术仍旧处于探索模拟的阶段,想要据此造福人类仍旧有待研究。无线传感器网络的研究方向十分广泛,这也为此专业的探索增加了难度,无处不通也意味着到处不通,但由于目前的研究目的明确,我们也在一定程度上节省了精力与时间,在网络技术方面,主要以节点定位及网络层协议研究为主。而协议的研究与节实现节能的关系优又密不可分,因此本论文所论述的SPlN协议便是基于节能
8、而实现的。MATLAB是作为一款商业数学软件由美国的MathWorks公司出品的,主要用于深度学习、图像处理与计算机视觉、无线通信、建模,仿真和原型设计、算法开发、控制系统、探索和可视化、量化金融与风险管理、应用程序开发、数据分析、机器人、机器学习、信号处理等领域、深度学习等。4MATLAB的MA是指matrix,而LAB则是IabOratory的前缀,顾名思义,MATLAB的功能必然蕴藏在这两个词里,译为矩阵工厂。该软件主要面向的是自动控制、数字信号处理5、科学计算、通讯设计与仿真的高科技计算环境。它将图像处理、高等函数、数值分析、复变函数、初等函数、数据可视化、以及建模等诸多强大功能融为一
9、体,实现一物多用的便捷功能,并且仅仅只在一个可视窗口中就可以操作,为数学、建筑、金融、计算机以及其他涉及到精确测算的众多领域提供了一个最佳的选择,并在很大程度上挣脱了传统非交互式编程语言的模式的束缚。MATLAB作为三大数学软件之一,在有关专业领域内备受欢迎,以矩阵为基本数据单位,因其强大的功能在业内举足轻重。MATLAB大受追捧的原因之一就是用MATLAB来解决问题更加便捷,不仅融合了另外两大数学软件的优点,他的指令也符合数学的常用形式,相同要求的前提下,若是使用其他编程语言,或许要多花费更多的时间与精力,这使MATLAB的功能更加强大,成为首屈一指的数学软件。在新的版本如MATLABR20
10、22aMATLABR2022b和目前的最新版本MATLABR2023a支持其他高级汇编语言。1979年,美国国家工程院院士CleveBarryMoler编写了最早的MATLAB(MatrixLaboratory),那时MATLAB并不是一个真正意义上的编程语言,只是Moler用Fortran语言编辑的一个交互式矩阵计算器,其中仅仅包含71个关键字和内置函数,只能通过Fortran语言来进行扩展。即便是这样,MATLAB在成为Moler的教学工具以后还是受到了学生们的欢迎,即便一些科学家们对此嗤之以鼻,但随着越来越多的学生发现了MATLAB的好处之后,这个软件渐渐被越来越多的科研人员所熟知。19
11、83年,MOler偶然结识了一位名叫JaCkLittle的业内人士,他持有MlT的电子工程和计算机科学学士学位,以及StanfOrd的电子工程硕士学位。二人一见如故,LitUe对于MATLAB的开发很感兴趣,随即二人就合作达成一致。1984年,他们又找到了第三位合伙人SteVeBangert,他们共同创立了MathWorks,在美国推出了MATLABo当MATLAB成为了一种商品时,属于他自己的编程语言也诞生了,随着时间的推移,MATLAB的版本和功能不断推陈出新,又经过了20年的风云变迁,国际控制界已经将MATLAB视为最标准的计算软件,在国际的舞台中大放异彩,被称为“工程师和科学家的语言”
12、。 数值计算功能:提供高水平的数学计算能力,在其他数学软件中脱颖而出。 符号计算功能:高能数学或是工程数学中存在的高级计算符号因其收购了M叩Ie的使用权而被收录进自身的工具箱中,使得相关计算更加方便快捷。数据分析和可视化功能:在科研领域以及工程计算中,仅靠数字的堆积无法探索出其中奥义,将数据转化为图像,二维变为三维,有助于人们高效便捷的展开研究。 文字处理功能:强大的文字处理功能广泛应用于论文、教材、报告、专著等领域,使繁琐复杂的文字编辑“动”起来,实现另一程度的可视化。 SIMULINK动态仿真功能:该功能用于建模或者分析与仿真系统环境,其中具有大量的功能块,供开发者自由使用,拖放自如。 用
13、于构建应用程序的工具 用于高级汇编语言的接口全世界有数百万的开发者与科研人员都在通过MATLAB进行各种项目的分析与调整,同时也将自己的设计理念付诸其上,用自己的才华与软件的强大的功能渐渐的将我们的世界变得发高能,不断推出的新产品也在潜移默化之中改变着我们的生产与生活。经过十数年的发展,当前的MATLAB早己拥有了自己的语言,逻辑清晰易懂,又符合技术者们一贯的习惯,因此能够轻松地实现如可视化数据或是内置图形等操作。MATLAB内置的工具箱与模块集无一不是经过了长期测算精准度量,基于这些严格测试,我们能够放心地利用该软件实现所需的工作和学习6。鉴于计算机有可能会出现的种种故障,为防止因某些突发状
14、况而导致的文件遗失,MATLAB还拥有扩展云的功能,使开发者们的设计不仅能够保存在桌面,还能够即时上传云端。除此之外,MATLAB代码可以与其他高级语言集成,免去了多种高级语言无法通用的麻烦。(1)简单易学:数学化的语言编写程序由C语言开发而来,逻辑清晰易懂,上手简单,操作便捷。(2)图形处理功能强大:不仅能够绘制一维二维等简单图形,还能绘制工程性较强的复杂图形,也可根据自己的需要制作动画,实现可视化效果。(3)可扩展性强:用户可以选择自己编写MATLAB文件,自创工具箱,还可以使用独立的程序从而避免单一语言编程,初学者易于学习并掌握。(4)内部函数丰富:避免了常规的利用具体函数编译,MATL
15、AB的内部函数库里有海量函数存储,随取随用,减少了不必要的精力消耗,将更多的时间投入到创造当中。MaHab是一个基于矩阵的高级语言,于C语言颇有渊源,而C语言的强大之处就在于,无论是系统软件还是应用软件他都可以完成编写,因此,MATLAB的语言环境是非常高效的7,利于开发者们适应并熟练应用。用户既可以在窗口直接编写语句和执行命令,也可以将M文件提前写好再一起运行。此外,由于该语言可携性好、可扩展性强,这也让MATLAB在科学研究等各个领域走的更快更远。MATLAB内部编写成了一个大集合,其中包括了海量的算法以及数学函数8O如对数、线性方程组求解、指数、微分方程求解、三角函数、矩阵运算复变函数、
16、初等数学运算、进制数转换、偏微分方程的组求解、双曲函数、傅里叶变换、极限、稀疏矩阵运算、散点图、直方图、玫瑰花园,极坐标图、导数和建模动态仿真等等,极大地方便了用户的开发与使用。除了上述函数与算法之外,MATLAB中还包括更为复杂的算法公式,这些均为业界最新的研窕成果,并且从问世之初便开始了无限次的优化和改革,使其计算能力与日俱增,可代替C和C+等底层编程语言。若要求相同,使用MATLAB比使用其他语言更方便、快捷。MATLAB由于其被MOIer创造的初中就是减轻学生的课业压力,所以从最初版本的MATLAB开始,就写入了数据可视化功能,也就是将用户所编写的程序、函数或其他功能的数据转换成图形,
17、并在其上进行注释,也可根据不同用户的需要进行打印。不仅如此,MATLAB还能生成动态的画面、三维立体图以及其他高层次作图。新版本的MATLAB中在图形处理这一方面有了极大地进步,不仅优化了原有的功能,对于其他软件未曾开发过的新方向如色度处理、光照处理等方面也展现了出色的工作能力,在图形处理的界面也做了相应调整,以满足更多的用户即需要9。工欲善其事,必先利其器。起初的MATLAB的功能并不完善,只是MoIer处于教学考虑而有针对性的设计,但如今,随着需求的增长,MATLAB在越来越多的专业领域内量身定作了更多的模块集,这些由各种领域的专家带头研究的工具箱经过长期的调试如今己经非常成熟。用户可以直
18、接利用他们进行工作与学习,省去了亲自编程的麻烦。诸如数据采集、定点仿真、嵌入式系统开发、偏微分方程求解、实时快速原型及半物理仿真、系统辨识、DSP与通讯、非线性控制设计、优化算法、神经网络、模型预测、信号处理、控制系统设计、地图工具、模糊逻辑、数据库接口、LMl控制、样条拟合、金融分析、概率统计、小波分析、鲁棒控制、图像处理、电力系统仿真等,都在工具箱中有占据了主导地位10。MATLAB主要可应用于以下几个方面: 数值分析 数值和符号计算 工程与科学绘图 控制系统的设计与仿真 数字图像处理技术 数字信号处理技术 通讯系统设计与仿真 财务与金融工程 管理与调度优化计算(运筹学)MATLAB的应用
19、范围非常广,涉及诸如且不仅上述等多方应用领域。MATLAB系统:LMATLAB开发环境2. MATLAB数学函数库3. MATLAB语言4. MATLAB图形处理系统5. MATLAB应用程序接口(API)MATLAB实际上是一套函数和文件工具集,每年都会发布两个版本,根据上半年和下半年分为a、b版,每一次版本的更新,都意味着功能的优化与创新。MATLAB的窗口包括工具栏、命令行窗口、工作区、状态栏等,页面分区符合日常习惯,用户体验感好,能够提供集成编译和调试环境,这都是集成用户工作空间的功劳。见错误!未找到引用源。MATLAB中内置了一个数学函数库,囊括了数量庞大的计算算法。如多项式函数、基
20、本初等函数、复变函数,快速傅里叶变换,拉普拉斯函数等。MATLAB语言是一种基于矩阵的高级语言,语言便捷简练、用户使用快捷、绘图功能强大、扩展能力强,交互性好、编程效率高,这些都是他的优点。用这种语言无论是简单的还是复杂的程序均可建立。图形处理系统将向量和矩阵等更为直观的显示出来,以图片的形式展现在用户眼前并且可以对图形添加注释和打印。能够进行去模糊、图像变换、空间域内的图像增强、图像分割、二值化、直方图增强、对比度增强、图像压缩、目标分割和标记等等。它包括多重曲线绘图函数、双Y轴绘图、复数绘图等函数。MATLAB为不断满足用户需求,已经不再囿于最初的功能,通过扩展已有的工具箱,将MATLAB
21、的功能很大程度的推向了一个新的高度11。这些工具箱中添加了更多单位公式和函数,为用户的工作和学习提供了便捷。其中的许多工具是图形用户界面,此界面包括MATLAB桌面和命令窗口、工作空间、历史命令窗口、路径搜索、编辑器和调试器还有用于用户浏览帮助、文件的浏览器。随着MathWorks公司的不断壮大,产业链愈发完善,该软件不断优化创新,用户界面也更加接近Windows的标准界面,简化了操作,提高了交互性。另外,新版MATLAB还为用户提供了一个完备的在线查询和帮助系统,为用户带来了很大的便利。简洁的编程环境,具有较为完善的调试系统,无需编译即可直接运行,并且可以对所发生的问题进行及时的汇报和对问题
22、的解决进行分析。本文是使用的是MATLAB在2021年上半年更新的版本MATLABR2021a安装装载 一刻录光盘映像使用Skype共享,使用火绒安全进行杀毒叵共享打开方式(H)1 .打开已经下载好的安装包,右键点击错误!未找到引用源。的ios文件,单击【装载】名称ICrackMatlab91点击查看:2 .此时会出现一个加载好的“DVD驱动器”,打开,鼠标右击错误!未找到引用源。【setup.exe】安装程序选择【以管理员身份运行】;名称修改日期雉大小archives2021/2/240:58文件夹bin2021/2/240:40文件夹extern2021/2/240:40文件夹help20
23、21/2/240:39文件夹java2021/2/240:39文件夹resources2021/2/240:39文件夹SyS2021/2/240:40文件夹Ui2021/2/240:39文件夹utils2021/2/240:39文件夹0.dvd12021/2/240:58DVDI文件0KB国autorun2006/6/173:50安装信息1KBInstallerjnput2021/1/207:169KB二IiCenSJagreement2021/1/215:3482KB(3mathworkSjnStaIlation一help2021/1/277:00MicrosoftEdge.683KB国ma
24、thworks_installation_help_es2021/2/199:19MicrosoftEdge693KB回mathworks_installation_helpja_JP2021/2/199:19MicrosoftEdge.580KBQ3mathworksjnstallation_help_ko_KR2021/2/199:19MicrosoftEdge691KB国mathworks_installation_help_zh_CN2021/2/199:19MicrosoftEdge782KBpatents2021/1/206:4214KB二readme2020/12/1920:12
25、8KB4setup2020/11/1514:14495KBtrademarks2013/12/2815:08-4义楮1KB_version2021/2/240:581KBVersionlnfo2021/2/187:15XMLgCSDN神仙别闹3 .此时弹出错误!未找到引用源。Windows安全中心警报,选择【允许访问】;0Windows安全中WindowsDefender防火墙已经阻止此应用的部分功能名称(N):发布者(P):WindowsDefender防火塔已阻It所有公用网络如专用网箔上的MathWorksProductInstaller的某些功能.The MathWorks, IncM
26、athWorksProductInstaller路径(三):G:binwin64setup.exe允许MathWorksProductInstaller在这些网络上通僖:口专用网络,例如家庭或工作网络(R)叼公用网络,例如机场和咖啡店中的网络(不推荐,由于公用网络通常安全性很小或者根本不安全)(U)允许疝用通过防火塔有何风险?I邠F嚏一神硝嗝4 .点击错误!未找到引用源。【高级选项】,选择【我有文件安装密钥】;5 .选勾选错误!未找到引用源。“是”接受许可协议条款,点击【下一步】;MathWorks许可协议TheMathWorks,Inc.SoftwareLicenseAgreementIMP
27、ORTANTNOTICETHISISTHESOFTWARELICENSEAGREEMENT(THEZGREEMENr)OFTHEMATHWORKS.INCCMATHWORKSw)FORTHEPROGRAMSTHEPROGRAMSARELICENSED.NOTSOLOREADTHETERMSANDCONDITIONSOFTHISAGREEMENTCAREFULLYBEFORECOPYING.INSTALLING.ORUSINGTHEPROGRAMSFORINFORMATIONABOUTYOURLICENSEOFFERING.CONSULTTHEPROGRAMOFFERINGGUIDEPRESEN
28、TEDAFTERTHEAGREEMENTTHEAGREEMENTREPRESENTSTHEENTIREAGREEMENTBETWEENYOU(THE-LICENSEE)ANDMATHWORKSCONCERNINGYOURRIGHTSTOINSTALLANDUSETHEPROGRAMSUNDERTHELICENSEOFFERINGYOUACQUIRE是否接受许可附议的条款?.是否I取消亨利.版权和商标MatWorksproductsareprotectedbypatents(seemat11wosCOm/patents)andCoPynghCIawsAnyunauthorizeduse,repr
29、oductionordistributionmayresRinCMandcmnalpenaltiesMATLABandSimuKnkareregisteredtrademarksofTheMathWorks.IncPleaseseematradmafksforalistofadditionaltrademarksOtherproductorbrandnamesmaybetrademartcsorregisteredtrademarksoftheirrespectivehoWersCSDN神仙别闹6 .输入错误!未找到引用源。所示密钥,单击下一步即可;7 .单击错误!未找到引用源。【浏览】,此时
30、在弹出的窗口中双击“Crack”文件夹,选中下图所示的“license_standalone.Hc”文件,单击【打开】,再点下一步;8.修改路径地址中的盘符C可更改软件安装位置,此处错误!未找到 引用源。修改为D盘,否则无法激活,然后点击【下一步】;.MathWorksProductInstaller)R2021许可目标OO选择目标文件夹DVProgramFilesPoMatlab-R2021a(64bit)Crack名称修改日期大小文件夹彳R2O21a2020/9/2717:33B)IicenseJic2021/3/1120:21License19KBIicenseserverJic2021
31、/3/1120:21License19KB十(三lIicensestandaIoneJic2021/3/1120:21License19KB2.打开错误!未找到引用源。所示路径,将步骤1复制的文件粘贴到此路径下进行替换。个此电脑新加卷(D:)ProgramFilesPolyspace快速访问桌面 ,下载 图文档名称R2021aB) Iicense-IicE) Iicense_serverJicEl license standalone.lic修改日期2022/4/22 17:152021/3/11 20:212021/3/11 20:212021/3/11 20:21正在将9个项目从R2021
32、a移动到POIySPaCe目标已包含一个名为IibmwImgrimpLdII”的文件IV替换目标中的文件(B)9目迎该文件凶简略信息上匕较两个文件的信息。CSDN鲤l别闹3.双击打开该文件夹下的【R2021a】文件夹,双击打开【bin】文件夹,见错误!未找到引用源。;病新力曜(D:)ProgramFilesPolyspaceR2021a名称修改日期类型大小examples externjava2022/4/22 14:512022/4/22 14:48文445文件夹CSDN 神仙另IJ闹appdata2022/4/2217:00文件突bin2022/4/2215:56文件突derived202
33、2/4/2215:12文件夹2022/4/2216:56文件夹2022/4/2214:48文彳恢2022/4/2216:59文件夹4.选中错误!未找到引用源。【matlab.exe】文件,右键,单击【发送到】,单击【桌面快捷方式】;三林修改口期5三天小icutzdata2022/4/2214:47文件夹m3iregistry2022/4/2216:15r/土util2022/4/2214:46自传真收件人Win322022/4/2215:020传飘件人wi642022/4/2216:54砺SS;crash_analyzer.cfg2020/11/159:50Jgl西Bdeploytool201
34、8/12/1222:5.dOtnet.librarymanager.nuget.templateengine3D对象OneDrivesource保存的游戏联系人幽帔费图片却下载音乐直面CSDN神仙另二,二,BBB5.在桌面双击【matlab.exe快捷方式】启动软件,见错误!未找到引用源。;6.软件安装成功,打开软件界面如错误!未找到引用源。SPIN(SensorProtocolforInformationviangotiation,简称PIN)是一种具有自主知识产权的、以数据为核心的、具有自主知识产权的网络通讯协议。该方法采用了结点之间的协调机制,并利用了结点之间的协调机制,有效地克服了现有
35、的网络中的“内爆”、“重叠”、“盲动”等问题12。SPIN协定中的报文有三种形式,分别是ADV,REQ,和数据。ADV实现了元信息的传播,REQ实现了对元信息的传输,而DATA则实现了节点获取的信息。通过SPIN协议使传感器节点进行交互的基本过程13:过程一:数据m被结点A采集到。向外广播带有m元数据的ADV数据包。过程二:A的adv数据包被邻居结点B收到,并根据自身所携带的元数据来判断自己是否需要数据m。若不需要,就销毁ADV数据包。如果需要,就生成相应的REQ数据包,再向外广播。过程三:结点A收到B的REQ数据包请求后,会生成相应的DATA数据包并向外广播。过程四:结点B收到A的DATA数
36、据包,将数据m进行存储。过程五:带有m元数据的ADV数据包将继续通过结点B向外广播,网络中将继续传递数据11u每个结点都有一个唯一的地址,称为结点本身的地址。当结点A本身随机收集到有效数据m时,A立即生成与数据m相匹配的元数据,并将元数据和地址包装成adv数据包,并向外广播。当A的邻居结点B收到ADV数据包时,它首先提取ADV数据包的元数据域,检查其元数据是否为其所需的数据属性。如果没有,则销毁ADV数据包;如有必要,提取ADV数据包中A结点的地址作为目的地址,并将其与元数据和自己的地址包装成相应的REQ数据包进行广播。这样,结点A就收到了req数据包。首先,A应该提取req数据包中的目的地址
37、,以确定它是否与自己的地址相同。不同意味着这个req不是他们自己需要的,所以他们销毁了req数据包。这也表明这个数据包是发送给他们自己的。提取其源地址作为目的地址,提取其元数据域,找到与元数据匹配的自身数据,包装并生成相应的data包进行广播。邻居结点B收到data包后,也通过检查其目的地址来判断它是否是他们需要的data包。如果一致,则存储数据,否则将销毁数据包。当数据真正存储到b结点时,数据转移就完成了。此时,结点B可以发送adv数据包,通知其他邻居结点B拥有此数据,以实现传输数据的目的。14在讲SPIN协议之前,不得不提到Fk)Oding协议,这是一种广播路由协议,译为“洪泛路由”也是相
38、当传统的一种协议,早期传送数据经常使用该协议来协助开发者们解决一系列的问题15。不同于后来的SPIN协议,当网络中的一个结点发现或接收到数据时,Fk)Oding协议下的节点并不会检查该数据是否为自身所需要,而是直接转发给相邻的结点,因此,洪泛路由协议适用于高可靠性数据的应用场景。由此可见,Fkx)ding协议(洪泛路由协议)的缺点也很显著,存在部分重叠(OVerlap)、信息内爆(ImPk)Sion)、资源盲目利用等问题,为了解决这些弊端,SPIN协议(信息协商的传感器协议)应时而生。在SPlN协议中,节点会将所采集到的数据连同元数据合并广播,如此一来,只有当相关请求出现时,该节点才会发送相应
39、的数据信息。SPIN路由协议相较于F100ding协议,在一定程度上解决了数据冗余,很明显这是结点间协商的结果,如果遇到以数据为中心的情况则可以使用此方法。SPlN协议(信息协商的传感器协议)优点包括:元数据在进行传输时消耗能量相对较少;仅广播其它节点没有的数据,能量消耗更少;16不需维护邻居节点的信息,在节点移动的情况下更适宜。由于SPIN协议在传数据时,直接向邻节点发送ADV数据包,这就造成一种我们不愿意看到的情况,若是在广播数据包时,愿意充当数据中转站的邻居节点并不只有一个,这就会出现多个符合条件的路由器,即“路由选择盲点”。尤其是一些网络组建时长较短,因此这些节点的能量都很充足,能量浪
40、费的情况就会出现。比如,接收消息的节点以广播的形式向所有邻节点发送ADV数据包,然后所有邻节点将向该节点发送一个REQ数据包,然后将节点发送到所有邻居节点DATA数据包。这个过程被重复执行,直到数据包到达目的地或预设的最大跳数17。毫无疑问,这个过程比传统的洪泛路由技术更浪费能量。因此,对于无线传感器网络来说,当务之急是找到节约能量的办法,若是能够在源与目的地之间寻找到一条节能的多跳路由路径,眼下的问题便可迎刃而解。因此SPIN协议的改进是势在必行的,为了能够不断地优化更新,以达到帮助我们学习和工作的目的,SPIN协议未来必定还要经历更多的改进,就目前的情况来讲,大概有以下四种改进方法。方法一
41、:能量优先法。顾名思义,选择能量最高的节点。传感器节点向其邻居广播ADV数据包。如果相邻节点打算在接收ADV之后接收ADVDATA分组,则它向该节点发送REQ分组。REQ分组记录相邻节点的能量。然后,节点可以基于接收到的REO分组来确定哪个邻居节点具有最高能量,并将DATA分组发送给它以进行转发。方法二:最小代价法。当若干个节点互相确定对方为自己的邻居节点时,每个节点各自的的路由表中都会记录彼此间进行通讯时所消耗的能量大小。当其中一个传感器节点收到多个从邻居节点发来的REQ数据包时,它就会根据这些路由表中所记录的能量来选择传输代价最小的邻居节点,这样就可以选择到最小传输代价的节点并发送给他DA
42、TA数据包,再将其转发出去。方法三:当一个传感器节点需要传输一系列相关信息时,它使用一定的方法来记住前一个数据包被发送到哪个相邻节点。在未来,它将优先考虑已经与它建立连接的相邻节点,直到它因为能量不足而拒绝接收。如果被确定的邻居节点拒绝接收,传感器节点向邻居节点广播ADV报文,重新确定愿意接收的邻居节点。但这种方法也存在弊端,网络中的节点无法再生,会使得这些结点因能量不足等原因逐渐减少从而影响网络的整体效能。方法四:建立梯度法。建立梯度方法。当邻居节点从该节点接收到查询信息时,如果当前查询缓存没有相同的查询记录,它会添加一个新的记录,该记录包含该节点指定的数据传输速率,即梯度。在数据传输阶段,
43、节点将向首先接收新数据的邻居节点发送增强的选择消息(发送具有较大梯度的查询消息)。未来,该节点将优先考虑路由选择中梯度最大的邻居节点。在有n个节点的传感器网络中,广播信息的时间为O(n),广播数据的时间为0(n),从一个传感器节点到另一个传感器节点发送数据的时间为O(Jn)。设D为监控感知数据总数,E为节点最大感知数据数。进一步,我们假设传感器网络节点的能量是充足的。比较了泛洪法、预改进自旋和改进自旋三种模式下的总通信成本和能耗。从错误!未找到引用源。中可以看出,在数据传输改进之前,信息交换的能耗远低于SPIN模式,SPIN模式比flood模式多消耗D*2*0(N)的能量。在改进的SPIN模式
44、下,避免了向所有节点发送数据,大大节省了能量。路由方法总的通信消耗节点的最大能源消耗FloodingD*0(N)E*O(N)原SPIND*2*0(n)+D0(N)2*E*0(n)+E*O(N)改进的SPND*2*0(n)+D*0(n)2*E*0(n)+E*0n)SPIN协议在节点过程中使用三种类型的数据包:ADV:广播数据包。当某个节点需要发送数据时,该节点就会向周围的邻居节点广播一个数据包,这个数据包带有本节点的属性和类型等信息,而数据本身的大小则远大于该数据包的大小。(元数据)REQ:请求包。如果接收到上个节点所发送的ADV数据包,则该数据就会生成并广播一个REQ请求包。DATA:数据包。接收到节