ABSTRACT
Traces of Internet packets from the past two years show that between 1 packet in 1,100 and 1 packet in 32,000 fails the TCP checksum, even on links where link-level CRCs should catch all but 1 in 4 billion errors. For certain situations, the rate of checksum failures can be even higher: in one hour-long test we observed a checksum failure of 1 packet in 400. We investigate why so many errors are observed, when link-level CRCs should catch nearly all of them.
We have collected nearly 500,000 packets which failed the TCP or UDP or IP checksum. This dataset shows the Internet has a wide variety of error sources which can not be detected by link-level checks. We describe analysis tools that have identified nearly 100 different error patterns. Categorizing packet errors, we can infer likely causes which explain roughly half the observed errors. The causes span the entire spectrum of a network stack, from memory errors to bugs in TCP.
After an analysis we conclude that the checksum will fail to detect errors for roughly 1 in 16 million to 10 billion packets. From our analysis of the cause of errors, we propose simple changes to several protocols which will decrease the rate of undetected error. Even so, the highly non-random distribution of errors strongly suggests some applications should employ application-level checksums or equivalents.
- 1.R. Blahut. Theory and Practice of Error Control Codes. Addison-Wesley, 1994.]]Google Scholar
- 2.R. Braden, D. Borman, and C. Partridge. Computing the Internet Checksum. Intenet Request For Comments RFC 1071, ISI, September 1988. (Updated by RFCs 1141 and 1624).]] Google ScholarDigital Library
- 3.C. Partridge. Gigabit Networking. Addison-Wesley, 1993.]] Google ScholarDigital Library
- 4.V. Jacobson. Compressing TCP/IP headers for low-speed serial links. Internet RFC 1144, Information Sciencies Institute, Feb 1990.]] Google ScholarDigital Library
- 5.J. Joseph L. Hammond and et. al. Development of a Transmission Error Model and an Error Control Model. Technical report, Georgia Institute of Technology, May 1975. Prepared for Rome Air Development Center.]]Google Scholar
- 6.D. Katz. IP Router Alert Option. Internet RFC 2113, Information Sciences Institute, February 1997.]] Google ScholarDigital Library
- 7.S. McCanne and V. Jacobson. The BSD Packet filter: a new architecture for user level packet capture. In Proc. USENIX '93 Winter Conference, pages 259-269, January 1993.]] Google ScholarDigital Library
- 8.C. Partridge and A. Jackson. IPv6 Router Alert Option. Internet RFC 2711, Information Sciences Institute, October 1999.]] Google ScholarDigital Library
- 9.V. Paxson. Social Forces and Traffic Behavior. End-to-End Research Group Meeting, Berkely, CA.]]Google Scholar
- 10.V. Paxson. End-to-end internet packet dynamics. IEEE Transactions on Networking, 7(3):277-292, June 1999.]] Google ScholarDigital Library
- 11.W. W. Plummer. TCP Checksum Function Design. Internet Engineering Note 45, BBN, 1978. Reprinted in {2}.]]Google Scholar
- 12.J. Postel. Transmission Control Protocol. Internet Request for Comments RFC 793, ISI, September 1981. 3.]]Google Scholar
- 13.A. Rijsinghani. Computation of the internet checksum via incremental update. Internet Request For Comments RFC 1624, Information Sciencies Institute, May 1994.]] Google ScholarDigital Library
- 14.J. Stone, M. Greenwald, J. Hughes, and C. Partridge. Performance of checksums and CRCs over real data. IEEE Trans. on Networks, October 1998.]] Google ScholarDigital Library
- 15.Z. Wang and J. Crowcroft. SEAL Detects Cell Misordering. IEEE Network Magazine, 6(4):8-19, July 1992.]]Google ScholarDigital Library
Index Terms
- When the CRC and TCP checksum disagree
Recommendations
When the CRC and TCP checksum disagree
Traces of Internet packets from the past two years show that between 1 packet in 1,100 and 1 packet in 32,000 fails the TCP checksum, even on links where link-level CRCs should catch all but 1 in 4 billion errors. For certain situations, the rate of ...
TCP checksum function design
Checksums are included in packets in order that errors encountered during transmission may be detected. For Internet protocols such as TCP [1,9] this is especially important because packets may have to cross wireless networks such as the Packet Radio ...
Partial CRC Checksum of SCTP for Error Control over Wireless Networks
In the Stream Control Transmission Protocol (SCTP), when a portion of a packet is corrupted, the entire packet will be discarded at the receiver side. This may result in degradation of the throughput of SCTP over wireless networks with a high bit error ...
Comments