UDP Checksum – Calculation Resulting in Zero Value

checksumipv4layer4tcpudp

I read UDP checksum from Wikipedia that "If the checksum calculation results in the value zero (all 16 bits 0) it should be sent as the one's complement (all 1s) as a zero-value checksum indicates no checksum has been calculated. In this case, any specific processing is not required at the receiver, because all 0s and all 1s are equal to zero in 1's complement arithmetic."

I don't understand when checksum calculation be zero in one's complement, but all 1's possible to get. My understanding Zero sum means there is no data to calculate. Please help.

Best Answer

A UDP checksum value of zero indicates that the checksum option isn't used (checksum value is not to be verified). Therefore, a calculated checksum of zero is replaced by all ones to indicate that case unambiguously.

See RFC 768:

If the computed checksum is zero, it is transmitted as all ones (the equivalent in one's complement arithmetic). An all zero transmitted checksum value means that the transmitter generated no checksum (for debugging or for higher level protocols that don't care).