网络协议PPT课件.ppt_第1页
网络协议PPT课件.ppt_第2页
网络协议PPT课件.ppt_第3页
网络协议PPT课件.ppt_第4页
网络协议PPT课件.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Lesson12网络协议 介绍两种基本的多跳协议 分发 Dissemination 和收集 Collection 分发协议可以可靠地传送小数据项到网络中的每一个节点 收集协议则可以把网络中每个节点的小数据项传递到指定的根节点 1 一 分发协议 分发协议主要用于实现共享变量的网络一致性 网络中的每一个节点都保存有该共享变量的一个副本 在任意给定时刻 可能会有2个节点的变量值不相同 但随着时间的流逝 不一致的节点数会越来越少 最终整个网络都将统一于一个相同的变量值 网络的一致性并不意味着每个节点都能够发现变量值的所有变动 它仅仅表示网络最终会在最新的变量值上达成一致 能够将小数据分发到整个网络中 这个功能特性对于传感器网络的应用而言是非常有用的 它允许管理员向网络注入小段程序 命令以及配置信息 2 1 1分发协议的接口 两个接口 DisseminationValue和DisseminationUpdate接口 前者适用于分发数据的消费者 接收从网络中分发过来的数据 后者适用于生产者 产生需分发的数据 interfaceDisseminationValue commandconstt get eventvoidchanged 当分发的变量值发生改变时 就会触发changed 事件 再进行相应处理 消费者能够通过DisseminationValue get 获取const类型的指针指向数据区域 interfaceDisseminationUpdate commandvoidchange t newVal 调用change 命令会隐式地使其函数参数成为最新的分发值 并将其分发给网络中的每一个节点 3 1 2分发协议的组件 DisseminationValue接口和DisseminationUpdate接口由DisseminatorC组件提供 genericconfigurationDisseminatorC typedeft uint16 tkey 通用组件 需实例化providesinterfaceDisseminationValue providesinterfaceDisseminationUpdate 参数t即数据包结构类型 其大小必须能够包含于单个message t包 键值 key 允许创建不同的DisseminatorC实例组件 类似于AM标识号可以虚拟化AM服务 该值一般由unique 函数产生 4 1 3EasyDissemination实例 一个源节点周期性地将其计数值分发给网络中的其它节点 收到该计数值的节点将其显示到LED灯上 eventvoidTimer fired counter counter 1 postShowCounter disseminatecountervaluecallUpdate change 设定分发值 eventvoidValue changed 发现分发值变动constuint16 t newVal callValue get shownewcounterinLedscounter newVal postShowCounter 注意 所有节点在启动时必须先开启无线电服务 5 6 二 收集协议 收集协议是对分发协议的补充 它要求网络中各节点将采集的数据发送到基站节点 实现方式 建立一棵或多棵以基站节点作为根节点的收集树 当一个节点有数据 自己的采集数据或来自其他节点的转发数据 需要发送到基站节点时 就会沿着收集树将数据发送给它的父节点 直到数据到达基站节点 根据汇聚内容的形式 各中转节点可以检查过往的消息包 以便信息统计或聚合 或抑制重复的传输 注意 该协议只是尽力 best effort 把消息发送到网络中至少一个根节点 然而 它并不能保证传输必定成功 另外 消息的副本有可能传输到多个根节点 数据包到达根节点的顺序也无法保证 汇聚树协议 CollectionTreeProtocol CTP 是TinyOS2 x自带的收集协议的一种 为网络中的节点提供到根节点的尽全力的 任意传播的传输机制 7 2 2CTP协议的接口 setRoot 命令设立收集树的根节点 如果一个节点已经是根节点 并调用setRoot命令 则返回SUCCESS 那么接下来的isRoot命令返回TRUE interfaceRootControl commanderror tsetRoot commanderror tunsetRoot commandboolisRoot 8 2 2CTP协议的组件 1 CTP协议由CollectionC组件提供 其提供了无线通信的大多数基本接口 configurationCollectionC provides interfaceStdControl interfaceSend uint8 tclient interfaceReceive collection id tid 接收到数据interfaceReceiveasSnoop collection id t 偷听到数据interfaceIntercept collection id tid interfaceRootControl 设置根节点interfacePacket 访问汇聚数据包的各个字段interfaceCollectionPacket uses interfaceCollectionId uint8 tclient 9 2 2CTP协议的组件 2 注意 不可以绑定其它组件到CollectionC Send接口 通用组件CollectionSenderC提供了虚拟化的发送接口 genericconfigurationCollectionSenderC collection id tcollectid provides interfaceSend interfacePacket 事实上 CollectionSenderC组件是对CollectionC组件的一种封装 提供了一种多元化访问的机制 类似于AMSenderC组件 只不过用collection id t参数代替了am id t参数 Receive接口 Snoop接口和Intercept接口必须也都使用相同的collection id t参数 才能接收到数据 10 2 3EasyCollection实例 网络中的节点周期性地发送信息到基站 基站节点负责收集网络中所有的数据 if TOS NODE ID 1 设置节点1为根节点callRootControl setRoot if callSend send packet sizeof EasyCollectionMsg SUCCESS 非根节点周期性发送数据eventmessage t Receive receive message t msg void payload uint8 tlen 根节点会触发receive事件 11 三 分发协议的补充说明 在TinyOS2 x里 对于小数据项的分发协议有两种分发库 Drip和DIP Drip把每个数据项当做分发的单独实体 并提供了很好的粒子性控制 控制何时如何快速地把想要的数据项分发出去 DIP则把它们当做一个群体 即分发控制和参数可以适用于所有的数据项集体 Drip应该在你只有少数数据项且不确定每个节点的数据类型时使用 这个灵活性要求你的网络中发出更多的通知消息 DIP则在所有的节点有统一的数据类型 且需要高效率的消息机制时使用 12 configurationEasyDisseminationAppC implementation componentsMainC 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 configurationEasyDisseminationAppC implementation componentsMainC 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 part3 DIP在节点启动时就开启了无线电 3 1Drip协议与Dip协议的比较 13 3 2Drip DipMakefile 在应用程序的Makefile里设置相应的分发库 COMPONENT EasyDisseminationAppCCFLAGS I TOSDIR lib netCF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论