微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 嵌入式分布系统中网络设备的时间同步

嵌入式分布系统中网络设备的时间同步

时间:01-23 来源:3721RD 点击:

引言

  随着我国航天事业的飞速发展,将逐步构建多群、多任务、多功能相对独立的测控计算机结构体系。由于实现功能的不同,系统的组织结构与操作系统也千差万别,对时间精度的要求很不相同。整个系统必须在统一的时间尺度下进行工作,因此各节点之间时间的统一具有必要性;另一方面,当今世界宽带网络飞速发展,各种支持网络系统也越来越多,各个网络系统之间互联也需要高精度、通用的时间同步。在这种状况下,如何探索和研制简便、可靠、准确和通用的网络授时系统就成为迫切需要解决的问题。

  要实现网络设备时间同步,主要完成两方面的工作内容:第一,通过某种授时方式获取精确时间;第二,将精确时间同步到网络中的每一台设备,这也是网络时间同步系统的设计难点。

  本文将要介绍的是一种基于嵌入式实时操作系统VxWorks的NTP网络授时服务器,其内核响应速度快,可以方便地支持实时处理,克服了以往开发网络授时服务器的弊端。本文介绍了NTP服务器的原理、系统总体任务及其通信机制设计,并针对NTP协议运行在VxWorks下的一些问题进行了相应的改进,同时通过性能测试分析表明本系统的有效性。

1 NTP工作原理

1.1 NTP协议

  NTP协议是通过网络的通信来实现计算机时钟的同步,而数据本身在网络上的传输也是需要时间的。因此,要获得准确的当前时间,就必须考虑网络延迟造成的影响。实际上,可通过计算报文的来回程时间来估计网络延迟。网络时间同步的最主要问题是,如何获得当前的准确时间。NTP通过一系列同步算法选择精确时间,规避网络延迟,保证网络时间同步的安全性。

  NTP 协议支持3种对时工作方式。

① 主从模式(Server/Client mode):用户向一个或几个服务器提出服务请求,根据所交换的信息计算两地时间偏差和网络延迟,从中选择认为最准确的时间偏差并调整本地的时钟。

② 广播模式(Multicast/Broadcast mode):此种模式适用于高速的局域网中。局域网中的一个或多个服务器以固定的时间周期向某个多播地址广播自己的时标,客户端不计算时间偏差和网络延迟,直接用接收到的时标修正自己的时钟,忽略各种误差。

③ 对称模式(Symmetric mode):两个以上的时间服务器互为主从进行时间消息的通信,相互校正对方的时间以维持整个同步子网的时间一致性。

  根据本系统的特点,最终确定选用主从模式。因为系统中各个子系统的结构和功能是完全相同的,所以只需要先实现一个子节点的服务,就可以以相同的方法实现所有子节点的时钟同步。

1.2 NTP原理与实现

  本系统的NTP协议的对时工作是在主从工作方式下实现。NTP算法首先就要根据服务器和客户端的往返报文来确定两地时钟的差值和报文在网络中传输的延迟。这里定义,客户端和时间服务器之间的时间偏差(offset)用希腊字母θ表示,对时过程中的网络路径延迟(delay)用希腊字母δ表示。

  假设子节点A要向服务器方B请求时间服务。A首先要生成一个标准的NTP查询信息包,通过网络发送到B。B收到查询信息包后,根据自己的本地时间,生成一个标准的NTP时间信息包,通过网络发回给A。分布式系统中的NTP实现原理图如图1所示。

图1 分布式系统中NTP实现原理图

  其中,T1为子节点A发送查询请求时间,T2为服务器B收到查询请求时间,T3为服务器B回复时间信息包时间,T4为子节点A接收到的时间信息包时间,T1、T2、T3和T4以客户方的时间系统为参照,δ1为请求信息在网上传播所消耗的时间,δ2为回复信息在网上传播所消耗的时间。

  其过程如下:

① 客户端首先向时间服务器发送一个NTP 数据包,同时在数据包上打上客户端本机的发送时间戳T1;
② 服务器接收到客户NTP 数据包后,同时在数据包上打上服务器本机的接收时间戳T2;
③ 服务器向客户返回NTP 数据包后,同时在数据包上打上服务器本机的发送时间戳T3;
④ 客户端接收到服务器返回的NTP 数据包,同时在数据包上打上客户端接收时间戳T4。

  当完成了整个过程之后,客户端就拥有了4个时间T1~T4,并通过他们算出A与B时间上的差值,用以参考并调整客户方时钟。

  这里设定服务器的时钟是准确的,服务器和客户端时钟的时间偏差是θ,从客户端发送报文到服务器端的路径延迟是δ1,从服务器到客户端的路径延迟是δ2,路径延迟总和是δ. 那么可以列出3个方程式:


  假设从客户端到服务器的路径延迟和从服务器到客户端的路径延迟相等,即δ1=δ2=δ/2 ,以上3个方程式变为:


  可以求出,服务器和客户端时钟的时间偏差θ=[(T2-T1)+(T3-T4)]/2,客户端与服务器总的网络路径延迟δ=(T4-T1)-(T3-T2)。

图2 NTP时间偏差与网络延时

  服务器和客户端之间的时间差异可以从图2中看出。

  在知道了如何用NTP 算法计算精确的时间偏差值后,需要使用时间偏差值来调整本地时钟的时间,才算完成了NTP 时间同步的全部工作。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top