Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Network Time Protocol
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== History == [[File:DL Mills-2.jpg|thumb|upright|NTP was designed by [[David L. Mills]].]] {{Graphical timeline |title=[[Request for Comments|RFC]] evolution for NTP |align=right |plot-colour=#bbeebb |from=1980 |to=2023 |scale-increment=5 |width=18 |height=500 |height-unit=px |bar1-text={{nowrap|v0, RFC 958}}{{Ref RFC|958}} |bar1-from=1985 | bar1-to=1988 | bar1-left=0.05 | bar1-right=0.45 |bar2-text={{nowrap|v1, RFC 1059}}{{Ref RFC|1059}} |bar2-from=1988 | bar2-to=1989 | bar2-left=0.05 | bar2-right=0.45 |bar3-text={{nowrap|v2, RFC 1119}}{{Ref RFC|1119}} |bar3-from=1989 | bar3-to=1992 | bar3-left=0.05 | bar3-right=0.45 |bar4-text={{nowrap|v3, RFC 1305}}{{Ref RFC|1305}} |bar4-from=1992 | bar4-to=2010 | bar4-left=0.05 | bar4-right=0.45 |bar5-text={{nowrap|v4, RFC 5905}}{{Ref RFC|5905}} |bar5-from=2010 | bar5-to=2023 | bar5-left=0.05 | bar5-right=0.95 |bar7-text ={{nowrap|v3, RFC 1361}}{{Ref RFC|1361}} |bar7-from=1992 | bar7-to=1995 | bar7-left=0.55 |bar7-right=0.95 |bar8-text ={{nowrap|v3, RFC 1769}}{{Ref RFC|1769}} |bar8-from=1995 | bar8-to=1996 | bar8-left=0.55 |bar8-right=0.95 |bar9-text ={{nowrap|v4, RFC 2030}}{{Ref RFC|2030}} |bar9-from=1996 | bar9-to=2006 | bar9-left=0.55 |bar9-right=0.95 |bar10-text={{nowrap|v4, RFC 4330}}{{Ref RFC|4330}} |bar10-from=2006 | bar10-to=2010 | bar10-left=0.55 |bar10-right=0.95 |note1=DCNET Internet Clock Service{{Ref RFC|778}} | note1-at=1981 | note1-colour=green |note2=SNTP | note2-at=1992 | note2-colour=blue |note3=SNTP merged |note3-at=2010 |note3-colour=blue |note4=Ext. fields{{Ref RFC|7822}}|note4-at=2016|note4-colour=red |note5=[[Message authentication code|MAC]] change{{Ref RFC|8573}}|note5-at=2019|note5-colour=red |note6=Port randomization{{Ref RFC|9109}}|note6-at=2021|note6-colour=red }} In 1979, network [[time synchronization]] technology was used in what was possibly the first public demonstration of [[Internet]] services running over a trans-Atlantic satellite network, at the [[National Computer Conference]] in New York. The technology was later described in the 1981 Internet Engineering Note (IEN) 173<ref name="ND7CF">{{citation |url=http://www.cis.ohio-state.edu/htbin/ien/ien173.html |archive-url=https://web.archive.org/web/19961230073104/http://www.cis.ohio-state.edu/htbin/ien/ien173.html |archive-date=1996-12-30 |title=Time Synchronization in DCNET Hosts |author=D.L. Mills |date=25 February 1981}}</ref> and a public protocol was developed from it that was documented in {{IETF RFC|778}}. The technology was first deployed in a local area network as part of the Hello routing protocol and implemented in the [[Fuzzball router]], an experimental operating system used in network prototyping, where it ran for many years. Other related network tools were available both then and now. They include the [[Daytime Protocol|Daytime]] and [[Time Protocol|Time]] protocols for recording the time of events, as well as the [[ICMP Timestamp]] messages and IP Timestamp option ({{IETF RFC|781}}). More complete synchronization systems, although lacking NTP's data analysis and clock disciplining algorithms, include the [[Unix]] daemon ''[[timed]]'', which uses an election algorithm to appoint a server for all the clients;<ref name="Y8SkT">{{citation |url=http://www.skrenta.com/rt/man/timed.8.html |title=TIMED(8) |work=UNIX System Manager's Manual |access-date=2017-09-12 |archive-url=https://web.archive.org/web/20110722012159/http://www.skrenta.com/rt/man/timed.8.html |archive-date=2011-07-22 |url-status=live}}</ref> and the '''Digital Time Synchronization Service''' (DTSS), which uses a hierarchy of servers similar to the NTP stratum model. In 1985, NTP version 0 (NTPv0) was implemented in both Fuzzball and Unix, and the NTP packet header and [[round-trip delay]] and offset calculations, which have persisted into NTPv4, were documented in {{IETF RFC|958}}. Despite the relatively slow computers and networks available at the time, accuracy of better than 100 [[millisecond]]s was usually obtained on Atlantic spanning links, with accuracy of tens of milliseconds on [[Ethernet]] networks. In 1988, a much more complete specification of the NTPv1 protocol, with associated algorithms, was published in {{IETF RFC|1059}}. It drew on the experimental results and clock filter algorithm documented in {{IETF RFC|956}} and was the first version to describe the [[client–server]] and [[peer-to-peer]] modes. In 1991, the NTPv1 architecture, protocol and algorithms were brought to the attention of a wider engineering community with the publication of an article by [[David L. Mills]] in the ''[[IEEE Transactions on Communications]]''.<ref name="AMYJK">{{Cite journal |title=Internet Time Synchronization: The Network Time Protocol |journal=IEEE Transactions on Communications |date=October 1991 |volume=39 |pages=1482–1493 |number=10 |url=http://www3.cs.stonybrook.edu/~jgao/CSE590-spring11/91-ntp.pdf |url-access=limited |author=David L. Mills |doi=10.1109/26.103043 |bibcode=1991ITCom..39.1482M |access-date=2017-11-06 |archive-url=https://web.archive.org/web/20160610113047/http://www3.cs.stonybrook.edu/%7Ejgao/CSE590-spring11/91-ntp.pdf |archive-date=2016-06-10 |url-status=live}}</ref> In 1989, {{IETF RFC|1119}} was published defining NTPv2 by means of a [[state machine]], with [[pseudocode]] to describe its operation. It introduced a management protocol and [[Digital signature|cryptographic authentication]] scheme which have both survived into NTPv4, along with the bulk of the algorithm. However the design of NTPv2 was criticized for lacking [[Correctness (computer science)|formal correctness]] by the DTSS community, and the clock selection procedure was modified to incorporate [[Marzullo's algorithm]] for NTPv3 onwards.{{Ref RFC|1305|notes=no|quote=The clock-selection procedure was modified to remove the first of the two sorting/discarding steps and replace with an algorithm first proposed by Marzullo and later incorporated in the Digital Time Service. These changes do not significantly affect the ordinary operation of or compatibility with various versions of NTP, but they do provide the basis for formal statements of correctness.}} In 1992, {{IETF RFC|1305}} defined NTPv3. The RFC included an analysis of all sources of error, from the [[Master clock|reference clock]] down to the final client, which enabled the calculation of a [[Software metric|metric]] that helps choose the best server where several candidates appear to disagree. Broadcast mode was introduced. In subsequent years, as new features were added and algorithm improvements were made, it became apparent that a new protocol version was required.<ref name="MillsES">{{cite book|author=David L. Mills|title=Computer Network Time Synchronization: The Network Time Protocol on Earth and in Space, Second Edition|url=https://books.google.com/books?id=BxTOBQAAQBAJ&pg=PA377|date=15 November 2010|publisher=CRC Press|isbn=978-1-4398-1464-2|pages=377}}</ref> In 2010, {{IETF RFC|5905}} was published containing a proposed specification for NTPv4.<ref name="E4akm">{{citation| url=https://www.eecis.udel.edu/~mills/ntp.html| title=Network Time Synchronization Research Project| access-date=24 December 2014| section=Future Plans| archive-url=https://web.archive.org/web/20141223013515/http://www.eecis.udel.edu/~mills/ntp.html| archive-date=23 December 2014| url-status=live}}</ref> Following the retirement of Mills from the [[University of Delaware]], the reference implementation is currently maintained as an [[open source]] project led by Harlan Stenn.<ref name="jZjhj">{{cite web| url=http://www.informationweek.com/cloud/infrastructure-as-a-service/ntp-needs-money-is-a-foundation-the-answer/d/d-id/1319557| title=NTP Needs Money: Is A Foundation The Answer?| work=[[InformationWeek]]| date=March 23, 2015| access-date=April 4, 2015| archive-url=https://web.archive.org/web/20150410033108/http://www.informationweek.com/cloud/infrastructure-as-a-service/ntp-needs-money-is-a-foundation-the-answer/d/d-id/1319557| archive-date=April 10, 2015| url-status=live}}</ref><ref name="MShrI">{{cite web| url=http://www.informationweek.com/it-life/ntps-fate-hinges-on-father-time/d/d-id/1319432?cmp=em-prog-na-na-newsltr_20150313_control&imm_mid=0ce65e&page_number=2| title=NTP's Fate Hinges On 'Father Time'| work=[[InformationWeek]]| date=March 11, 2015| access-date=April 4, 2015| archive-url=https://web.archive.org/web/20150410021745/http://www.informationweek.com/it-life/ntps-fate-hinges-on-father-time/d/d-id/1319432?cmp=em-prog-na-na-newsltr_20150313_control&imm_mid=0ce65e&page_number=2| archive-date=April 10, 2015| url-status=live}}</ref> On the [[Internet Assigned Numbers Authority|IANA]] side, a ntp (network time ''protocols'') work group is in charge of reviewing proposed drafts.<ref name="ntpwg-doc">{{cite web |title=Network Time Protocols (ntp): Documents |url=https://datatracker.ietf.org/wg/ntp/documents/ |website=datatracker.ietf.org |access-date=27 December 2022 |language=en}}</ref> The protocol has significantly progressed since NTPv4.<ref name="E4akm"/> {{as of|2022}}, three RFC documents describing updates to the protocol have been published,{{Ref RFC|7822}}{{Ref RFC|8573}}{{Ref RFC|9109}} not counting the numerous peripheral standards<ref name="ntpwg-doc"/> such as Network Time Security.{{Ref RFC|8915}} Mills had mentioned plans for a "NTPv5" on his page, but one was never published.<ref name="E4akm"/> An unrelated draft termed "NTPv5" by M. Lichvar of [[chrony]] was initiated in 2020 and includes security, accuracy, and scaling changes.<ref>{{cite journal |last1=Lichvar |first1=Miroslav |title=Network Time Protocol Version 5 |url=https://www.ietf.org/archive/id/draft-mlichvar-ntp-ntpv5-06.html |website=www.ietf.org |date=6 December 2022 |language=en}}</ref> === SNTP === As NTP replaced the use of the old [[Time Protocol]], some use cases nevertheless found the full protocol too complicated. In 1992, '''Simple Network Time Protocol''' ('''SNTP''') was defined to fill this niche. The SNTPv3 standard describes a way to use NTPv3, such that no storage of [[state (computer science)|state]] over an extended period is needed. The topology becomes essentially the same as with the Time Protocol, as only one server is used.{{Ref RFC|1361}} In 1996, SNTP was updated to SNTPv4{{Ref RFC|2030}} with some features of the then-in-development NTPv4. The current version of SNTPv4 was merged into the main NTPv4 standard in 2010.{{Ref RFC|5905}} SNTP is fully interoperable with NTP since it does not define a new protocol.{{Ref RFC|5905|rsection=14|notes=no|status=no|quote=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 [...]}} However, the simple algorithms provide times of reduced accuracy and thus it is inadvisable to sync time from an SNTP source.{{Ref RFC|4330}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)