文章目录
- 时间同步模型
- 时钟模型
- 1. 节点本地时钟模型
- 2. 节点逻辑时钟模型
- 通信模型
- 1. 单向报文传递
- 2. 双向报文交换
- 3. 广播参考报文
- 4. 参数拟合技术
- 时钟同步的误差来源
- 时间同步协议
- 时钟同步的类别
- 1. 时钟速率同步与偏移同步
- 2. 同步期限:长期同步与按需同步
- 3. 同步范围:全网同步与局部同步
- 4. 内同步和外同步
- 5. 发送者-接收者同步与接收者-接收者同步
- 典型的时间同步协议
- 1. LTS协议
- 2. RBS协议
- 3. TPSN协议
- 4. DMTS协议
- 5. FTSP协议
时间同步是无线传感器网络支撑技术的重要组成部分
研究无线传感器网络中的时间同步首先要分析其应用需求,在无线传感器网络中,由于传感器节点分布密度高,而且自身资源有限,因此传统网络中高精度、不计成本和能耗的时间同步技术就不再适用于无线传感器网络
在分布式系统中,时间同步涉及“物理时间”和“逻辑时间”两个不同的概念
- 物理时间:用来表示人类社会使用的绝对时间
- 逻辑时间:体现了事件发生的顺序关系,是一个相对概念
时间同步模型
时钟模型
传感器网络中节点的本地时钟依靠对自身晶振中断计数实现。晶振的频率误差和初始计时时刻不同,使得节点之间本地时钟不同步。如果能估算出本地时钟与物理时钟的关系或本地时钟之间的关系,就可以构造对应的逻辑时钟以达成同步
1. 节点本地时钟模型
在计算机系统中,时钟通常用晶体振荡器脉冲来度量
在工程实践中,因为温度、压力、电源电压等外界环境的变化,往往会导致晶振频率产生波动。因此,构造理想时钟比较困难。在一般情况下,晶振频率的波动幅度并非任意的,而是局限在一定的范围之内,为了方便描述和分析,定义如下3种时钟模型:
- 速率恒定模型:假定时钟速率是恒定的
- 漂移有界模型:在工程实践中常用来确定时钟的精度或误差的上下界 🚩
- 漂移变化有界模型:假定时钟漂移的变化是有界
2. 节点逻辑时钟模型
任一节点 i 在物理时刻 t 的逻辑时钟读数可以表示为: L c ( t ) = l a i × c ( t ) + l b i Lc(t)= la_i × c(t) + lb_i Lc(t)=lai×c(t)+lbi ( l a i la_i lai 频率修正系数, l b i lb_i lbi 初相位修正系数)
采用逻辑时钟的目的是对本地时钟进行一定的换算以达成同步。为了同步任意两个节点 i 和 j ,构造逻辑时钟有两种途径:
- 根据本地时钟与物理时钟等全局事件基准的关系进行变换
- 根据两个节点本地时钟的关系进行对应换算
两种方法都估计了频率修正系数和初相位修正系数,精度较高
对于低精度类应用,还可以简单地根据本地时钟和物理时钟的差值以及本地时钟之间的差值进行修正
通信模型
节点时间校正技术是无线传感器网络时间同步的核心和基础
目前主要的时间校正技术有单向报文传递、双向报文交换、广播参考报文和参数拟合技术
1. 单向报文传递
节点 i 在本地时间 T i a T_{ia} Tia 时刻向节点 j 发送一个报文,包含时间戳 T i a T_{ia} Tia
假设节点 j 在本地时间 T j b T_{jb} Tjb 时刻收到上述报文
节点 j 不知道报文的传递时延 d,所以只能对 d 进行估计,如果知道 d 的上界和下界,则有估计公式:
d = ( d m a x + d m i n ) / 2 d = (d_{max}+d_{min})/2 d=(dmax+dmin)/2
进而估计节点 i 和节点 j 之间的时间偏差公式为:
Ɵ = T j b – T i a − d = T j b – T i a − ( d m a x + d m i n ) / 2 Ɵ = T_{jb} ~–~T_{ia}-d = T_{jb} ~– ~T_{ia}-(d_{max}+d_{min})/2 Ɵ=Tjb – Tia−d=Tjb – Tia−(dmax+dmin)/2
2. 双向报文交换
双向报文交换的时间校正技术要复杂很多
节点 i 在本地时钟 T i a T_{ia} Tia 时刻向节点 j 发送同步报文,节点 j 在本地时钟时刻 T j a T_{ja} Tja 接收到该报文,之后立即向节点 i 发送应答报文,节点 i 在本地时钟时刻 T i b T_{ib} Tib 接收到该应答报文
则报文的往返时间为 D,大小为 T i b − T i a T_{ib} -T_{ia} Tib−Tia
报文的传递时延 d 在0~D之间
由此可以确定节点 i、j 之间的时间偏差为:
Ɵ = T i b – T j a − d ′ Ɵ = T_{ib} ~–~T_{ja}-d' Ɵ=Tib – Tja−d′
假设上行报文和下行报文的时间延迟相等,即 d = d ’ = D / 2 d=d’=D/2 d=d’=D/2 ,则:
Ɵ = T i b – T j a − D / 2 Ɵ = T_{ib} ~–~T_{ja}-D/2 Ɵ=Tib – Tja−D/2
一般节点 j 收到报文后都会延迟一段时间再向节点 i 回复
则有 :
{ T j a = T i a + d + Ɵ T i b = T j b + d − Ɵ \left \{ \begin{array}{c} T_{ja}=T_{ia} +d+Ɵ \\ T_{ib}=T_{jb} +d-Ɵ \end{array} \right. {Tja=Tia+d+ƟTib=Tjb+d−Ɵ
➡️ Ɵ = ( ( T j a − T i a ) − ( T i b − T j b ) ) / 2 Ɵ=((T_{ja}-T_{ia})-(T_{ib}-T_{jb}))/2 Ɵ=((Tja−Tia)−(Tib−Tjb))/2
双向报文交换是应用很广泛的一种时间校正技术,精度比较高。但是网络负载比较大,耗能较高,而且需要周期性地执行同步过程
3. 广播参考报文
广播参考报文是利用第三个节点 k,发送时间同步的参考广播报文给相邻的节点 i 和节点 j
假设这个参考广播报文到达节点 i 和节点 j 的时间延迟相等 T i a = T j a T_{ia} =T_{ja} Tia=Tja
节点 j 收到参考广播报文后,立即发送包含有 T i a T_{ia} Tia 信息的报文给节点 i
于是节点 i 就可以计算收到两条报文的时间间隔 D 为 T i b − T i a T_{ib} -T_{ia} Tib−Tia
广播参考报文的方法只能使节点间的时钟保持相对同步
4. 参数拟合技术
参数拟合技术可以同时计算出节点时钟之间的频率偏移和相位偏移
假设两时钟的时间之间满足式 T j = λ T i + τ T_j=λT_i+τ Tj=λTi+τ,其中,𝝀 和 𝝉 分别是两个时钟时间之间的相对频率偏移和相位偏移
采用上述3种方法测量节点间时间偏差,在测量得到多组数据样本后,就可以利用参数拟合技术计算时间的频偏和相偏
参数拟合技术有线性回归、锁相环两种实现方法
时钟同步的误差来源
节点通过交互同步信令估算相应的参数,然而同步信令在网络上传输会产生不确定的时延,该时延的不确定性是影响同步精度的关键因素
正确估计同步信息的时延对提高同步精度意义重大
同步信息的时延包括以下几部分:协议发送时延、接入时延、发送时延、传播时延、接收时延、接收处理时延
- 协议发送时延:网络层到链路层的发送时延
- 接入时延:链路层等待信道空闲的时间,受网络流量影响大
- 发送时延:物理层发送数据包的时间,受包长及速率影响
- 传播时延:在介质中的传播时间
- 接收时延:接收数据包的时间,与发送时延有重叠
- 接收处理时延:解包并通知相应程序
时间同步协议
时钟同步的类别
时间同步的类别:时间同步一般理解为使许多节点的时钟显示相同的时间,实际上有很多种不同类型的同步
在为给定的应用选择同步算法时,要在最大程度满足应用的同时尽可能将计算、存储,尤其是能量开销降到最低
1. 时钟速率同步与偏移同步
速率同步是指各个传感器节点测量所得的时间间隔相等
在目标跟踪、定位等应用中,节点时钟速率同步是最低的同步要求
偏移同步是指传感器节点在当前时刻 t 的时钟时间显示相等
即在时刻 t 传感器节点的时钟读出时间同为 T,而不管时钟速率是否同步
偏移同步对传感器网络中不同节点间的时戳结合是必须的
2. 同步期限:长期同步与按需同步
同步期限是指同步要保持的时间长短
在长期同步的情况下,维持同步的代价是很大的,随着时间的推移,节点间误差逐渐增加,可能还需要周期性地再同步
按需同步是指传感器节点的时间在相关事件发生前后进行同步,它不需要大量的维护同步的通信开销,节省了通信带宽和节点能量。对一些传感器网络的应用,按需同步效率更高
3. 同步范围:全网同步与局部同步
同步范围是定义网络中哪些节点式需要同步的
在有些情况下,范围可能纯粹是地理上的距离
而在其他情况下,逻辑距离更有用,如网络中的跳数
根据不同的应用,范围可能是网络中所有节点或者部分节点
4. 内同步和外同步
时间同步简单的意思就是得到正确的时间,一般这个正确时间就是 UTC(世界标准时间)
然而,一些应用只需要记录事件发生的先后顺序以及时间间隔,并不需要事件发生的绝对时间
这种情况下,只需要内同步(相对同步),网络必须内部一致,不需要它们与外界标准时间保持一致性
另一类应用要求外同步(绝对同步),即每个节点都要与外部时间标度(如UTC)保持同步
通常的环境监控或者需要数据存档的应用中,比较需要外同步,而且要求的同步期限比较长
5. 发送者-接收者同步与接收者-接收者同步
在进行发送者-接收者同步时,发送者在报文中嵌入报文发送时间,而接收者在接收到报文后记录下接收时间,并利用这些时间信息计算出收发双方的时钟偏移,进而达到收发双方的时间同步
接收者-接收者同步时,发送者发送一个同步报文到多个接收者,这些接收者通过对同一个报文时间的比较,计算出它们之间的时钟偏移,从而达到接收者一接收者同步
典型的时间同步协议
1. LTS协议
LTS同步算法是基于成对机制的发送者与接收者之间的轻量级全网时间同步
设计目标:适用于低成本、低复杂度的传感器节点时间同步,侧重最小化同步的能量开销,同时具有鲁棒性和自配置的特点
该协议把时间同步模块划分为3个组成部件:
-
重同步监测
重同步时间监测用来确定节点进行时间同步的时刻
两种方式确定重同步时刻:
- 基于初始同步的时间,以 kR 固定周期进行重同步,R 是单个时间同步周期的长度,k 是大于 1 的实数,用来防止两个同步周期的重叠
- 一个特定节点在 kR 时间后发送初始同步消息给其他节点,节点在收到消息后启动时间同步
-
远程时钟估计
远程时钟估计部件用来决定网络中另一个节点的本地时钟
-
时钟修正
时钟修正部件用于更正节点的本地时间
LTS算法在成对同步的基础上进行了改进,包括两种同步方式:
- 集中式:首先构建一个低深度的生成树,以根节点作为参考节点,根节点与其下一层的叶子节点成对同步,叶子节点再与其下一层的孩子节点成对同步,直到所有节点完成同步。因为同步时间和同步精度误差与生成树的深度有关,所以深度越小,同步时间越短,同步精度误差越小
- 分布式:当节点 i 需要同步时,发送同步请求给最近的参考节点。此方式中没有利用生成树,按已有的路由机制寻找参考点。在节点i与参考节点路径上的所有节点都被动地与参考节点同步时,就不需要再发出同步请求,减少了同步请求的数量
另外,为避免相邻节点发出的同步请求重复,节点 i 在发送同步请求时询问相邻节点是否也需同步,将同步请求聚合,减少同步请求的数目和不必要的重复
2. RBS协议
参考广播同步机制(RBS)利用了无线数据链路层的广播信道特性,一个节点发送广播消息,接收到广播消息的一组节点通过比较各自接收到广播消息的同步时刻,来实现它们之间的时间同步
其具体描述为:第三方节点定时发送参考广播给相邻节点,相邻节点接收广播并记录到达时间,以此时间作为参考与本地时钟比较。相邻节点交换广播到达时间利用最小方差线性拟合的方法,估算两者的初始相位差和频率差,以此调整本地时钟,达到接收节点间的同步。为提高同步精度,可以增加参考广播的个数,也可以多次广播
RBS算法通过接收节点对时抵消发送时间和访问时间,发送节点广播一个信标分组,广播域中两个节点都能接收到这个分组,交换接收时间,两个接收时间的差值相当于两个接收节点间的时间差值,其中一个节点可以根据这个时间差值更改它的本地时间,从而实现两个节点的时间同步
对于两个接收节点,RBS 机制需要 3 个发送消息和 4 个接收消息。对于单个广播域内的 n 个节点和 m 个广播信息,RBS 机制的复杂度是 O(mn)。在实际传感器网络中,发送节点往往也需要同步,需要另一个节点成为发送节点。多跳网络要保证簇之间有共同节点,误差随跳数增加而增加
【举例】RBS可应用于多跳网络时间同步
非邻节点 A 和 B 分别发送信标分组,其各自邻居能时间同步。节点 4 则能同步两个广播域内的时间
为了得到网络中的全局时间,需要进行多跳网络中的时间转换
设发生在节点 1 和节点 7 附近的两个事件,分别记为 E1 和 E7
节点 A 和节点 B 分别在 Pa 和 Pb 时间点发送 beacon 分组,节点 1 在接收到节点 A 发送的分组后 2s 观察到事件 E1,节点 7 在观察到事件 E7 后 4s 才收到节点 B 发送的 beacon 分组
设其他节点从节点 4 知道节点 A 发送分组比节点 B 晚10s: P a = P b + 10 Pa=Pb +10 Pa=Pb+10
由此推出:
P a = E 1 − 2 P b = E 7 + 4 } E 1 = E 7 + 16 \left. \begin{array}{c} Pa=E1-2 \\ Pb=E7+4 \end{array} \right\} ~E1=E7+16 Pa=E1−2Pb=E7+4} E1=E7+16
传统多跳网络的时间同步方法是节点重新广播它收到的时间信息,而RBS机制不依赖于发送节点与接收节点的时间关系,从消息延迟中去除所有发送节点的非确定因素,减少了每跳的误差积累
RBS利用信道的广播特性来同步接收节点的时间,具有更高的精度
3. TPSN协议
TPSN是基于成对双向消息传送的发送者与接收者之间的全网时间同步
通过采用层次型网络结构来提供全网范围内节点同步
该机制分为拓扑建立阶段和同步建立阶段,考虑了传播时间和接收时间,利用双向消息交换计算消息的平均延迟,提高了精度
-
拓扑建立阶段:建立分层拓扑结构
首先确定根节点及等级,根节点是全网的时钟参考节点,等级为0级,根节点广播包含有自身等级信息的数据包,相邻节点收到该数据包后,确定自身等级为1级,然后1级节点继续广播带有自身等级信息的数据包,以此类推,i级节点广播带有自身等级信息的数据包,其相邻节点收到后确定自身等级为 i + 1,直到网络中所有节点都有自身的等级
-
同步建立阶段:同步阶段从根节点开始,与其下一级节点进行成对同步,然后 i 级节点与 i - 1级节点同步,直到每个节点都与根节点同步
【举例】
节点 S 在本地时刻 T 1 T_1 T1 时向节点 R 发送同步请求,该请求中包含节点 S 的等级和 T 1 T_1 T1 ,节点R在本地时刻 T 2 T_2 T2 时收到请求并在 T 3 T_3 T3 时回发同步应答,该应答包含 T 2 T_2 T2 和 T 3 T_3 T3 ,节点 S 于本地时刻 T 4 T_4 T4 收到应答信息,根据时间关系可列出方程:
T 2 = T 1 + d + Δ T 4 = T 3 + d − Δ T_2=T_1+d+Δ\\ T_4 = T_3+d-Δ T2=T1+d+ΔT4=T3+d−Δ
其中 d d d 为消息传输迟延,Δ 为时钟偏差
d = ( T 2 − T 1 ) + ( T 4 − T 3 ) 2 Δ = ( T 2 − T 1 ) − ( T 4 − T 3 ) 2 d = \frac{(T_2-T_1)+(T_4-T_3)}{2}\\ Δ=\frac{(T_2-T_1)-(T_4-T_3)}{2} d=2(T2−T1)+(T4−T3)Δ=2(T2−T1)−(T4−T3)
TPSN协议优缺点:
- TPSN采用层次分级形成拓扑树结构,从根节点开始完成了所有叶子节点与根节点的同步,在MAC层打时间戳,降低了发送端的不确定性,减小了传送时延、传播时延和接收时延
- 该算法中任意节点的同步误差与其到根节点的跳数有关,跳数越多,误差越大,而与网络节点总数无关,具有较好的可扩展性
- 但由于全网参考时间由根节点确定,一旦根节点失效,就要重新选取根节点进行同步,其鲁棒性不强,再同步还需要大量计算和能量开销,会增加整个网络负荷
4. DMTS协议
DMTS延迟测量时间同步协议,是最为简单直观的同步机制,其通过对同步报文在传输路径上所有的延迟进行估计来实现节点间的时间同步
基本原理:选择一个节点作为时间主节点(Leader)广播同步报文,同步报文中嵌入其本地时间。所有的接收节点测量这个时间广播报文的延迟,设置其时间为接收到分组携带的时间加上报文的传输延迟时间,这样所有接收到广播报文的节点都与主节点时间同步了。时间同步精度主要由测量延迟的精度所决定
DMTS机制的同步报文传输过程如下图。主节点在检测到信道空闲时,排除同步报文发送的处理延迟和MAC层的访问延迟的影响,再在广播报文嵌入时间戳 t 0 t_0 t0 。由于通信机制的要求,报文在发送前主节点必须先发送一定数量的前导码和同步字,以便同步节点进行接收同步报文
DMTS协议具体过程:
选择一个基准节点,广播包含时间的同步消息,接收节点根据时间信息估算消息传输时延,调整自身本地时间为同步消息所带时间加传输时延。消息传输时延 t d t_d td 等于发射时延 t s t_s ts 加接收处理时间 t v t_v tv
发射时延为发射前导码和起始符所需的时间,等于发射位数 n 乘以发射一位所需的时间 t ,接收处理时间等于接收处理完成时间 t 2 t_2 t2 减消息到达时间 t 1 t_1 t1 。因此,可得以下公式:
t d = t s + t v = n × t + ( t 2 − t 1 ) t_d=t_s+t_v=n×t+(t_2-t_1) td=ts+tv=n×t+(t2−t1)
将DMTS应用到多跳网络中还采用与 TPSN 相同的分层方法进行同步,只是将每一层看做一个单跳网络,基准节点依次定在0级、1级、2级、……、n级,逐步实现全网同步。为避免广播消息回传,每个节点只接收上一层等级比自己低的节点广播
DMTS协议优缺点:
- 优点:通过广播同步报文,能够一次广播就同步单跳广播域中的所有节点。计算简单,开销小
- 缺点:未考虑传播延迟、没有估算时钟频偏等,致使精度不高,难以用于定位等高精度的应用中
5. FTSP协议
FTSP算法是使用单个广播消息实现发送节点与接收节点之间的时间同步,但可以看作是对DMTS协议的改进
FTSP算法实现步骤如下:
- FTSP 算法在完成 SYNC 字节发射后给时间同步消息标记时间戳 t 并发射出去;
SYNC字节类似DMTS算法中的Start Symbols
时间戳 t 为当前时间减去包含时间戳 t 的消息数据部分的发射时间,消息数据部分的发射时间可通过数据长度和发射速率得出 - 接收节点记录SYNC字节最后到达时间 t r t_r tr,并计算位偏移
在收到完整消息后,接收节点计算位偏移产生的时间延迟 t b t_b tb,这通过偏移位数与接收速率得出 - 接收节点计算与发送节点间的时钟偏移量: o f f s e t = t r − t b − t offset=t_r-t_b-t offset=tr−tb−t, 然后调整本地时钟和发送节点时钟同步
FTSP优点:
- FTSP降低了时延的不确定性,将其分为发送中断处理时延、编码时延、传播时延、解码时延、字节对齐时延和接收中断处理时延
- FTSP提出了一套较完整的针对节点失效、新节点加入等引起的拓扑结构变化时根节点的选举策略,从而提高了系统的容错性和健壮性
- FTSP根据一定时间范围内节点时钟晶振频率稳定的原则,得出各节点间时钟偏移量与时间呈线性关系,利用线性回归的方法通过节点周期性发送同步广播使得接收节点得到多个数据对构造回归直线,而且在误差允许的时间间隔内,节点可通过计算得出某一时间节点间的时钟偏移量,减少了同步广播的次数,节省了能量
FTSP通过在MAC层打时间戳和利用线性回归的方法估计位偏移量,降低了时延的不确定性,提高了同步精度,适用于军事等需要高同步精度的场合
几种时间同步协议的比较