ntp服务器协议,NTP协议介绍及实现方案(服务器端和客户端).doc[通俗易懂]

ntp服务器协议,NTP协议介绍及实现方案(服务器端和客户端).doc[通俗易懂]NTP协议介绍及实现方案TOC\o”1-3″\h\z\u1NTP协议简介22NTP协议实现原理22.1NTP协议的分层结构22.2NTP协议的对时方式32.3NTP协议的工作模式43NTP报文格式44NTP实现方案74.1服务器端实现方案84.2客户端实现方案95遗留问题106参考文献101NTP协议简介NTP(NetworkTime…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

NTP协议介绍及实现方案

TOC \o “1-3” \h \z \u 1 NTP协议简介 2

2 NTP协议实现原理 2

2.1 NTP协议的分层结构 2

2.2 NTP协议的对时方式 3

2.3 NTP协议的工作模式 4

3 NTP报文格式 4

4 NTP实现方案 7

4.1 服务器端实现方案 8

4.2 客户端实现方案 9

5 遗留问题 10

6 参考文献 10

1 NTP协议简介

NTP(Network Time Protocol,网络时间协议)是由RFC1305定义的时间同步协议,用来在分布时间服务器和客户端之间进行时钟同步,同时也是一个因特网标准,它采用应用层同步方法将计算机时钟和UTC时间(格林尼治时间)进行同步,因此时间精度不高,一般在10ms到100ms之间。

NTP协议属于应用层协议,定义了协议实现过程中所使用的结构、算法、实体和协议,它是基于IP和UDP的,也可以被其它协议组使用。

NTP协议时OSI参考模型的最高层协议,符合UDP传输协议格式,拥有专用端口123。NTP协议是OSI参考模型的高层协议,符合UDP传输协议格式,拥有专用端口123,在嵌入式linux系统中,采用Server/Cilent的模式来实现网络通信,客户端主动提出申请,而服务器端被动打开。又由于使用UDP套接字建立连接的好处在于,只有被该套接字指定为远程地址的计算机端口才能向该套接字发送数据,如果没有建立连接,任何IP地址和端口都能将数据发送到这个UDP套接字上。所以采用建立连接的UDP套接字来传输时间信息。

2 NTP协议实现原理

2.1 NTP协议的分层结构

NTP采用分层的方法来定义时钟的准确性,可分为从0~15共16个级别,级别编码越低,精确度和重要性越高。第0级设备是时间同步网络的基准时间参考源,位于同步子网络的顶端,目前普遍采用全球卫星定位系统,即由GPS播出的UTC时间代码。级别(n+1)从级别n获取时间。

图1 NTP协议分层结构图

子网络中的设备可以扮演多重角色,可以做客户机、服务器,也可以做对等机。比如图1中的第二层设备,对于第一层来讲是客户机,对于第三层来讲是服务器,对于第二层其它设备来讲可以是对等机。NTP协议就是通过这种网络层

状结构一层一层延伸下去,为其它设备提供对时服务。

2.2 NTP协议的对时方式

NTP协议的精确对时主要是在主从工作方式下实现的。NTP算法首先要根据服务器和客户端的往返报文来确定两地时钟的差值和报文在网络中传输的延迟。求出多组差值和延迟值之后,将误差明显很大的去掉,然后根据时钟选择算法选则合适的时延来调整客户端时钟。

假设客户方A要向服务器方B请求时间服务。A首先要生成一个标准的NTP查询信息包,通过网络发送到B。B收到查询信息包后,根据自己的本地时间,生成一个标准的NTP时间信息包,通过网络发回给A。具体过程如图2所示。

图2 NTP服务器和客户端对时过程

图2中,T1为客户方发送查询请求时间,T2为服务器收到查询请求的时间,T3为服务器回复时间信息包的时间,T4为客户方收到时间信息包的时间。T1包含在A发到B的查询信息包中,到了B方后,B记下T2和T3的时间,并将其写到回复给A的时间信息包中。当这个包到达A时,A记录下当时的时间T4。这样,A就拥有了4个时间T1、T2、T3、T4,通过这几个值计算出A和B之间时间上的差值,用以调整客户方时钟。

假设A与B之间时差值为,A和B之间用于网络传输的往返延时为,A发送至B的请求信息在网络上传播所消耗的时间为,B发送至A的回复信息在网络上传播所消耗的时间为。则有:

(1)

如果查询信息包和回复的时间信息包在网络上传播的时间相同,即当网络路径对称时有,则由式(1)可得:

(2)

时差可直接由T1、T2、T3、T4四个时刻值计算得到,与往返时延无关。但实际情况中,网络路径是不对称的,时差只能由式(1)计算得到,此时就必须估计出网络传输的单程延时,影响NTP协议精度最关键的因素在于由网络延迟的随机性而导致的始终延迟计算的不准确。

2.3 NTP协议的工作模式

NTP协议支持三种对时方式:

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

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

(3)对称模式:两个以上的时间服务器互为主从,进行时间信

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182838.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是pisa测试_PISA测试是什么?[通俗易懂]

    什么是pisa测试_PISA测试是什么?[通俗易懂]“国际高中指南”,给你国际学校选择一站式教育服务,最新国际学校资讯,最全面国际高中课程详情,都能通过“国际高中指南”为你解决,帮助你第一时间获取国际学校动态。为什么你会为孩子选择国际学校?因为这里的教育模式、课程体系能够帮助孩子更早的确立自己的兴趣爱好甚至未来的发展目标,能够帮助孩子全方位提升阅读能力、逻辑思维、数理分析能力等等。那这些能力可以通过什么方式去衡量呢?PISA测试。【PISA】什么是…

    2022年6月6日
  • Pytest(5)美化插件进度条pytest-sugar

    Pytest(5)美化插件进度条pytest-sugar前言在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。

    2022年7月29日
  • 服务器版dll修复工具,dll修复工具「建议收藏」

    服务器版dll修复工具,dll修复工具「建议收藏」winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄,缺少它可能造成部分软件无声音。当你的电脑提示“丢失winmm.dll”或者“没有找到winmm.dll”等类似错误信息。如果sqlite3.dll系统文件丢失、损坏,自行寻找选择适合系统的DLL系统文件,不但麻烦,还得冒着系统异常的风险。无主之地、荣誉勋章等游戏所需的physxcudart_20.Dll下载,解压后…

    2022年6月1日
  • LINUX下 Udev详解[通俗易懂]

    如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但

    2022年4月18日
  • 各种硬件接口_sdio接口速率

    各种硬件接口_sdio接口速率  SDIO接口是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备。参考SDIO1.0标准定义了两种类型的SDIO卡:  全速的SDIO卡,传输率可以超过100Mbps;  低速的SDIO卡,支援的时脉速率在0至400KHz之间。  SDIO协议是由SD卡的协议演化升级而来的,很多地方保留了SD卡的读写协议,同时SDIO协议又在SD卡协议之上添加了CMD52和CMD53命令。由于这个,SDIO和SD卡规范间的一个重要区别是增加了低速标准,低速

    2022年10月3日
  • 一张图理清SpringMVC工作原理

    一张图理清SpringMVC工作原理一、首先,我们先来认识一下SpringMVC的主要组件前端控制器(DisatcherServlet):接收请求,响应结果,返回可以是json,String等数据类型,也可以是页面(Model)。处理器映射器(HandlerMapping):根据URL去查找处理器,一般通过xml配置或者注解进行查找。处理器(Handler):就是我们常说的controller控制器啦,由程序员编写。处理器适配器(Ha

    2022年5月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号