1. Introduction
The serial number field of the SOA resource record is defined in RFC1035std13 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.
RFC1034std13 uses the same terminology when defining secondary server zone consistency procedures.
Unfortunately the term "sequence space arithmetic" is not defined in either RFC1034std13 or RFC1035std13, 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 defined.
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 RFC1034std13 and RFC1035std13, 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.
