fbpx
维基百科

網路時間協定

网络时间协议(英語:Network Time Protocol,缩写:NTP)是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议,位于OSI模型应用层。自1985年以来,NTP是目前仍在使用的最古老的互联网协议之一。NTP由特拉华大学David L. Mills英语David L. Mills设计。

NTP意图将所有参与计算机的协调世界时(UTC)时间同步到几毫秒的误差内。[1]:3它使用Marzullo算法英语Marzullo's algorithm的修改版来选择准确的时间服务器,其设计旨在减轻可变网络延迟英语network latency造成的影响。NTP通常可以在公共互联网保持几十毫秒的误差,并且在理想的局域网环境中可以实现超过1毫秒的精度。不对称路由拥塞控制可能导致100毫秒(或更高)的誤差。[2][3]

该协议通常描述为一种主從式架構,但它也可以用在對等網路中,对等体双方可将另一端认定为潜在的时间源。[1]:20发送和接收時間戳采用用户数据报协议(UDP)的通訊埠123实现。[4][5]这也可以使用廣播或多播,其中的客户端在最初的往返校准交换后被动地监听时间更新。[3]NTP提供一个即将到来闰秒调整的警告,但不会传输有关本地时区夏时制的信息。[2][3]

当前协议为版本4(NTPv4),这是一个RFC 5905文档中的建议标准。它向下兼容指定于RFC 1305的版本3。

历史 编辑

 
NTP的设计者David L. Mills英语David L. Mills

1979年,网络时间同步技术在纽约国家计算机会议英语National Computer Conference上于运行在跨大西洋卫星网络的互联网服务上公开演示,这可能是该技术的首次公开演示。该技术后在1981年互联网工程笔记(IEN)173中描述,并根据RFC 778文档开发为一个公开协议。该技术首先被部署在一个本地网络,作为Hello路由协议的一部分,并在Fuzzball英语Fuzzball router(一个用于网络原型的实验操作系统,已运行多年)中实现。

现在还有其他的相关网络工具。这包括DaytimeTime协议用以记录事件时间,以及互联网控制消息协议和IP时间戳选项(RFC 781)。更多完整的同步系统,虽然缺乏NTP的数据分析和时钟规律算法,包括Unix守护进程timed在内的软件其使用选举算法为所有客户端指定服务器。以及数字时间同步服务(Digital Time Synchronization Service,DTSS)使用类似构NTP阶层模型的服务器层次结构。

1985年,NTPv0被实现于Fuzzball和Unix,文档化于RFC 958的NTP数据包头、和往返延迟和偏移计算都被留存至NTPv4。尽管当时可用的计算机和网络相对较慢,但在跨大西洋链路上也取得了优于100毫秒的精度,在以太网网络上准确度为几十毫秒。

1988年,一个更完整的NTPv1协议规范及相关的算法发表在RFC 1059。它利用了RFC 956的文献中的实验结果和时钟滤波算法,并是第一个描述客户端-服务器對等網路模型的版本。1991年,NTPv1架构、协议和算法通过David L. Mills英语David L. MillsIEEE Transactions on Communications英语IEEE Transactions on Communications发布的一篇文章得到了工程学界的更广泛关注。

1989年,RFC 1119发布通过有限状态机定义的NTPv2,使用伪代码来描述其操作。它引入了一个管理协议和加密认证方案,它们留存至NTPv4。社区批评NTP的设计缺乏形式正确性原则英语Correctness (computer science)。他们的替代设计包括Marzullo算法英语Marzullo's algorithm,其修改版本已及时添加到NTP。这个时代的大多数算法也大部分留存至NTPv4。

1992年,RFC 1305定义了NTPv3。该RFC包括一个对所有错误来源的分析,从参考时钟英语Master clock至最终客户端,这使帮助度量和选择最佳服务器成为可能(在其中几个候选者反对的情况下)。广播模式被引入。

在接下来的几年里,随着新特性的添加和算法的改进,显然还需要一个新的协议版本。[6]2010年,RFC 5905发布了一个对NTPv4的建议规范,但该协议自那时以来已经显著改变,截至2014年,更新的RFC尚未发布。[7]在Mills从特拉华大学退休后,该参考实现目前由Harlan Stenn保持为一个开放源代码项目。[8][9]

时钟层 编辑

 
美国海军天文台备用主时钟Schriever AFB (Colorado)英语Schriever Air Force Base是一个第0层的NTP源
 
黄色箭头表示直接连接;红色箭头表示网络连接。

NTP使用一个分层、半分层的时间源系统。该层次的每个级别被称为“stratum”,顶层分配为数字0。一个通过阶层n同步的服务器将运行在阶层n + 1。数字表示与参考时钟的距离,用于防止层次结构中的循环依赖性。阶层并不总是指示质量或可靠性;在阶层3的时间源得到比阶层2时间源更高的时间质量也很常见。电信系统对时钟层英语Synchronization in telecommunications使用不同的定义。以下提供了阶层0、1、2、3的简要描述。

