Gradient Time Synchronization Protocol(GTSP)
无线传感器网络是一个新兴的具有宏伟前景的网络类型,常用来大规模或高分辨率地观测环境数据。毫无疑问,时间是无线传感器网络中不可或缺的存在。如果没有准确的时间信息,传感器节点观测的数据通常会丢失有价值的前后数据包。大多数应用程序会标记测量数据的时间戳信息,而只有当节点之间具有足够的时间一致性时,这样的时间戳才会有意义。因此,时间同步在无线传感器网络中显得尤为重要。
算法简介
GTSP是一种基于一致性理论的时钟同步协议,其利用了平均一致性进行时钟同步,主要思想是网络中的节点根据各自的硬件时钟周期性的广播本地的时钟信息。在本地节点收到所有来自邻居节点的信息后,利用时钟的线性性质来估计本地时钟和邻居节点时钟的相对时钟速率,把它们的平均时钟速率和时钟偏差的时间值作为参考时钟进行时钟斜率和偏差(频率偏差和相位偏差)的补偿。
同时,GTSP还是一种分布式时间同步协议。根据众多仿真和实验结果表明,GTSP可以获得一个比结构式时钟同步协议更为精确的时钟同步,特别是邻居节点间的同步误差。
积分时间模型
在无线传感器网络中,每个网络节点维护硬件时钟和逻辑时钟,硬件时钟的数学表达式如下所示:
H
i
(
t
)
=
∫
t
0
t
h
i
(
τ
)
d
τ
+
Φ
i
(
t
0
)
(1.1)
H_i(t)=\int_{t_0}^t h_i(\tau)d\tau+\Phi_i(t_0)\tag{1.1}
Hi(t)=∫t0thi(τ)dτ+Φi(t0)(1.1)其中,
h
i
(
τ
)
h_i(\tau)
hi(τ)是
t
t
t时刻的硬件时钟速率;
Φ
i
(
t
0
)
\Phi_i(t_0)
Φi(t0)是
t
0
t_0
t0时刻的硬件时钟偏差。
同时,假定硬件时钟速率发生有界漂移,即存在一个常数
ρ
\rho
ρ,使得下式成立:
1
−
ρ
≤
h
(
t
)
≤
1
+
ρ
(1.2)
1-\rho \le h(t) \le 1+\rho\tag{1.2}
1−ρ≤h(t)≤1+ρ(1.2)因为,其他硬件组件可能依赖于持续运行的硬件时钟,因此不应该手动调整硬件时钟的参数或值。因此,我们定义逻辑时钟的数学表达式如下所示:
L
i
(
t
)
=
∫
t
0
t
h
i
(
τ
)
⋅
l
i
(
τ
)
d
τ
+
θ
i
(
t
0
)
(1.3)
L_i(t)=\int_{t_0}^th_i(\tau) \cdot l_i(\tau)d\tau+\theta_i(t_0)\tag{1.3}
Li(t)=∫t0thi(τ)⋅li(τ)dτ+θi(t0)(1.3)其中,
l
i
(
τ
)
l_i(\tau)
li(τ)是相对逻辑时钟速率;
θ
i
(
t
0
)
\theta_i(t_0)
θi(t0)是硬件时钟和逻辑时钟在
t
0
t_0
t0时刻的偏差。
积分算法模型
定义一个网络节点绝对逻辑时钟速率
x
i
(
t
)
x_i(t)
xi(t)如下式所示:
x
i
(
t
)
=
h
i
(
t
)
⋅
l
i
(
t
)
(1.4)
x_i(t)=h_i(t)\cdot l_i(t)\tag{1.4}
xi(t)=hi(t)⋅li(t)(1.4)每个节点
i
i
i周期性地广播同步消息,其包含了本地逻辑时间
L
i
(
t
)
L_i(t)
Li(t)和相对逻辑时钟速率
l
i
(
t
)
l_i(t)
li(t)。在一个同步周期期间收到所有邻居节点的广播同步消息后,节点更新其绝对逻辑时钟速率,更新公式如下:
x
i
(
t
k
+
1
)
=
(
∑
j
∈
N
i
x
j
(
t
k
)
)
+
x
i
(
t
k
)
∣
N
i
∣
+
1
(1.5)
x_i(t_{k+1})=\frac{(\sum_{j\in N_i}x_j(t_k))+x_i(t_k)}{|N_i|+1}\tag{1.5}
xi(tk+1)=∣Ni∣+1(∑j∈Nixj(tk))+xi(tk)(1.5)其中,
N
i
N_i
Ni是节点
i
i
i的邻居节点集合。
然而,前文提过节点并不能调整或改变硬件时钟,即节点并不能更新
x
i
x_i
xi。所以,可以把(1.5)改写为如下所示:
l
i
(
t
k
+
1
)
=
(
∑
j
∈
N
i
l
j
(
t
k
)
)
+
l
i
(
t
k
)
∣
N
i
∣
+
1
(1.6)
l_i(t_{k+1})=\frac{(\sum_{j\in N_i}l_j(t_k))+l_i(t_k)}{|N_i|+1}\tag{1.6}
li(tk+1)=∣Ni∣+1(∑j∈Nilj(tk))+li(tk)(1.6)其中,
l
i
=
x
i
h
i
l_i=\frac{x_i}{h_i}
li=hixi。
而,硬件时钟和逻辑时钟在
t
0
t_0
t0时刻的偏差—
θ
i
(
t
0
)
\theta_i(t_0)
θi(t0)的估计如下式所示:
θ
i
(
t
k
+
1
)
=
θ
i
(
t
k
)
+
∑
j
∈
N
i
L
j
(
t
k
)
−
L
i
(
t
k
)
∣
N
i
∣
+
1
(1.7)
\theta_i(t_{k+1})=\theta_i(t_{k})+\frac{\sum_{j\in N_i}L_j(t_k)-L_i(t_k)}{|N_i|+1}\tag{1.7}
θi(tk+1)=θi(tk)+∣Ni∣+1∑j∈NiLj(tk)−Li(tk)(1.7)
线性模型
硬件时钟从积分形式简化成线性形式,如下式:
h
i
(
t
)
=
α
i
t
+
β
i
(2.1)
h_i(t)=\alpha_it+\beta_i\tag{2.1}
hi(t)=αit+βi(2.1)其中,
α
i
\alpha_i
αi是硬件时钟的时钟速率;
β
i
\beta_i
βi是
t
0
t_0
t0时刻的硬件时钟偏差。
逻辑时钟从积分形式简化成线性形式,如下式:
L
i
(
t
)
=
τ
i
h
i
(
t
)
+
σ
i
=
τ
i
α
i
t
+
τ
i
β
i
+
σ
i
(2.2)
L_i(t)=\tau_ih_i(t)+\sigma_i=\tau_i\alpha_it+\tau_i\beta_i+\sigma_i\tag{2.2}
Li(t)=τihi(t)+σi=τiαit+τiβi+σi(2.2)其中,
τ
i
α
i
\tau_i\alpha_i
τiαi是逻辑时钟的时钟速率;
τ
i
β
i
+
σ
i
\tau_i \beta_i+\sigma_i
τiβi+σi是
t
0
t_0
t0时刻的逻辑时钟偏差。
现定义节点
i
i
i和节点
j
j
j之间的相对时钟速率如下所示:
α
i
j
=
h
j
(
t
n
)
−
h
j
(
t
n
−
1
)
h
i
(
t
n
)
−
h
i
(
t
n
−
1
)
(2.3)
\alpha_{ij}=\frac{h_j(t_n)-h_j(t_{n-1})}{h_i(t_n)-h_i(t_{n-1})}\tag{2.3}
αij=hi(tn)−hi(tn−1)hj(tn)−hj(tn−1)(2.3)因此,逻辑时钟速率如下所示:
τ
i
(
t
n
)
=
(
∑
j
∈
N
i
α
i
j
(
t
n
−
1
)
+
τ
i
(
t
n
−
1
)
∣
N
i
∣
+
1
(2.4)
\tau_i(t_n)=\frac{(\sum_{j\in N_i}\alpha_{ij}(t_{n-1})+\tau_i(t_{n-1})}{|N_i|+1}\tag{2.4}
τi(tn)=∣Ni∣+1(∑j∈Niαij(tn−1)+τi(tn−1)(2.4)
偏差估计目前没有找到理论支撑。
参考文献:
[1] P. Sommer and R. Wattenhofer, “Gradient clock synchronization in wireless sensor networks,” 2009 International Conference on Information Processing in Sensor Networks, San Francisco, CA, USA, 2009, pp. 37-48.
[2] 何建平. 基于一致性的无线传感器网络时钟同步算法研究[D].浙江大学,2014.