CN105611621B - 一种适用于多跳无线传感器网络的主从同步方法 - Google Patents
一种适用于多跳无线传感器网络的主从同步方法 Download PDFInfo
- Publication number
- CN105611621B CN105611621B CN201610030901.4A CN201610030901A CN105611621B CN 105611621 B CN105611621 B CN 105611621B CN 201610030901 A CN201610030901 A CN 201610030901A CN 105611621 B CN105611621 B CN 105611621B
- Authority
- CN
- China
- Prior art keywords
- node
- child node
- frame
- rep
- child
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 122
- 230000008569 process Effects 0.000 claims abstract description 57
- 230000001360 synchronised effect Effects 0.000 claims abstract description 42
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000012790 confirmation Methods 0.000 claims abstract description 10
- 230000005540 biological transmission Effects 0.000 claims description 19
- 230000003252 repetitive effect Effects 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 9
- 238000013475 authorization Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000012423 maintenance Methods 0.000 claims description 4
- 230000007704 transition Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000003306 harvesting Methods 0.000 claims 1
- 238000004088 simulation Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 239000013078 crystal Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/001—Synchronization between nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/001—Synchronization between nodes
- H04W56/0015—Synchronization between nodes one node acting as a reference for the others
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
- H04W84/20—Master-slave selection or change arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种适用于多跳无线传感器网络的主从同步方法。该方法在初始化阶段,要求全网节点采用分布式的方式建立分级结构,并获取各自所属的级别,以及父节点和子节点信息。同步阶段,由网络中的根节点开始,各级父节点逐级广播同步请求帧,发起同步过程,并通过二维离散马尔可夫链模型求解得到不同子节点数条件下竞争退避窗口的最佳取值,同时将该值捎带告知子节点。子节点接收到同步请求帧后,根据最佳竞争退避窗口大小竞争回复同步应答帧。父节点接收到同步应答帧后,计算出与子节点之间的时间偏差,并通过同步确认帧将时间偏差告知子节点。子节点接收到同步确认帧后调整本地时间,完成同步过程。EXata中的仿真结果证明了该方法的有效性。
Description
技术领域
本发明属于无线网络领域,特别涉及适用于多跳无线传感器网络的主从同步方法。
背景技术
无线传感器网络(Wireless Sensor Networks,WSN)是一种分布式的无线网络,由散布在一定区域内的大量传感器节点通过自组织的方式形成。传感器节点感知并采集监测区域中监测对象的信息,通过多跳共享的方式将采集到的信息发送给汇聚节点,由汇聚节点通过有线网络或者中继网络将汇总后的信息发送给观察者。与传统获取信息的方式相比较,无线传感器网络具有部署快、自组织、成本低、功耗小、可扩展性强等优点,并且网络中的节点可以在人类生存困难或者不可到达的特殊环境中正常工作,广泛应用于军事、智能交通、环境监控、医疗卫生等多个领域。
网络节点间时间同步是无线传感器网络研究的重点内容。准确的时间同步是实现数据融合、TDMA(Time Division Multiple Access)调度、协调睡眠、定位等功能的基础。虽然传统的全球定位系统(Global Positioning System,GPS)技术以及广泛应用于Internet中的网络时间协议(Network Time Protocol,NTP)等都可以用来为网络提供全局时间同步,但GPS设备相对于廉价的传感器节点来说成本较高,且GPS设备受到地域限制;NTP由于其设计对象为互联网和计算机,设计重点为协议的可靠性和同步精度,没有考虑能耗和计算能力问题,不能直接应用于能量有限的无线传感器网络中。目前,针对无线传感器网络的时间同步方法大致可以划分为三大类:基于Receiver-Receiver的时间同步方法,基于Sender-Receiver的单向时间同步方法和基于Sender-Receiver的双向时间同步方法。
在基于Receiver-Receiver的时间同步方法中,只有接收节点记录其收到同步消息时的时间,发送节点不记录时间。该类方法中,发送节点周期性的向邻居节点广播同步帧,收到该帧的节点记录各自的接收时间,并通过控制帧交互交换彼此同步帧接收时间的值。节点通过计算这些时间的差值得到彼此之间的相对时间偏差,并根据时间偏差的值调整本地时钟的时间,从而实现时间同步。然而,该类方法需要大量的控制帧交互,节点能量消耗较大,且不能实现参考节点的同步。
基于Sender-Receiver的单向时间同步方法,需要发送节点和接收节点分别记录同步消息的发送和接收时间,但是同步过程只需要从发送节点到接收节点的单向通信。该类方法要求发送节点对所发送的每个字节都标记出其发送时的时间戳,然后,接收节点同样根据接收时间对接收到的每个字节进行标记。这样,接收节点就得到多个包含全局时间和本地时间的时间对,将这些数据进行线性拟合,得到时间的偏移量,并通过调整本地时钟完成时间同步。该类方法具有较高的同步精度,但是算法较为复杂,对硬件系统的要求较高。
基于Sender-Receiver的双向时间同步方法不仅需要同步的两个节点分别记录收发消息的本地时间,而且需要完成一次节点间的双向通信。该类方法首先将全网节点按照层次结构进行分级,形成一个以时间参考节点为顶级节点的分层结构,然后各节点逐级与上层节点进行同步,最终实现全网时间同步。该类方法通过双向通信消除了传播时延带来的误差,提高了同步精度。但是,随着网络规模的增加,节点之间的冲突加剧,同步效率较低。
发明内容
本发明的目的是针对多跳无线传感器网络,提出有效可靠的时间同步方法,从而为数据融合、TDMA调度、协调睡眠、定位等提供支持。为了实现该目的,本发明所采用的步骤是:
步骤1:初始化过程,全网节点采用分布式的方式建立分级结构,并获取各自所属的级别,以及父节点和子节点信息。
步骤2:同步阶段,网络中的根节点首先广播同步请求帧,发起全网同步过程,并通过二维离散马尔可夫链对子节点竞争回复同步应答帧前的退避过程进行建模分析,求解得到不同子节点数条件下竞争退避窗口的最佳取值W,同时将W的值捎带告知子节点。
步骤3:子节点接收到同步请求帧后,根据最佳竞争退避窗口大小竞争回复同步应答帧。
步骤4:父节点根据子节点回复的同步应答帧,计算出与子节点之间的时间偏差,并通过同步确认帧将时间偏差告知子节点,子节点接收到同步确认帧后调整本地时间。
步骤5:完成同步的子节点继续作为下一级子节点的父节点发起同步过程。
本发明提出的适用于多跳无线传感器网络的主从同步方法已经在EXata网络仿真环境中实现。仿真中分别考虑不同规模的网络场景,形成分级结构后,根节点每隔1s发起一次全网时间同步,直至仿真结束。仿真时间40s,节点的初始时间偏差为1ms,节点晶振偏差为10-6。附图5给出了给定网络规模条件下网络节点同步完成时间期望和竞争退避窗口关系的理论值和仿真值,理论值和仿真值的一致性表明了本发明构建的二维马尔科夫链模型的正确性。附图6和7给出了不同跳数条件下,本发明和TPSN(Timing-sync Protocol forSensor Networks)全网首次同步完成时间和节点同步成功率的性能对比,附图8给出了五跳网络环境下,本发明和TPSN不同时刻全网平均时间偏差的对比。由附图6、7和8所示的仿真结果可以看出,本发明提出的时间同步方法可以更加高效和可靠的实现多跳无线传感器网络的时间同步。
附图说明
图1是全网节点时间同步过程的流程图;
图2是网络中节点分层关系示意图;
图3是本发明采用的二维马尔可夫链模型状态转移图;
图4是本发明计算父子节点之间时间偏差的示意图;
图5是同步完成时间期望和竞争退避窗口关系的理论值和仿真值;
图6是全网节点首次同步完成的时间;
图7是全网节点首次同步成功的概率;
图8是不同时刻的全网平均时间偏差。
具体实施方式
下面结合附图和实施例对本发明作进一步详细描述。
在后面的叙述中,本说明书将本发明提出的适用于多跳无线传感器网络的主从同步方法简记为MSSM(Master-slave Synchronization Method for Multi-hop WirelessSensor Networks)。MSSM首先设定了以下网络运行条件:
1、网络节点工作在半双工状态,即在同一时刻,节点只能发送或者接收信号,但不能同时进行发送和接收,数据传输速率为2Mbps,节点传输半径为250m,物理载波检测半径为500m,退避时隙长度为40us;
2、同一时刻只允许一对收/发节点进行数据传输,否则将导致数据发送冲突;
3、节点晶振偏差为10-6。
以上述条件为基础,本发明提出的MSSM已经在无线网络仿真环境EXata中实现,并通过EXata环境中的仿真结果证明了该方法的有效性。MSSM实现的详细流程如附图1所示,其具体实施步骤为:
步骤1:初始化过程,全网节点采用分布式的方式建立分级结构,并获取各自所属的级别,以及父节点和子节点信息。
初始化过程中,全网节点采用分布式的方式建立分级结构。分级后,高一级的节点作为低一级节点的父节点发起同步过程,低一级的节点作为高一级节点的子节点响应同步过程。为了记录节点各自所属的级别、父节点、子节点数量信息,MSSM要求节点维护级别号变量l、父节点变量f、和子节点数变量n。同时,每个节点还维护一个用于存储各子节点回复分级应答帧rep_lev先后顺序的线性链表RDL。RDL中的每个结点由存储后继结点位置信息的指针域和存放数据元素信息的数据域组成。结点指针域中的指针指向RDL的下一个结点的存放地址。结点数据域包含以下信息:(1)子节点的节点号;(2)子节点的子节点数n。
全网节点采用分布式的方式建立分级结构的具体过程如下:
(1)MSSM首先在全网节点中选择一个节点作为根节点,并把根节点的时间作为整个网络的标准时钟源。初始化过程中,根节点把自身的级别号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所示的网络分级结构为例,假设处在同一级的子节点收到req_lev帧后,回复rep_lev帧的顺序为从左向右,即父节点RDL中存储的子节点顺序为从左向右。根节点0寻找子节点过程结束后,取出RDL首结点数据域中记录的子节点1,并向子节点1发送寻找子节点指令。授权指令发送后,根节点0将首结点从RDL中删除,并将首结点指针指向原首结点的下一个结点,此时根节点0的RDL首结点数据域中记录的为子节点2。子节点1收到寻找子节点指令后,广播req_lev帧,寻找其子节点。寻找子节点过程完成后,节点1确定其子节点4、5、6。节点1取出其RDL首结点数据域中记录的子节点4,并向子节点4发送寻找子节点指令。子节点4寻找子节点过程完成后,判定其RDL链表为空,即自己为最后一级子节点,则向父节点1回复完成寻找子节点指令。父节点1收到该命令后,取出更新后的RDL链表首结点数据域中记录的子节5,并向节点5发送寻找子节点指令,如此往复,直到子节点6向父节点1回复完成寻找子节点指令。此时,节点1检测到其RDL为空,说明其所有子节点已完成寻找子节点过程,则向其更高一级的父节点0回复完成寻找子节点指令。父节点0收到该命令后,取出更新后的RDL链表首结点数据域中记录的子节2,并向节点2发送寻找子节点指令,依次往复,当根节点0接收到子节点3回复的完成寻找子节点指令时,全网节点分级完成。此时,网络中所有节点均已获知了各自所属的级别、父节点和子节点信息。
步骤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帧结束的时间,MSSM要求父节点维护其子节点中还未回复rep_syn帧的子节点的数量m,m的初始值为子节点数n,父节点每成功接收到一个rep_syn帧,将m值减1。
通过二维离散马尔可夫链模型分析求解得到退避竞争窗口的最佳取值W的具体过程如下:
针对子节点竞争回复rep_syn帧前的退避过程,构建如附图3所示的二维离散马尔可夫链模型。模型中,任意一个子节点的状态可用二维随机变量{s(t),b(t)}表示,其中,s(t)表示当前参与竞争回复rep_syn帧的子节点数,b(t)表示子节点当前退避计数器的剩余值。
附图3中其余各变量的含义如下:
n:子节点的数量;
p(si):子节点退避过程中,另外的子节点成功发送rep_syn帧的概率;
p(ci):子节点发送rep_syn帧失败的概率。
用P(i|j)表示节点从状态j到i的一步状态转移概率,则附图3所示的离散马尔可夫链中的非空一步状态转移概率可表示为
上述方程组中,第一个方程表示子节点退避计数器的值减1的概率;第二个方程表示网络中有一个子节点成功发送rep_syn帧,使得当前参与竞争的子节点数和子节点退避计数器的值同时减1的概率;第三个方程表示参与竞争的子节点数为n时,子节点发送rep_syn帧后,在[0,W-1]内随机选取的退避计数器的初始值为k的概率;第四个方程表示参与竞争的子节点数为i时,子节点成功发送rep_syn帧后,在下个同步周期从[0,W-1]内随机选取的新的退避计数器的初始值为k的概率;第五个方程表示参与竞争的子节点数为1时,子节点成功发送rep_syn帧后,在下个同步周期从[0,W-1]内随机选取的新的退避计数器的初始值为k的概率;第六个方程表示参与竞争的子节点数为i时,子节点发送rep_syn帧失败后,在区间[0,W-1]内随机选取的新的退避计数器的初始值为k的概率。
用Pi,j表示马尔可夫链的稳态概率分布,即Pi,j=limt→∞P{s(t)=i,b(t)=j},i∈[1,n],j∈[0,W-1]。为便于表达,定义
可得
由
利用稳态概率分布的归一化条件:
可求出在i个竞争子节点的情况下,单位时隙内发送rep_syn帧的概率τi为
则
当网络中存在i个竞争子节点时,其中任意子节点成功发送rep_syn帧的概率为1-p(ci),所以每个rep_syn帧的成功发送,平均导致的冲突次数约为1/(1-p(ci))-1,从而可以得到n个子节点全部完成rep_syn帧的发送带来的冲突次数Ncn的期望为
设父节点与其所有子节点完成时间同步所需的时间为E[T],为了表述方便,设定以下符号变量:
子节点从处于Pi,k状态到成功完成res_syn帧的接收,进入新一轮同步阶段需要的时间;
E[Ti]:网络中存在i个竞争子节点时,单个子节点完成同步的时间期望;
E[σi]:当网络中存在i个竞争子节点时,子节点退避时隙长度期望值;
δ:空闲时隙长度;
ε1:同步请求帧rep_syn的传输时间;
ε2:同步确认帧res_syn的传输时间;
ζ:同步冲突帧col_syn的传输时间。
当网络中存在i个竞争子节点时,子节点在退避过程中监听到信道空闲的概率为(1-τi)i-1,子节点退避时隙长度期望值E[σi]可表示为
当i=1时,的表达式可以表示为
由式(12)可得
当i∈[2,n]时的表达式可以表示为
由式(15)通过迭代计算可得出的值。
当i∈[2,n]时,网络中单个竞争子节点完成同步的时间期望为
故当网络中存在n个子节点时,父节点与其所有子节点完成时间同步所需的时间期望E[T]为
根据完成时间同步所需的时间期望E[T],本发明通过数值搜索法确定给定子节点数条件下竞争退避窗口的最佳取值W。具体方法为:将W的取值从最小值1开始递增,依次分别计算出相应E[T](W)的值,W=1,2,3......。若E[T](W)的值满足
E[T](W+1)-E[T](W)>0 (18)
则W即为n个子节点条件下,子节点竞争退避窗口的最佳取值。得到W的值后,父节点通过req_syn帧把W的捎带告知各子节点。
步骤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 (19)
其中,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的值,计算与子节点间的时间偏差。如附图4所示,T1和T4表示父节点不同时刻记录的本地时间,T2和T3表示子节点在不同时刻记录的本地时间,d1表示req_syn帧的传播时延,d2表示rep_syn帧的传播时延,Diff表示子节点与父节点之间的时间偏差,则以下方程组成立
假设帧的传播时延相同,即d1=d2,则由式(20)可得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中记录的所有子节点回复的完成同步指令,全网节点的同步过程结束。
本发明申请书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (2)
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中记录的所有子节点回复的完成同步指令,全网节点的同步过程结束。
2.根据权利要求1所述的一种适用于多跳无线传感器网络的主从同步方法,其特征在于通过二维离散马尔可夫链对子节点竞争回复同步应答帧前的退避过程进行建模分析,求解得到不同子节点数条件下竞争退避窗口的最佳取值W的具体方法为:
针对子节点竞争回复rep_syn帧前的退避过程,构建二维离散马尔可夫链模型,模型中,任意一个子节点的状态可用二维随机变量{s(t),b(t)表示,其中,s(t)表示当前参与竞争回复rep_syn帧的子节点数,b(t)表示子节点当前退避计数器的剩余值;
模型中其余各变量的含义如下:
n:子节点的数量;
p(si):子节点退避过程中,另外的子节点成功发送rep_syn帧的概率;
p(ci):子节点发送rep_syn帧失败的概率;
用P(i|j)表示节点从状态j到i的一步状态转移概率,则离散马尔可夫链中的非空一步状态转移概率可表示为
上述方程组中,第一个方程表示子节点退避计数器的值减1的概率,第二个方程表示网络中有一个子节点成功发送rep_syn帧,使得当前参与竞争的子节点数和子节点退避计数器的值同时减1的概率,第三个方程表示参与竞争的子节点数为n时,子节点发送rep_syn帧后,在[0,W-1]内随机选取的退避计数器的初始值为k的概率,第四个方程表示参与竞争的子节点数为i时,子节点成功发送rep_syn帧后,在下个同步周期从[0,W-1]内随机选取的新的退避计数器的初始值为k的概率,第五个方程表示参与竞争的子节点数为1时,子节点成功发送rep_syn帧后,在下个同步周期从[0,W-1]内随机选取的新的退避计数器的初始值为k的概率,第六个方程表示参与竞争的子节点数为i时,子节点发送rep_syn帧失败后,在区间[0,W-1]内随机选取的新的退避计数器的初始值为k的概率;
用Pi,j表示马尔可夫链的稳态概率分布,即Pi,j=limt→∞P{s(t)=i,b(t)=j},i∈[1,n],j∈[0,W-1],为便于表达,定义
可得
由
利用稳态概率分布的归一化条件:
可求出在i个竞争子节点的情况下,单位时隙内发送rep_syn帧的概率τi为
则
当网络中存在i个竞争子节点时,其中任意子节点成功发送rep_syn帧的概率为1-p(ci),所以每个rep_syn帧的成功发送,平均导致的冲突次数约为1/(1-p(ci))-1,从而可以得到n个子节点全部完成rep_syn帧的发送带来的冲突次数Ncn的期望为
设父节点与其所有子节点完成时间同步所需的时间为E[T],为了表述方便,设定以下符号变量:
子节点从处于Pi,k状态到成功完成res_syn帧的接收,进入新一轮同步阶段需要的时间;
E[Ti]:网络中存在i个竞争子节点时,单个子节点完成同步的时间期望;
E[σi]:当网络中存在i个竞争子节点时,子节点退避时隙长度期望值;
δ:空闲时隙长度;
ε1:同步请求帧rep_syn的传输时间;
ε2:同步确认帧res_syn的传输时间;
ζ:同步冲突帧col_syn的传输时间;
当网络中存在i个竞争子节点时,子节点在退避过程中监听到信道空闲的概率为(1-τi)i-1,子节点退避时隙长度期望值E[σi]可表示为
当i=1时,的表达式可以表示为
由式(15)可得
T1 k=ε1+ε2+kδ (16)
当i∈[2,n]时的表达式可以表示为
由式(18)通过迭代计算可得出的值;
当i∈[2,n]时,网络中单个竞争子节点完成同步的时间期望为
故当网络中存在n个子节点时,父节点与其所有子节点完成时间同步所需的时间期望E[T]为
根据完成时间同步所需的时间期望E[T],通过数值搜索法确定给定子节点数条件下竞争退避窗口的最佳取值W,具体方法为:将W的取值从最小值1开始递增,依次分别计算出相应E[T](W)的值,W=1,2,3......,若E[T](W)的值满足
E[T](W+1)-E[T](W)>0 (21)
则W即为n个子节点条件下,子节点竞争退避窗口的最佳取值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610030901.4A CN105611621B (zh) | 2016-01-14 | 2016-01-14 | 一种适用于多跳无线传感器网络的主从同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610030901.4A CN105611621B (zh) | 2016-01-14 | 2016-01-14 | 一种适用于多跳无线传感器网络的主从同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105611621A CN105611621A (zh) | 2016-05-25 |
CN105611621B true CN105611621B (zh) | 2019-03-29 |
Family
ID=55991080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610030901.4A Expired - Fee Related CN105611621B (zh) | 2016-01-14 | 2016-01-14 | 一种适用于多跳无线传感器网络的主从同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105611621B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196724B (zh) * | 2017-05-05 | 2019-01-29 | 深圳市汇川技术股份有限公司 | 一种基于分布式时钟的多机器人控制同步系统及方法 |
CN109699068B (zh) * | 2017-10-20 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 一种基站同步方法和装置 |
CN107995681B (zh) * | 2017-11-16 | 2022-07-08 | 北京智芯微电子科技有限公司 | 一种无线传感网时间同步方法及装置 |
CN108347807A (zh) * | 2017-12-07 | 2018-07-31 | 中山市新邦照明电器有限公司 | 照明控制方法及灯具 |
CN108134980A (zh) * | 2018-01-11 | 2018-06-08 | 南京华讯方舟通信设备有限公司 | 一种适用于无人机蜂群自组织网络的快速分布式相对定位方法 |
CN109447757A (zh) * | 2018-10-31 | 2019-03-08 | 湖南金码智能设备制造有限公司 | 一种自助购物系统及购物方法 |
CN109360335A (zh) * | 2018-10-31 | 2019-02-19 | 湖南金码智能设备制造有限公司 | 一种自动组柜方法和自助购物系统 |
CN109360071A (zh) * | 2018-10-31 | 2019-02-19 | 湖南金码智能设备制造有限公司 | 一种多个自动售货柜的自动组柜方法和自助购物系统 |
CN109673045B (zh) * | 2018-12-25 | 2021-01-05 | 北京农业信息技术研究中心 | 无线传感器网络时隙分配多跳同步传输系统及方法 |
CN109699071B (zh) * | 2019-03-18 | 2021-03-16 | 辰芯科技有限公司 | 自组网通信系统的时间同步方法、系统和可读存储介质 |
CN110519839B (zh) * | 2019-08-27 | 2021-12-07 | 南京航空航天大学 | 一种无线局域网时间同步方法 |
CN110784920A (zh) * | 2019-09-17 | 2020-02-11 | 天津大学 | 一种水下滑翔机间的时间同步与多址接入融合方法 |
CN110972162B (zh) * | 2019-11-22 | 2022-03-25 | 南京航空航天大学 | 一种基于马尔科夫链的水声传感器网络饱和吞吐量求解方法 |
CN111787607B (zh) * | 2020-06-30 | 2023-04-18 | 大唐终端技术有限公司 | 一种自组网提高同步精度的方法 |
CN112019290B (zh) * | 2020-08-30 | 2022-07-08 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多天线系统时间同步方法 |
CN114554507B (zh) * | 2022-02-24 | 2023-04-18 | 电子科技大学 | 一种面向生态监测的多跳LoRaWAN通信系统及方法 |
CN114553358B (zh) * | 2022-02-25 | 2023-09-01 | 深圳市兴海物联科技有限公司 | 一种物联网分布式精确时间同步方法 |
CN115174979B (zh) * | 2022-06-20 | 2023-12-29 | 阿里巴巴(中国)有限公司 | 流媒体传输网络及传输控制方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2131511A2 (en) * | 2008-06-06 | 2009-12-09 | Fisher-Rosemount Systems, Inc. | Methods and apparatus for implementing a sequential synchronization hierarchy among networked devices |
CN103068033A (zh) * | 2013-01-29 | 2013-04-24 | 南京航空航天大学 | 一种无线网络分布式网同步退避参数优化方法 |
CN103546868A (zh) * | 2012-07-12 | 2014-01-29 | 华为技术有限公司 | 一种无线传感器网络的时间同步方法、网络系统和节点 |
CN104519563A (zh) * | 2015-01-12 | 2015-04-15 | 中国矿业大学 | 一种分层无线传感器网络时间同步方法 |
-
2016
- 2016-01-14 CN CN201610030901.4A patent/CN105611621B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2131511A2 (en) * | 2008-06-06 | 2009-12-09 | Fisher-Rosemount Systems, Inc. | Methods and apparatus for implementing a sequential synchronization hierarchy among networked devices |
CN103546868A (zh) * | 2012-07-12 | 2014-01-29 | 华为技术有限公司 | 一种无线传感器网络的时间同步方法、网络系统和节点 |
CN103068033A (zh) * | 2013-01-29 | 2013-04-24 | 南京航空航天大学 | 一种无线网络分布式网同步退避参数优化方法 |
CN104519563A (zh) * | 2015-01-12 | 2015-04-15 | 中国矿业大学 | 一种分层无线传感器网络时间同步方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105611621A (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105611621B (zh) | 一种适用于多跳无线传感器网络的主从同步方法 | |
CN101335587B (zh) | 工业无线网络的精确时间同步方法 | |
CN107949047A (zh) | 降低网络通信量的无线传感器网络一致性时间同步方法 | |
CN105188126B (zh) | 基于平均场的分布式多跳无线网络时钟同步方法 | |
ATE426289T1 (de) | Verfahren zur synchronisation und datenuebertragung | |
CN103109501A (zh) | 网络时延测量方法、装置和系统 | |
CN106209289A (zh) | 一种小卫星自组织网络时间同步方法 | |
CN101982959B (zh) | 网络的按需时间同步方法 | |
CN105472722B (zh) | 一种时钟同步方法及装置 | |
CN107070498B (zh) | 一种基于跳频tdma系统的分簇多级自组网时间同步方法 | |
CN104053223A (zh) | 一种低功耗无线传感器网络时间同步方法 | |
CN105246137B (zh) | 一种微功率无线网络数据传输方法及系统 | |
Marco et al. | Synchronization of multihop wireless sensor networks at the application layer | |
US20160065358A1 (en) | Synchronization method, intermediate node, and slave node of communication network system | |
CN110290579A (zh) | 一种窄带条件下的无线自组网络时间同步方法、节点及无线自组网络 | |
CN103747516B (zh) | 无线传感器网络中事件时间标签的后时间同步方法 | |
CN102196554A (zh) | 通过簇平均实现无线传感器网络平均时钟同步的方法 | |
CN107548147B (zh) | 一种无线自组织网络无外时钟网同步算法 | |
Kaur et al. | A survey of time synchronization protocols for wireless sensor networks | |
CN105933935B (zh) | 一种用于无线传感器网的时间同步方法 | |
CN107872872A (zh) | 一种无线mesh网络的入网同步方法 | |
Jin et al. | Integrated time synchronization and multiple access protocol for underwater acoustic sensor networks | |
CN103957591A (zh) | 基于节点对的无线传感网络时间同步方法 | |
CN105960820B (zh) | 一种同步装置及方法 | |
Nefzi et al. | TBoPS: A tree based distributed beacon only period scheduling mechanism for IEEE 802.15. 4 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190329 Termination date: 20200114 |
|
CF01 | Termination of patent right due to non-payment of annual fee |