阶层0(Stratum 0)
这些是高精度计时设备,例如原子鐘(如铯、铷)、GPS时钟或其他無線電時鐘。它们生成非常精确的脉冲秒英语pulse per second信号,触发所连接计算机上的中斷和时间戳。阶层0设备也称为参考(基准)时钟。
阶层1
这些与阶层0设备相连、在几微秒误差内同步系统时钟的计算机。阶层1服务器可能与其他阶层1服务器对等相连,以进行完整性检查和备份。[10]它们也被称为主要(primary)时间服务器[2][3]
阶层2
这些计算机通过网络与阶层1服务器同步。提供阶层2的计算机将查询多个阶层1服务器。阶层2计算机也可能与其他阶层2计算机对等相连,为对等组中的所有设备提供更健全穩定的时间。
阶层3
这些计算机与阶层2的服务器同步。它们使用与阶层2相同的算法进行对等和数据采样,并可以自己作为服务器担任阶层4计算机,以此类推。

阶层的上限为15;阶层16被用于标识设备未同步。每台计算机上的NTP算法相互构造一个贝尔曼-福特算法最短路径生成树,以最小化所有客户端到阶层1服务器的累积往返延迟。[1]:20

时间戳 编辑

NTP使用64位元的时间戳,其中32位元表示秒,32位元表示秒的小数,给出一个每232秒(136年)才会翻转的时间尺度,理论分辨率2−32秒(233皮秒)。NTP以1900年1月1日作为開始時間,因此第一次翻转将在2036年2月7日发生。[11][12]

NTP的未来版本可能将时间表示扩展到128位元:其中64位元表示秒,64位元表示秒的小数。当前的NTPv4格式支持“时代数字”(Era Number)和“时代偏移”(Era Offset),正确使用它们应该有助于解决日期翻转问题。据Mills称:“64位元的秒小数足以分辨光子光速通过电子所需的时间。64位元的秒足以提供明确的时间表示,直到宇宙变暗。”[13][note 1]

时钟同步算法 编辑

 
往返延迟时间δ

典型的NTP客户端将定期輪詢不同网络上的三个或更多服务器。为同步其时钟,客户端必须计算其时间偏移量和來回通訊延遲。时间偏移“θ”定义为:

 

往返延迟“δ”为:

 

其中:

t0 是请求数据包传输的客户端时间戳,
t1 是请求数据包回复的服务器时间戳,
t2 是响应数据包传输的服务器时间戳
t3 是响应数据包回复的客户端时间戳。[1]:19

“θ”和“δ”的值通过过滤器并进行统计分析。异常值被剔除,并从最好的三个剩余候选中导出估算的时间偏移。然后调整时钟频率以逐渐减小偏移,创建一个反馈回路[1]:20

当客户端和服务器之间的输入和输出路由都具有对称的标称延迟时,同步是正确的。如果路由没有共同的标称延迟,则将差异取半作为测量误差[14]

软件实现 编辑

 
查询第二层服务器状态的NTP管理协议实用工具ntpq。

参考实现 编辑

NTP参考实现连同协议的开发已持续发展了20多年。随着新功能的添加,向后兼容性仍保持不变。它包含几个敏感的算法,尤其是时钟规律,在同步到使用不同算法的服务器时可能会发生错误。该软件已移植到几乎各个计算平台,包括个人计算机。[1]:13它在Unix上运行名为ntpd英语ntpd守护进程,或在Windows上运行为一个Windows服务[1]:15支持参考时钟,并且以与远程服务器相同的方式对偏移进行过滤和分析,尽管它们通常更频繁地轮询。[1]:19

SNTP 编辑

一个复杂度更低的NTP实现,使用相同协议,但不需要长时间储存状态英语state (computer science)[15],也称简单网络时间协议(Simple Network Time Protocol,SNTP)。被某些嵌入式系统和不需要高精度时间的应用所采用。[16][17][18]

Windows时间服务 编辑

Windows 2000起的所有Microsoft Windows版本都包括Windows时间服务(W32Time),[19]其具有将计算机时钟同步到NTP服务器的能力。

W32Time服务最初是为实现Kerberos第五版的身份验证协议,它需要误差5分钟内正确时间值以防止重放攻击。Windows 2000和Windows XP中只实现了简单的NTP,并在几个方面违反了NTP第3版的标准。[20]Windows Server 2003Windows Vista开始,已包括符合完整NTP的实现。[21]微软称W32Time服务不能可靠地将同步时间保持在1至2秒的范围内。[22]如果需要更高的精度,微软建议使用其他NTP实现。[23]

Windows 10 與 Windows Server 2016 由版本 1607 開始,提供高精度的系統時間,支持1ms的时间精度。[24][25]

Ntimed 编辑

一个新的NTP客户端ntimedPoul-Henning Kamp英语Poul-Henning Kamp在2014年开始编写。[26]新的实现由Linux基金會赞助,作为参考实现的一个替代,因为它决定更容易地从头开始编写新的实现,而不是修复现有大型代码库的现有问题。截至2015年6月,它尚未正式发布,但ntimed可以可靠地同步时钟。[27]ntimedDebianFreeBSD上工作,但也被移植到Windows和Mac OS。[28]

闰秒 编辑

闰秒事件的当天,ntpd从配置文件、附加参考时钟或远程服务器收到通知。因为时间必须是单调递增,所以闰秒的插入方式为:23:59:59、23:59:60、00:00:00。虽然时钟实际上在事件期间停止,但任何查询系统时间的进程都会使它增加微小的量,以保持事件的顺序。如果必要,在序列中删除闰秒的形式为:23:59:58、00:00:00,跳过23:59:59。[29]

