




免费预览已结束,剩余23页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章网络协议,第七章网络协议,介绍两种基本的多跳协议:分发(Dissemination)和收集(Collection)。分发协议可以可靠地传送小数据项到网络中的每一个节点。收集协议则可以把网络中每个节点的小数据项传递到指定的根节点。,1、分发协议,分发协议主要用于实现共享变量的网络一致性。网络中的每一个节点都保存有该共享变量的一个副本。在任意给定时刻,可能会有2个节点的变量值不相同。但随着时间的流逝,不一致的节点数会越来越少,最终整个网络都将统一于一个相同的变量值。网络的一致性并不意味着每个节点都能够发现变量值的所有变动,它仅仅表示网络最终会在最新的变量值上达成一致。能够将小数据分发到整个网络中,这个功能特性对于传感器网络的应用而言是非常有用的。它允许管理员向网络注入小段程序、命令以及配置信息。,分发协议的接口,两个接口:DisseminationValue和DisseminationUpdate接口。前者适用于分发数据的消费者(接收从网络中分发过来的数据),后者适用于生产者(产生需分发的数据)。interfaceDisseminationValuecommandconstt*get();eventvoidchanged();当分发的变量值发生改变时,就会触发changed()事件,再进行相应处理。消费者能够通过DisseminationValue.get()获取const类型的指针指向数据区域。interfaceDisseminationUpdatecommandvoidchange(t*newVal);调用change()命令会隐式地使其函数参数成为最新的分发值,并将其分发给网络中的每一个节点。,分发协议的组件,DisseminationValue接口和DisseminationUpdate接口由DisseminatorC组件提供。genericconfigurationDisseminatorC(typedeft,uint16_tkey)/通用组件,需实例化providesinterfaceDisseminationValue;providesinterfaceDisseminationUpdate;参数t即数据包结构类型,其大小必须能够包含于单个message_t包。键值(key)允许创建不同的DisseminatorC实例组件,类似于AM标识号可以虚拟化AM服务。该值一般由unique()函数产生。,EasyDissemination实例,一个源节点周期性地将其计数值分发给网络中的其它节点。收到该计数值的节点将其显示到LED灯上。,eventvoidTimer.fired()counter=counter+1;postShowCounter();/disseminatecountervaluecallUpdate.change(/设定分发值,eventvoidValue.changed()/发现分发值变动constuint16_t*newVal=callValue.get();/shownewcounterinLedscounter=*newVal;postShowCounter();,注意,所有节点在启动时必须先开启无线电服务。,创建EasyDisseminate文件创建EasyDisseminateC.nc文件编写顶层配置文件编写makefile文件仿真测试,分发协议的补充说明,在TinyOS2.x里,对于小数据项的分发协议有两种分发库:Drip和DIP。Drip把每个数据项当做分发的单独实体,并提供了很好的粒子性控制,控制何时如何快速地把想要的数据项分发出去。DIP则把它们当做一个群体,即分发控制和参数可以适用于所有的数据项集体。Drip应该在你只有少数数据项且不确定每个节点的数据类型时使用。这个灵活性要求你的网络中发出更多的通知消息。DIP则在所有的节点有统一的数据类型,且需要高效率的消息机制时使用。,configurationEasyDisseminationAppCimplementationcomponentsMainC;EasyDisseminationC.Boot-MainC;componentsLedsC;EasyDisseminationC.Leds-LedsC;componentsnewTimerMilliC();EasyDisseminationC.Timer-TimerMilliC;/part1componentsEasyDisseminationC;componentsDisseminationC;EasyDisseminationC.DisseminationControl-DisseminationC;/part2componentsnewDisseminatorC(uint16_t,0 x1234)asDiss16C;EasyDisseminationC.Value1-Diss16C;EasyDisseminationC.Update1-Diss16C;/part3componentsActiveMessageC;EasyDisseminationC.RadioControl-ActiveMessageC;/part4,configurationEasyDisseminationAppCimplementationcomponentsMainC;EasyDisseminationC.Boot-MainC;componentsLedsC;EasyDisseminationC.Leds-LedsC;componentsnewTimerMilliC();EasyDisseminationC.Timer-TimerMilliC;/part1componentsEasyDisseminationC;componentsDisseminationC;EasyDisseminationC.DisseminationControl-DisseminationC;/part2componentsnewDisseminatorC(uint16_t,0 x1234)asDiss16C;EasyDisseminationC.Value1-Diss16C;EasyDisseminationC.Update1-Diss16C;/part3DIP在节点启动时就开启了无线电,Drip协议与Dip协议的比较,Dripcommanderror_tunsetRoot();commandboolisRoot();,CTP协议的组件-1,CTP协议由CollectionC组件提供,其提供了无线通信的大多数基本接口。,configurationCollectionCprovidesinterfaceStdControl;interfaceSenduint8_tclient;interfaceReceivecollection_id_tid;/接收到数据interfaceReceiveasSnoopcollection_id_t;/偷听到数据interfaceInterceptcollection_id_tid;interfaceRootControl;/设置根节点interfacePacket;/访问汇聚数据包的各个字段interfaceCollectionPacket;usesinterfaceCollectionIduint8_tclient;,CTP协议的组件-2,注意:不可以绑定其它组件到CollectionC.Send接口,通用组件CollectionSenderC提供了虚拟化的发送接口。,genericconfigurationCollectionSenderC(collection_id_tcollectid)providesinterfaceSend;interfacePacket;,事实上,CollectionSenderC组件是对CollectionC组件的一种封装,提供了一种多元化访问的机制。类似于AMSenderC组件,只不过用collection_id_t参数代替了am_id_t参数。Receive接口、Snoop接口和Intercept接口必须也都使用相同的collection_id_t参数,才能接收到数据。,CTP协议的假设和限制,CTP是基于树的汇聚协议。网络中的一些节点将自己设为根节点。节点之间形成到根节点的树的集合。CTP是没有地址的,节点并不是向固定的根节点发送数据包,而是通过选择下一跳隐式地选择根节点。节点根据路由梯度形成到根的路由。CTP协议假设链路层提供了以下功能:1.提供有效的本地广播地址2.为单播包提供同步的确认信息3.提供协议分派字段以支持多种高层协议4.具有单跳的源和目的地址字段,CTP协议的假设和限制,CTP假设它有一部分附近邻居节点的链路质量估计信息。该信息提供了本节点与某一邻居节点之间的通信过程中成功地传输了单播包的次数。CTP有一些提高传输可靠性的机制,但它并不保证100%可靠。它是尽力的,但有时即使尽力了也未必能办到。CTP是为通信量相对较低的网络设计的。带宽有限的系统可能使用别的协议更合适,比如能将多个小的帧组装成单个数据链路层包的协议,汇聚算法问题,CTP使用期望传输值(ETX,ExpectedTransmissions)作为路由梯度。根节点的ETX为0,其它节点的ETX为其父节点的ETX值加上到父节点链路的ETX值。这种相加的方法需要假设节点使用链路层重传。如果要给出一种有效的路由,CTP选择ETX值最小的一种。ETX值用精度为0.01的16位定点实数表示。,汇聚算法问题,路由循环是可能在CTP网络中出现的问题之一。CTP通过两种方法处理路由循环。第一种是每个CTP包含有当前节点的ETX值,如果CTP接收到比自己的ETX值小的数据帧,则说明树中有不一致。CTP通过广播一个信息帧以期解决这种不一致性,希望发送这个数据帧的节点收到并相应地调整它的路由。CTP的第二种机制是不考虑ETX值大于一个固定常量的路由,这个值取决于实现。包重复是CTP中可能发生的另外一个问题。增加存活时间THL,重复的包具有相同的THL,CTP协议帧格式,CTP数据帧格式如下:,CTP路由帧格式如下:,CTP实现,CTP的一种实现可以在tos/lib/net/ctp目录中找到。三个主要组件链路质量估计器,负责估计单跳的ETX值路由引擎,它根据链路估计和网络层的信息(如拥塞情况)来决定哪个邻居节点作为路由的下一跳转发引擎,它维护发送包队列,决定是否发送和发送的时机。它的名字有点令人混淆:转发引擎不仅要转发从其它节点过来的数据包,同时也要发送自己产生的数据包。,链路估计,该实现使用两种机制来估计链路质量:周期性的LEEP包和数据包。该实现通过数据传输改变对LEEP的链路估计。估计器通过信息帧的ETX值和数据估计产生的ETX值合并,产生指数权重的移动平均线。CTP收集数据估计的速率与传输速率是成比例的,因此它可以快速地检测到断开的连接并切换到新的侯选邻居节点。组件tos/lib/net/le/LinkEstimatorP实现了链路估计器。它结合了基于LEEP和数据的估计。,路由引擎,该实现的路由引擎负责选择数据传输的下一跳。它记录了链路估计表中所维护节点的路径ETX值。最小耗费的路由,即路径ETX值和链路ETX值之和最小的那条。路径ETX值就是整条路由的链路ETX值。组件tos/lib/net/ctp/CtpRoutingEngineP实现了该路由引擎。,转发引擎,组件tos/lib/net/ctp/CtpForwardingEngineP实现了转发引擎。它具有以下5种职责:1.向下一跳传递包,当需要时重传,并根据是否收到ACK向链路估计器传递相应信息。2.决定何时向下一跳传递包3.检测路由中的不一致性,并通知路由引擎4.维护需要传输的包队列,它混杂了本地产生的包和需要转发的包。5.检测由于丢失ACK引起的单跳重复传输,转发引擎,转发的四个关键函数为包接收(SubReceive.receive(),包转发(forward(),包传输(SendTask(),决定传完之后做什么(SubSend.sendDone()。,EasyCollection实例,网络中的节点周期性地发送信息到基站,基站节点负责收集网络中所有的数据。,if(TOS_NODE_ID=1)/设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 德宏自治州中石化2025秋招笔试模拟题含答案安全环保与HSE岗
- 国家能源咸宁市2025秋招面试专业追问及参考电气工程岗位
- 中国移动铁岭市2025秋招行业常识50题速记
- 衢州市中储粮2025秋招面试专业追问题库购销统计岗
- 2025福建福州市罗源县城市管理和综合执法局协管员招聘4人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025广西百色市西林县供销合作社联合社招聘编外聘用人员1人模拟试卷(含答案详解)
- 2025国家电网内蒙古新正产业发展有限公司高校毕业生招聘41人(第三批)考前自测高频考点模拟试题及答案详解(名校卷)
- 2025年山东职业学院公开招聘人员(28名)模拟试卷含答案详解
- 2025年福建省厦门分行中国光大银行2025年春季校园招聘模拟试卷及参考答案详解一套
- 2025南昌动物园百花园管理所招聘3人模拟试卷完整参考答案详解
- 《劳模工匠之光》课件 第1、2单元 民族大厦的基石、改革攻坚的先锋
- 2025至2030年中国阻焊油墨行业发展运行现状及投资潜力预测报告
- 电力电子技术课件 单结晶体管及其触发电路
- 研究《农村集体经济组织法》对推动新型农村集体经济发展的影响及实践策略
- 2025年党建知识应知应会测试题库(附答案)
- 规范网络文化市场促进健康有序发展
- 测绘新技术之无人机的
- 基于PLC的立体仓库控制系统设计
- 2025年北京市交通发展年度报告-北京交通发展研究院
- 2025年新九年级数学暑假衔接讲练 (人教版)专题07 一元二次方程单元测试 (学生版)
- 施工单位工抵房管理制度
评论
0/150
提交评论