RFC Errata
RFC 791, "Internet Protocol", September 1981
Note: This RFC has been updated by RFC 1349, RFC 2474, RFC 6864
Source of RFC: LegacyArea Assignment: int
Errata ID: 3874
Status: Rejected
Type: Technical
Publication Format(s) : TEXT
Reported By: Bo-Jhang Ho
Date Reported: 2014-01-23
Rejected by: Ted Lemon
Date Rejected: 2014-05-01
Section 3 says:
The number 576 is selected to allow a reasonable sized data block to be transmitted in addition to the required header information. For example, this size allows a data block of 512 octets plus 64 header octets to fit in a datagram. The maximal internet header is 60 octets, and a typical internet header is 20 octets, allowing a margin for headers of higher level protocols.
It should say:
The number 576 is selected to allow a reasonable sized data block to be transmitted in addition to the required header information. For example, this size allows a data block of 516 octets plus 60 header octets to fit in a datagram. The maximal internet header is 60 octets, and a typical internet header is 20 octets, allowing a margin for headers of higher level protocols.
Notes:
It is not consistent that it first give an example which illustrates the header is 64 octets, but then explains the maximum header size is 60 octets.
--VERIFIER NOTES--
I believe that the discrepancy you are seeing is because in the one case the text is referring to the set of all headers, and in the other case it's referring to the IP header alone. The IP header does have a maximum size of 60 octets, but for example an IP header plus a UDP header would be 28 octets, and IP+TCP would be 40 octets, plus a timestamp header in current practice. Notice the "for example" at the beginning of the sentence that mentions 64 header octets.