H. Ahmed S. Boffa Category: Internet Draft Motorola Inc. August 15 2001 SCTP Dynamic Checksum selection draft-ahmed-tsvwg-sctpdsum-00.txt Status of this Memo This document is an Internet-Draft and is subject to all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Copyright Notice Copyright (C) The Internet Society (2001). All Rights Reserved. Abstract When SCTP was initially accepted as RFC2960 the Adler-32 checksum was specified to be used. However, inlight of issues raised in [STONE] it has been proposed that a more robust algorithm such as [CRC-32] be used instead. This poses compatibility problems for existing implementations of SCTP that are already using the Adler-32 algorithm for computing checksums. This document proposes a dynamic method to preserve backward compatibility between the two checksum algorithms. Table of Contents 1. Introduction................................................1 1.1 Conventions..............................................2 2. Checksum algorithm selection................................2 2.1 Basic operation...........................................2 3. Acknowledgments.............................................3 4. Authors' Addresses..........................................3 5. References..................................................3 5.1 Normative References......................................3 5.2 Informative References....................................3 1. Introduction RFC2960 specified the Adler-32 checksum algorithm as its checksum algorithm. Since then, observations from [STONE] have shown the Ahmed et.al. [Page 1] Internet Draft SCTP Dynamic Checksum Selection August 2001 CRC-32 algorithm to be a more robust choice. The use of one (or the other) algorithm will effectively prevent two different implementations from communicating with each other. As there are already implementations using the Adler-32 checksum this document proposes that both versions of the checksum be supported. The decision on which algorithm is to be used should be done dynamically at the initialization of an association. This change will provide the following benefits (in no particular order): [a] Backward compatibility between the newer and older implementations. [b] Negligible performance penalty based on algorithm selection since it is only done once at the initialization stage of an association. [c] Requires no change to the existing data flows for the SCTP protocol. 1.1 Conventions The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in [RFC2119]. 2. Checksum algorithm selection Checksum computation (at the the Transport layer) has been traditionally defined by the protocol specification such as RFC2960 for SCTP. Since changing the checksum algorithm effectively makes two implementations of SCTP incompatible with each other the following algorithm is designed to make this selection dynamic. 2.1 Basic Operation Upon receiving an INIT packet from a peer, the host SHALL first apply the CRC-32 algorithm to validate the received datagram. If the CRC-32 algorithm fails, then the Adler-32 checksum algorithm will be applied. If the Adler-32 checksum fails then the packet is discarded in compliance with [RFC2960] section 6.8. However, if the datagram passes Adler-32 checksum then the host shall mark the peer as running the Adler-32 checksum. The host (if it chooses to continue on with the association) will respond using the Adler-32 checksum algorithm. Note, that this checksum setting is applicable to all SCTP interactions between the host and the peer. Further, the host may refuse the association request if it does not wish to support the Adler-32 variant of the checksum. In this case the packet may be silently discarded. It is also recommended that future SCTP implementations adhere to the more robust CRC-32 checksum algorithm and the choice of supporting the Adler-32 variant be left as an implementation choice. Ahmed et.al. [Page 2] Internet Draft SCTP Dynamic Checksum Selection August 2001 3. Acknowledgments The authors would like to thank the following people that have provided comments and input on the checksum issue: Stephen G. Boffa 4. Authors' Addresses Haseeb Ahmed Motorola Inc. CDMA Systems Division 8201 E McDowell Rd Scottsdale, AZ 85257 USA EMail: hahmed1@email.mot.com 5. References 5.1 Normative References [CRC-32] ITU-T Recommendation V.41, "Code-independent error-control system," November 1989. 5.2 Informative References [STONE] Doctoral Thesis Full Copyright Statement Copyright (C) The Internet Society (2001). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Ahmed et.al. [Page 3] Internet Draft SCTP Dynamic Checksum Selection August 2001 Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Ahmed et.al. [Page 4]