1

Why did the designers of IP (and UDP and TCP) choose to use the IP checksum to detect errors rather than a more robust error detection code such as CRC-32?

I previously thought the IP checksum was chosen because it was fast and cheap to recalculate in software (for example, a router at each hop must decrement the TTL field and then recalculate the checksum for the IP header), but having learn't that CRC-32's are fast to implement in hardware using a k-bit shift register and XOR gates (Peterson, Davie: Computer Networks: A Systems Approach, 5th Edition.) I'm not too sure this argument still holds.

1 Answers1

3

IP needed to be easily implemented on a wide variety of hardware. CPUs of the day didn't have CRC32 hardware built in. No one was expecting to create custom hardware for IP compatibility; IP was expected to be handled in software. So they had to select something that could be easily implemented in software on systems that were already in the field in 1981 (think of DEC PDP-11's and such).

Spiff
  • 110,156