[发明专利]一种适用于多跳无线传感器网络的主从同步方法有效
申请号: | 201610030901.4 | 申请日: | 2016-01-14 |
公开(公告)号: | CN105611621B | 公开(公告)日: | 2019-03-29 |
发明(设计)人: | 雷磊;王夏楠;蔡圣所;徐海楼;黄太彬;徐亚楠;严磊 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | H04W56/00 | 分类号: | H04W56/00;H04W84/20 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210016*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种适用于多跳无线传感器网络的主从同步方法。该方法在初始化阶段,要求全网节点采用分布式的方式建立分级结构,并获取各自所属的级别,以及父节点和子节点信息。同步阶段,由网络中的根节点开始,各级父节点逐级广播同步请求帧,发起同步过程,并通过二维离散马尔可夫链模型求解得到不同子节点数条件下竞争退避窗口的最佳取值,同时将该值捎带告知子节点。子节点接收到同步请求帧后,根据最佳竞争退避窗口大小竞争回复同步应答帧。父节点接收到同步应答帧后,计算出与子节点之间的时间偏差,并通过同步确认帧将时间偏差告知子节点。子节点接收到同步确认帧后调整本地时间,完成同步过程。EXata中的仿真结果证明了该方法的有效性。 | ||
搜索关键词: | 一种 适用于 无线 传感器 网络 主从 同步 方法 | ||
【主权项】:
1.一种适用于多跳无线传感器网络的主从同步方法,所采用的步骤是:步骤1:初始化过程,全网节点采用分布式的方式建立分级结构,并获取各自所属的级别,以及父节点和子节点信息;初始化过程中,全网节点采用分布式的方式建立分级结构,分级后,高一级的节点作为低一级节点的父节点发起同步过程,低一级的节点作为高一级节点的子节点响应同步过程,为了记录节点各自所属的级别、父节点、子节点数量信息,节点维护级别号变量l、父节点变量f、和子节点数变量n,同时,每个节点还维护一个用于存储各子节点回复分级应答帧rep_lev先后顺序的线性链表RDL,RDL中的每个结点由存储后继结点位置信息的指针域和存放数据元素信息的数据域组成,结点指针域中的指针指向RDL的下一个结点的存放地址,结点数据域包含以下信息:(1)子节点的节点号,(2)子节点的子节点数n;全网节点采用分布式的方式建立分级结构的具体过程如下:(1)首先在全网节点中选择一个节点作为根节点,并把根节点的时间作为整个网络的标准时钟源,初始化过程中,根节点把自身的级别号l设为0,并作为父节点向全网节点广播分级请求帧req_lev,该帧携带父节点的节点号和级别号,广播完成后,父节点在W个时隙长度时间内持续监听信道,如果信道持续空闲,则说明不存在子节点,该节点即为最低一级子节点,如果W个时隙时间长度内,父节点检测到信道变忙,则尝试接收子节点回复的分级应答帧rep_lev;父节点如果接收rep_lev帧失败,则广播分级冲突帧col_lev,告知子节点rep_lev帧发生冲突,父节点如果接收rep_lev帧成功,则把维护的子节点数变量n的值加1,同时在RDL链表尾部添加一个新结点,并将子节点的节点号存入此结点的数据域;父节点接收完rep_lev帧后,在W个时隙长度的时间内继续监听信道,如果信道持续空闲,则说明父节点的所有子节点已全部回复rep_lev帧,如果W个时隙长度的时间内,父节点检测到信道变忙,则尝试接收子节点回复的rep_lev帧;对于接收节点,接收到req_lev帧后,如果已确定自身的级别号,则忽略当前帧,如果尚未确定自身的级别号,则将该帧中的l值加1作为自己的级别号,并将该帧的发送节点作为自己的父节点,存储在变量f中,然后向父节点回复rep_lev帧;为了避免多个子节点同时发送rep_lev帧产生冲突,子节点在回复rep_lev帧之前,首先在[0,W‑1]内随机选择一个整数作为自身退避计数器的值,并开始退避,如果在退避过程中信道持续空闲,退避完成后子节点则向父节点回复rep_lev帧,如果在退避过程中信道变忙,子节点则暂停退避过程,记录当前退避计数器的剩余值,等待信道重新空闲后继续退避过程;子节点发送完rep_lev帧后,在冲突检测时间Tlev内持续监听信道,Tlev的值设定为Tlev=2*durmax_bct+durcol_lev (1)其中,durmax_bct为最大传播时延,durcol_lev为col_lev帧的传输时间,子节点如果在冲突检测时间内接收到了父节点广播的col_lev帧,则判定自己回复的rep_lev帧发生冲突,需要在[0,W‑1]内重新选择退避计数器的值,等待退避结束后重新向父节点回复rep_lev帧,反之,则判定回复的rep_lev帧已被父节点成功接收;(2)父节点接收完其所有子节点回复的rep_lev帧后,按照RDL中记录的子节点的顺序,授权子节点继续寻找下一级子节点,具体过程如下:①父节点首先取出RDL首结点数据域中记录的子节点号,并向该子节点发送寻找子节点授权指令,授权指令发送后,将首结点从RDL中删除;②子节点接收到父节点的授权指令后,按照(1)中的方法广播req_lev帧,寻找下一级子节点;③子节点寻找过程结束后,作为下一级子节点的父节点重复过程①,直到最后一级子节点判定其无更低一级的子节点,最后一级子节点的RDL为空;④子节点判定RDL为空时,向其父节点回复完成寻找子节点指令,父节点接收到该指令后,重复过程①,即取出RDL更新后的首结点数据域中的子节点号,并向取出的子节点发送寻找子节点授权指令;⑤当父节点RDL中记录的所有子节点均完成子节点的寻找过程,并回复了完成寻找子节点指令时,父节点按照过程④向其高一级父节点应答完成寻找子节点指令,重复过程④,直到根节点接收到其RDL中记录的所有子节点回复的完成寻找子节点指令,全网节点的分级过程结束;步骤2:同步阶段,网络中的根节点首先广播同步请求帧,发起全网同步过程,并通过二维离散马尔可夫链对子节点竞争回复同步应答帧前的退避过程进行建模分析,求解得到不同子节点数量条件下竞争退避窗口的最佳取值W,同时将W的值捎带告知子节点;同步阶段开始后,网络中的根节点首先作为父节点向其子节点广播同步请求帧req_syn,req_syn帧中包含父节点的级别号l、req_syn帧的发送时间T1和子节点竞争回复同步应答帧rep_syn时退避竞争窗口的最佳取值W,W的值通过二维离散马尔可夫链模型分析求解得到;req_syn帧广播完成后,父节点在W个时隙长度时间内等待接收子节点回复的rep_syn帧,父节点如果没有接收到子节点回复的rep_syn帧,则广播同步冲突帧col_syn,告知子节点rep_syn帧发生冲突;同时,为了能够及时判断全部子节点回复rep_syn帧结束的时间,父节点维护其子节点中还未回复rep_syn帧的子节点的数量m,m的初始值为子节点数n,父节点每成功接收到一个rep_syn帧,将m值减1;步骤3:子节点接收到同步请求帧后,根据最佳竞争退避窗口大小竞争回复同步应答帧;子节点接收到父节点发送的req_syn帧后,从req_syn帧中读取父节点发送req_syn帧时的时间T1和竞争回复rep_syn帧的竞争窗口的最佳取值W,并记下rep_syn帧的接收时间T2;为了避免多个子节点同时回复rep_syn帧产生冲突,子节点在回复rep_syn帧之前,首先在[0,W‑1]内随机选择一个整数作为自身退避计数器的初始值,并开始退避,如果在退避过程中信道持续空闲,退避完成后子节点则向父节点回复rep_syn帧,rep_syn帧中携带时间T1和T2的值、当前子节点回复rep_syn帧的发送时间T3以及当前子节点的子节点数,如果在退避过程中信道变忙,子节点则暂停退避过程,记录当前退避计数器的剩余值,等待信道重新空闲后继续退避过程;子节点发送完rep_syn帧后,在冲突检测时间Tsyn内持续监听信道,Tsyn的值设定为Tsyn=2*durmax_bct+durcol_syn (2)其中,durmax_bct为最大传播时延,durcol_syn为col_syn帧的传输时间,子节点如果在冲突检测时间内接收到了父节点广播的col_syn帧,则判定自己回复的rep_syn帧发生冲突,需要在[0,W‑1]内重新选择退避计数器的值,等待退避结束后重新向父节点回复rep_syn帧,反之,则判定回复的rep_syn帧已被父节点成功接收;步骤4:父节点根据子节点回复的同步应答帧,计算出与子节点之间的时间偏差,并通过同步确认帧将时间偏差告知子节点,子节点接收到同步确认帧后调整本地时间;父节点接收到子节点回复的rep_syn帧后,则将m值减1,并在RDL尾部添加一个新结点,将子节点的节点号和子节点的子节点数量存入新添加结点的数据域,同时,父节点记录rep_syn帧的到达时间T4,结合rep_syn帧携带的时间T1、T2、T3的值,计算与子节点间的时间偏差;用d1表示req_syn帧的传播时延,d2表示rep_syn帧的传播时延,Diff表示子节点与父节点之间的时间偏差,则以下方程组成立假设帧的传播时延相同,即d1=d2,则由式(3)可得Diff的表达式父节点计算出与所有子节点之间的时间偏差后,广播同步确认帧res_syn,将时间偏差信息告知子节点,子节点接收到res_syn帧后,根据帧中携带的本节点与父节点的时间偏差,修正本地时间,完成时间同步;步骤5:完成同步的子节点继续作为下一级子节点的父节点发起同步过程;与节点分级过程类似,父节点广播res_syn帧后,按照RDL中记录的子节点的顺序,授权子节点作为下一级子节点的父节点继续发起同步过程,具体过程如下:(1)父节点首先取出RDL首结点数据域中记录的子节点号和子节点的子节点数,然后将首结点从RDL中删除,如果该子节点的子节点数为0,父节点则继续取出更新后的RDL首结点的子节点号和子节点的子节点数,如果相应子节点的子节点数不为0,父节点则向该子节点发送授权同步指令;(2)子节点接收到父节点的授权同步指令后,按照步骤2中的方法广播req_syn帧,发起与低一级子节点间的同步过程;(3)同步完成后,重复过程(1),直到倒数第二级子节点完成同步过程后,判定其RDL中每个结点数据域中记录的子节点的子节点数均为0,此时该子节点的RDL为空;(4)子节点判定RDL为空时,向其父节点回复完成同步指令,父节点接收到该指令后,重复过程(1);(5)当父节点RDL中记录的所有子节点均完成同步过程,并回复了完成同步指令时,父节点按照过程(4)向其高一级父节点回复完成同步指令,重复过程(4),直到根节点接收到其RDL中记录的所有子节点回复的完成同步指令,全网节点的同步过程结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610030901.4/,转载请声明来源钻瓜专利网。