1.2 典型时间同步算法分析
1.2.1 TPSN算法分析
TPSN算法采用的是层次型的网络结构,是基于发送者-接收者的双向同步算法。分成两个阶段,第一阶段为层次发现阶段,第二阶段为同步阶段。T1、T4用来记录同步节点的本地时间,T2、T3用来记录参考节点的本地时间。同步节点A在T1时刻向参考节点B发送一个同步请求报文,报文中包含了同步节点的级别和T1。当参考节点B收到报文后,记录下接收时刻T2,并立即向同步节点A回复一个同步应答报文,该报文中包含了参考节点B的级别和T1、T2及回复时刻T3。同步节点A收到参考节点的回复后,记下时刻T4。假设来回报文的传输延迟相同都为d,且m为同步节点在T1时刻两者之间的时偏,且设来回时偏相同,由T2=T1+m+d,T4=T3-m+d可得到:
则在T4时刻,若在同步节点A的本地时间增加修正量m,就能达到同步节点A与参考节点B之间的同步。
1.2.2 RBS算法分析
RBS算法是基于接收者-接收者的同步算法。首先参考节点广播一个参考分组,当同步节点A收到这个分组,记下自己的本地时钟为T21,当同步节点B收到这个分组时,也记下自己的本地时钟为T22,然后同步节点A与同步节点B交换本地时钟T21与T22,这时其中一个节点只要根据时间差值m=T21-T22,修改自己的时钟就能达到与另一个节点之间的同步。在多跳网络中,RBS算法采用多次广播同步消息,接收节点根据接收到同步消息的平均值,同时采用最小平方线性回归方法进行线性拟合以减小同步误差。
1.2.3 DMTS算法分析
DMTS算法是基于发送者-接收者的单向时间同步算法。当发送节点在检测到通道空闲时,给广播分组加上时间戳t0,从而排除了发送节点的处理延迟与MAC层的访问延迟。并假设发送报文的长度为NA个比特(包括前导码与同步字),传送每个比特的时间为t,而接收者在接收完同步字后,记录下此时的本地时间为t1,并在调整自己的本地时间记录之前记录下此时的时刻t2,这时接收节点为了与发送节点达到时间上的同步,可以调整接收节点的时间改为t0+t·NA+(t2-t1)。
可以看出,TPSN平均单跳误差为17.61μs,DMTS平均单跳误差为30μs,RBS平均单跳误差为6.29μs, TPSN平均4跳误差为21.43μs,DMTS平均单跳误差为151μs,RBS平均4跳误差为9.97μs。
1.2.4 其他算法分析
LTS协议是基于发送-接收同步机制发展而来,提出了集中式和分布式LTS多跳时间同步算法。LTS协议首先把网络组成广度优先生成树拓扑结构,并沿着树的每条边进行单跳成对同步。参考节点的子节点同步完成后,又以该节点为参考节点,采用同样方式继续同步下去,直到同步完成。
单跳成对同步采用TPSN同步方法。成对同步的次数是边数的线性函数。Hui Dui等人提出来的HRTS 利用了广播的特性,只需要一次同步过程可以完成一个单跳组网所有节点的同步,进一步降低了LTS协议的功耗。HRTS算法不再采用广度优先生成树的边,采用的是广度优先生成树非叶子节点个数的线性函数。相较于LTS协议,HRTS算法以牺牲一定的精确来降低了整个网络的功耗。
BTS同步方法类似于HRTS算法,也是先建立广度优先成生树拓扑结构,只不过BTS采用的是时间转换技术,以达到整个网络的时间同步,而HRTS直接对同步节点的本地时间进行修改,得到全网的同步,同步报文个数降为HRTS协议的2/3。
PBS同步算法的思想是参考节点与簇首节点之间采用双向同步方法,与TPSN相似,其他节点(在两个节点的通信范围内)可以侦听到同步消息,就可以根据接收者-接收者同步方法同步。类似于RBS同步,PBS同步的前提是每个同步节点必须在簇首节点的通信范围之内。
ETSP算法主要采用的是设置门槛值N来选择同步算法,当父节点的子节点小于或等于N时,采用接收-接收(RBS)同步模式,否则采用发送-接收(TPSN)同步模式。N值的选择采用N2-3N-2m=0来计算,式中m=RxTx,Rx为节点的接收次数,Tx为传播次数。
FTSP同步算法精度高的原因是,发送者在发送一个同步请求报文时连续标记了多个时间戳,接收者可以根据这几个中断时间计算出更精确的时间偏差。