RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification
Publication Date: June 2010
Status: Standards Track
Obsoletes: RFC 1305, RFC 4330
Authors: D. Mills (U. Delaware), J. Martin (ISC), J. Burbank, W. Kasch (JHU/APL)
Abstract
The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet. This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family. NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs. It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required. It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.
Table of Contents
- 1. Introduction
- 1.1. Requirements Notation
- 2. Modes of Operation
- 3. Protocol Modes
- 3.1. Dynamic Server Discovery
- 4. Definitions
- 5. Implementation Model
- 6. Data Types
- 7. Data Structures
- 7.1. Structure Conventions
- 7.2. Global Parameters
- 7.3. Packet Header Variables
- 7.4. The Kiss-o'-Death Packet
- 7.5. NTP Extension Field Format
- 8. On-Wire Protocol
- 9. Peer Process
- 9.1. Peer Process Variables
- 9.2. Peer Process Operations
- 10. Clock Filter Algorithm
- 11. System Process
- 11.1. System Process Variables
- 11.2. System Process Operations
- 11.2.1. Selection Algorithm
- 11.2.2. Cluster Algorithm
- 11.2.3. Combine Algorithm
- 11.3. Clock Discipline Algorithm
- 12. Clock-Adjust Process
- 13. Poll Process
- 13.1. Poll Process Variables
- 13.2. Poll Process Operations
- 14. Simple Network Time Protocol (SNTP)
- 15. Security Considerations
- 16. IANA Considerations
- 17. Acknowledgements
- 18. References
- 18.1. Normative References
- 18.2. Informative References
Appendices
- Appendix A. Code Skeleton
- A.1. Global Definitions
- A.1.1. Definitions, Constants, Parameters
- A.1.2. Packet Data Structures
- A.1.3. Association Data Structures
- A.1.4. System Data Structures
- A.1.5. Local Clock Data Structures
- A.1.6. Function Prototypes
- A.2. Main Program and Utility Routines
- A.3. Kernel Input/Output Interface
- A.4. Kernel System Clock Interface
- A.5. Peer Process
- A.5.1. receive()
- A.5.2. clock_filter()
- A.5.3. fast_xmit()
- A.5.4. access()
- A.5.5. System Process
- A.5.6. Clock Adjust Process
- A.5.7. Poll Process
- A.1. Global Definitions
Related Resources
- Official Document: RFC 5905
- Official Page: RFC 5905 DataTracker
- Errata: RFC Editor Errata
- Related RFC: RFC 5906 (Autokey)