TCP alternate checksum options (RFC1145)
Original Publication Date: 1990-Feb-01
Included in the Prior Art Database: 2019-Feb-11
Internet Society Requests For Comment (RFCs)
J. Zweig: AUTHOR [+1]
This memo is suggests a pair of TCP options to allow use of alternate data checksum algorithms in the TCP header. The use of these options is experimental, and not recommended for production use.
Network Working Group J. Zweig Request for Comments: 1145 UIUC C. Partridge BBN February 1990
TCP Alternate Checksum Options
Status of This Memo
This memo suggests a pair of TCP options to allow use of alternate data checksum algorithms in the TCP header. The use of these options is experimental, and not recommended for production use.
Distribution of this memo is unlimited.
Some members of the networking community have expressed interest in using checksum-algorithms with different error detection and correction properties than the standard TCP checksum. The option described in this memo provides a mechanism to negotiate the use of an alternate checksum at connection-establishment time, as well as a mechanism to carry additional checksum information for algorithms that utilize checksums that are longer than 16 bits.
Definition of the Options
The TCP Alternate Checksum Request Option may be sent in a SYN segment by a TCP to indicate that the TCP is prepared to both generate and receive checksums based on an alternate algorithm. During communication, the alternate checksum replaces the regular TCP checksum in the checksum field of the TCP header. Should the alternate checksum require more than 2 octets to transmit, the checksum may either be moved into a TCP Alternate Checksum Data Option and the checksum field of the TCP header be sent as 0, or the data may be split between the header field and the option. Alternate checksums are computed over the same data as the regular TCP checksum (see TCP Alternate Checksum Data Option discussion below).
TCP Alternate Checksum Request Option
The format of the TCP Alternate Checksum Request Option is:
+----------+----------+----------+ | Kind=14 | Length=3 | chksum | +----------+----------+----------+
Zweig & Partridge [Page 1]
RFC 1145 TCP Alternate Checksum Options February 1990
Here chksum is a number identifying the type of checksum to be used.
This option is not copied into each fragment, and appears only in the first fragment.
The currently defined values of chksum are:
0 -- TCP checksum 1 -- 8-bit Fletcher’s algorithm (see Appendix I) 2 -- 16-bit Fletcher’s algorithm (see Appendix II)
Note that the 8-bit Fletcher algorithm gives a 16-bit checksum and the 16-bit algorithm gives a 32-bit checksum.
Alternate checksum negotiation proceeds as follows:
A SYN segment used to originate a connection may contain the Alternate Checksum Request Option, which specifies an alternate checksum-calculation algorithm to be used for the connection. The acknowledging SYN-ACK segment may also carry the option.
If both SYN segments carry the Alternate Checksum Request option, and both specify the same algorithm, that algorithm must be used for the remainder of the connection. Otherwise, the standard TCP checksum algorithm must be used for the entire connection. Thus, for example, if one TCP specifies type 1 checksums, and the other specifies type 2 checksums, then they will use type 0 (the regular TCP checks...