Serial Number Arithmetic (RFC1982)
Original Publication Date: 1996-Aug-01
Included in the Prior Art Database: 2019-Feb-14
Internet Society Requests For Comment (RFCs)
R. Elz: AUTHOR [+1]
The DNS has long relied upon serial number arithmetic, a concept which has never really been defined, certainly not in an IETF document, though which has been widely understood. This memo supplies the missing definition. It is intended to update RFC1034 and RFC1035. [STANDARDS-TRACK]
Network Working Group R. Elz Request for Comments: 1982 University of Melbourne Updates: 1034, 1035 R. Bush Category: Standards Track RGnet, Inc. August 1996
Serial Number Arithmetic
Status of this Memo
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
This memo defines serial number arithmetic, as used in the Domain Name System. The DNS has long relied upon serial number arithmetic, a concept which has never really been defined, certainly not in an IETF document, though which has been widely understood. This memo supplies the missing definition. It is intended to update RFC1034 and RFC1035.
The serial number field of the SOA resource record is defined in RFC1035 as
SERIAL The unsigned 32 bit version number of the original copy of the zone. Zone transfers preserve this value. This value wraps and should be compared using sequence space arithmetic.
RFC1034 uses the same terminology when defining secondary server zone consistency procedures.
Unfortunately the term "sequence space arithmetic" is not defined in either RFC1034 or RFC1035, nor do any of their references provide further information.
This phrase seems to have been intending to specify arithmetic as used in TCP sequence numbers [RFC793], and defined in [IEN-74].
Unfortunately, the arithmetic defined in [IEN-74] is not adequate for the purposes of the DNS, as no general comparison operator is
Elz & Bush Standards Track [Page 1]
RFC 1982 Serial Number Arithmetic August 1996
To avoid further problems with this simple field, this document defines the field and the operations available upon it. This definition is intended merely to clarify the intent of RFC1034 and RFC1035, and is believed to generally agree with current implementations. However, older, superseded, implementations are known to have treated the serial number as a simple unsigned integer, with no attempt to implement any kind of "sequence space arithmetic", however that may have been interpreted, and further, ignoring the requirement that the value wraps. Nothing can be done with these implementations, beyond extermination.
2. Serial Number Arithmetic
Serial numbers are formed from non-negative integers from a finite subset of the range of all integer values. The lowest integer in every subset used for this purpose is zero, the maximum is always one less than a power of two.
When considered as serial numbers however no value has any particular significance, there is no minimum or maximum serial number, every value has a successor and predecessor.
To define a serial number to be used in this way, the size of the serial number space must be given. This value, called "SERIAL_BITS", gives the power of two which res...