This Article 
 Bibliographic References 
 Add to: 
The Effectiveness of Checksums for Embedded Control Networks
January-March 2009 (vol. 6 no. 1)
pp. 59-72
Theresa C. Maxino, Lexmark Research and Development Corporation, Cebu City
Philip J. Koopman, Carnegie Mellon University, Pittsburgh
Embedded control networks commonly use checksums to detect data transmission errors. However, design decisions about which checksum to use are difficult because of a lack of information about the relative effectiveness of available options. We study the error detection effectiveness of the following commonly used checksum computations: exclusive or (XOR), two’s complement addition, one’s complement addition, Fletcher checksum, Adler checksum, and cyclic redundancy codes (CRC). A study of error detection capabilities for random independent bit errors and burst errors reveals that XOR, two’s complement addition, and Adler checksums are suboptimal for typical network use. Instead, one's complement addition should be used for networks willing to sacrifice error detection effectiveness to reduce compute cost, Fletcher checksum for networks looking for a balance of error detection and compute cost, and CRCs for networks willing to pay a higher compute cost for significantly improved error detection.

[1] R. Bosch GmbH, CAN Specification Version 2.0, Sept. 1991.
[2] FlexRay Consortium, FlexRay Communications System Protocol Specification Version 2.1, May 2005.
[3] TTTech Computertechnik AG, Time Triggered Protocol TTP/C High-Level Specification Document, Protocol Version 1.1, specification ed. 1.4.3, Nov. 2003.
[4] The HART Book, The HART Message Structure. What Is HART? http://www.thehartbook.comtechnical.htm, Dec. 2005.
[5] Thales Navigation, Data Transmission Protocol Specification for Magellan Products Version 2.7, Feb. 2002.
[6] MGE UPS Systems, Simplified SHUT and HID Specification for UPS, Mar. 2002.
[7] Vendapin LLC, API Protocol Specification for CTD-202 USB Version & CTD-203 RS-232 Version Card Dispenser, Aug. 2005.
[8] Q. Lian, Z. Zhang, S. Wu, and B.Y. Zhao, “Z-Ring: Fast Prefix Routing via a Low Maintenance Membership Protocol,” Proc. 13th IEEE Int'l Conf. Network Protocols (ICNP '05), pp. 132-146, Nov. 2005.
[9] W. Christensen, Modem Protocol Documentation, Revised version (1985),, Dec. 2005.
[10] Modicon, Inc., Modbus Protocol Reference Guide, pI-MBUS-300 Rev.J., June 1996.
[11] McShane Inc., “Calculating the Checksum,” Comm. Protocol, , Dec. 2005.
[12] Opto 22, Optomux Protocol Guide, Aug. 2005.
[13] R. Braden, D. Borman, and C. Partridge, Computing the Internet Checksum, IETF RFC 1071, Sept. 1988.
[14] J. Zweig and C. Partridge, TCP Alternate Checksum Options, IETFRFC 1146, Mar. 1990.
[15] P. Deutsch and J.-L. Gailly, ZLIB Compressed Data Format Specification Version 3.3, IETF RFC 1950, May 1996.
[16] N.R. Saxena and E.J. McCluskey, “Analysis of Checksums, Extended-Precision Checksums, and Cyclic Redundancy Checks,” IEEE Trans. Computers, vol. 39, no. 7, pp. 969-975, July 1990.
[17] A.M. Usas, “Checksum versus Residue Codes for Multiple Error Detection,” Proc. Eighth Ann. Int'l Symp. Fault-Tolerant Computing (FTCS '78), p. 224, 1978.
[18] S.C. Tzou Chen and G.S. Fang, “A Closed-Form Expression for the Probability of Checksum Violation,” IEEE Trans. Systems, Man, and Cybernetics, vol. 10, no. 7, pp. 407-410, July 1980.
[19] C. Jiao and L. Schwiebert, “Error Masking Probability of 1'sComplement Checksums,” Proc. 10th Int'l Conf. Computer Comm. and Networks (ICCCN '01), pp. 505-510, Oct. 2001.
[20] Y. Desaki, K. Iwasaki, Y. Miura, and D. Yokota, “Double and Triple Error Detecting Capability of Internet Checksum and Estimation of Probability of Undetectable Error,” Proc. Pacific Rim Int'l Symp. Fault-Tolerant Systems (PRFTS '97), pp. 47-52, Dec. 1997.
[21] W.W. Plummer, “TCP Checksum Function Design,” Computer Comm. Rev., vol. 19, no. 2, pp. 95-101, Apr. 1989.
[22] T. Baicheva, S. Dodunekov, and P. Kazakov, “On the Cyclic Redundancy-Check Codes with 8-Bit Redundancy,” Computer Comm., vol. 21, pp. 1030-1033, 1998.
[23] T. Baicheva, S. Dodunekov, and P. Kazakov, “Undetected Error Probability Performance of Cyclic Redundancy-Check Codes of 16-Bit Redundancy,” IEEE Proc. Comm., vol. 147, no. 5, pp. 253-256, Oct. 2000.
[24] P. Kazakov, “Fast Calculation of the Number of Minimum-Weight Words of CRC Codes,” IEEE Trans. Information Theory, vol. 47, no. 3, pp. 1190-1195, Mar. 2001.
[25] G. Funk, “Determination of Best Shortened Linear Codes,” IEEE Trans. Comm., vol. 44, no. 1, pp. 1-6, Jan. 1996.
[26] P. Koopman, “32-Bit Cyclic Redundancy Codes for Internet Applications,” Proc. Int'l Conf. Dependable Systems and Networks (DSN '02), pp. 459-468, June 2002.
[27] P. Koopman and T. Chakravarty, “Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks,” Proc.Int'l Conf. Dependable Systems and Networks (DSN '04), pp. 145-154, June 2004.
[28] J.G. Fletcher, “An Arithmetic Checksum for Serial Transmissions,” IEEE Trans. Comm., vol. 30, no. 1, pp. 247-252, Jan. 1982.
[29] A. Nakassis, “Fletcher's Error Detection Algorithm: How to Implement It Efficiently and How to Avoid the Most Common Pitfalls,” Computer Comm. Rev., vol. 18, no. 5, pp. 63-88, Oct. 1988.
[30] K. Sklower, “Improving the Efficiency of the OSI Checksum Calculation,” Computer Comm. Rev., vol. 19, no. 5, pp. 44-55, Oct. 1989.
[31] D. Sheinwald, J. Satran, P. Thaler, and V. Cavanna, Internet Protocol Small Computer System Interface (iSCSI) Cyclic Redundancy Check (CRC)/Checksum Considerations, IETF RFC 3385, Sept. 2002.
[32] C. Partridge, J. Hughes, and J. Stone, “Performance of Checksums and CRCs over Real Data,” Computer Comm. Rev., Proc. ACM SIGCOMM '95, vol. 25, no. 4, pp. 68-76, Oct. 1995.
[33] J. Stone, M. Greenwald, C. Partridge, and J. Hughes, “Performance of Checksums and CRC's over Real Data,” IEEE/ACM Trans. Networking, vol. 6, no. 5, pp. 529-543, Oct. 1998.
[34] J. Stone and C. Partridge, “When the CRC and TCP Checksum Disagree,” Computer Comm. Rev., Proc. ACM SIGCOMM '00, vol. 30, no. 4, pp. 309-319, Oct. 2000.
[35] A.J. McAuley, “Weighted Sum Codes for Error Detection and Their Comparison with Existing Codes,” IEEE/ACM Trans. Networking, vol. 2, no. 1, pp. 16-22, Feb. 1994.
[36] D.C. Feldmeier, “Fast Software Implementation of Error Detection Codes,” IEEE/ACM Trans. Networking, vol. 3, no. 6, pp. 640-651, Dec. 1995.
[37] T. Ramabadran and S. Gaitonde, “A Tutorial on CRC Computations,” IEEE Micro, vol. 8, no. 4, pp. 62-75, Aug. 1988.
[38] D.V. Sarwate, “Computation of Cyclic Redundancy Checks viaTable Look-Up,” Comm. ACM, vol. 31, no. 8, pp. 1008-1013, Aug. 1988.
[39] J. Ray and P. Koopman, “Efficient High Hamming Distance CRCs for Embedded Applications,” Proc. Int'l Conf. Dependable Systems and Networks (DSN '06), June 2006.
[40] A.J. Menezes, P.C. van Oorschot, and S.A. Vanstone, Handbook of Applied Cryptography. CRC Press, 1997.
[41] Wikipedia, Adler-32,, Dec. 2005.
[42] K.H. Fritsche, “TinyTorrent: Combining BitTorrent and SensorNets,” Technical Report TCD-CS-2005-74, Univ. of Dublin, Trinity College, Dec. 2005.

Index Terms:
Real-time and embedded systems, Real-time systems and embedded systems, Error-checking, Communication/Networking and Information Technology, Data communications, Network communications, Network communication
Theresa C. Maxino, Philip J. Koopman, "The Effectiveness of Checksums for Embedded Control Networks," IEEE Transactions on Dependable and Secure Computing, vol. 6, no. 1, pp. 59-72, Jan.-March 2009, doi:10.1109/TDSC.2007.70216
Usage of this product signifies your acceptance of the Terms of Use.