2038年問題 编辑

安全问题 编辑

2014年底,几个安全问题被发现。在以前,研究人员发现NTP服务器可能受到中间人攻击的影响,除非数据包被加密和签名以验证身份。[30]但这所涉及的计算量在繁忙的服务器上可能是不切实际的,尤其是容易遭遇阻斷服務攻擊[31]NTP消息欺骗可以被用来偏移客户端计算机上的时钟,并配合过期的加密密钥来完成其他攻击。[32]可能受到伪造NTP消息影响的服务包括TLSDNSSEC、各类缓存方案(例如DNS缓存)、比特币以及许多持久登录方案。[33][34]

有着25年以上历史的NTP代码库中的参考实现中只发现了几个其他的安全问题,但最近[何时?]出现的几个引起了人们的强烈关注。[35][36]该协议正在对其整个历史进行修订和审查。截至2011年1月,在NTP规范中没有安全修订,也没有在CERT協調中心的报告。[37]几年来,该参考实现的当前代码库已经被多个来源进行安全审计,在当前发布的软件中没有已知的高风险漏洞。[38]

多种NTP服务器误用和滥用英语NTP server misuse and abuse实践的存在导致了对网络时间协议(NTP)服务器的破坏或劣化。

NTP已經被用于分布式拒绝服务(DDoS)攻击,[39][40]方法是将一个具有伪造的返回地址的小的查询发送到NTP服务器。类似DNS放大攻击,服务器将以比攻击者发送数据量大很多倍的数据量回复给伪造的目标。为了避免参与攻击,服务器可以配置为忽略外部查询,或者升级到4.2.7p26或更高版本。[41]

一个緩衝區溢位漏洞已經被发现,并自2014年12月19日提供补丁。漏洞覆盖NTP第四版所有版本,自4.2.8修复。[42]蘋果公司首次使用自动更新功能解决该问题[43],不过这僅适用最近的MacOS版本。在10.6.8版本中,用户可以手动修复服务器版本,以及普通用户可以在系统首选项-日期和时间中关闭自动更新时间。[44]研究人员认为该协议的设计是相当好的,缺陷出现在协议的实现中。某些错误很基础,例如例程中缺少返回语句,这可能导致某些运行在root权限下的NTP版本被利用以无限制的访问系统。守护进程不使用root权限的系统(例如BSD)不受此缺陷的影响。[45]

参见 编辑

备注 编辑

  1. ^ 2−64秒大约54仄秒(zeptoseconds)(光行进16.26皮米,或大约0.31×玻尔半径),264秒大约585亿年

