文章详情
NTP,SNTP原理讲解与应用介绍

一、NTP与SNTP概述

NTP(Network Time Protocol, 网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步,NTP基于UDP报文进行传输,使用UDP端口号为123。它可以估算数据包在网络上往返延迟, 并可以独立计算出设备时钟偏差。NTP可以提供1~50ms的可靠时钟源。

二、NTP工作原理

由于SNTP与NTP协议通讯方式,数据包格式基本一致,现举例说明NTP工作原理,让大家加深对NTP协议的了解。

我们假设路由设备A简称RouterA和路由设备B简称RouterB通过IP网络互联,RouterA和RouterB都有自己独立的系统时钟,现在因某种应用需求,需要通过NTP实现RouterA和RouterB系统时钟的自动同步。为了方便大家理解,我们作如下的条件假设:

◆ 系统时钟同步前,RouterA的时钟为11:00:00am,RouterB的时钟为:12:00:00am;

◆ RouterB被指定为NTP时间服务器,RouterA让自己的系统时钟与RouterB的系统时钟同步;

◆ NTP报文在RouterA与RouterB之间的单向传输所消耗的时间为1s。

此时系统同步时钟的过程如下图描述:

  1. RouterA发送一个NTP报文给RouterB,此时该报文包含有它离开RouterA的时间戳,该时间戳为: 11:00:00am (T1);
  2. 当RouterA的NTP报文到达RouterB时,RouterB加上自己的时间戳,系统时钟变为:12:00:01am (T2);
  3. 当此NTP报文离开RouterB时,RouterB再加上自己的时间戳,系统时钟变为:12:00:02am (T3);
  4. 当RouterA接收到RouterB的响应报文时,RouterA的本地时间变为:11:00:03am (T4)。

 

 


由此,可计算RouterA的两个重要参数: NTP报文的往返时延:Delay=(T4-T1)-(T3-T2)=2 秒。 RouterA相对设备RouterB的时间差:offset=((T2-T1)+(T3-T4))/2=1小时。

 


 

RouterA可根据这些信息来设定自己的时钟,并让自己的时钟与RouterB同步。

三、NTP工作模式

设备可使用多种NTP工作模式,NTP主要有以下几种工作模式:

◆ 客户端/服务器模式;

◆对等体模式;

◆ 广播模式;

◆ 组播模式。

1.客户端/服务器模式

 

在此模式下,客户端时钟可同步到服务器,但是服务器时钟不可同步到客户端,适用于一台时间服务器接收上层服务器的时间信息,并提供时间信息给下层的用户。

2.对等模式

 

主动对等体和被动对等体可以互相同步。如果双方的时钟都已经同步,则以层数小的时钟为准。

3.广播模式

在广播模式中,服务器端周期性地向广播地址255.255.255.255发送时钟同步报文,客户端侦听来自服务器的广播报文。

总之,用户可根据实际需要,选择NTP工作模式。在不确定时钟服务器或对等体IP地址信息,且网络中需要同步的设备很多的情况下,可以通过广播或组播方式实现时钟同步;服务器和对等体模式,设备可从指定的服务器或对等体设备获得时钟同步,大大增加了时钟的可靠性。

四、NTP时钟应用实例

NePort系列产品,是德国Conextop公司的高性能联网通讯模块,该模块可设定时钟服务器,只需要设定时钟服务器地址,可立即实现网口通讯模块与时钟服务器的同步,如下图操作所示。

 

也可以通过TCP远程连接串口联网模块的5001端口,进入命令管道,刷新时钟同步,如下图所示:

 

当你手动修改时钟信息时,只需要输入at!bnt?命令,就可以刷新同步时钟。