3.2 牢靠数据分发协议的规划
在论说具体的规划思路之前,先提出以下运用场景的假定。
假定一:网络节点不支持高档的操作系统。能够理解为有必要考虑节点处理和通讯才能有限,而且通讯协议要从底层(如MAC层)完结。
假定二:大部分待烧录节点散布在数据基站的通讯规模之内。能够理解为通讯协议不需求完结杂乱的多跳通讯和流水线,能够充分运用数据基站榜首次数据播送,这一点下文会具体论说。
依据以上两点假定,牢靠性数据分发协议的具体规划如下。
考虑到不同渠道的无线收发模块供给的服务接口和通讯质量的差异以及程序更新对网络牢靠性的要求,通讯协议挑选在网络层完结牢靠数据分发的机制,协议只需求硬件渠道在MAC层供给收发数据帧的运用接口即可。协议中,数据分发分为两个阶段:榜首轮发送阶段和节点间沟通阶段。图4.2为两个阶段通讯方法示意图。
(实线代表发送完好数据文件,虚线表明发送数据页)
1、榜首轮发送阶段。
数据基站(如PC)在接纳节点准备好后不间断播送数据帧,直至数据发送完毕;接纳节点极力接纳数据,并记载自己已有数据帧的id信息,期间不向源节点发送反应信息。
在原始的Deluge协议中没有这一阶段,由于Deluge协议中或许无线传感器网络巨大,散布规模也较广,所以数据分发一旦发动,一切接纳到数据的节点都参加到数据发送中来;而本规划中,网络充分运用了假定二中的节点散布条件,通常情况下,在榜首轮发送完毕后,适当大比例的节点就现已接纳到了大部分的数据,而这个过程中由于只要数据基站在发送播送,网络中数据传输的功率是最高的。当然,这种节点散布条件不满足的情况也不会显着下降数据分发功率。
节点间沟通阶段。
沟通阶段参阅了trickle算法的“polite gossip”战略,一切节点(包括数据基站)都参加到沟通中去。每个节点的沟通的意图都是相同的,行将自己具有的数据包发送给需求的节点和恳求并接纳自己需求的数据包。
第2阶段是确保牢靠性的要害,协议中让源节点也参加到沟通中来,这是为了防止网络情况极差以致在榜首轮发送完毕之后一切节点接纳数据的总和都不构成完好数据文件的极点情况。这一步中,节点长期处于“保护”情况标志数据分发完毕。
节点首要播送广告,每一个广告包括一个摘要(φ),摘要(φ)由两部分组成:(1)本节点的IP标识v。(2)本节点的最大可用页号p,即φ(v,p)。可用页号p的界说:页p所包括的包被节点悉数接纳,称页p完结。页p被完结而且它之前的一切的页(0,p)也被节点悉数接纳,称页p可用。节点通过广告来了解对方具有的数据信息,继而向比自己数据更齐备的节点发送数据页恳求。协议中将时刻分红时刻片(round),在每一个时刻片中,节点来决议是否播送一个广告。假定时刻片的长度由Tm,i来表明,它的上下界由Tl和Th来表明,则有取Tl
沟通阶段中,节点具有“保护”、“恳求”和“发送”中的人一个情况。节点在“保护”情况播送广告并听取其他节点的播送;在恳求阶段向其他节点发送数据页恳求,并接纳对方发来的数据;在发送情况播送被恳求的数据页。图4.3为情况转化示意图。首要的沟通规矩如下。
(1)“保护”情况规矩
M1: 假定时刻片i的开端时刻为ti,节点在ti+ri的时刻段内,若接纳不到广告φ’=φ,则播送广告φ;若收到与φ纷歧致的广告(包括φ’=φ、广告帧和数据帧等),则调整时刻片为Tl,并当即重新开端时刻片;若接纳到广告φ’=φ,则调整时刻片为min(2*Tm,i ,Th )。
M2: 节点在收到广告φ'(v’,p’)中p’大于本身的最大可用页p时,转向“恳求”情况,向节点v’发送数据页恳求;节点收到恳求帧,则转向“发送”情况,播送被恳求数据页。
规矩1能操控冗余广告的发送,节省网络资源,而且依据网络情况动态调整时刻片长度,从而是网络资源得到有用的运用。
规矩2完结从“保护”情况到“恳求”和“发送”情况的转化。
(2)“恳求”情况规矩:
M3:若节点在向源节点宣布数据页恳求后节点在时刻t(t为自界说时刻长度,是经验值,依据网络情况而定)内没有收到数据,则再次发送恳求,若累计恳求次数大于k(k为自界说次数),则以为恳求失利,回来“保护”情况;若节点接纳到数据页,则在接纳完毕后回来“保护”情况。
规矩3中考虑到网络的质量要素,界说了等待时刻t和最大恳求次数k。
(3)“发送”情况规矩:
M4:节点进入“发送”情况当即播送被恳求的数据页,播送完毕后回来“保护”情况。
规矩4中要留意的是,节点以播送的方法发送数据,这意味着处于“恳求”情况的节点能够接纳任何节点(纷歧定是它恳求的指定节点)发送的契合其需求的数据包,这也是协议中防止网络冗余的一个表现。
以上是本规划中牢靠数据分发协议的悉数内容,本文鄙人一节中将具体论说协议的软件规划完结。
3.3 牢靠数据分发协议的软件规划完结
协议的软件规划在网络层完结,涉及到MAC层接口的调用。本节先简略介绍本规划试验渠道上网络模块供给的MAC层运用接口,然后具体论说软件的规划和完结。
3.3.1 MAC层接口简介
首要做两点阐明。
榜首,规划中运用的MAC层接口不供给肯定牢靠的网络通讯。一方面是由于规划运用试验室克己的硬件渠道首要用于做集体试验,而集体试验不需求牢靠的网络通讯,所以渠道的通讯模块也没有能完结牢靠通讯的机制;另一方面要求MAC层供给牢靠通讯也不是必要的。
第二,网络层只运用了MAC层供给的数据帧发送和数据帧接纳两个接口,网络层的帧结构包括在MAC数据帧的数据域中。
从榜首点能够看到,协议在网络层完结牢靠数据传输的机制,下降了对MAC层通讯质量的要求,而第二点阐明协议只是需求MAC层供给两个最基本的运用接口。本规划中的牢靠数据分发协议对底层通讯的要求很低,具有较好的鲁棒性和可移植性。
本规划试验渠道上供给的MAC层数据帧发送指令结构如图4.4所示,其间区域3为数据域,包括网络层的帧结构,别的节点在MAC层以播送的方法通讯,所以指令中不包括源节点和意图节点的地址信息。MAC层接纳到数据帧后,将数据域分离出来存储到接纳缓存区;发送数据时,将发送缓存区中的数据加上MAC层数据帧的头部和尾部并发送出去,网络层只关怀发送和接纳缓冲区中的数据。这儿规则以下章节中说到的各种帧结构均指网络层帧结构。
3.3.2 牢靠数据分发协议的数据结构规划
网络层数据要通过缓存,解析再到存储或许履行三步操作,而且不同品种的帧要区别处理,因而一个好的数据结构规划方案对简化数据处理操作和进步数据处理功率对错常有必要的。图4.5为网络层数据流图,数据帧的流向为:
从MAC层读入后放入原始数据缓冲区;
经解析后得到帧结构;
将帧结构作相关处理后仅提取页号(p)、帧号(id)和数据(data)放到写flash缓冲区;
写flash。
留意以上是数据帧的流向,除数据帧以外的其他类型帧(如恳求帧,完毕帧等)只履行第(1)、(2)步操作。下面侧重论说图中每个阶段涉及到的数据结构。