参考资料 编辑

  1. ^ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 David L. Mills. Computer Network Time Synchronization: The Network Time Protocol. Taylor & Francis. 12 December 2010: 12– [2017-01-04]. ISBN 978-0-8493-5805-0. (原始内容于2014-07-18). 
  2. ^ 2.0 2.1 2.2 Executive Summary: Computer Network Time Synchronization. [2011-11-21]. (原始内容于2011-11-02). 
  3. ^ 3.0 3.1 3.2 3.3 NTP FAQ. The NTP Project. [2011-08-27]. (原始内容于2011-09-06). 
  4. ^ Port Numbers. The Internet Assigned Numbers Authority (IANA). [2017-01-04]. (原始内容于2001-06-04). 
  5. ^ Page 16. [2017-01-04]. (原始内容于2018-01-01). 
  6. ^ David L. Mills. Computer Network Time Synchronization: The Network Time Protocol on Earth and in Space, Second Edition. CRC Press. 15 November 2010: 377. ISBN 978-1-4398-1464-2. 
  7. ^ Network Time Synchronization Research Project. [24 December 2014]. (原始内容于2014-12-23). 
  8. ^ NTP Needs Money: Is A Foundation The Answer?. 信息周刊. March 23, 2015 [April 4, 2015]. (原始内容于2015-04-10). 
  9. ^ NTP's Fate Hinges On 'Father Time'. 信息周刊. March 11, 2015 [April 4, 2015]. (原始内容于2015-04-10). 
  10. ^ Network Time Protocol: Best Practices White Paper. [15 October 2013]. (原始内容于2013-10-01). 
  11. ^ David L. Mills. The NTP Era and Era Numbering. 12 May 2012 [24 September 2016]. (原始内容于2016-10-26). 
  12. ^ W. Richard Stevens; Bill Fenner; Andrew M. Rudoff. UNIX Network Programming. Addison-Wesley Professional. 2004: 582– [2017-01-04]. ISBN 978-0-13-141155-5. (原始内容于2019-03-30). 
  13. ^ 特拉华大学 Digital Systems Seminar presentation by David Mills, 2006-04-26
  14. ^ Gotoh, T.; Imamura, K.; Kaneko, A. Improvement of NTP time offset under the asymmetric network with double packets method. Conference on Precision Electromagnetic Measurements: 448–449. 2002. ISBN 0-7803-7242-5. doi:10.1109/CPEM.2002.1034915. 
  15. ^ Network Time Protocol Version 4: Protocol and Algorithms Specification: 54. June 2010 [2012-08-26]. (原始内容于2019-04-22). Primary servers and clients complying with a subset of NTP, called the Simple Network Time Protocol (SNTPv4) [...], do not need to implement the mitigation algorithms [...] The fully developed NTPv4 implementation is intended for [...] servers with multiple upstream servers and multiple downstream servers [...] Other than these considerations, NTP and SNTP servers and clients are completely interoperable and can be intermixed [...] 
  16. ^ RFC 2030
  17. ^ RFC 4330
  18. ^ RFC 5905
  19. ^ Archiveddocs. . docs.microsoft.com. [2022-03-12]. (原始内容存档于2022-07-06) (美国英语). 
  20. ^ Windows Time Service page at NTP.org. Support.ntp.org. 2008-02-25 [2011-01-12]. (原始内容于2021-04-09). 
  21. ^ Archiveddocs. . docs.microsoft.com. [2022-03-12]. (原始内容存档于2022-07-08) (美国英语). 
  22. ^ Support boundary to configure the Windows Time service for high accuracy environments. 微软. 2011-10-19 [2017-01-04]. (原始内容于2009-01-12). 
  23. ^ Ned Pyle. High Accuracy W32time Requirements. 微软. 2007-10-23 [2012-08-26]. (原始内容于2012-10-17). 
  24. ^ dahavey. . docs.microsoft.com. [2022-03-12]. (原始内容存档于2022-03-12) (中文(中国大陆)). 
  25. ^ dahavey. . docs.microsoft.com. [2022-03-12]. (原始内容存档于2021-05-02) (美国英语). 
  26. ^ Poul-Henning, Kamp. . PHK's Bikeshed. [4 June 2015]. (原始内容存档于2017-02-13). 
  27. ^ Poul-Henning, Kamp. Network time synchronization software, NTPD replacement.. ntimed git repository README file. Github. [4 June 2015]. (原始内容于2015-08-02). 
  28. ^ Poul-Henning, Kamp. . PHK's Bikeshed. 2015-01-11 [4 June 2015]. (原始内容存档于2016-11-14). 
  29. ^ David Mills. The NTP Timescale and Leap Seconds. [15 October 2013]. (原始内容于2013-09-07). 
  30. ^ Network Time Protocol Version 4: Autokey Specification. IETF. 2010 [2014-10-16]. (原始内容于2014-10-13). 
  31. ^ NTP Security Analysis. [11 October 2013]. (原始内容于2013-09-07). 
  32. ^ Jose Selvi. Bypassing HTTP Strict Transport Security (PDF). 2014-10-16 [2014-10-16]. (原始内容 (PDF)于2014-10-18). 
  33. ^ Aanchal Malhotra; Isaac E. Cohen; Erik Brakke & Sharon Goldberg. Attacking the Network Time Protocol (PDF). NDSS. 20 October 2015. (原始内容 (PDF)于2015-10-22). 
  34. ^ Attacking the Network Time Protocol. www.cs.bu.edu. [2015-10-27]. (原始内容于2015-10-24). 
  35. ^ Security Notice. Support.ntp.org. 2009-12-10 [2011-01-12]. [失效連結]
  36. ^ results returned by a search on "Network Time Protocol"[永久失效連結] at [1] (页面存档备份,存于互联网档案馆[原創研究?]
  37. ^ in RFC 778, RFC 891, RFC 956, RFC 958, RFC 1305, RFC 5905, and the NTPv4 specification (页面存档备份,存于互联网档案馆
  38. ^ Code Audit. Support.ntp.org. 2009-06-13 [2011-01-12]. 
  39. ^ Goodin, Dan. New DoS attacks taking down game sites deliver crippling 100Gbps floods. Ars Technica. 2014-01-13 [2014-01-25]. (原始内容于2014-01-25). 
  40. ^ Lee, Dave. Huge hack 'ugly sign of future' for internet threats. BBC. 2014-02-11 [2014-02-12]. (原始内容于2021-03-08). 
  41. ^ DRDoS / Amplification Attack using ntpdc monlist command. support.ntp.org. 2010-04-24 [2014-04-13]. (原始内容于2014-02-19). 
  42. ^ Network Time Protocol Vulnerabilities (Update C) | ICS-CERT. Ics-cert.us-cert.gov. [2015-04-15]. (原始内容于2014-12-20). 
  43. ^ Cunningham, Andrew. Apple automatically patches Macs to fix severe NTP security flaw. arstechnica. Dec 23, 2014 [Apr 29, 2015]. (原始内容于2015-05-15). 
  44. ^ NTP vulnerability on versions prior to 4.2.8 -- we OK?. Apple Support Communities. [2017-01-04]. (原始内容于2014-12-24). 
  45. ^ Fairhead, Harry. NTP The Latest Open Source Security Problem. I Programmer. 23 December 2014 [2017-01-04]. (原始内容于2014-12-24). 

拓展阅读 编辑

  • Definitions of Managed Objects for Network Time Protocol Version 4 (NTPv4). RFC 5907. 
  • Network Time Protocol (NTP) Server Option for DHCPv6. RFC 5908. 

外部链接 编辑

網路時間協定, 网络时间协议, 英語, network, time, protocol, 缩写, 是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议, 位于osi模型的应用层, 自1985年以来, ntp是目前仍在使用的最古老的互联网协议之一, ntp由特拉华大学的david, mills, 英语, david, mills, 设计, ntp意图将所有参与计算机的协调世界时, 时间同步到几毫秒的误差内, 3它使用marzullo算法, 英语, marzullo, algorithm, 的. 网络时间协议 英語 Network Time Protocol 缩写 NTP 是在数据网络潜伏时间可变的计算机系统之间通过分组交换进行时钟同步的一个网络协议 位于OSI模型的应用层 自1985年以来 NTP是目前仍在使用的最古老的互联网协议之一 NTP由特拉华大学的David L Mills 英语 David L Mills 设计 NTP意图将所有参与计算机的协调世界时 UTC 时间同步到几毫秒的误差内 1 3它使用Marzullo算法 英语 Marzullo s algorithm 的修改版来选择准确的时间服务器 其设计旨在减轻可变网络延迟 英语 network latency 造成的影响 NTP通常可以在公共互联网保持几十毫秒的误差 并且在理想的局域网环境中可以实现超过1毫秒的精度 不对称路由和拥塞控制可能导致100毫秒 或更高 的誤差 2 3 该协议通常描述为一种主從式架構 但它也可以用在對等網路中 对等体双方可将另一端认定为潜在的时间源 1 20发送和接收時間戳采用用户数据报协议 UDP 的通訊埠123实现 4 5 这也可以使用廣播或多播 其中的客户端在最初的往返校准交换后被动地监听时间更新 3 NTP提供一个即将到来闰秒调整的警告 但不会传输有关本地时区或夏时制的信息 2 3 当前协议为版本4 NTPv4 这是一个RFC 5905文档中的建议标准 它向下兼容指定于RFC 1305的版本3 目录 1 历史 2 时钟层 3 时间戳 4 时钟同步算法 5 软件实现 5 1 参考实现 5 2 SNTP 5 3 Windows时间服务 5 4 Ntimed 6 闰秒 7 2038年問題 8 安全问题 9 参见 10 备注 11 参考资料 12 拓展阅读 13 外部链接历史 编辑 nbsp NTP的设计者David L Mills 英语 David L Mills 1979年 网络时间同步技术在纽约的国家计算机会议 英语 National Computer Conference 上于运行在跨大西洋卫星网络的互联网服务上公开演示 这可能是该技术的首次公开演示 该技术后在1981年互联网工程笔记 IEN 173中描述 并根据RFC 778文档开发为一个公开协议 该技术首先被部署在一个本地网络 作为Hello路由协议的一部分 并在Fuzzball 英语 Fuzzball router 一个用于网络原型的实验操作系统 已运行多年 中实现 现在还有其他的相关网络工具 这包括Daytime和Time协议用以记录事件时间 以及互联网控制消息协议和IP时间戳选项 RFC 781 更多完整的同步系统 虽然缺乏NTP的数据分析和时钟规律算法 包括Unix守护进程timed在内的软件其使用选举算法为所有客户端指定服务器 以及数字时间同步服务 Digital Time Synchronization Service DTSS 使用类似构NTP阶层模型的服务器层次结构 1985年 NTPv0被实现于Fuzzball和Unix 文档化于RFC 958的NTP数据包头 和往返延迟和偏移计算都被留存至NTPv4 尽管当时可用的计算机和网络相对较慢 但在跨大西洋链路上也取得了优于100毫秒的精度 在以太网网络上准确度为几十毫秒 1988年 一个更完整的NTPv1协议规范及相关的算法发表在RFC 1059 它利用了RFC 956的文献中的实验结果和时钟滤波算法 并是第一个描述客户端 服务器和對等網路模型的版本 1991年 NTPv1架构 协议和算法通过David L Mills 英语 David L Mills 在IEEE Transactions on Communications 英语 IEEE Transactions on Communications 发布的一篇文章得到了工程学界的更广泛关注 1989年 RFC 1119发布通过有限状态机定义的NTPv2 使用伪代码来描述其操作 它引入了一个管理协议和加密认证方案 它们留存至NTPv4 社区批评NTP的设计缺乏形式正确性原则 英语 Correctness computer science 他们的替代设计包括Marzullo算法 英语 Marzullo s algorithm 其修改版本已及时添加到NTP 这个时代的大多数算法也大部分留存至NTPv4 1992年 RFC 1305定义了NTPv3 该RFC包括一个对所有错误来源的分析 从参考时钟 英语 Master clock 至最终客户端 这使帮助度量和选择最佳服务器成为可能 在其中几个候选者反对的情况下 广播模式被引入 在接下来的几年里 随着新特性的添加和算法的改进 显然还需要一个新的协议版本 6 2010年 RFC 5905发布了一个对NTPv4的建议规范 但该协议自那时以来已经显著改变 截至2014年 更新的RFC尚未发布 7 在Mills从特拉华大学退休后 该参考实现目前由Harlan Stenn保持为一个开放源代码项目 8 9 时钟层 编辑 nbsp 美国海军天文台备用主时钟Schriever AFB Colorado 英语 Schriever Air Force Base 是一个第0层的NTP源 nbsp 黄色箭头表示直接连接 红色箭头表示网络连接 NTP使用一个分层 半分层的时间源系统 该层次的每个级别被称为 stratum 顶层分配为数字0 一个通过阶层n同步的服务器将运行在阶层n 1 数字表示与参考时钟的距离 用于防止层次结构中的循环依赖性 阶层并不总是指示质量或可靠性 在阶层3的时间源得到比阶层2时间源更高的时间质量也很常见 电信系统对时钟层 英语 Synchronization in telecommunications 使用不同的定义 以下提供了阶层0 1 2 3的简要描述 阶层0 Stratum 0 这些是高精度计时设备 例如原子鐘 如铯 铷 GPS时钟或其他無線電時鐘 它们生成非常精确的脉冲秒 英语 pulse per second 信号 触发所连接计算机上的中斷和时间戳 阶层0设备也称为参考 基准 时钟 阶层1 这些与阶层0设备相连 在几微秒误差内同步系统时钟的计算机 阶层1服务器可能与其他阶层1服务器对等相连 以进行完整性检查和备份 10 它们也被称为主要 primary 时间服务器 2 3 阶层2 这些计算机通过网络与阶层1服务器同步 提供阶层2的计算机将查询多个阶层1服务器 阶层2计算机也可能与其他阶层2计算机对等相连 为对等组中的所有设备提供更健全穩定的时间 阶层3 这些计算机与阶层2的服务器同步 它们使用与阶层2相同的算法进行对等和数据采样 并可以自己作为服务器担任阶层4计算机 以此类推 阶层的上限为15 阶层16被用于标识设备未同步 每台计算机上的NTP算法相互构造一个贝尔曼 福特算法最短路径生成树 以最小化所有客户端到阶层1服务器的累积往返延迟 1 20时间戳 编辑NTP使用64位元的时间戳 其中32位元表示秒 32位元表示秒的小数 给出一个每232秒 136年 才会翻转的时间尺度 理论分辨率2 32秒 233皮秒 NTP以1900年1月1日作为開始時間 因此第一次翻转将在2036年2月7日发生 11 12 NTP的未来版本可能将时间表示扩展到128位元 其中64位元表示秒 64位元表示秒的小数 当前的NTPv4格式支持 时代数字 Era Number 和 时代偏移 Era Offset 正确使用它们应该有助于解决日期翻转问题 据Mills称 64位元的秒小数足以分辨光子以光速通过电子所需的时间 64位元的秒足以提供明确的时间表示 直到宇宙变暗 13 note 1 时钟同步算法 编辑 nbsp 往返延迟时间d 典型的NTP客户端将定期輪詢不同网络上的三个或更多服务器 为同步其时钟 客户端必须计算其时间偏移量和來回通訊延遲 时间偏移 8 定义为 8 t 1 t 0 t 2 t 3 2 displaystyle theta t 1 t 0 t 2 t 3 over 2 nbsp 往返延迟 d 为 d t 3 t 0 t 2 t 1 displaystyle delta t 3 t 0 t 2 t 1 nbsp 其中 t0 是请求数据包传输的客户端时间戳 t1 是请求数据包回复的服务器时间戳 t2 是响应数据包传输的服务器时间戳 t3 是响应数据包回复的客户端时间戳 1 19 8 和 d 的值通过过滤器并进行统计分析 异常值被剔除 并从最好的三个剩余候选中导出估算的时间偏移 然后调整时钟频率以逐渐减小偏移 创建一个反馈回路 1 20当客户端和服务器之间的输入和输出路由都具有对称的标称延迟时 同步是正确的 如果路由没有共同的标称延迟 则将差异取半作为测量误差 14 软件实现 编辑 nbsp 查询第二层服务器状态的NTP管理协议实用工具ntpq 参考实现 编辑 NTP参考实现连同协议的开发已持续发展了20多年 随着新功能的添加 向后兼容性仍保持不变 它包含几个敏感的算法 尤其是时钟规律 在同步到使用不同算法的服务器时可能会发生错误 该软件已移植到几乎各个计算平台 包括个人计算机 1 13它在Unix上运行名为ntpd 英语 ntpd 的守护进程 或在Windows上运行为一个Windows服务 1 15支持参考时钟 并且以与远程服务器相同的方式对偏移进行过滤和分析 尽管它们通常更频繁地轮询 1 19 SNTP 编辑 一个复杂度更低的NTP实现 使用相同协议 但不需要长时间储存状态 英语 state computer science 15 也称简单网络时间协议 Simple Network Time Protocol SNTP 被某些嵌入式系统和不需要高精度时间的应用所采用 16 17 18 Windows时间服务 编辑 从Windows 2000起的所有Microsoft Windows版本都包括Windows时间服务 W32Time 19 其具有将计算机时钟同步到NTP服务器的能力 W32Time服务最初是为实现Kerberos第五版的身份验证协议 它需要误差5分钟内正确时间值以防止重放攻击 Windows 2000和Windows XP中只实现了简单的NTP 并在几个方面违反了NTP第3版的标准 20 从Windows Server 2003和Windows Vista开始 已包括符合完整NTP的实现 21 微软称W32Time服务不能可靠地将同步时间保持在1至2秒的范围内 22 如果需要更高的精度 微软建议使用其他NTP实现 23 Windows 10 與 Windows Server 2016 由版本 1607 開始 提供高精度的系統時間 支持1ms的时间精度 24 25 Ntimed 编辑 一个新的NTP客户端ntimed由Poul Henning Kamp 英语 Poul Henning Kamp 在2014年开始编写 26 新的实现由Linux基金會赞助 作为参考实现的一个替代 因为它决定更容易地从头开始编写新的实现 而不是修复现有大型代码库的现有问题 截至2015年6月 它尚未正式发布 但ntimed可以可靠地同步时钟 27 ntimed在Debian和FreeBSD上工作 但也被移植到Windows和Mac OS 28 闰秒 编辑在闰秒事件的当天 ntpd从配置文件 附加参考时钟或远程服务器收到通知 因为时间必须是单调递增 所以闰秒的插入方式为 23 59 59 23 59 60 00 00 00 虽然时钟实际上在事件期间停止 但任何查询系统时间的进程都会使它增加微小的量 以保持事件的顺序 如果必要 在序列中删除闰秒的形式为 23 59 58 00 00 00 跳过23 59 59 29 2038年問題 编辑主条目 2038年问题安全问题 编辑2014年底 几个安全问题被发现 在以前 研究人员发现NTP服务器可能受到中间人攻击的影响 除非数据包被加密和签名以验证身份 30 但这所涉及的计算量在繁忙的服务器上可能是不切实际的 尤其是容易遭遇阻斷服務攻擊 31 NTP消息欺骗可以被用来偏移客户端计算机上的时钟 并配合过期的加密密钥来完成其他攻击 32 可能受到伪造NTP消息影响的服务包括TLS DNSSEC 各类缓存方案 例如DNS缓存 比特币以及许多持久登录方案 33 34 有着25年以上历史的NTP代码库中的参考实现中只发现了几个其他的安全问题 但最近 何时 出现的几个引起了人们的强烈关注 35 36 该协议正在对其整个历史进行修订和审查 截至2011年1月 在NTP规范中没有安全修订 也没有在CERT協調中心的报告 37 几年来 该参考实现的当前代码库已经被多个来源进行安全审计 在当前发布的软件中没有已知的高风险漏洞 38 多种NTP服务器误用和滥用 英语 NTP server misuse and abuse 实践的存在导致了对网络时间协议 NTP 服务器的破坏或劣化 NTP已經被用于分布式拒绝服务 DDoS 攻击 39 40 方法是将一个具有伪造的返回地址的小的查询发送到NTP服务器 类似DNS放大攻击 服务器将以比攻击者发送数据量大很多倍的数据量回复给伪造的目标 为了避免参与攻击 服务器可以配置为忽略外部查询 或者升级到4 2 7p26或更高版本 41 一个緩衝區溢位漏洞已經被发现 并自2014年12月19日提供补丁 漏洞覆盖NTP第四版所有版本 自4 2 8修复 42 蘋果公司首次使用自动更新功能解决该问题 43 不过这僅适用最近的MacOS版本 在10 6 8版本中 用户可以手动修复服务器版本 以及普通用户可以在系统首选项 日期和时间中关闭自动更新时间 44 研究人员认为该协议的设计是相当好的 缺陷出现在协议的实现中 某些错误很基础 例如例程中缺少返回语句 这可能导致某些运行在root权限下的NTP版本被利用以无限制的访问系统 守护进程不使用root权限的系统 例如BSD 不受此缺陷的影响 45 参见 编辑Allan variance 英语 Allan variance 时钟网络 英语 Clock network 原子时 NITZ NTP pool Ntpdate 英语 Ntpdate OpenNTPD 精确时间协议 IEEE 1588 PTP 备注 编辑 2 64秒大约54仄秒 zeptoseconds 光行进16 26皮米 或大约0 31 玻尔半径 264秒大约585亿年 参考资料 编辑 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 David L Mills Computer Network Time Synchronization The Network Time Protocol Taylor amp Francis 12 December 2010 12 2017 01 04 ISBN 978 0 8493 5805 0 原始内容存档于2014 07 18 2 0 2 1 2 2 Executive Summary Computer Network Time Synchronization 2011 11 21 原始内容存档于2011 11 02 3 0 3 1 3 2 3 3 NTP FAQ The NTP Project 2011 08 27 原始内容存档于2011 09 06 Port Numbers The Internet Assigned Numbers Authority IANA 2017 01 04 原始内容存档于2001 06 04 Page 16 2017 01 04 原始内容存档于2018 01 01 David L Mills Computer Network Time Synchronization The Network Time Protocol on Earth and in Space Second Edition CRC Press 15 November 2010 377 ISBN 978 1 4398 1464 2 Network Time Synchronization Research Project 24 December 2014 原始内容存档于2014 12 23 NTP Needs Money Is A Foundation The Answer 信息周刊 March 23 2015 April 4 2015 原始内容存档于2015 04 10 NTP s Fate Hinges On Father Time 信息周刊 March 11 2015 April 4 2015 原始内容存档于2015 04 10 Network Time Protocol Best Practices White Paper 15 October 2013 原始内容存档于2013 10 01 David L Mills The NTP Era and Era Numbering 12 May 2012 24 September 2016 原始内容存档于2016 10 26 W Richard Stevens Bill Fenner Andrew M Rudoff UNIX Network Programming Addison Wesley Professional 2004 582 2017 01 04 ISBN 978 0 13 141155 5 原始内容存档于2019 03 30 特拉华大学 Digital Systems Seminar presentation by David Mills 2006 04 26 Gotoh T Imamura K Kaneko A Improvement of NTP time offset under the asymmetric network with double packets method Conference on Precision Electromagnetic Measurements 448 449 2002 ISBN 0 7803 7242 5 doi 10 1109 CPEM 2002 1034915 Network Time Protocol Version 4 Protocol and Algorithms Specification 54 June 2010 2012 08 26 原始内容存档于2019 04 22 Primary servers and clients complying with a subset of NTP called the Simple Network Time Protocol SNTPv4 do not need to implement the mitigation algorithms The fully developed NTPv4 implementation is intended for servers with multiple upstream servers and multiple downstream servers Other than these considerations NTP and SNTP servers and clients are completely interoperable and can be intermixed RFC 2030 RFC 4330 RFC 5905 Archiveddocs Windows Time Service Technical Reference Windows Time Service docs microsoft com 2022 03 12 原始内容存档于2022 07 06 美国英语 Windows Time Service page at NTP org Support ntp org 2008 02 25 2011 01 12 原始内容存档于2021 04 09 Archiveddocs How Windows Time Service Works Windows Time Service docs microsoft com 2022 03 12 原始内容存档于2022 07 08 美国英语 Support boundary to configure the Windows Time service for high accuracy environments 微软 2011 10 19 2017 01 04 原始内容存档于2009 01 12 Ned Pyle High Accuracy W32time Requirements 微软 2007 10 23 2012 08 26 原始内容存档于2012 10 17 dahavey Windows Server 2016 精确时间 docs microsoft com 2022 03 12 原始内容存档于2022 03 12 中文 中国大陆 dahavey Support boundary for high accuracy time docs microsoft com 2022 03 12 原始内容存档于2021 05 02 美国英语 Poul Henning Kamp 20140926 Playing with time again PHK s Bikeshed 4 June 2015 原始内容存档于2017 02 13 Poul Henning Kamp Network time synchronization software NTPD replacement ntimed git repository README file Github 4 June 2015 原始内容存档于2015 08 02 Poul Henning Kamp 20150111 What happened next PHK s Bikeshed 2015 01 11 4 June 2015 原始内容存档于2016 11 14 David Mills The NTP Timescale and Leap Seconds 15 October 2013 原始内容存档于2013 09 07 Network Time Protocol Version 4 Autokey Specification IETF 2010 2014 10 16 原始内容存档于2014 10 13 NTP Security Analysis 11 October 2013 原始内容存档于2013 09 07 Jose Selvi Bypassing HTTP Strict Transport Security PDF 2014 10 16 2014 10 16 原始内容存档 PDF 于2014 10 18 Aanchal Malhotra Isaac E Cohen Erik Brakke amp Sharon Goldberg Attacking the Network Time Protocol PDF NDSS 20 October 2015 原始内容存档 PDF 于2015 10 22 Attacking the Network Time Protocol www cs bu edu 2015 10 27 原始内容存档于2015 10 24 Security Notice Support ntp org 2009 12 10 2011 01 12 失效連結 results returned by a search on Network Time Protocol 永久失效連結 at 1 页面存档备份 存于互联网档案馆 原創研究 in RFC 778 RFC 891 RFC 956 RFC 958 RFC 1305 RFC 5905 and the NTPv4 specification 页面存档备份 存于互联网档案馆 Code Audit Support ntp org 2009 06 13 2011 01 12 Goodin Dan New DoS attacks taking down game sites deliver crippling 100Gbps floods Ars Technica 2014 01 13 2014 01 25 原始内容存档于2014 01 25 Lee Dave Huge hack ugly sign of future for internet threats BBC 2014 02 11 2014 02 12 原始内容存档于2021 03 08 DRDoS Amplification Attack using ntpdc monlist command support ntp org 2010 04 24 2014 04 13 原始内容存档于2014 02 19 Network Time Protocol Vulnerabilities Update C ICS CERT Ics cert us cert gov 2015 04 15 原始内容存档于2014 12 20 Cunningham Andrew Apple automatically patches Macs to fix severe NTP security flaw arstechnica Dec 23 2014 Apr 29 2015 原始内容存档于2015 05 15 NTP vulnerability on versions prior to 4 2 8 we OK Apple Support Communities 2017 01 04 原始内容存档于2014 12 24 Fairhead Harry NTP The Latest Open Source Security Problem I Programmer 23 December 2014 2017 01 04 原始内容存档于2014 12 24 拓展阅读 编辑Definitions of Managed Objects for Network Time Protocol Version 4 NTPv4 RFC 5907 Network Time Protocol NTP Server Option for DHCPv6 RFC 5908 外部链接 编辑官方网站 nbsp 英文 公共NTP服务器列表 页面存档备份 存于互联网档案馆 英文 NTP节点镜像群 页面存档备份 存于互联网档案馆 IETF NTP working group 页面存档备份 存于互联网档案馆 Time and NTP paper 页面存档备份 存于互联网档案馆 NTP Survey 2005 Current NIST leap seconds file compatible with ntpd 永久失效連結 David L Mills A Brief History of NTP Time Confessions of an Internet Timekeeper 页面存档备份 存于互联网档案馆 Keith Marzullo s homepage 页面存档备份 存于互联网档案馆 NTP Server Test Online Tool 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title 網路時間協定 amp oldid 77496711, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。