Skip to content

kmycompany/ntp_client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

一、功能实现

以NTP服务器为基准,同步网内计算机或嵌入式设备的时间。

二、协议原理

协议:

客户端向NTP服务器发送请求数据包,NTP服务器回应一个数据包。

分别记录客户端发送请求包时的时刻t1和接收到回应包的时刻t4,服务器回应的数据包内包含了服务器接收到请求包的时刻t2和服务器发送回应包的时刻t3。

t4-t1表示整个消息传递过程所需要的时间;

t3-t2表示消息传递过程在服务器停留的时间;

(t4-t1)-(t3-t2)是来回路上消耗的时间,如果来回传输所用的时间一样,那么,单程的时间为:

t = ( (t4 - t1) - (t3 - t2) )/2;

假定客户端相对于服务器的时间误差是dis,则有下列等式:

t2 = t1 + dis + t;

t4 = t3 - dis + t;

则:dis = (( t2 - t1 ) + ( t3 - t4 )) / 2;

根据此差值重新设置时间即可。

说明:

服务器发返回的时间是以1900年为基准计算的,而linux是以1970年为基准的,所以需要用到一个常数做转化:

#define JAN_1970 2208988800UL /* 1970 - 1900 in seconds */

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages