- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
capr2011-1-14算法说明.doc
1. 查阅最近3-5年外文文献(重点放在最近3年),了解实现可靠性传输的最新方法
要求:注明文献期刊或会议名称,总结看过的文章的摘要、作者的贡献及意义、理论基础(多为数学模型)、假设以及假使是否合理、对以前的不足的改进。总结作者是如何证明结论的,是仿真还是真实场景下数据。不少于7篇
文献来源:ACM和IEEE数据库
2. 仿真给定的可靠性传输算法
算法基于树形拓扑。由于数据直接转发而不缓存会造成严重的丢包现象,然而缓存所有数据可能出现较长的延时,同时,传感器节点内存的限制使得后续发送数据可能覆盖现有数据,可靠性仍然无法保障。因此,算法核心思想是以一定的概率缓存接收到的数据。
具体实现
源节点初始发送M个数据包,中继节点成功接收到数据包后检查当前数据包的缓存(Cached)标志,对(Cached)标志未置位的数据包以概率在本地缓存,同时修改该Cached标志,然后转发数据包。图1为数据包及NACK包包头结构示意图。
图1(包结构自行设计)
示意图中各项说明:src_addr表示发送数据的源地址;dest_addr表示发送数据的目的地址;pre_addr表示下行链路的上一跳地址,作为虚电路信息的;sequence表示传输层分片序列号;offset表示数据包在传输层数据分片中的偏移量;END表示标志当前数据包是否为当前序列号的最后一个数据包;cached表示标志当前数据包是否被虚电路上的节点缓存;size表示主动ACK包中,本次请求发送的数据包数量Reserved表示为预留位;DATA表示数据;Hops表示当前虚电路的跳数;Type表示数据包类型。
注:NACK中应该设置是否读丢包率的标识,当接收窗口为空时读否则不读
算法符号与定义
相邻节点传输数据包错误率(p自己设置并且不变,按概率丢包); 中间节点预缓存数据包的概率;目的节点接收窗口大小。
判定公式
系统中的任意一个节点在运行算法时,利用公式1计算出缓存概率,从而判定是否缓存。
数据包在n跳路径上成功传输的概率,第跳节点预缓存概率为0-1之间的小数,在第跳节点缓存的概率:
(1)
每个节点运行算法时根据丢包率动态计算缓存概率。根据实验数据分析,丢包率高时缓存概率高,能够保证传输的可靠性;丢包率低时缓存概率低,从而使得网络传输效率高、能耗低、延迟少。
算法示例
在一个数据块的传输过程中,初始传输假设丢包率为10%,之后每一次端到端的传输结束后在sink节点计算本次丢包率,即第i-1次端到端传输的丢包率用于计算第次传输中各节点的预缓存概率。
注:此处希望c是随机产生的一个满足正态分布的数列,个数与跳数一致,用以影响缓存概率,使得靠近中部的节点缓存概率最大,从而预缓存概率可修改为。
如图3所示,当接收窗口S为空时,向源节点请求发送四个数据包,同时NACK中包含信息。每个中继节点在运行CAPR算法后1、2、4号数据包分别在2、3、2号节点缓存。1号数据包在3号至基站传输失败,3号数据包未被缓存并且在3号节点至基站传输失败,基站接收到2号数据包后,发送NACK请求接收窗口上所缺的1、3、4号数据包。
图3 CAPR概率缓存、局部重传、端到端重传
3号节点接收到NACK后,发现本地缓存的数据包不在NACK中,表示该数据包已经成功被接收,删除本地缓存;2号节点接收到NACK后,发现本地缓存的1、4号数据包传输失败,发起以2号节点为源节点的新一轮可靠传输,将cached标志清除,使得后继节点可以缓存该数据包,1号数据包传输到3号节点再次被缓存;由于没有在中继节点的缓存中发现3号包,从而源节点接收到请求3号包的NACK,对3号数据包进行端到端重传;目的节点接收到1、2、3、4号数据包后,窗口滑动,继续请求下面的数据包,直至接收到被置位的数据包为止。
图4 超时重传NACK、局部重传数据包(只需要局部重传)
如图4所示,目的节点发出NACK,5、6、7、8号数据包分别在4、8、2、6号节点缓存,并且四个数据包都未成功传输到sink节点。等待(根据相应两跳之间的传输时间来确定,2n)时间后,重传NACK请求数据包,由于四个数据包都被中继节点缓存,当NACK中请求的数据包都被局部重传后,停止转发NACK;当局部重传的数据包被后继数据包缓存后,数据包再次丢失将由最靠近目的的节点进行局部重传,靠近源的节点可以清除缓存。
3. 所需的实验结果图表
平均重传恢复时延
源至基站基于n跳路由的重发包数
缓存数据包分布:仿真VS. 理论分析
原创力文档


文档评论(0)