技术领域
[0001] 本
发明属于IPv6无线
传感器网络技术领域,涉及一种基于RPL路由协议的IPv6无线传感网时间同步方法。
背景技术
[0002] 当今IPv6
无线传感器网络技术引起了无数研究组织的关注,这种新兴的网络体系将IPv6技术与无线传感器网络融合在一起,不仅具有海量
节点接入网络的扩展能
力,还能解决端到端的互通互作问题,应用领域广泛,具有强大的市场竞争力并且会产生巨大的经济效益。
[0003] 时间同步是IPv6无线传感器网络中最基本、应用最广泛的
中间件服务之一。准确稳定的时间估计对于关联调度、数据传输、提高
定位精度、提高安全性和改进协调至关重要。相互独立的节点会因为晶振的
频率漂移的不同而产生与参考节点的时钟偏移。网络中所有节点的下发和接受命令操作需要在同一个物理时刻进行,因此,需要用统一的时间标准来实现时间同步,良好的时间同步机制才能保证网络中各项工作的实施。
[0004] 然而时间同步会受链路
质量、节点剩余
能量等因素影响,导致同步精度降低。因此,需要综合考虑这些因素,提出一些策略来选择最优时间同步
父节点;一般的时间同步有专用的时间同步命令
帧或者将时间戳放入确认帧中,前者会造成同步开销大,后者若组网稳定后没有报文交互,则不会进行时间同步过程。因此如何降低开销也是目前需要解决的问题;没有加密的报文上的时间戳容易受到恶意篡改,如果被某些节点接收导致整个错误信息扩散,严重的会影响整个网络内的传感器节点的正常时间同步过程,因此还需要考虑到同步过程中的安全问题。传统的时间同步协议在MAC层实现,对于以上问题无法妥善处理,此外,由于传统的时间同步技术不能获取网络的全局信息,无法选择最优的时间同步父节点,从而影响时间同步性能。
[0005] 本发明提出的一种基于RPL路由协议的IPv6无线传感网时间同步方法,利用RPL组网过程中DIO控制报文的交互,快速估计出频率漂移和
相位偏移,以补偿本地时钟,可提高网络的可靠性和时间同步精度,具体解决了:1)由于时间同步会受到链路质量、节点剩余能量、跳数、累计时间偏差等因素的影响从而导致同步精度降低的问题;2)目前专有的时间同步命令帧或者确认帧造成网络能量开销大的问题;3)同步过程中没有加密的报文容易受到恶意攻击与篡改的问题。
[0006] 因此,本发明的创新点在于将同步协议与路由协议结合起来,将时间同步最优父节点的时间戳信息在网络层封装到RPL控制报文中,在网络层可以掌握整个无线传感器网络的全局信息,从而实现精确的时间同步。但是,所填充的时间戳如果是在网络层封装报文时的时刻,就会出现报文从网络层到MAC层再到发送时增加的信道
访问时延,这种不确定的时延将会造成同步精度的下降。因此本发明还设计了一个交错封装时间戳的策略,以提高时间同步精度。
[0007] 由于在网络层可以充分获取无线传感器网络的全局信息,本发明选择在网络层进行时间同步,在构建或维护路由的同时实现精准的时间同步。因此设计一种基于RPL路由协议的IPv6无线传感网时间同步方法研究具有前沿性和必要性。
发明内容
[0008] 本发明旨在解决
现有技术时间同步过程中高开销、低同步精度和低安全的问题。提出了一种减少报文开销、提高安全性、可靠性的方法。本发明的技术方案如下:
[0009] 一种基于RPL路由协议的IPv6无线传感网时间同步方法,其包括以下步骤:
[0010] S1:无线传感网络的时间基准节点为根节点,当构建或维护路由时,根节点或者已同步的节点会多播带时间戳的DIO报文以通知邻居节点可以加入此RPL面向低功耗无损网络的路由协议实例;
[0011] S2:邻居节点第一次加入网络时,接收并解析携带网络信息的DIO控制报文后,会根据改进的时间同步目标函数选择最优时间参考父节点,改进的时间同步目标函数改进在:利用链路质量、跳数、节点剩余能量以及与根节点的累积时间偏差四个路由度量并通过衡量优先级和权重来构造函数;
[0012] S3:时间参考父节点S在物理层记录发送第i条DIO报文时接入信道的时刻Tsi,并且在发送第i+1条DIO报文时,将第i条DIO报文的发送时刻Tsi封装到该条报文中;
[0013] S4:邻居节点加入网络后成为待同步节点,待同步节点R收到第i条DIO报文时,记录接收时刻Tri,在连续收到了第i条和第i+1条DIO报文后,待同步节点将获得Tsi、Tri和Tri+1时间戳信息,根据时间同步
算法进行本地时钟初校正,并计算出与根节点的累计时间偏差以作为S2中的时间同步目标函数的路由度量之一;
[0014] S5:在时间参考父节点发送N条携带时间戳信息的DIO报文以后,待同步节点得到N-1组包括发送时间和接收时间的时间戳信息,之后待同步节点根据单向时间同步算法估算相位偏移和时钟漂移,对本地时间进行补偿;
[0015] S6:根节点向邻居节点多播DIO信息,邻居节点经过校正自身时钟后,再次向自己的邻居节点多播更新网络信息后的DIO报文,最终,在构建或维护路由的同时完成了全网的时间同步。
[0016] 进一步的,所述步骤S1的DIO报文携带网络全局信息、时间参考父节点发送时刻时间戳信息、与根节点的累计时间偏差在内的信息。
[0017] 进一步的,所述步骤S2改进的时间同步目标函数计算公式如下:
[0018] Rank=α*ETX值+β*跳数+γ*总能耗+η*累计时间偏差
[0019] 其中,α、β、γ、η分别代表四个参数在公式中所占的权重值,在同一个DODAG中是定值,其值通过层次分析法来获得,Rank值可以通过上述改进的时间同步目标函数求出,待同步节点比较来自不同参考节点的Rank值,并选取Rank值最小的节点作为自己的最优时间参考父节点。
[0020] 进一步的,所述DIO报文中设计了一种新的TimeStamp Option选项,格式包括:类型说明域、长度和时间戳信息,定义当Type=0x10时,表示Option改进报文帧中的数据域中存储的是时间参考父节点上一条DIO报文的发送时刻时间戳信息。
[0021] 进一步的,步骤S4中,在进行本地时间初校正时,校正后的时间 可以利用以下公式求出:
[0022]
[0023] IPv6无线传感器网络中第m层待同步节点R与根节点root的累计时间偏差Em可以利用以下公式求出:
[0024]
[0025] 其中,n表示待同步节点与时间同步父节点在计算累计时间偏差时交互的报文组数。
[0026] 进一步的,所述步骤S5中,单向时间同步算法具体为:通过待同步节点R相对于时间参考父节点S在初始时刻t0的初始相位 和时钟漂移ρ,得出时间戳关系表达式:
[0027]
[0028] 通过变换可以得到:
[0029]
[0030] 其中,Tri表示待同步节点R收到第i组DIO报文时的接收时刻;Tsi表示参考S发送第i组DIO报文时的发送时刻;d表示待同步节点R与时间参考父节点S之间的传输固定时延;Xi表示第i组报文传输过程中的不确定时延,每一组都是相互独立的高斯随机分布变量;
[0031] 当收到了N组时间戳信息后,根据时间戳关系表达式可以得出以下模型:
[0032]
[0033] 然后根据线性模型,即下面的式子,可以估算出初始相位 和时钟漂移[0034] x=Hθ+w
[0035]
[0036] 其中,x=[Ts1-t0+d,Ts2-t0+d,...,TsN-t0+d]T;H是一个N×2维的
观测矩阵,w是独立同分布的高斯变量的集合,可以表示为w=-T
[X1,X2,...,XN]。
[0037] 本发明的优点及有益效果如下:
[0038] 1)本发明考虑安全问题,将RPL路由协议与时间同步相结合,降低了时间同步过程中没有加密的报文上的时间戳容易受到恶意篡改的可能,提高网络的可靠性。
[0039] 2)本发明考虑了现有时间同步技术的开销问题。一般的时间同步有专用的时间同步命令帧或者将时间戳放入确认帧中。前者会造成同步开销大,后者若组网稳定后没有报文交互,则不会进行时间同步过程。本发明通过将时间戳信息加盖到RPL控制报文中,在网络层进行时间同步,减少网络能量开销,降低能耗。
[0040] 3)本发明在网络层进行时间同步过程,提高了时间同步精度。综合考虑链路质量、跳数、节点剩余能量、时间累计偏差等因素对同步精度的影响,将多个路由度量通过衡量优先级和权重来聚合成统一的时间同步目标函数,选择最优时间参考父节点,有效地抑制了多跳时延累加引入的误差,提高了时间同步的精度。
附图说明
[0041] 图1是本发明提供优选
实施例所述的基于RPL路由协议的IPv6无线传感网时间同步方法流程示意图;
[0042] 图2为本发明所述的时间参考父节点工作
流程图;
[0043] 图3为本发明所述的待同步节点工作流程图;
[0044] 图4为本发明所述的RPL协议的DIO报文帧格式图;
[0045] 图5为本发明所述的交错封装时间戳策略的报文交互过程;
[0046] 图6为本发明所述的DAG路由度量器Option选项的帧格式图;
[0047] 图7为本发明所述的路由度量/约束对象(ETX、跳数、节点能量、累计时间偏差)的帧格式图。
具体实施方式
[0048] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
[0049] 本发明解决上述技术问题的技术方案是:
[0050] 本发明方法为了减少报文开销、提高安全性,将时间同步协议与RPL路由协议结合起来,将时间戳信息封装到DIO控制报文中,并且针对链路质量、跳数、能量和时间累积偏差等因素影响时间同步精度的问题,设计一个新的时间同步目标函数,选取最优时间参考父节点。该方法能够降低由于链路不稳定、节点剩余能量所导致的数据包丢失问题,提高网络可靠性和同步精度。
[0051] 图1是本发明所述的基于RPL路由协议的IPv6无线传感网时间同步方法流程示意图。该方法针对IPv6无线传感网中的时间同步问题,将RPL路由协议与时间同步协议结合起来,提出一种支持时间同步的RPL路由协议。其特征在于,时间参考父节点将时间戳信息在网络层封装到DIO报文中,并将信息多播给邻居节点,此外,设计了一种新的时间同步目标函数选择最优时间参考父节点,当待同步节点收到来自最优时间参考父节点多播的DIO消息时,会通过单向时间同步算法估算出相位偏移和时钟漂移,以补偿本地时钟。
[0052] 如图1所示,本发明所述的基于RPL路由协议的IPv6无线传感网时间同步方法具体实现过程如下:
[0053] Step 1:根节点(时间基准节点)或路由节点(非叶
子节点)在构建或维护DODAG时,会多播带时间戳的DIO报文以通知邻居节点可以加入此RPL实例;
[0054] Step 2:待同步节点R第一次加入RPL实例时,接收并解析携带网络信息的DIO控制报文后,会根据新设计的时间同步目标函数选择最优时间参考父节点;
[0055] Step 3:时间参考父节点S在物理层记录发送第i条DIO报文时接入信道的时刻Tsi,并且在发送第i+1条DIO报文时,将第i条DIO报文的发送时刻Tsi封装到该条报文中;
[0056] Step 4:待同步节点R收到第i条DIO报文时,总是记录接受时刻Tri,在连续收到了第i条和第i+1条DIO报文后,待同步节点将获得Tsi、Tri和Tri+1等时间戳信息,可根据时间同步算法进行本地时间初校正,并计算出与根节点的累计时间偏差以作为Step 2中的时间同步目标函数的路由度量之一;
[0057] Step 5:在时间参考父节点发送N条携带时间戳信息的DIO报文以后,待同步节点可以得到N-1组时间戳信息(包括发送时间和接收时间)。之后待同步节点可以根据单向时间同步算法来估算相位偏移和时钟漂移,对本地时间进行补偿;
[0058] Step 6:根节点向邻居节点多播DIO信息,邻居节点经过Step 1~Step 6校正自身时钟后,再次向自己的邻居节点多播更新网络信息后的DIO报文,最终,在构建或维护路由的同时完成了全网的时间同步。
[0059] 图2为本发明所述的时间参考父节点工作流程图。时间参考父节点主要负责在物理层记录上一条DIO报文的发送时刻(信道接入时刻),并将时间戳信息在网络层封装到当前DIO控制报文中。
[0060] 图3为本发明所述的待同步节点工作流程图。待同步节点在加入DODAG前,会先根据接收到的DIO报文解析出需要的信息,通过新设计的时间同步目标函数选择最优时间参考父节点;若已加入了网络,记录8组时间戳信息并根据时间同步的算法估算出频率漂移和相位偏移,以补偿本地时钟,并计算出自身与根节点的累计时间偏差,更新网络信息,以方便下一步邻居节点的时间同步过程。
[0061] 图4为本发明所述的RPL协议的DIO报文帧格式图。帧格式具体包括可选项类型说明域、可选项长度、时间戳信息域。其中,DIO报文的Option须有一个类型说明域,长度为8位,在本发明中定义类型说明域的值为0x10;可选项长度为改进的DIO Option的字节数,长度为8位;时间戳信息域为预留的位域,长度为8位,本发明定义此位域储存的是时间参考父节点上一条DIO报文发送时刻的时间戳信息。
[0062] 图5为本发明所述的交错封装时间戳策略的报文交互过程。为了消除发送时延、信道接入时延等随机时延,本发明设计在物理层记录报文接入信道时刻(发送时刻),并将发送时刻封装到下一次发送的DIO报文中,在发送9条DIO报文以后,待同步节点可以得到8组时间戳信息。
[0063] 图6为本发明所述的DAG路由度量器Option选项的帧格式图。当类型的值为0x02时,DIO报文的Option选项可以填充路由度量,一个路由度量是一个定量值,该值被用来评估路径代价;度量数据表示度量容器的数据,包括顺序、内容、编码。本发明所用到的路由度量包括链路质量、跳数、剩余节点能量以及累计时间偏差,将被用在选择最优时间参考父节点的过程中。
[0064] 图7为本发明所述的路由度量/约束对象的帧格式。路由度量类型占一个字节,一个路由度量器可以由多个路由度量组成;选项长度字段占一个字节;本发明利用Prec字段,为每个路由度量分配优先级。
[0065] 以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或
修改,这些等效变化和修饰同样落入本发明
权利要求所限定的范围。