第七章-网络协议要点.pptVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

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,重复的包具有相同的THLCTP协议帧格式CTP数据帧格式如下:**************第七章网络协议第七章网络协议介绍两种基本的多跳协议:分发(Dissemination)和收集(Collection)。分发协议可以可靠地传送小数据项到网络中的每一个节点。收集协议则可以把网络中每个节点的小数据项传递到指定的根节点。1.分发协议分发协议主要用于实现共享变量的网络一致性。网络中的每一个节点都保存有该共享变量的一个副本。在任意给定时刻,可能会有2个节点的变量值不相同。但随着时间的流逝,不一致的节点数会越来越少,最终整个网络都将统一于一个相同的变量值。网络的一致性并不意味着每个节点都能够发现变量值的所有变动,它仅仅表示网络最终会在最新的变量值上达成一致。能够将小数据分发到整个网络中,这个功能特性对于传感器网络的应用而言是非常有用的。它允许管理员向网络注入小段程序、命令以及配置信息。分发协议的接口两个接口:DisseminationValue和DisseminationUpdate接口。前者适用于分发数据的消费者(接收从网络中分发过来的数据),后者适用于生产者(产生需分发的数据)。interfaceDisseminationValuet{

commandconstt*get();

eventvoidchanged();

}当分发的变量值发生改变时,就会触发changed()事件,再进行相应处理。消费者能够通过DisseminationValue.get()获取const类型的指针指向数据区域。interfaceDisseminationUpdatet{

commandvoidchange(t*newVal);

}调用change()命令会隐式地使其函数参数成为最新的分发值,并将其分发给网络中的每一个节点。分发协议的组件DisseminationValue接口和DisseminationUpdate接口由DisseminatorC组件提供。genericconfigurationDisseminatorC(typedeft,uint16_tkey){//通用组件,需实例化providesinterfaceDisseminationValuet;providesinterfaceDisseminationUpdatet;}参数t即数据包结构类型,其大小必须能够包含于单个message_t包。键值(key)允许创建不同的DisseminatorC实例组件,类似于AM标识号可以虚拟化AM服务。该值一般由unique()函数产生。EasyDissemination实例一个源节点周期性地将其计数值分发给网络中的其它节点。收到该计数值的节点将其显示到LED灯上。eventvoidTimer.fired(){

counter=counter+1;postShowCounter();

//disseminatecountervalue

callUpdate.change(counter);

文档评论(0)

182****7702 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档